设计应用

基于FPGA的SRRC滤波及多速率变换

作者:杨 阳1,闫 峥2,刘民伟2,董继承2
发布日期:2018-10-19
来源:2018年电子技术应用第10期

0 引言

    卫星通信系统中,在信号发射前需要对频谱较宽的基带信号进行成形滤波处理,以改善其频谱特性,在消除码间干扰(Inter Symbol Interference,ISI)与达到最佳检测接收的前提下,提高信道的频带利用率。通信系统中采用发送端的成形滤波器和接收端的匹配滤波器共同实现升余弦滤波的效果,对信号进行滤波处理。由于平方根升余弦(Square Root Raised Cosine,SRRC)具有较快的衰减特性和较好的可实现性,一般采用SRRC滤波器实现通信系统的基带成形滤波[1]

    多速率变换常用于通信系统中的信号处理,通过内插(上采样)或抽取(下采样)改变信号的采样频率,并对信号滤波处理。卫星通信的高带宽通信业务及AD转换率的提高,促进了通信系统发射端对不同符号率信号采样率的提高。在通信系统的接收端,过高的采样率和数据吞吐量不利于数据的实时处理,需要对信号降采样处理。

    FPGA以其并行处理及灵活可编程特性,广泛用于基带信号处理[2]。本文基于FPGA设计一种多速率变换器提高信号的采样率,实现任意倍数的符号率变换(本文主要实现了上采样变换,下采样实现方法相同)。采用SRRC滤波与半带(Half-band,HB)滤波器、级联积分梳状(Cascade Integrator Comb,CIC)滤波器、Farrow滤波级联进行上采样,实现平方根升余弦滤波及信号任意倍数的上变频处理。其中,针对不同的滚降系数,SRRC滤波器的滤波系数可重载;CIC及Farrow滤波器上采样倍数在线可重载。该多速率变换模块有效节约了FPGA资源,高效、实现简单,并可以实现任意倍数的多速率变换。

1 SRRC滤波及各变速率模块

1.1 SRRC滤波

1.1.1 SRRC的实现原理

    当信道传输函数的幅频特性满足滚降系数为a的升余弦滤波器特征时,可以实现无码间串扰传输[3],如图1所示。

wdz4-t1.gif

    图1(a)为升余弦滤波器的滚降特性,fN是奈奎斯特带宽。图1(b)是升余弦特性的时域特征,图中箭头所指为最佳采样点,可以看出:满足无码间串扰的最大传输速率为2fN

    wdz4-gs1.gif

其中a是滚降系数,决定升余弦的滚降特性。当a=1时具有理性低通特性,a越大,旁瓣衰减越快,信号成形滤波后的波形对位定时精度要求越低。

    在通信系统的发射端和接收端同时使用SRRC滤波器可以实现升余弦滤波的效果,消除码间干扰。SRRC滤波器在发射端用做成形滤波,在接收端用做匹配滤波。成形滤波能有效克服码间干扰,减小误码率,提高整个通信系统的性能。匹配滤波则能修正码间干扰带来的信号畸变,实现最佳接收。

    SRRC滤波器传输函数如式(2)所示[4]

     wdz4-gs2.gif

式中,fN为奈奎斯特带宽,a为滚降系数。

1.1.2 SRRC的滚降系数重载

    本文中采用Xilinx IP核实现系数可重载式SRRC滤波,滚降系数有0.25和0.35两种,可以在线重载。

    采用IP核实现系数重载时,可以将几组verctor合并为一组,也可将几组滤波器系数放到一个coe文件中,通过IP核中config端口来重载Fir IP核的滤波系数[5]

    在生成IP核时,将Number of coefficient sets设置为N(假设有N组滤波器系数),通过配置s_axis_config_tdata端口值为M(M≤N-1),可以选择第M+1组系数进行SRRC滤波,便于工程应用时滤波系数的修改。

    本文中采用MATLAB的Fdatool工具生成SRRC滤波器系数,只需配置好滚降系数a、信号传输速率、奈奎斯特速率等,操作简便、高效。

    Fdatool配置页面中,信号传输速率应至少等于传输带宽B的两倍,即:

    wdz4-gs3.gif

式中,FS为信号传输速率,FC为奈奎斯特速率。

1.2 CIC滤波

1.2.1 CIC滤波的实现原理

    CIC滤波器是零极点相消的滤波器,结构简单,效率高。当采样频率的变换较大时,由于抗混叠的优越性,采用CIC滤波效果更好。

    CIC滤波器的一级阻带衰减为13.36 dB,M级阻带衰减为13.36M dB[6]。M增大可以增大阻带衰减和旁瓣抑制,但受通带带内容限的限制,M一般不大于5。上采样因子D决定CIC滤波器的主瓣宽度和CIC滤波后的采样频率,实际应用中应根据需求设定。

    CIC滤波器实现简单,不需要滤波系数。配置CIC滤波器IP核时,滤波器系统时钟要为输入数据时钟的3倍。

1.2.2 CIC滤波器多速率变换倍数在线重载

    本文中CIC滤波器采用CIC IP核实现。在实现过程中,配置CIC滤波器IP核为内插倍数可编程[7],能增强代码的可重用性,有效提高FPGA的资源利用率。

    具体实现方法:配置采样率变换为programmable,采样率变换的范围为Minimum Rate,Maximum Rate。则在S_axis_config_tvalid上升沿有效的前提下,通过修改S_axis_config_tdata[7:0]为N,可以实现CIC滤波器的N倍上采样,从而实现CIC滤波器上采样倍数的在线重载。

1.3 HB滤波

    HB滤波是偶对称,奇次线性相位的高效数字滤波器,可用于实现2N的抽取或内插,具有运算复杂度低、实时性强的特点。HB滤波器级联在CIC滤波器后,HB可以对CIC滤波器的主瓣增益进行修正,对其中含有较大混叠能量的频率区域进行抑制[8]

    HB的冲击响应h(k)为实数。HB滤波器的系数具有偶对称特性,如式(4)所示,偶次系数为零,运算量可以减少一半,具有很高的实现效率[9]

    wdz4-gs4.gif

其中:N为滤波器阶数,为奇数。

    HB滤波器是一种特殊FIR滤波器,采用FIR IP核实现。由FDATOOL工具生成滤波系数,保存为coe文件加载到IP核中。

1.4 Farrow滤波器

    Farrow滤波器则可以实现小数倍的速率变换。Farrow滤波器采用3次内插滤波器的Farrow结构,可通过调制数字延迟改变频率转换的比例。Farrow结构的滤波器用于内插时,具有去镜像的性质。

1.4.1 Farrow滤波器的实现原理

    本文通过Verilog编程可以实现三阶内插Farrow滤波器。根据Farrow滤波器的输入输出数据频率,通过调制数字延迟uk改变频率转换的比例。

    设输入信号周期为Ts,输出信号的周期为Ti。则:

wdz4-gs5-7.gif

    则三次内插多项式的Farrow滤波器结构如图2所示。

wdz4-t2.gif

1.4.2 Farrow滤波器上采样倍数在线重载

    由Farrow滤波器的实现原理可知:在输入信号周期为Ts时,调制数字延迟uk可以实现,可以调整输出信号的周期为Ts,最终实现信号采样率的变换。也即实现Farrow滤波器上采样倍数在线重载。在工程实现过程中,通过放大uk来提高精度。

2 SRRC滤波及多速率变换的实现

    在本文中的多速率变换模块,采用3个SRRC滤波器可选,3个级联2倍内插HB滤波器,1个9种内插倍数的CIC滤波器,以及1个3阶内插的Farrow滤波器级联实现。该多速率变换模块的级联结构如图3所示,通过Verilog编程能实现输入信号任意倍数的上采样变换。

wdz4-t3.gif

    多速率变换的倍数由参数fir_array[16:0]控制。

    fir_array[16]=1表示采用Farrow滤波器;fir_array[16]=0表示不采用Farrow滤波器。Farrow滤波器内插倍数由uk控制。

    fir_array[15:6]表示CIC滤波器内插倍数。CIC内插倍数共有4、5、6、7、8、9、10、14、21几个等级,与SRRC、HB、Farrow级连可以满足任意符号率变换的需求。fir_array[15:6]=0则表示不采用CIC滤波器。

    fir_array[5:3]控制选用级联的2倍内插HB滤波器的个数(共有3个级联HB滤波器可选)。

    fir_array[2:0]控制SRRC滤波器采用的内插倍数,fir_array[2:0]分别表示4倍、3倍、2倍内插。

    当输入信号为2 MHz,要上采样到168 MHz,则通过fir_array设置为{1′b1,10′b0001000000,3′b001,3′b100},通过4倍内插的SRRC滤波,一个2倍HB内插滤波,10倍CIC内插滤波,一级160 MHz到168 MHz的Farrow内插滤波实现。

    在ISE平台中,采样IP核fir_compiler 6.3与MATLAB的FDATOOL工具共同实现了系数可重载式SRRC滤波器和HB滤波器的设计,采用基于AXI总线的cic_compiler 3.0 IP核实现插值倍数可重载的CIC滤波器,Farrow滤波器则根据三阶内插结构采用Verilog语言编程实现。

    其中,SRRC滤波和HB滤波系数均采用FDATOOL工具产生,48阶,汉明窗。HB滤波器采样率为100 MHz,截止频率为25 MHz。SRRC滤波器的采样率为100 MHz,截止频率为25 MHz。

    设置仿真时钟为168 MHz,输入信号的速率为2 MHz。数据源为10个随机数X(-1,-1,1,1,1,-1,1,1,1,-1)8倍内插,插值为0得到的。通过ModelSim仿真工具进行仿真验证,仿真结果如图4所示。

wdz4-t4.gif

    从图4(a)可以看出:SRRC滤波并变速率后,仿真波形为升余弦波形,和输入信号基本一致,且具有较好的平滑性。系统时钟aclk为168 MHz,则从图4(b)可以看出:对输入信号SRRC滤波并进行多速率变换后,信号速率上采样到168 MHz。

3 实验验证

    在实验板上,将20 MHz符号率的16APSK调制信号经SRRC滤波及多速率变换模块(上采样到168 MHz)、DA转换模块及射频输出后,用频谱仪观察射频输出信号的星座图、信号质量及带宽,如图5所示。

wdz4-t5.gif

    频谱仪测试结果表明:16APSK调制信号经SRRC滤波处理及多速率变换后,输出信号的带宽有效限制到了20 MHz,且能正常解出16APSK星座图,信号EVM约为3%,即有效消除了码间干扰。其中,EVM(0%~100%)越小,表示输出调制信号的质量越好。

4 结论

    本文详细介绍了一种基于FPGA实现SRRC滤波及多速率变换模块的方法。该模块通过级联SRRC、HB、CIC、Farrow滤波器实现,通过在线重载SRRC滤波系数,CIC、Farrow滤波器插值倍数,能够实现不同滚降系数的升余弦滤波及多速率变换,有效节约了FPGA资源。通过仿真分析和实验验证了该模块SRRC滤波及多速率变换特性。该模块易于工程实现,能有效消除码间干扰,提高频带利用,较好地满足了现代通信与数字系统处理中的实时性要求。

参考文献

[1] SREEVIDYA N,SATEESHKUMAR H C.SRRC filter implementation as per DVB-S2 standard[J].International Journal of Innovative Research and Development,2013,2(5):1148-1161.

[2] 冯佳梅,邹刚,朱南,等.基于可变带宽多速率处理算法的设计与实现[J].数字通信世界,2015(8):21-25. 

[3] 樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2012.

[4] VANUKURU H R,YOGESH P K R,RAVICHANDRAN V,et al.Performance analysis of root raised cosine filtering in CCSDS ACM[C].International Conference on Wireless Communications,Signal Processing and Networking,2016.

[5] Xinlinx Inc.LogiCORE IP FIR Compiler V6.3 DS795[Z],2011.

[6] cic滤波器的FPGA实现[EB/OL].2016-06-04].http://blog.sina.com.cn/s/blog_4b1046f80102wjrh.html.

[7] Xinlinx Inc.LogiCORE IP CIC Compiler V3.0 DS845[Z].2011.

[8] 曹检飞,文双春,刘昱,等.多速率软件无线电数字中频系统的研究与实现[J].计算机工程与科学,2017,39(6):1079-1086.

[9] 娄阳,王中训,高兴龙,等.数字下变频DDC的设计与FPGA实现[J].中国集成电路,2017,26(Z1):52-56.

[10] 陈沁.QAM信号的位同步与盲均衡实现技术研究[D].成都:电子科技大学,2014.



作者信息:

杨  阳1,闫  峥2,刘民伟2,董继承2

(1.航天天绘科技有限公司四川分公司 集成电路设计中心,四川 成都610100;

2.航天恒星科技有限公司 集成电路设计中心,北京100086)

此内容为AET网站原创,未经授权禁止转载。
FPGA 成形滤波 上采样 任意倍数 码间干扰