STFT/FFT工作流程顺序

jac*_*cob 2 signal-processing fft overlap dft

我正在尝试实现FFT,我可以使用代码等,但事情的一般顺序令我感到困惑.

我是否正确地认为这是正确的事情顺序?

输入 - >重叠输入 - >窗口 - > FFT - >相位计算/重叠补偿 - >输出

我得到的结果接近我的输入频率,但它们总是被一些我无法解决的因素关闭,即440Hz总是407Hz,430Hz总是420Hz.

令我困惑的主要部分是初始重叠,因为我一直在研究一些开源FFT代码,这是我永远无法解决的部分.我似乎从看到那些重叠应该在窗口之前发生的想法得到了这个想法,但对我来说逻辑上,不会那么混乱的窗口?

任何建议都会很棒

谢谢

Bab*_*son 7

FFT是连续傅里叶变换的离散版本.

FFT产生一个复数的1D向量.这个复杂的矢量通常用于计算频率幅度与频率的二维矩阵,并表示为2D图形,如下所示:

频谱女声女高音,Sooeet FFT计算器

当您想要了解信号的频谱时,使用单个FFT.例如,根据上面的FFT图,我们可以说这位女高音的G5音符中的大部分能量都集中在784 Hz和1572 Hz的频率上.

STFT或"短时傅立叶变换"使用滑动帧FFT产生频率与时间的二维矩阵,通常表示为一个称为频谱图的图形,如下所示:

声乐短语的频谱图,Sooeet FFT计算器

当您想知道信号中特定频率事件发生的时间时,使用STFT.例如,从上面的图表可以看出,在100Hz到1500Hz的频率范围内,该声乐短语中的大部分能量发生在0.05和0.15秒之间.

FFT的工作流程是:

采样信号 - >窗口整个采样帧 - > FFT - >计算幅度和相位 - >输出一些东西,通常是2D图形

如果您的时域数据以文本形式提供,并且您可以在此处发布,我们可以尝试帮助您进行分析,或者您可以使用此在线FFT 自行分析:Sooeet FFT计算器