在电子信号处理领域,FFT(快速傅里叶变换)是一项至关重要的技术,而与之紧密相关的频谱分辨率更是需要我们深入理解。那么,究竟什么是频率分辨率呢?
频率分辨率指的是 FFT 变换后能将信号中两个靠得很近的谱峰保持分开的能力。通常我们会令待分析的信号由两个或多个频率相接近且幅度相同的正弦信号叠加产生。若信号的长度为 T 秒,通过傅里叶变换后得到相关结果,那么其频率分辨率为 1/T。这是因为长度为 T 秒的信号可以看做一无穷长的信号和一宽度为 T 的矩形窗相乘的结果,而该矩形窗的频谱是一个 Sa 函数,它的主瓣的宽度反比于 T,因此该信号能够分辨的频率间隔不会小于 1/T,所以说它的频率分辨率反比于 T。这里的 T 是原模拟信号的长度,所给出的分辨率被称为 “物理分辨率”。显然,如果 1/T 不够小,使其变小的有效方法是增加信号的长度。
对一个 N 点序列做 FFT,所得 X (k) 的每两根谱线间的距离为 fs/N,它也是频率分辨率的一种度量,称为 “计算分辨率”。如果 fs/N 不够小,我们可以通过增加 N 来减小它。增加 N 的途径是在原序列的后面补零,使补零后的序列达到所需要的长度。不过需要注意的是,补零虽然减小了计算分辨率,但这并没有增加频谱的物理分辨率。这是因为有效的数据长度并没有增加,因而不可能增加关于原数据的新的信息。
为了更直观地验证上述理论,我们进行 MATLAB 仿真。设信号由三个余弦组成,其频率分别是 f1 Hz、f2 Hz、f3 Hz,现用 fs Hz 对其抽样。对该信号做 64 点 FFT 时,所得到的频率分辨率为 fs/64。那么用 FFT 求其频谱时,幅频特性如下图左边所示。显然由于某些条件限制,所以不能分辨出由某个频率产生的正弦分量;又由于其他条件,所以能分辨由另外频率产生的正弦分量。 如果增加点数,即增加数据的长度,例如令 N = 256,其幅频特性如下图右边所示。

前已指出,分辨率反比于 T,而不是 fs,因此,在给定 T 的情况下,靠减小 fs(增加采样频率)来增加分辨率是不能提高分辨率的。这是因为 T×fs 为一常数,若把 fs 减小 M 倍,N 也增加 M 倍,这时分辨率保持不变。

在做 FFT 时,在有效数据后面补一些零以达到对频谱作某种改善的目的不能误解为补零会提高分辨率。其理由是,原数据长度为 T,补零后数据长度为 T',由于 T 不变,及相关原理,因此分辨率实际并未改变。实际上这是错把 “计算分辨率” 当成了 “物理分辨率”。补零没有对原信号增加任何新的信息,因此不可能提高分辨率。但补零可使数据为 2 的整次幂,以便于使用快速傅里叶变换。