1
FPGA/ASIC技术
频谱分析仪主要用于信号成分分析,其应用领域相当广泛,在电磁干扰侦测分析、无线电通信、卫星接收系统等方面均有涉及。就具体信号分析手段而言,传统时域波形分析的确能够直观观察信号的幅度、频率、波形等响应变化,但局限于低频信号,高速信号下时域分析有着必然的缺憾。频谱分析是指将信号的频率、幅值等信息在频域中表示的一种分析方法,它对于任意信号进行傅里叶变换,进而将其分解为若干单一的谐波分量来研究,以获得信号的频率结构以及各谐波幅值和相位信息,这对于高频信号以及复杂信号分析意义十分重大。可以看出,频谱分析仪的重点是幅频特性与相频特性,尤其是幅频特性的计算。
对于频谱分析仪,就具体的实现原理而言,主要存在三种思路:多通道并行滤波式、扫频外差分析式以及直接FFT式。
多通道并行滤波式方案的核心在于多个滤波器的制作,其思路主要是将全频段等分为若干个通带不重叠(或部分重叠)的带通滤波器,这些滤波器的过渡带带宽、甚至通带最大允许衰减等参数都几乎一致,仅仅是通带频率范围不一致。当信号并行送入每个滤波器之后,对于各个滤波输出进行能量检测,从而进一步确定各个频段的信号幅度,绘制出频谱图。显然,只有谐波分量对应频段的滤波器,输出信号可以采集到能量值,且能量值随谐波分量增大而增大。这种传统模拟频谱仪的缺点在于过于依赖模拟电路的搭建,硬件要求很高,容易产造成频率分辨率精度不足,甚至是测量误差。
扫频外差分析式的核心在于混频模块的设计,其思路主要是利用一个连续扫频的本地振荡器,产生的本振信号与被测信号混频,这样被测信号谐波分量总会有机会落入后续中频滤波器的通带中。如果令本振信号的幅度保持不变,那么混频器的输出、中频滤波的输出、检波模块的输出都会与被测信号的对应谐波分量幅度成正比。将扫频器的控制电压(一般为线性)与检波模块的输出电压分别作为X和Y信号,即可得到被测信号的幅频特性图。这种方案实际上以扫频外差功能代替了并行滤波功能,降低了硬件要求,提高了系统性能。
直接FFT式方案的核心在于高速FFT(FastFourierTransform)的计算,常规的单片机系统如ARM都无法完成,必须要依靠现场可编程门阵列(FPGA)等适合高速信号处理的开发系统,其思路主要是将信号进行波形调理后送入高速AD采样芯片,将采集得到的信号截取短时窗进行FFT计算,直接将计算结果输出为幅频特性图与相频特性图。显然,这种方案也有难点存在,那就是对于AD芯片的采样频率要求较高,但是如果有合适的AD芯片,那么这种数字型频谱仪与模拟型频谱仪相比,容错率将会更高,频率检测范围、频率分辨率等技术指标也会大大优化。
简易数字式频谱仪主要由信号采集模块、高速FFT模块以及LCD显示模块组成。信号采集模块以AD9226芯片为核心,配合前置抗混叠滤波电路实现信号采集;高速FFT模块在FPGA开发系统通过编程实现;LCD显示模块选择4.3寸TFT液晶屏,实现可视化界面。简易数字式频谱仪的系统框图如图1。
图1
AD9226芯片是ADI公司的12bit量化、65MSPS模数转换器,采用单电源供电,内置一个片内高性能采样保持放大器和基准电压源,采用多级差分流水线架构,AD采样频率理论上可以达到65MHz。根据ADI公司提供的芯片数据手册以及FPGA配套模块的相关资料,设计信号采集模块如图2。
图2
高速FFT模块依托FPGA开发系统进行搭建,以按键为工作开始的标志,对信号采集模块输出的数据截取长度为512的短时窗,接着利用XILINX公司提供的IP核构建FFT计算单元,对512个采样数据进行FFT计算,并将FFT计算结果按序依次保存到事先分配的LCD显示内存中,更新频谱图的显示数据。
(1)FPGA需要实现按键检测,以按键作为允许FFT计算单元输入新采样数据的标志。
(2)FPGA需要调用快速傅立叶变换(FFT)IP核,将参数定义为短时窗长度512、非流水线式基2蝶形运算、12bit整型输入、8bit整型输出、50MHz工作频率等状态,设置好何时读取新数据、何时输出计算结果的标志位等等。
(3)FPGA需要调用坐标旋转数字计算机(CORDIC)IP核,对FFT计算所得的实部数据和虚部数据进行模值计算或者相角计算。
(4)FPGA分配出数据存储区域作为LCD的显示内存,将前256个模值计算结果或相角计算结果(FFT的运算过程决定了幅频特性图前256个数据与后256个数据轴对称,相频特性图前256个数据与后256个数据中心对称),由显存送入LCD数据接口。整个设计流程最为重要的是时序,每个模块的工作时序以及标志位必须互相关联,且由于各种计算单元是单接口串行输出,因此尤其要注意高速信号传输时由于时序设计不当而产生的“竞争冒险”现象,因此一个锁相环IP核也必不可少。
整个FPGA高速FFT模块的工作框图如图3。
图3
对于4.3寸TFT液晶显示屏,像素为480*272,颜色规格为24bitRGB。由于FPGA开发系统不像ARM开发系统有许多现成的库函数可以调用,因此在编程驱动LCD时需要自行设定扫描刷新频率、横向与纵向扫描控制信号等,配合LCD的显示内存,实现扫描到LCD每个位置时输出对应的颜色数据即可。由于LCD显存中的数据变化速率(由按键决定)并不快,远远慢于正常液晶屏的扫描频率(60帧/秒),因此LCD显示出的频谱图应当为静态图像。此外,在显示图像时还要增加坐标轴,将各个谐波的对应频率与幅度显示在坐标轴旁,或者增加标度,使得谐波分量的相关信息可读出。
谐波分量在256个计算结果中的对应下标k(0~255)与实际谐波频率f的换算公式为:
式(1)中,fs为实际AD采样频率50MHz,N为截取短时窗的长度,即FFT计算长度512。
由于AD芯片的采样电压范围为-5~5V,在模数转换时量化为12bit,因此经过推衍可知谐波分量在256个计算结果中的对应幅度A(0~63)与实际谐波幅度Vpp的换算公式为:
式(2)中,Vpp的单位为V。
整个LCD显示模块的工作框图如图4。
图4
FPGA开发系统,编译环境:XILINXISE14.7,开发板型号:XILINXSPARTAN-6
利用信号发生器产生峰峰值10V,频率11MHz的双极性正弦信号作为被测信号,送入数字频谱仪,在TFT-LCD得到幅频特性图像如图5。
图5
由图5中可见,正弦信号在频谱仪上的分析结果中,仅有一个谐波分量。
根据谐波分量在256个计算结果中的对应下标k=113与公式(1)可以得知,频谱图中谐波分量对应的频率为11.03MHz,基本等于实际正弦信号频率;
根据谐波分量幅度值为A=51与公式(2)可以得知,频谱图中谐波分量对应的幅值为9.94V,基本等于实际正弦信号幅度。
利用信号发生器产生峰峰值9V,频率22.5MHz的双极性正弦信号作为被测信号,送入数字频谱仪,在TFT-LCD得到幅频特性图像如图6。
图6
由图6中可见,正弦信号在频谱仪上的分析结果中,仅有一个谐波分量。
根据谐波分量在256个计算结果中的对应下标k=230与公式(1)可以得知,频谱图中谐波分量对应的频率为22.47MHz,基本等于实际正弦信号频率;
根据谐波分量幅度值为A=47与公式(2)可以得知,频谱图中谐波分量对应的幅值为9.16V,基本等于实际正弦信号幅度。
利用信号发生器产生峰峰值5V,频率3.125MHz单极性方波信号作为被测信号,送入数字频谱仪,在TFT-LCD得到幅频特性图像如图7。
图7
由图7中可见,单极性方波信号在频谱仪上的分析结果中,存在着直流分量(k=0)与多个奇次谐波分量,且分量幅值逐渐降低。
根据各个谐波分量在256个计算结果图6图7中的对应下标k=32,96,160,224与公式(1)可以得知,频谱图中谐波分量对应的频率为3.125MHz、9.375MHz、15.625MHz、21.875MHz,完全等于实际方波信号中一、三、五、七次谐波频率。
本文提出了一种基于FPGA开发系统的数字式简易频谱分析仪的设计,实现了高频信号的采集、运算、成分分析与显示,整个系统分析时间仅为10~15μs,在50MHz采样频率情况下频谱图的频率分辨率可达到100kHz以下,可以控制谐波频率检测的相对误差在1%以下。此设计方案还可以进一步研究,尤其是在提高FFT计算精度,以及可视化界面优化方面依然存在着研究空间。
全部0条评论
快来发表一下你的评论吧 !