- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
“精彩十分钟”系列之二:FFT 分析
快速傅里叶变换(FFT)频率分析
示波器有很强的分析信号频谱的能力;快速傅里叶变换(FFT)现在是几乎所有数字示波器的标配工具。以下是关于如何设置和使用FFT进行频谱分析的实验指导书。
设备要求
WaveRunner Zi系列的示波器
10:1 高阻抗无源探头.
初始化设置
本指导书的初始化设置是基于WaveRunner 6 Zi 示波器实现:
1.将无源探头连接到通道1,再连接在示波器前面板的CAL测试点;
2.进行初始化设置:点击文件下拉菜单,选择Recall Setup,再点击Default Setup。
3.关闭通道2.
4.设置示波器:按下Scope Setup,然后在弹出菜单中选择Auto Setup。
初始化设置完成,示波器显示如图1所示。
图1: 初始化设置,输入信号为1KHZ的校准方波信号
使用时基下拉菜单中的水平设置或者点击屏幕右下角的时基设置快捷菜单,打开时基对话框,固定最大存储为50kS,并且将时基改变到20ms,如图2所示,在250KS/S的采样率下,我们可以获得50,000个点,记录长度为200ms。
图 2: 时基捕获设置可以获得200ms的记录长度
使用Math下拉菜单,打开Math对话框,选择F1标签,设置F1的Math通道显示C1的FFT变化,如图3所示。
图3: 数学通道F1的基本FFT设置
我们可以在右下方的FFT标签中找到FFT设置的控制,包含FFT结果的类型,算法和窗口。
在如图4表格中选择可以需要使用的类型。从数学的角度来看,FFT运算是非常复杂的,它的输出形式由实部和虚部两部分组成。 [p]
图4: 输出结果类型的选择
幅度:FFT分解后的正弦信号上每一个频率点的峰值,幅度大小是线性的(电压),进行频谱加和减的数学操作中是非常方便的。
幅度的平方:这种方法对于将频谱作为频率的函数的积分很有用。
功率频谱 (默认输出格式):相对于频率函数的功率。 用对数函数表示,单位为1mW(dBm)。这是一种非常好的观察方式,提供了宽动态范围以便于观察频谱的细节。
功率谱密度:每一个频率对应的功率值(功率谱除以FFT的等效噪声带宽),垂直刻度也是用dBm的对数单位,适用于观察频谱幅值的测量值,由于带宽是已经定义的,所以,不会改变FFT的分辨率带宽。
相位: 相位TAN-1 (虚/实) 代表FFT的每一个频率的相位。
轮流 使用所有的类型,我们可以从F1通道的注释框的报告中了解到不同类型对垂直大小和单位的影响,然后将输出选择为功率谱。
算法选择
在图5中提供了2种可选算法。默认算法为 Power2,这种算法提供了FFT的快速运算。示波器的时基通常为1,2,或者5的倍数,使用Power2只会得到所有捕获数据一半进行运算,而Least Prime算法可以在运算稍微慢些,但是它是对成所有捕获数据进行运算。
图5: FFT 算法选择
在图6中,我们可以在F1数学标签的右下方对话框中得到FFT状态的总结,上面会对FFT的转换大小和分辨率带宽进行描述。
图 6: Power2算法
选择Power2算法,当转换大小得到50,000个点时,此算法仅仅只能使用32768个点(2的幂小于50,000)
分辨率带宽(Df),频谱中频率步进的大小为8Hz,在分辨率带宽下方是FFT范围,Df从8Hz到125kHz。
选择Least Prime算法,查看FFT状态栏,如图7所示。注意,现在使用了全部的50,000点,因为使用了一个长的记录长度,所以,分辨率带宽(Df)已经减少到5Hz.
图7: Least Prime算法的FFT状态栏
如何决定FFT频率分辨率和频谱范围
正如我们在前面了解的,FFT的频率分辨率与捕获数量和记录的长度有关,频率分辨率是示波器捕获时间的倒数。在图7的例子中捕获到了200ms的数据(20ms/格,10格),频率分辨率就是1/200ms或者5Hz。
FFT频谱的范围是示波器采样率的一半。在上面设置中采样率是250kS/s,所以范围是125 kHz。
打开时基对话框,将Time/Division设置从20 ms/division增加 到50 ms/ division,采样率将减少到 100kS/s,返回到F1设置的FFT标签。频谱跨度现在是50kHz;为采样率的一半。因为捕获时间减少到500ms,所以,频率分辨率从5HZ减少到2HZ(1/500 ms = 2 Hz)。
还原Time/division设置到20ms,关闭通道1显示,将FFT的算法重新选择到Power 2。
使用放大功能设置中心频率和水平刻度
我们之前谈论过的FFT频谱范围是采样率的一半,你可以使用数学通道中的放大功能选择一个中心频率和水平刻度来观察FFT。
点击F1对话框中的放大标签,我们可以观察1kHz的频谱线。
点击水平放大区域的中心频率栏两次,会弹出一个小键盘,输入中心频率1 kHz然后点击OK。
点击Scale/Div栏两次,会再次弹出小键盘,输入值200 (Hz)然后点击OK。FFT显示为水平大小为200HZ每格,中心频率为1KHZ。
在垂直放大区域检查增益工具栏,允许我们设置1-2-5步进外的其它大小。点击Ver/div工具栏, 输入值12,设置垂直大小为12dB/div,点击垂直中心工具栏,它会高亮显示。使用WavePilot SuperKnob (或者前面板的垂直偏置按钮)改变FFT垂直显示,直到频谱的峰值刚好显示在屏幕内,如图8所示;
图 8: 使用F1函数对话框中的放大标签设置FFT显示的中心频率和频谱范围
我们可以使用函数放大控制去进行垂直和水平方向的中心值及大小的设置,使用这种技巧有可能在屏幕中显示FFT频谱的任何部分。 [p]
加权窗函数选择
傅里叶变换计算是假定输入信号的长度是无穷大的,显然,示波器是有限的记录长度。使用有限的长度进行傅里叶变换的结果就是产生接近于信号频率的边带,这些边带显示看起来像很宽的“裙子”。回到F1对话框中的FFT标签,点击窗函数工具栏,将会出现如图9所示的可使用的加权窗选项;对话框有5个窗函数选项,矩形窗 Rectangular, 海明窗Hamming, Von Hann (汉宁窗), 布莱克曼.哈里斯窗Blackman Harris,和平顶窗 Flat Top. 选择 矩形窗。
图9: 加权窗函数选择
矩形窗应用没有加权,但是,可以在有限记录长度下显示FFT。你可以把它理解为一个无穷输入记录加权于一个持续单一振幅矩形脉冲等于范围的采集时间(矩形窗的名字由此而来)。现在,FFT频谱显示应该是在基频1KHZ往两边扩展,裙带宽度大概在800Hz,如图10所示。
图10: 使用矩形窗的FFT频谱
其它窗口运用多种多样的上升的正弦曲线窗去显示FFT的结果。在图11中,我们可以看到在水平大小为20HZ/格下,每个窗函数叠加的频谱响应曲线。注意,使用加权功能的作用是减少边带大小,但是,同样的也会加宽主频谱线,拓宽是表示在FFT状态下提高实际噪声带宽(ENBW)。
图 11: 频谱响应中加权窗的作用
逐步选择每一个窗函数并注意FFT结果,当您逐步选择并观察FFT标签下的ENBW时,你会发现这个值和拓宽的窗成正比。
矩形窗加权使用瞬态信号,可以产生在捕获范围内的任何位置。这是因为对捕获到的长度的加权是统一的。
海明和汉宁加权是非常好的窗函数会带来良好的旁瓣压制和标称拓宽。布莱克曼.哈里斯和平顶窗的广泛响应加权在频域上有最好的幅值平坦度。
完整的窗函数特征可以在示波器FFT界面的在线帮助下可以查看到。
返回FFT窗函数设置为汉宁窗(Vonn Hann)并且重置缩放设置 (放大标签,选择重置放大).
FFT频谱平均
示波器能够在时域上平均FFT波形。频谱平均是与FFT进程同步形成一个总体的平均,在FFT中的每个频率点是平均值与随后的快速傅里叶变换的点对应的。
对于一个8bit的示波器而言,平均可以改进频谱的信噪比并且增加FFT平均的动态范围到72dB,平均处理的这种方法与频谱平均的数量是成正比的。
进入F1函数对话框,按下“dual”按钮将会在F1通道启动第二个函数运行符号。点击Operator 2工具栏,从弹出的菜单中选择平均,在右手边会出现平均的标签,打开平均标签,按下标记为持续的按钮并且设置平均的数量为10。示波器屏幕显示如图12,请注意基线的厚度。
图12: 设置频谱平均
增加平均的数量从10到100。平均将会重新开始,在100次平均之后,注意看基线的厚度已经减小了。
增加平均的数量到1000, 将会减少基带的噪声。平均可以改进FFT的信噪比。
平均分为总数平均和持续平均。总数平均是对预设置频谱平均的数量完成后就会停止。持续模式将通过保持一个移动的窗口持续平均,新的频谱比旧的数据有更多的权重。两者中任何一种模式以同样的方式工作,平均的数量越大越信号噪声改善越好。
如果选中这个复选框不包括任何频谱,原因是示波器输入过载,此时,是无效的,请注意跳过平均标签下的输入对话框设置。
其它
点击FFT标签,注意,这里有Trunc(ate)和Zero Fill两个按钮。它们仅仅用在FFT信号输入比期望中要短的情况下。这种情况出现在数据源有过滤(像通道噪声过滤或者使用数字滤波(DFP2)选件)。数字滤波将会移除信号中的样品 (滤掉的点是无法得到的)。FFT需要一个固定的样品数,所以,这两个按钮会告诉FFT,如果记录的样品数不够应该怎么做。
如果Truncated被按下,就会在下一个减少的标准记录长度下进行短FFT变换。
如果选择Zero Fill按钮,FFT将会进行权重充满来增加丢失的点(第一个和最后一个点的输入幅值将决定增加的点得幅值范围,从而产生一个持续的转换)。
如果需要计算FFT中的直流点,请在抑制直流复选框中选择确定。初始化是不会计算直流点的,使用者可以选择添加直流点。
在示波器的在线帮助里面可以找到完整详细的关于快速傅里叶变换的信息。