FFT的前世今生(二)
从直观上讲,时域分析清晰易见,示波器即是进行时域观察的主要工具,可观察波形形状,测量脉宽,相差等信息。但对于信号的进一步分析,比如测量各次谐波在所占的比重和能量分布,时域上的分析就力不从心了,但是利用从连续时间傅里叶变换发展而来的快速傅里叶变换FFT进行分析就很有意义了。通信系统中必不可少的要使用频谱分析技术,例如频分复用技术。 频谱分析一般利用快速傅里叶变换FFT计算频率谱和功率谱,可直接用来提取特征频率和谱特征。因为计算机只能够处理离散的数据点,但FFT是傅里叶变换的一种近似,与傅里叶变换存在差别,且具有固有的局限:栅栏现象。本文就在上一篇《FFT的前世今生》的基础上,从测试测量的角度,谈一谈在示波器的FFT运算中容易被大家忽略的一些问题。
本文引用地址:http://www.amcfsurvey.com/article/192827.htm频率分辨率与时基设置(TimeBase)
频率分辨率的定义是:在使用FFT运算时,在频率谱上所能得到的最小的两个频率点间的间隔。
ΔF=Fs/N=1/NT=1/Tp
称ΔF为频率分辨率,即:采样率/采样点数,ΔF越小说明频率分辨率越高。ΔF仅与信号的实际长度成反比,即待分析的信号持续时间越长,ΔF越小,频率分辨率越高。
栅栏效应与频率分辨率:
示波器输入的信号一般都为非周期的连续信号
()axt
,它的频谱也是连续的,但是示波器所做的工作
是将 ( ) a x t 进行等间隔采样并且截断,然后进行FFT的运算得到一个离散的频谱图,相当于对连续的频谱图也进行了采样。这样有一部分频谱分量将被“挡在”采样点之外,就好像我们在通过一个栅栏观察频谱图,这种现象称为“栅栏效应”。这样就有可能发生一些频谱的峰点或谷点被栅栏所拦住,不可能被我们观察到。
不管是时域采样还是频域采样,都有相应的栅栏效应。只是当时域采样满足采样定理时,栅栏效应不会有什么影响。而频域采样的栅栏效应则影响很大,“挡住”或丢失的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。
栅栏效应是制约频谱分析谐波分析精度的一个瓶颈。栅栏效应在非同步采样的时候,影响尤为严重。在非同步采样时,由于各次谐波分量并未能正好落在频率分辨点上,而是落在两个频率分辨点之间。这样通过FFT不能直接得到各次谐波分量的准确值,而只能以临近的频率分辨点的值来近似代替,这就是栅栏效应降低频谱分析精度的原因。
由此我们可以得出这样的结论:减小栅栏效应可用通过提高频谱采样间隔也就是频率分辨率的方法来解决。间隔小,频率分辨率高,被“挡住”或丢失的频率成分就会越少。但是频率分辨率的提高会增加采样点数,使计算工作量增加。
我们可以通过两种方式增加频率分辨率:
a:物理分辨率=采样频率/采样点数。
物理分辨率的实际意义在于它可以衡量FFT实际上可以区分的频率分量的间隔。提高物理分辨率的方法一般是通过增加数据的有效长度,这相当于在模拟域增加了矩形窗的宽度。从而在模拟域减小了sinc主旁瓣宽度,减小了相邻频率分量的混叠。
这种增加采样点的方法主要针对无限长序列的FFT计算。对于无限长序列,不像有限长序列那样必须补零来提高视在分辨率,无限长序列可以通过增加数据长度来提高物理分辨率。
第 2 页 共 5 页 2012-12-19
b:视在分辨率=采样频率/分析点数
在序列尾部补零的方法可以使得分析点数增大,故补零的方法可以提高频谱的视在分辨率。对序列的尾部补零的方法主要针对有限长序列。对于有限长序列,有时只能用补零或者插值来改善频率分辨率。通过补零处理,使得频域采样密度增大,得到高密度谱。补零的方法所得到的频谱图所改善的只是图形的视在分辨率,并不能得到频谱的更多细节。
增加采样点数,增加了输入序列的阶次,从而提供频谱的更多细节,这是真正的分辨率(物理分辨率)。对序列只补零而不增加数据,输入序列和它的频谱阶次依旧没有提高,只是把频谱画的密一些,所以改善的只是图形的视在分辨率,并不能得到频谱的更多细节。增加序列的长度能够改善频谱的真正分辨率,这是基本的规律。
上面的讨论可知,改善分辨率的具体方法有如下两种
(1)对有限长序列采取尾部补零的方法提高视在分辨率
(2)对无限长序列通过真正增加采样点来提高物理分辨率
有限长序列和无限长序列是针对实际信号来说的,例如非周期的但是包含无限长信息的信号可以称为无限长序列,严格的周期信号和脉冲信号(脉冲之前和之后无限长时间内都是无效信息)都可以称为有限长序列,当然实际上严格的周期信号是不存在的。对于示波器来说,时间窗口内采集到的可以是有限长序列的全部信息或者是无限长序列的一部分信息。所以,如果采集到的是有限长序列的全部信息,那么只能通过补零的方式增加视在分辨率,如果采集到的是无限长序列的一部分信息,那么可以通过增加时间窗口的长度(不是采样点)来增加物理频率分辨率。
请看下面的实例:
图1中正弦波测试使用的时基是5ns/div,波形时间长度是50ns,计算FFT之后的频谱分辨率是20MHz(1/50ns),
图1 捕获50ns的信号,频率分辨率是20MHz
如果改变时基设置,频谱分辨率会有变化。如图2所示:将时基设置为10ns/div,波形长度是100ns,频谱分辨率可以提高到10MHz。
对于通过补零的方法增加FFT频谱的视在分辨率,力科的示波器也有相应的解决方案。力科示波器使用了两种非常常用的FFT算法供用户选择:Cooley-Tukey算法和LeastPrime算法。Cooley-Tukey算法也称为Power2算法,它提供了计算机一种非常快速的FFT计算方式,计算的FFT点数规模是2的整数方次,因此它会在示波器时域采集的信号中截取2的N次方的整数来作为FFT计算的时域样本,该截取的整数是最接近于采样点的整数。如下图2所示:
评论