需要有关 FFT 结果的帮助

信息处理 matlab fft 声音 海浪
2022-01-25 14:26:24

我正在玩 FFT,但似乎无法获得预期的结果。我有一个声音片段,是从放在模拟时钟上的麦克风录制的。所以它每一秒都有声音。

[wave,fs]=wavread('clock.wav');
t=0:1/fs:(length(wave)-1)/fs;
plot(t,wave);
n=length(wave)-1;                                             
f=0:fs/n:fs;
wavefft=abs(fft(wave));
plot(f,wavefft);

这是我正在使用的代码。这是结果。

我应该在 1hz 看到一个巨大的尖峰,但我没有。

FFT 之后是声波。

这是 FFT

这是声波

2个回答

滴答声中的能量也分布到更高的频率。基频可能不是很强。您可能正在寻找宽带信号。我会尝试采用幅度的时间差。蜱将有陡峭的时间边缘。

由于您正在寻找声音剪辑的幅度包络中的低频周期性,而不是音调波形或音高,您可以尝试在应用 fft 之前对信号进行平方或取绝对值,然后忽略更高频率的 bin结果(类似于廉价的 AM 解调器)。