一种AD9371宽带无线同步定时模块简化方法*
2021-02-26李浩松周寒冰李明维张传远齐永忠马晓昆
李浩松,周寒冰,李明维,张传远,齐永忠,马晓昆
(北京国电通网络技术有限公司,北京 100081)
0 引 言
AD9371功能强大,支持频分/时分复用(Frequency Division Duplexing/Time Division Duplexing,FDD/TDD)制式,覆盖300 MHz~6 GHz频段,可广泛应用于3G/4G/5G微基站和宏基站设备中。笔者在调试AD9371时发现一个问题:在100 MHz全带宽下,由于收、发信机的时钟独立,接收机采样时钟偏差很大,如果没有定时同步模块来纠正采样频偏误差,高斯白噪声信道下,误码率远高于调制误差公式erf值。所以,利用无线定时同步算法模块纠正采样时钟频偏是无线宽带系统的关键技术,也是宽带无线通信中的共性的问题。
现有的定时同步算法中,最常用的方法还是Gardner算法[1-4]:先过采样,再用Farrow滤波器进行数字插值,得到准确的最佳采样点位置。实际采样点偏离最佳采样点位置越远,码间串扰就越大。AD9371系统中采用定时同步技术直接对定时环路做全数字化处理,获得最佳采样点的同时防止定时抖动,有利于系统集成。
文献[5]提出了一种Farrow内插简化方法,但只是利用了Farrow立方拉格朗日冲激响应(Finite Impulse Response,FIR)系数间的等价关系,用另外三个系数去表示其中的一个系数,从而节省出一条滤波器支路的复杂度。文献[6]给出了一种16倍过采样的内插结构,只适合16倍过采样条件。相比文献[5-6],本文提出了一种更简单的Farrow滤波器的简化方式:交换Farrow滤波器内部小数内插时刻uk位置,可以把过采样N个有限FIR滤波器简化成1个FIR滤波器,功能与N个并行FIR滤波器是等价的,性能上没有任何降低。
环路滤波器的作用是维护定时同步环路的稳定,抑制带内外噪声。环路滤波器的阶数和性能之间又是一对矛盾,阶数高时复杂度也高,时延大,性能越好;阶数低时复杂度和时延也低,但性能越差。定时同步的环路滤波器的主要作用是维护环路稳定,阶数高抑制带外噪声能力强,但在定时同步性能上没太多好处,保持最低的环路滤波器即可,所以,直接用1阶积分器代替高阶滤波器。经过仿真,证明简单的积分器代替环路滤波在性能上是可行的,在实现上可以获得巨大的简化。
1 Farrow滤波器结构的简化
传统定时同步模块有两大主要缺陷:一是Farrow内插滤波器组并行处理消耗了太多现场可编程门阵列(Field Programmable Gate Array,FPGA)资源;二是整个控制环路时延太大,导致Farrow滤波器内插前需要大容量的Buffer空间缓存数据。
1.1 传统的Farrow滤波器
利用多项式分段拟合高阶内插滤波器系数,具体步骤为:Farrow滤波器的阶数为M,M又分为P级,每级有N=M/P个抽头,总体系数排成P×N矩阵,这样,每行可以看作一个N阶抽头的内插滤波器,每列是长度为P的滤波器系数;然后用一个L阶多项式b(n)(n=0,1,…,N-1)来拟合每一列系数,形成一个L×N维多项式系数矩阵。
设L阶多项式Cn是插值滤波器系数矩阵的第n列近似多项式,其中x为输入信号,b(n)为抽头系数。Cn可表示为
(1)
利用多项式在线计算重采样期望输出位置Uk处的滤波器系数表示为
(2)
经过Farrow滤波器重采样后的输出信号为
(3)
式中:m表示第m个采样时刻,t为采样时间,Ts是采样周期,h为滤波器的冲激响应。
滤波器冲激响应系数
(4)
式中:u(k)是反馈环路滤波器的输出值。
滤波器重采样的输出值为
(5)
(6)
几乎所有的Farrow滤波器都是采用了式(6)所示的架构,因为式(6)在数学表示上简洁明了;但在实现式(6)时,复杂度却不是最优的。
根据文献[5]所述,立方插值拉格朗日(Lagrange) Farrow滤波器系数可实现由Lagrange公式计算得出。
由式(6)可直观地得出图1所示的Farrow滤波器。图中,x(mTs)为输入信号,D是移位寄存器单元,u(k)是环路滤波器输出信号。
图1 原始的Farrow滤波器
1.2 Farrow滤波器的简化
采用立方拉格朗日内插的Farrow滤波器是一种以过采样因子N为倍数的并行FIR滤波器,所以从资源消耗角度来看,以过采样因子N=4工作时需要消耗4个FIR滤波器的DSP资源;N=8时,则需要8个FIR滤波器DSP资源,以此类推。
公式(6)虽然简单,但在实现如图1所示的滤波器时,是很耗费FPGA逻辑资源的。仔细观察图1的Farrow滤波器,最下面的一行乘加运算可以表示为
(7)
式中:
v(3)=b3(N1)×x(mk+2)+b3(N2)×x(mk+1)+
b3(N3)×x(mk)+b3(N4)×x(mk-1),
v(2)=b2(N1)×x(mk+2)+b2(N2)×x(mk+1)+
b2(N3)×x(mk)+b2(N4)×x(mk-1),
v(1)=b1(N1)×x(mk+2)+b1(N2)×x(mk+1)+
b1(N3)×x(mk)+b1(N4)×x(mk-1),
v(0)=b0(N1)×x(mk+2)+b0(N2)×x(mk+1)+
b0(N3)×x(mk)+b0(N4)×x(mk-1) 。
(8)
将v(3)、v(2)、v(1)、v(0)代入式(7)中,合并各个x(mk)系数前的参数,可以得到
b1(N1)×uk+b0(N1))×x(mk+2)+
b1(N2)×uk+b0(N2))×x(mk+2)+
b1(N3)×uk+b0(N3))×x(mk+2)+
b1(N4)×uk+b0(N4))×x(mk+2) 。
(9)
很显然,由式(8)可以把图1所示的多个FIR滤波器简化成一个FIR滤波器,而且Lagrange系数是个固定的分数,在实现时不需要用乘法器来直接相乘,而是按照移位的方法来直接得出结果。比如,实现乘以1/6运算,先把数据除以2,也就是右移一位,然后再用自制的移位和比较器实现除以3运算,用最简化的8次移位和一个比较器就可以实现除以3,不需要占用FPGA的除法器资源,同时减少了运算时延。
式(8)中括号内Lagrange系数b(N)与小数位置值uk相乘后,都可以在一个时钟周期内用相加的方式完成,占用极少的资源。
简化Farrow滤波器,需要先交换一下信号顺序,先把小数位置值uk完成立方、平方运算,然后与表1中的Lagrange系数做简化运算,得到FIR滤波器系数v(n),再与输入信号做乘加运算,得到滤波器输出。
表1 立方拉格朗日差值Farrow滤波器系数
将图1 中的Farrow滤波器简化后的滤波器如图2所示。
图2 简化后的Farrow滤波器
由于增加了1/6、1/2、1/3等系数,不再耗费乘法器资源,图2与图1原始Farrow滤波器相比有巨大的FPGA资源简化;而且两者在功能上是完全等价的,只是把输入数据顺序做了交换,就能获得资源上的节省。表2是对原始Farrow滤波器及简化Farrow滤波器FPGA资源占用的对比。
表2 原始Farrow滤波器与简化Farrow滤波器FPGA资源占用对比
由于大量的系数乘以1/6、1/3只需要耗费8次移位和一个比较器即可实现,这不仅节省了FPGA的DSP 资源,同时也减小了时延。
2 Gardner定时误差检测器
Gardner算法中的定时误差检测[4,7-8](Timing Error Detector,TED),由于该算法实现难度低,无需判决反馈,只需要保证ADC对传输信号做2倍过采样即可。按文献[4]内插器的输出y(r),在TED模块内做运算,得出定时误差值,如图3所示。
e(r)=y(r-1/2)[y(r)-y(r-1)] 。
(10)
式中:e(r)是误差检测值,y(r-1)是y(r)的延时一个采样周期值,y(r-1/2)是y(r)的延时1/2个采样周期值。按式(9)要求,对连续采样的3个点在FPGA内做移位寄存器处理,如图3所示。
图3 TED的FPGA实现
3 环路滤波简化
环路滤波器[9-10]与其余的滤波器作用不同,主要完成带外干扰滤除,防止系统振荡。
环路滤波器要求,一是要延迟小(仿真延迟过大会导致系统振荡);二是简单滤除带外高频噪声,所以阶数高的环路滤波器是不适用的。因为阶数越高,滤波性能虽然越好,处理时延也就越大。所以,设计低阶的低通滤波器,简化滤波器结构是关键。文献[10-11]提出的是2阶以上的环路滤波器,与之相对应,此处采用了1阶低通滤波器。
图4对比了2阶环路滤波和1阶环路滤波性能,可以明显看出,在相同输入时,2阶环路滤波器滤波性输出性能与1阶环路滤波器输出信号几乎没有区别,但实现时复杂程度和所占FPGA资源高出1倍。
图4 1阶和2阶环路滤波器的输出对比
4 NCO实现
数控振荡器[11](Numerically-Controlled Oscillator,NCO)是一个相位递减器,它接收环路滤波器输出的定时误差信号,给内插滤波器提供所需要的参数mk和uk。它的差分方程可以表示为
η(m)=[η(m-1)-W(m-1)]mod 1 。
(11)
式中:mod是取余运算;W(m)是环路滤波器的输出值,也是NCO的控制字步长;η(m)是NCO寄存器内容。NCO开始工作时,设置初始值,寄存器内容η(m)每个采样周期会减去一个控制字步长W(m)值,每过一次零点产生一个抽样脉冲mk值,然后计算小数部分uk,送入内插滤波器进行插值。
5 简化系统的仿真验证
为了验证简化后的Farrow和环路滤波器,搭建了AD9371宽带收发系统和ZC706 型FPGA板卡实验环境。
一块AD9371板卡发送正交相移键控(Quadrature Phase Shift Keying,QPSK)调制信号,不带信道编码,原始速率100 Mb/s,载波频段1 600 MHz;α=0.4的根升余弦成形滤波,内插因子2,发送空口速率200 Msample/s。另一块AD9371板卡接收,加入定时同步模块后,测试简化后的定时同步模块性能。两块AD9371板卡收发之间用射频线和衰减器互联,模拟加性高斯白噪声(Additive White Gaussian Noise,AWGN)信道下的定时同步性能。
从接收方的AD9371中摘取出接收信号进行定时同步分析,简化后的Farrow滤波器和1阶环路滤波器总体性能如图5所示。
图5 简化后的定时同步模块总体性能
图5中,最上方是AD9371接收的信道突发QPSK调制信号,用4倍过采样的采样值;第二幅图是定时同步模块估计出来的插值位置小数值;第三幅图是Gardner算法的定时同步误差检测(Timing Error Detection,TED)输出;第四幅图是1阶环路滤波器输出值。图中的TED输出平稳,定时位置值稳定,证明简化方法功能正确。
由表3可知,简化后的定时同步模块与传统的Gardner算法模块相比,接收机接收最大功率在-30 dBm时,误码率就到零,灵敏度与传统Gardner定时同步模块完全一样。可以看出,简化后的Farrow滤波器性能与原始定时同步模块完全一样,能满足实际通信系统要求,但实现复杂程度上得到了极大简化。
表3 测试结果对比
6 结 论
针对AD9371开发中采样时钟频偏大与传统的Gardner算法定时同步复杂度高这一对矛盾,提出了一种简化的定时同步方法,对通信系统定时同步模块中的Farrow和环路滤波器进行结构上的简化,本质上来看只要对Farrow插值滤波器的输入信号顺序做交换,就能获得结构上的简化,且不降低系统性能,因为简化前后在数学上是等价的。环路滤波器1阶与2阶性能几乎没有差别,但1阶环路滤波器时延明显节省,所需资源也只有一半。在AD9371板卡上的实测结果证明了这是一种成功的简化方法,具有普遍适用价值。