Gar*_*eld 4 size audio waveform fft wav
我正在使用一种工具来比较两个波形文件的波形相似性。例如,我有一个持续时间为1min的波形文件,我使用第一个波形文件制作了另一个波形文件,但是每个5sec数据的间隔为5秒至0。现在,我的软件会告诉您,在5sec至10sec的时间间隔内存在波形差异,15秒至20秒,25秒至30秒,依此类推...
截至目前,通过初步开发,此方法可以正常工作。以下是3个测试集:
我有两个波形文件,采样率为960Hz,单声道,没有数据采样为138551(1分钟12秒的文件)。我正在使用128点FFT(在128个样本块中拆分文件),效果很好。
当我对采样率为48KHz,2通道的波文件使用相同的算法时,每个通道均没有数据采样6927361(文件为2min 24秒),过程变得太慢了。当我使用4096点FFT时,过程会更好。
但是,在22050Hz,2通道的文件上使用4096点FFT,每个通道的数据采样数为55776(文件长度为0.6秒),结果非常差。在这种情况下,128点FFT效果很好。
因此,我对如何确定FFT的长度感到困惑,因此在每种情况下我的结果都是不错的。
我猜长度应该取决于样本数量和采样率。请对此提供您的意见。
谢谢
FFT的长度N将确定频域中的分辨率:
resolution (Hz) = sample_rate (Hz) / N
Run Code Online (Sandbox Code Playgroud)
因此,例如在情况(1)中,您有resolution = 960 / 128 = 7.5 Hz。因此,所得FFT中的每个bin(或大概是由此得出的功率谱)将为7.5 Hz宽,您将能够区分至少相距如此远的频率分量。
由于您没有说这些波形是什么波形,或者您的应用目的是什么,因此很难知道您需要哪种分辨率。
还有一个重要的要点-许多人第一次使用FFT时并没有意识到,通常您需要在FFT之前应用窗函数,以避免频谱泄漏。