我正在对频率从200Hz变为10kHz的时变信号进行频谱分析。我正在使用FFT分析信号中的频率分量。我的问题是:
- 如何确定信号的频率分辨率和窗口宽度?
- 哪种类型的窗口功能适用于时变信号?
- FFT的最佳大小应该是多少?
信号的采样率为44.1kHz。
我正在对频率从200Hz变为10kHz的时变信号进行频谱分析。我正在使用FFT分析信号中的频率分量。我的问题是:
信号的采样率为44.1kHz。
Answers:
由于您使用固定的采样率,因此FFT长度(这将要求您的窗口具有相同的宽度)将提高频率分辨率。拥有更好的频率分辨率的好处是双重的:显而易见的是,您可以获得更好的频率分辨率,因此您可能能够区分两个频率非常接近的信号。第二个问题是,频率分辨率越高,您的FFT噪声本底就越低。系统中的噪声具有固定的功率,与FFT的点数无关,并且该功率平均分配给所有频率分量(如果我们说的是白噪声)。因此,拥有更多的频率分量意味着您的频率单元的各个噪声贡献将降低,而总的集成噪声保持不变,从而降低本底噪声。这将使您能够区分更高的动态范围。
但是,使用较长的FFT有缺点。第一个是您将需要更多处理能力。FFT是O(NlogN)算法,其中N是点数。尽管它可能不像天真的DFT那样引人注目,但N的增加将开始使处理器流血,尤其是在嵌入式系统范围内工作时。其次,当您增加N时,您将获得频率分辨率,而失去时间分辨率。N越大,您需要采集更多的样本才能得出频域结果,这意味着您需要采样更长的时间。您将能够检测到更高的动态范围和更佳的频率分辨率,但是如果您正在寻找杂散,则关于杂散何时确切发生的时间不太清楚。
您应该使用的窗口类型是其他主题,我没有被告知能为您提供更好的答案。但是,不同的窗口具有不同的输出特性,其中大多数(如果不是全部)在对FFT结果进行处理后是可逆的。一些窗口可能会使您的频率分量流到边箱(如果我没记错的话,Hanning窗口会使您的分量出现在三个箱中。),其他窗口可能会给您带来更好的频率精度,同时给您的组件引入一些增益误差。这完全取决于您要获得的结果的性质,因此,我将进行一些研究(或一些模拟)以得出哪种方法最适合您的特定应用。
因此首先,采样频率必须至少是信号最大频率的两倍(44.1kHz> 2x10kHz)。接下来,如果时域中的窗口长度为T,则FFT的频率分辨率恰好是1 / T。使用FFT在频域中的分辨率与时域中的采样频率无关。但是,正如前面的回答中指出的那样,时域窗口不能太大,因为这样您将丢失仅瞬时弹出的虚假信号的信息。因此,必须在频率分辨率和检测杂散信号之间进行折衷。最后,FFT并不是将信号从时域传输到频域的唯一算法。如果您正在频域中寻找高分辨率,而时域中的采样数量有限,则可以使用高分辨率频谱估计技术,例如MUSIC和ESPIRIT。这些也用于到达方向(DOA)估计,这与频谱估计问题非常相似。