基于LabVIEw的数字变频FFT设计
史瑞根,姚金杰
(中北大学信息与通信工程学院 山西 太原 030051)
摘要:在动目标速度测量的工程应用背景下,针对传统频谱细化技术计算量大和实现困难的缺点,提出一种数字变频FFT的频谱细化算法,并根据其数学原理,进行了基于LabVIEW的两种编程设计方法研究。仿真结果表明,两种设计方法都可满足信号分析中提高频率分辨率的要求,但与选择的细化倍数有关。由于具有编程简便和实用性强的优点,这两种实现方法均可广泛应用于汽车、飞机等运动目标的速度测量。
关键词:数字变频FFT;频谱细化:虚拟仪器;频率分辨率
0 引 言
在运动目标速度测量中,常利用频谱分析的方法获取目标的多普勒频率,并依据多普勒测速原理来完成动目标速度测量。为达到高精度测速的要求,需进一步提高频率分辨率,在实际频谱分析中,要对获取的试验数据先进行分段处理,在此基础上再进行细化操作,这样可获得比常规FFT分析更高的频率分辨率。近年来,频谱细化技术发展迅速,常见的方法有:HR-FA法,基于多相滤波器的ZFFT法,基于复调制的Zoom-FFT法,自适应Zoom-FFT法,Chirp-Z变换和小波基法等。然而,这些频谱细化技术普遍存在运算量大,不易实现编程的缺点。为此,提出了一种数字变频FFT的频谱细化算法,并利用图形化编程语言LabVIEW进行了编程设计。
1 数字变频FFT的数学原理
在频谱分析中,频率分辨率表示频谱中能够分辨的两个频率分量的最小间隔,用频率间隔△f表示为:
要提高FFT的频率分辨率,可通过以下两种途径实现:
(1)降低采样频率fs。这会使频率分析范围缩小,其降低的幅度受到采样定律的限制。
(2)需要增加分析的采样点数N。这意味着计算机的存储量和计算量大大增加,由于实际系统软、硬件方面的限制,这样做并不总是可能的。
可以看出以上两种方法提高频率分辨率的能力有限且灵活性差。所用的数字变频FFT主要指采用移频特性进行频谱细化的技术,其原理框图如图1所示。
设模拟信号为x(t),经A/D转换后得到采样时间序列x(n)(n=0,1,…,N—1),设fs为采样频率;f1~f3为细化分析频带;f0为需要细化的频带中心频率D为细化倍数;N为FFT分析的点数,算法如下:
(1)复调制移频
所谓复调制移频就是将频域坐标向左移或向右移,使得被观察的起点为频域坐标的零频位置。这里对离散信号x(n)用exp[-2πf0/fs]进行复调制,把需要细化的频带起点移至频率轴原点,得到:
(2)数字低通滤波
为保证重新采样后不发生频谱混叠,必须进行抗混叠滤波,以滤出所需分析频段信号。设频率细化倍数为D,则低通滤波器的截止频率fc=fs/2D。
(3)重新采样
信号被移频和低通滤波后,分析信号频带变窄,因而可以以较低的采样频率fs'=fs/D进行重采样,fs'比原采样频率降低了D倍,即对原采样点每隔N点再抽样一次。
(4)反移频处理
实行反移频操作就是将频率中心重新移到需要细化的频带起始频率,使得移频前后的频率保持一致。
(5)FFT运算
对反移频后的信号进行FFT处理,得到细化后的频谱,其频率分辨率提高了D倍。
2 数字变频FFT的LabVIEW实现
2.1 虚拟仪器LabVEW
LabVIEW是美国NI公司推出的虚拟仪器开发平台软件,是一种非常优秀的面向对象的图形化编程语言,用于快速创建测试、测量和控制应用程序。它的优点是数据处理速度快,硬件支持等方面功能强大;缺点是在数值处理、分析和算法工具等方面的效率不高。而MathWorks公司开发的Matlab提供了强大的矩阵运算和图形处理功能,编程效率高,特别擅长数值分析和处理,但其界面开发能力较差,不能进行实时操作和控制。
鉴于LabVIEW和Matlab两种语言的优点,在虚拟仪器开发过程中,除利用LabVIEW直接编程外,还可结合.Matlab进行混合编程。通常用LabVIEW设计用户图形界面,负责数据采集和网络通信;Matlab在后台提供大型算法供LabVIEW调用。
2.2 LabVIEW直接编程实现数字变频FFT
在LabVIEW直接编程中,通过调用Ramp Pat-teln.Vi节点和Exponential.vi节点完成信号的复调制和反移频操作;通过调用Decimate.vi节点对复调制后的信号进行滤波,压缩频带,然后进行整数倍抽取。其中,对信号进行数字低通滤波的滤波器为切比雪夫I型.滤波器,其主要参数:阶数为8阶,截止频率为0.8.(fs/2)/D;通过调用FFT.vi和Array Size.vi节点完成FFT运算,辅以其他相应的计算处理节点,根据数字变频的原理图最终实现数字变频FFT,其程序框图如图2所示。