我正在使用一台进行声学分析的设备。它通过获取时域信号并对其执行 FFT 以提取单个所需频率的幅度和相位来实现这一点,称为 f0。现在,我了解了 FFT。那部分很容易。但是,我不明白的是我在该仪器的 LabView 代码中发现的所有额外步骤的后果。这是程序:
- 获取时域信号并将校准系数应用于每个点。
- 从信号中减去平均值以去除直流分量
- 通过将复时域信号乘以 cos(2πf0) - i sin(2πf0) 在 f0 处混合纯音
- 使用精确布莱克曼的窗口
- 执行 FFT
- 取输出的直流分量,除以 N/2(其中 N 是时域中的样本数)
- 从直流分量获取 f0 处的幅度和相位
具体来说,我对第 3 步如何让我通过查看 FFT 输出的直流分量来获得 f0 的值感到困惑。我使用 numpy.fft.fft 和一些模拟信号在 python 中重新创建了这个,我得到了类似的结果。
归根结底,我想这听起来像是一个理论/数学问题。