便携式80~120MHz频谱分析仪设计
2021-06-29王灵芝凌佳乐王志辉陈颖频
王灵芝,凌佳乐,蔡 萍,王志辉,陈颖频
(闽南师范大学物理与信息工程学院,福建漳州363000)
频谱分析仪是研究电信号最基本的仪器之一,利用频谱仪进行频域分析,可以使信号的观测分析摆脱了时域的限制,因此成为测试频域信号的重要工具.根据工作原理和应用领域的不同,频谱仪可以分成实时频谱仪和外差式扫频频谱仪两大类[1].实时频谱仪是在一个特定的时间内采用FFT 变换来对信号进行处理,从而得到信号的幅度和频率以及相位等信息.实时频谱仪多采用FPGA配合高速AD构成数字信号处理方案,其价格昂贵,且体积庞大[2].
因此,选择超外差频谱分析方案来设计一款低成本便携式频谱仪,系统包含一个基于锁相环的本振源、混频器、中频滤波器和检波器[3].本振源频率范围覆盖80~120 MHz,频率步进为100 KHz,在频率范围内可自动扫描,扫描时间在1~5 s之间可调.频谱分析仪可在频段内扫描并能显示信号的频谱分量.此外,系统还搭载了μC/OSIII嵌入式操作系统,通过STemWin设计GUI界面实现人机交互.最终实现实时频谱分析、频率扫描时间控制、最大频率分量自动捕捉等功能.
1 设计方案
本频谱分析系统主要由本振源、混频器、锁相环、中频滤波器、功率检测和STM32单片机五部分组成,输入信号在ADL5801混频器中与ADF4351锁相环产生的本振信号进行混频,输出差频信号到10.7 MHz中频滤波器.再由AD8361功率检测模块将功率转换为直流信号送入STM32进行ADC采集.系统结构框图如图1所示.
假设输入信号fi的频率范围80~120 MHz,与本振源fls=Alssin()2πflst相乘得到混频输出信号fm.将fm送入中频滤波器,可得到下变频后的信号分量.由此可推出被测信号fi在对应频点的信号幅度.系统选择10.6 MHz的中频滤波器,当设置锁相环输出本振频率90 MHz,通过混频、滤波和功率检测即可得到输入信号为80 MHz的频谱分量功率.对于不同的频率分量,只要步进地改变本征信号的频率就可获得所有频率分量.
1.1 锁相环模块
系统采用的是AD 公司的ADF4351 芯片产生本振信号.ADF4351 是一款PLL 频率合成器,频率范围35~4 400 MHz,可实现整数N分频和小数N分频的锁相环.芯片支持SPI协议,模拟和数字锁定检测,可通过编程控制内部6个32位寄存器[4].
ADF4351 模块电路图如图2 所示. 引脚REF_IN接外部20 MHz 有源晶振作为参考频率,引脚CP_OUT连接V_TUNE_F环路滤波器滤除V_TUNE引脚的高频分量,从而提供给芯片内部压控振荡器;当芯片内部锁相环锁定后,LD引脚输出高电平;输出信号通过引脚RFOUTA+和RFOUTA-差分输出.ADF4351 与STM32 通过SPI 接口相连.DATA引脚在CLK上升沿时将引脚数据存入移位寄存器.当LE引脚上升沿时将移位寄存器内的数值送入对应的内部寄存器.
图1 系统结构框图Fig.1 System structure block diagram
图2 ADF4351模块硬件电路图Fig.2 Hardware circuit diagram of ADF4351 module
1.2 混频器模块
如图3所示,系统采用ADL5801芯片来实现混频功能.ADL5801是一款具有高线性度、双平衡的有源混频器,频率范围10~6 000 MHz[5].输入信号与本振源分别通过两路差分引脚LOIN,LOIP,RFIN,RFIP输入,混频结果由引脚IFON,IFOP输出.随着本振源频率的变化,输出信号的幅值也会发生改变,这将影响到混频结果.借助ADL5801的VSET端的偏置调节功能可优化输入线性度、噪声系数和直流工作电流.
图3 ADL5801模块电路图Fig.3 Hardware circuit diagram of ADL5801 modul
1.3 中频滤波模块
本设计采用村田Murata低损耗10.7 M陶瓷滤波器作为中频滤波器,与π型低通滤波器组成中频滤波器模块.测试电路对多种滤波器组合电路进行性能测试,五种电路如图4 所示.滤波器性能分析如图5 所示,可以看出单个晶振+低通滤波器的组合选频特性曲线选择性较好,选择作为中频滤波电路.
图4 中频滤波器电路图Fig.4 Circuit diagram of IF filter
图5 滤波器性能分析图Fig.5 Filter performance diagram
1.4 检波器模块设计
AD8361 是一款均值响应的功率检测器,带宽高达2. 5 GHz,工作电压为2. 7~5. 5 V[6]. 如表1 所示,AD8361 有3 种工作模式以适应各种的模数转换的需求.本设计使用接地模式,在无信号输入时输出0 V更加直观.设计电路中,RFIN引脚接入输入信号,在接地模式下输入信号被转换为相对应的直流电压信号由VRMS脚输出.FLTR引脚和之间放置一个100 nF 电容,可以降低调制滤波器的角频率,用于小信号输入.STM32单片机通过ADC转换即可得到对应的输入信号的有效值.AD8361电路如图6所示.
表1 AD8361模式配置表Tab.1 AD8361 mode configuration table
图6 AD8361模块电路图Fig.6 Hardware circuit diagram of AD8361 module
2 软件设计
2.1 系统总流程
STM32 运行μC/OSIII 实时操作系统[7-8],上电后创建子任务及堆栈、设置任务优先级、初始化外设和操作系统.操作系统调度执行各子任务,包括图形任务,触摸屏任务,内存任务,频谱分析任务和待机任务,系统主程序流程图如图7所示:
图7 系统流程图Fig.7 System flow chart
2.2 频谱分析任务
频谱分析包含扫频驱动函数和频谱分析算法.扫频驱动函数驱动ADF4351 芯片步进输出本振频率.ADF4351 内部简化图如图8 所示,ADF4351 输出频率由内部的压控振荡器(VCO)分频后提供,鉴频鉴相器(PFD)控制压控振荡器的输出频率,当外部参考频率分频后的频率与压控振荡器分频后的频率相等时,压控振荡器的频率不再变化,完成频率锁定.系统设定频率步进为100 KHz.
图8 ADF4351内部简化框图Fig.8 Internal simplified block diagram of ADF4351
根据原理得到以下公式(1)和(2):
其中,RFVCO为VCO输出频率;RFOUT为ADF4351输出频率;REFIN为外部参考频率;INT为16位的整数分频比;MOD为12 位的小数模数;FRAC为12 位的小数分频的分子.DIV是VCO输出分频器的值,可配置为1、2、4、8、16、32、64;R、D和T构成输入参考频率的分频系数.将D和T设置为0,R设置为1,则可以得到简化后的公式(3):
因为RFVCO频率范围在2 200~4 400 MHz之间,若RFOUT确定则可以通过穷尽法得到一个合适的分频值DIV.将INT、MOD、FRAC看作一个整体变量,带入公式求解,其中INT代表整数部分,代表小数部分,穷尽法求解小数部分即可得到误差足够小的MOD、FRAC.最终获得以上公式多种解的其中一种解,使得ADF4351输出对应的频率.
2.3 数据分析
本设计采用STM32 单片机内置ADC 采集AD8361 有效值检测模块的直流信号,配置ADC1 通道5,采用软件触发连续转换模式,配置DMA 将ADC 转换的数据搬运到内存.程序通过STM32单片机执行扫频操作,即初始设定ADF4351频率为80 MHz,读取50次ADC数值累加后取平均,之后送入卡尔曼滤波器滤波后保存在数组中,步进100 KHz,重复以上步骤,直到频率达到120 MHz.
由于卡尔曼滤波器的特性,在扫频的结束点和下一次扫频的开始点之间的跳变较为明显时,滤波器会将这段跳变视为噪声进行消除,可能会影响扫频前期的结果.图9 显示初始状态为0 的卡尔曼滤波曲线.图9中横坐标代表ADF4351的输出频率,纵坐标为ADC采集的数值.虚线代表原始数据的曲线,实线代表卡尔曼滤波后的曲线,可以看出因为卡尔曼滤波器的连续性,在80 MHz附近与原始数据差距略大.
因此,为了更好地实现数据的分析与处理,去除系统噪声,本文将AD 采集后的数据上传至PC 端,编写Python程序进行可视化分析,取待测信号频率为103 MHz,幅值为5 V的数据.图10显示经过优化的卡尔曼滤波后的曲线,横坐标代表ADF4351 的输出频率,纵坐标为ADC 采集的数值,虚线代表原始数据的曲线,实线代表卡尔曼滤波后的曲线,可以看出优化后的卡尔曼滤波算法,不受起始状态的影响,消除原始信号的毛刺、贴近原始数据的同时不丢失原始数据的特征.分析图像得到曲线在103 MHz 附近幅值最小,103±10.7 MHz附近幅值较大,根据这些特征即可获得曲线对应的输入待测信号频率.
为了求解频谱分量,数据分析算法采用滑动窗口的方法对整段数据进行极值扫描,取出满足条件的极值进行二轮判断,根据极值周围梯度特征进行一定的偏移和功率计算,最终输出对应的频谱[9].取待测信号频率为103 MHz,幅值为5 V 的数据,图11 中点线代表频率特征提取后的曲线,可以看出,经过算法处理后,可得到最大的频率分量为103 MHz.
图9 初始状态的卡尔曼滤波效果图Fig.9 The Kalman filter effect diagram of the initial state
图11 频率f=103 MHz的频谱分量图Fig.11 Spectrum component map of f=103 MHz
由于算法未采用Python库函数,因此通过简单的修改就能移植到STM32单片机上进行频谱分析.
2.4 系统界面设计
系统的界面采用STemWin设计GUI界面,可通过触屏实现人机交互.系统可测试频率范围为80~120 MHz.可实现自动频谱分析、频率扫描时间控制、最大频率分量自动捕捉等功能.图11显示输入信号为82 MHz,1 V 的正弦波时输出的频谱分析图;图12 显示输入信号为103 MHz,3 V 的正弦波时输出的频谱分析图.实验结果表明各项指标均满足要求,信号测量准确性高,频谱纯度高.
图12 输入信号为频率82 MHz幅值1 V正弦波频谱分析结果Fig. 12 Spectrum analysis of frequency 82 MHz amplitude 1V sine wave
图13 输入信号为频率103 MHz幅值3 V正弦波频谱分析结果Fig.13 Spectrum analysis of frequency 103 MHz amplitude 3V sine wave
3 结束
本文设计了基于STM32 的便携式超外差频谱分析系统,频率范围80~120 MHz.系统由STM32 控制ADF4351锁相环模块进行扫频,产生步进为100 KHz的本振源.本振信号与输入信号经ADL5801混频后送入10.7 MHz 滤波器滤波,再经有效值检测模块进行AD 采样与处理.系统搭载μC/OSIII 操作系统,最终实现了快速实时频谱分析功能.调试结果表明,各项设计指标均满足要求.