高阶QAM定时同步的MATLAB仿真及其FPGA实现
扫描二维码
随时随地手机看文章
目前,基于软件无线电的数字接收机,其定时同步主要采用异步采样恢复,即采样时钟独立工作,通过估算定时误差,控制内插滤波器内插出最佳采样时刻的值。常用的定时误差估计算法主要有:迟早门算法、米勒-穆雷算法、Gardner算法。其中迟早门算法和米勒-穆雷算法都对载波相位敏感。Gardner算法[1]每个符号需要两个采样点,虽然计算量比米勒-穆雷算法稍大,但对载波频偏和相位不敏感,可提前独立于载波同步完成,降低了系统复杂度。
QAM调制方式特别是高阶QAM调制因其较高的频谱利用率得到了广泛应用,但是高阶QAM数字接收机算法的运算量也相对较大。随着FPGA芯片集成度的提高,现在可以在像Altera Cyclone3 这种低成本FPGA上实现较复杂的算法。本文针对128 QAM调制信号,设计了定时同步算法结构,并且用MATLAB做了仿真验证,最后在FPGA平台上实现了该算法。
1 定时同步结构设计
1.1 算法结构
定时同步结构如图1所示。该结构是基于Gardner算法[2]而设计的,包括用来进行符号采样的内插滤波器、定时误差检测器、环路滤波器、插值控制器。其中,内插滤波器从输入的非同步被测基带I/Q采样信号中恢复出发送的符号,而定时恢复环路用来控制内插滤波器的插值相位。定时误差检测器提取出当前采样相位误差,将其送入环路滤波器滤波后控制NCO的振荡频率。当被测信号等效采样无相偏时,环路进入稳定状态,此时NCO的振荡频率就等于实际被测信号的码率或码率的整数倍[3]。下面只对定时同步的关键结构进行阐述。
1.2 插值滤波器
插值滤波器是符号定时同步的核心部分。高阶QAM对插值精度的要求非常高,传统的内插滤波器如线性内插、3次立方内插、带参数的4点分段拟合内插等已不能满足要求。插值滤波器的设计关键是插值函数的设计,由于多项式内插函数能够用Farrow结构实现,运算量较低,所以插值函数最好能够用多项式拟合实现。参考文献[4]给出了一种基于多项式插值滤波器的设计方法。这种多项式内插滤波器通过在通带和阻带上设置需要的幅度和加权系数,结合最优化算法和具体要求的频带特性,可以实现频域上的任意频响。
1.3 定时误差提取
传统Gardner算法是针对BPSK/QPSK调制信号提出的,不适用于高阶QAM这种多电平信号,必须对传统Gardner算法进行改进。改进Gardner算法的思路是改变其只对零点检测有效性的缺点,将中间值y((n-1/2)T+t)归零化即可[5]。改进的定时误差提取公式为:
2 MATLAB仿真分析
仿真参数设置:128 QAM调制、升余弦滚降系数0.1、信噪比23 dB、定时延迟0.6个码元时间、载频124 MHz、采样率102.4 MHz,匹配滤波器为100阶。
从图2中可以看出,分数延迟收敛于0.6处,波动小于0.01,表明定时同步环路完全收敛。图3是定时同步收敛后的输出信号星座图,可以看出星座点非常集中,星座间隔清晰,信噪比由于匹配滤波器作用有了大幅度提高,能够很好地实现符号判决。
3 定点仿真到FPGA设计实现
定点仿真是在浮点仿真的基础上,通过限定各个变量的精度,分析有限字长对系统性能的影响,权衡资源消耗和系统性能,从而得出各个信号合适的位宽,为FPGA实现做好准备。
图4是定时同步硬件实现的系统框图。clk是I、Q两路输入信号的同步时钟,也是主系统时钟,此处为102.4 MHz(系统采样率)。reset是全局同步复位信号,当其为有效电平时,步长w初始化为Ts/Ti,这里为0.5;分数间隔u可以初始化为任何值,这里取0;其余寄存器都初始化为0。I_in和Q_in是定时同步的两路输入信号,从整个接收机的角度来看是DDC模块的输出。I_out和Q_out是定时同步的输出数据,送给接收机的均衡模块。clkout是输出数据的同步时钟。control模块就是1.4节中的插值控制器,当数控振荡器溢出,插值控制信号nco为1,同时按式(3)更新分数间隔u;当数控振荡器不溢出,则信号nco为0,分数间隔u保持原值。这两个信号(nco和u)与I、Q两路输入信号一起送给interpolator模块(插值滤波器),需要强调的是,nco信号也作为后面两个模块的控制信号,用以控制数据流动的节拍。两路数据经过match_filter模块(匹配滤波器)后进入err_step模块,该模块包括定时误差提取和环路滤波器两个部分,用以得到步长w的更新值然后反馈给control模块进行下一轮的计算,并且对其输入数据进行两倍抽取得到定时同步的输出信号。
图5是Quartus功能仿真波形图,可以看出环路收敛前nco信号存在一定的抖动,导致输出时钟clkout并不是规则的时钟信号,同样存在抖动。环路内部的数据流动都是在nco信号的控制节拍下进行的。
将Quartus 功能仿真后的波形数据读取到MATLAB的工作空间中,可以得到分数间隔收敛曲线(图6)和收敛后输出星座图(图7),通过比较发现,Quartus功能仿真结果与MATLAB浮点仿真结果基本一致。
对于高阶高码率QAM调制系统,设计并实现了一种定时同步结构,该结构能够提前独立于载波同步单独完成。MATLAB仿真和Quartus功能仿真结果表明,系统具有良好的性能。最后,通过时序分析,硬件系统的最高运行频率可以达到200 MHz,完全满足采样率102.4 MHz的要求。