基于ITU建议的模拟调制信号高效解调系统的FPGA实现
2021-06-17王锋彭华仁吕天志
王锋,彭华仁,吕天志
(中电科思仪科技股份有限公司,山东青岛,266555)
0 引言
国际电信联盟(ITU)是主管信息通信技术事务的联合国机构,负责分配和管理全球无线电频谱与卫星轨道资源,制定全球电信标准。为了保障频谱监测的数据有效性、和权威性,最为关键的就是依据统一的标准—ITU建议。对于模拟调制信号的监测,ITU建议给出了设计标准,具体表现在以下三个方面:
(1)《ITU频谱监测手册》指出,根据ITU-R建议书,执行频谱监测任务的接收机应具备“FM, AM, CW, SSB,ISB,IQ 和pulse 的音频监测功能。
(2)ITU-R SM.1138-2建议书—《必要带宽的确定及其计算举例与相应的发射标志的举例》确定了各类信号的振幅、频率和脉冲调制的必要发射带宽,必要带宽是所有自动频谱管理系统的关键数据元素,频率指配需要确定发射的必要带宽[6]。
(3)ITU-R SM.1840建议书—《测量使用模拟调制信号无线电监测接收机灵敏度的测试程序》给出了接收机灵敏度测试程序的定义,建议所有制造商均使用这一测试程序定义,使此类接收机的用户能够更为方便、客观地对产品质量做出评估;其中在描述“HF和VHF/UHF频段的AM调制”的灵敏度测试时明确指出“测试期间须打开自动增益控制(AGC)”[5]。
从以上三方面而言,模拟调制信号解调系统应具备“FM,AM, CW, SSB, ISB,IQ 和pulse 的音频监测功能,在此基础上,针对各种调制类型必须根据ITU-R SM.1138-2建议书设计相应的解调带宽,并且针对幅度类调制信号设计自动增益控制功能。本文根据软件无线电模拟调制信号数字正交解调的通用模型,设计并在FPGA内实现了适应各种模拟调制信号的解调架构,并基于此架构设计实现了解调带宽可调功能,以及IQ信号增益自动调整功能,进而实现模拟调制信号高效解调系统。
1 方案设计
■1.1 模拟调制信号解调系统总体设计
软件无线电的解调一般采用数字相干解调的方法,数字相干解调法从原理上讲与模拟相干解调法一样,然而在解调时当本地载波与信号的载波不满足同频同相时,模拟相干解调输出就会严重失真,由于正交解调法在一定程度上能克服以上这些弱点,因此软件无线电的解调一般采用数字正交解调法。
对于连续波调制信号的解调,设已调信号的数字表达式是s(n) =a(n) cos [ωcn+ϕ(n)],ωc表示载波角频率,调制信号可以分别调制在已调信号的振幅a(n)、频率 ù (n)和相位ϕ(n)中,相应的调制就是调幅、调频及调相。所以已调信号的表达式可表示如下:
图1 数字正交解调的通用模型
数字正交解调的通用模型说明了采用正交分解实现解调的基本原理,首先将采样信号混频到基带,然后低通滤波后执行模拟调制信号解调功能,图中的低通滤波器带宽为信号带宽的一半,而为了得到特定解调带宽,该低通滤波器实际上是一个抽取滤波器,将抽取滤波器后的IQ数据送给幅度自动增益控制模块,经过自动增益控制的IQ信号最后执行各种模拟调制信号的解调功能,从而形成完整的模拟调制型号解调系统流程,并在FPGA内部实现,如图2所示。
图2 模拟调制信号解调系统流程图
下面,从模拟调制信号的解调算法、解调带宽可调功能、自动增益控制控制三个角度阐述模拟调制信号高效解调系统的设计实现。
■1.2 模拟调制信号解调方法
由模拟调制信号解调系统流程图可知在低通滤波器输出的基带IQ信号先执行自动增益控制,然后再进入模拟调制信号解调模块,最终输出AM、SSB、ISB、PULSE、IQ、CW或FM的解调信号,每种解调类型都具有各自特点,具体如下:
1.2.1 AM解调算法
同相分量:XI(n) =a(n) c os (ϕ0);正交分量XQ(n)=a(n) s i n (ϕ0)。求它们的平方和开平方得A0+m(n),减掉直流分量A0即得到调制信号m(n)。当存在载频失配时,同相分量和正交分量可表示为:
其中, Δω=ωc−ωLO, Δϕ=ϕc−ϕLO,ωLO为本地载波的角频率;ϕLO为本地载波的初始相位。对同相、正交分量计算平方和开平方得因此AM信号具有较强的抗载频失配能力,使用正交解调算法解调时,不要求载频严格的同频同相。
由上述可知,AM解调模块中有幅度计算模块和去直流分量模块。其中直流分量的获取需要用到低通滤波器,并且滤波器的通带要足够小。将幅度计算结果减掉低通滤波器的结果即为AM的基带信号。
1.2.2 FM解调算法
ϕ(n)然后,对相位差分,即可求的FM的基带信号m(n):
ϕ(n) −ϕ(n− 1 ) =m(n),为论述方便,此处省略了比例因子k。当存在载频失配时,同相分量和正交分量可表示为:
求相位序列ϕ(n) = Δω*n+ Δϕ+k∑m(n),再对相位求差分,得解调信号为 Δω+m(n),可见,此时解调输出增加了一个直流分量,减去此直流分量可得到调制信号m(n)。因此FM信号具有较强的抗载频失配能力,使用正交解调算法解调时,不要求载频严格的同频同相。
由上述可知,FM解调模块中有相位计算模块、求相位差模块、去直流分量模块。其中直流分量的获取需要用到低通滤波器,并且滤波器的通带要足够小。将相位差计算结果减掉低通滤波器的结果即为FM的基带信号。
1.2.3 PULSE解调算法
PULSE调制指的是脉冲幅度调制(PAM),计算PULSE信号在AGC后的幅度即为PULSE信号的解调结果。
1.2.4 IQ解调算法
任意一个IQ信号都是由IQ调制产生的,其中I路信号称之为同相信号,Q路信号称之为正交信号。IQ调制通常又称为正交调制。因此自动增益控制输出的IQ信号即为IQ解调结果。
1.2.5 SSB解调(USB/LSB)算法
单边带(SSB)信号调制是通过滤除双边带信号的一个边带而得到的,其中双边带信号是由调制信号和载波直接相乘得到的,它只有上下边带分量,没有载波分量。滤除其上边带得到是下边带(LSB)信号,滤除其下边带得到上边带(USB)信号。SSB信号的表达式为:
无论上下边带,同相分量输出就是调制信号。
1.2.6 CW解调算法
CW称为等幅报,它是一个断断续续的单频信号,记为s(t) =A(t)cos( 2πft),A(t)代表发送端按键是否压下的状态,当按键压下时A(t)是一个大于零的常数;当按键松开时A(t)为0。对CW信号s(t) =A(t)cos( 2πft)进行解调时,CW信号被搬移到零中频,然后经低通滤波滤除高频成分后得到同相分量I=A(t)和正交分量Q=0,同相分量I即为CW基带信号。
1.2.7 ISB解调算法
ISB信号具有两个边带,上下边带中独立含有不同的信息,这种调制方式就称独立边带(ISB)。ISB信号可以看做是LSB和USB的叠加,设ISB中的LSB和USB信号分别为sU(t)和sL(t),则ISB的数学表达式是:
I(t) =sU(t) +sL(t),Q(t) =sˆL(t) −sU(t)。在接收端,执行IQ解调得IQ两路信号,其中I路信号I(t) =sU(t) +sL(t)即为ISB信号。
■1.3 解调带宽可调功能的设计
采样数据率和解调带宽的比值一般为数百或数千倍,要实现解调带宽可调,首先需要降低数据率,然后在降下来的数据率上以解调带宽为通带设计滤波器。此时若采用一个滤波器完成抽取滤波的话,很大的采样数据率和解调带宽比值会要求滤波器通带非常窄,过渡带特别陡,这样的滤波器阶数极大,FPGA资源难以满足,这种问题一般采用滤波器级联的方法来解决—依次采用CIC滤波器、半带滤波器和FIR滤波器级联实现抽取滤波,如图3所示。
图3 解调带宽可调功能的滤波器级联结构
图3中的滤波器级联方式主要考虑以下因素:
(1)积分疏状滤波器(CIC)适合任意整数倍抽取,其系数全为1,滤波运算为加减运算,结构简单,大幅节约了FPGA的乘法器资源,因此我们将CIC滤波器作为抽取滤波器级联的第一级来完成高数据率的滤波运算。
(2)半带(HB)滤波器适合抽取因子为2的幂次的抽取滤波。半带滤波器的系数一半为0,相对于同阶的普通fir滤波器减少了一半左右的乘法器需求并且通带平坦,比普通fir滤波器更适合实时处理,因此将若干半带滤波器放在CIC抽取滤波之后。
(3)CIC滤波器和HB滤波器都是混叠滤波器,FIR滤波器的选择性要比CIC和半带滤波器强,并且经过前级的CIC和HB滤波抽取,数据速率相对来说已经很低,在最后一级FIR滤波器阶数可设计地比较高,从而性能比较好的FIR滤波器来滤除可引起混叠的高频分量,优化滤波器的通带波动、过渡带带宽、阻带最小衰减等系统的指标。
图3中的最后一级FIR滤波器需设计成滤波器系数可编程的,这是基于以下考虑:
(1)ITU-R SM.1138-2建议书—《必要带宽的确定及其计算举例与相应的发射标志的举例》制定了各种模拟调制信号的典型带宽;
(2)滤波器级联的最后一级FIR滤波器的输入信号含有混叠成分,ITU要求模拟调制信号解调的目的是音频监测,为了得到良好的解调音质,需要滤除混叠成分。
因此将最后一级FIR滤波器需设计成滤波器系数可编程的,可得到不含CIC和半带滤波器带来的混叠成分,并可以根据ITU建议获得精确的解调带宽。
FIR滤波器具有线性相位特性,其系数具有对称性,只需要半数的滤波器系数转换为有符号整型数据送给FPGA即可[7]。使用Xilinx软件Vivado集成的IP核FIR Compiler生成并行双通道FIR滤波器。
■1.4 自动增益控制(AGC)功能的设计
信号在传播过程中,由于电磁波本身辐射功率有差异、距离有远近、气象条件以及多径传播因此,接收天线接收到的信号功率变化很大,自动增益控制功能通过调整所接收信号的增益,可保证接收设备的输出信号保持在最佳水平,在ITU建议对模拟调制信号进行音频监测的要求下具有重要意义。
对于一部接收设备,在前端需要自动适应输入信号的变化,将模拟信号控制在ADC的接入范围之内;在后端,需要数字AGC将输出信号保持在一定的幅度上,在这里只讨论后端数字AGC。为了监听模拟调制信号的解调音频,AGC应保障用户能够听到最清晰的基带信号。由于数字基带信号通过DAC转换成模拟基带信号来驱动扬声器,那么解调生成的数字基带信号在驱动DAC时,DAC的位宽利用率应该最高,以此原则来确定AGC的参考输出。
AGC使得的输出信号保持在一定的幅度上,那么此模块必须具有下述功能:
(1)根据DAC位宽利用率最高的原则设置AGC的参考输出。
(2)AGC是个负反馈系统,根据反馈的信号幅度和目标值比较结果来动态调整增益。
(3)AGC的输入输出都是IQ数据,因此AGC内部需要幅度计算过程。
(4)音频速率有差异,因此AGC调整速率需可调,有关声音测量采用的是反馈数据加权,在时间上越是靠前的事件要比所关注的刚刚发生的事件具有更小的权重[8]。
根据以上反馈回路在增益调整后的IQ驱动下依次执行幅度计算、与目标输出比较、数据加权和累加过程,生成新的增益再执行计算。图4是自动增益控制流程图。
图4 IQ数据自动增益控制流程图
其中AGC调整快慢是通过调整数据加权因子α来实现的,α越小,调整的周期会越大,AGC的反应速率就越慢;α越大,调整的周期会缩小,AGC的反应速率就越快。
2 实现效果
本文使用Xilinx软件Vivado2017.4,使用硬件描述语言VHDL编码实现数字下变频、适应各种解调带宽的抽取滤波、自动增益控制和各种模拟调制信号的解调功能,进而实现一种模拟调制信号高效解调系统。其中重点是解调带宽可调功能和幅度自动增益控制功能,下面介绍这两种功能的实现。
■2.1 解调带宽可调功能的实现
为实现解调带宽可调,需要设计多套滤波器系数。这些多套滤波器系数可以固定在FPGA中,这需要一次性将滤波器系数存储于FPGA的ROM中,当需要更新滤波器系数时需要重新往FPGA芯片下载滤波器系数,不方便;本文实现滤波器系数实时更新,将FIR滤波器设计成系数可重载的,通过上位机文件操作的方式即可实现,不必直接操作FPGA芯片,因此这种方式不仅节约FPGA的ROM资源,并且在整机层面调试可编程滤波器时避免了频繁拆机、频繁操作FPGA的麻烦。图5是滤波器重载时序图。
图5 滤波器系数重载的Vivado平台仿真结果
为验证整个抽取滤波方案,采样并解调FM信号,其中基带频率5kHz,频偏25kHz;设置解调带宽为50kHz时的抽取滤波效果如图6所示,其中IQ信号为抽取滤波前后的基带信号,图6中正弦曲线为FM解调输出效果。
图6 加FM信号抽取滤波和解调效果图
■2.2 自动增益控制功能的实现
自动增益控制是针对幅度类模拟调制信号的解调而设计的,以AM解调为例验证自动增益控制过程。施加调制率为50kHz的AM信号,执行AGC过程如图所示。如图7所示,施加具有一定功率的AM信号的IQ信号,对于AM而言,调制信息全部保存在I路信号中,Q路数据为0。如图所示,I_data_in[31:0]为I路信号,在AGC调整过程中,增益gain_forth[31:0]渐渐趋于稳定,使得幅度输出radius_out[31:0]渐渐趋近于稳定值。
图7 自动增益控制过程效果图
3 结束语
本文根据ITU频谱监测相关建议,基于软件无线电数字正交解调通用模型设计在FPGA中实现了模拟调制信号高效解调系统。应ITU建议的要求,该系统具备解调带宽可灵活调整,可适应不同解调带宽的模拟信号;并且幅度可自动增益控制,使得解调结果保持在一定幅度上,针对幅度类模拟调制信号可提供幅度稳定的解调音频输出。