总的来说,我需要做的是fft两个wav文件,对它们进行卷积,然后进行逆fft(以在更大的噪声wav文件中找到一个声音的时间戳。
多亏了Python Scipy FFT wav files的bunkus,我有了两个wav文件的fft。
使用此代码后,在给定每个 wav 文件的频率和幅度数组的情况下,我将如何对两个 wav 文件进行卷积?如果我使用 numpy.convolve ,这两个输入将是每个 wav 文件的频率数组吗?振幅数组? scipy.signal.fftconvolve()
怎么样?
我需要以某种格式输出卷积,以便可以将其传递到 np.fft.ifft()在这个卷积上。
最佳答案
要进行 FFT 快速线性卷积,您需要在 FFT 之前首先对两个数据向量进行零填充,长度至少为 N+M-1(通常为 2 的下一个幂的两倍)。
那么乘法需要是两个 FFT 复数结果的复数乘法,而不是只是幅度的真正乘法。
如果您想要严格实数的卷积结果,请确保 IFFT 输入是共轭对称的。
关于python - 如何对两个 wav 文件的 fft 进行卷积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57773478/