全数字接收机中定时同步算法和实现
2008-07-25
作者:晏 蕾, 余 荣, 梅顺良
摘 要:采用了基于Farrow结构的内插" title="内插">内插滤波器,同时使用Garnder的定时误差计算方法为内插滤波器提供插值" title="插值">插值相位。通过MATLAB仿真,表明这种内插滤波器可以很好地解决定时同步问题,并在现场可编程芯片FPGA上实现了该算法,使得数字解调的硬件实现具有很好的移植性和灵活性。
关键词:内插滤波器(Interpolator) 定时误差 插值相位 SIMULINK FPGA实现
在数字接收系统中,为了正确恢复出发送端的符号信息,必须做到定时同步。传统的接收机采用同步采样,利用定时误差信号调整接收端采样时钟的相位,使之与符号同步;而全数字" title="全数字">全数字接收机采用固定的采样频率,一般来说,采样时钟和符号时钟相互独立,这种情况下可以用数字信号处理的方法实现对符号速率的锁定。
随着数字信号处理器和可编程逻辑芯片速度的提高,利用这些芯片完成定时同步算法" title="定时同步算法">定时同步算法,为接收机的设计带来了很大的灵活性。本文对全数字接收机中的定时同步算法进行了分析,将内插滤波与误差检测算法相结合,提出了一种简单有效的算法,同时利用MATLAB进行了仿真。实验结果表明该算法确实具有简单高效的特点。最后,给出了FPGA实现该算法的方法。
1 定时同步算法
根据F M.Gardner 的结论[1],内插恢复电路可以从采样序列中恢复出最佳采样点的值。图1给出了基于内插滤波的定时同步结构框图。
设带限连续信号x(t),符号周期为T。在满足Nyquist定理的条件下,以TS为间隔采样得x(mTS),通常T/TS为无理数。经内插恢复环路后,输出y(kTi),其中Ti=T/K,K为小整数。对y(kTi)进行K倍抽取,即得到与发送端符号同步的最佳采样值序列z(nT)。
内插恢复电路包括一个内插滤波器和内插滤波控制电路。内插滤波器(Interpolator)从采样序列中恢复出最佳采样值,是整个定时同步技术的关键。控制电路包括定时误差检测电路(TED)、环路滤波器(LPF)和数控振荡器(NCO),向内插滤波器提供插值相位和插值输出时各个信号的权值。下面简单介绍内插恢复电路的各个部分。
1.1内插滤波器
设内插滤波器冲激响应的连续形式为hI(t),采样信号x(mTS)经过内插器" title="内插器">内插器,输出
其中μk为插值相位,满足μk∈[0,1),mk为插值抽取的位置,将式(2)改写成
(4)式即定时同步内插的基本公式。
理想内插器的冲激响应为si函数,因此
可以看出,内插器实质就是一个时变的滤波器,各级系数的变化与输入的μk有关。理想内插器是不可实现的,但是由于只需恢复出最佳采样点的信号值而不是完全恢复出原信号x(t),因此可以采用其它线性相位的可实现内插器,去逼近理想内插器的频谱特性。通常采用基于Lagrange多项式的内插方法,即滤波器可以写成系数为μk的多项式:
那么,输出为
M为多项式的阶数,2N-1为滤波器的阶数。基于多项式的内插滤波器可用Farrow结构实现,如图2所示。
这种滤波器实现起来很简单,使用较低的阶数(N=3,M=2)就能获得较好的频谱性能。表1给出了Farrow滤波器的各阶系数。
1.2 定时误差检测(TED)
根据Garnder的定时误差检测算法[2],一个符号只需要两个采样信号就可以得到定时误差,并且可以在两个采样点之一的位置恢复出最佳采样信号值。定时误差计算的表达式为:
其中n为数据符号的标号,ε(n)表示第n个符号的定时误差,τ为实际采样位置距离最佳采样位置的偏移,y(tn)为第n个符号最佳采样值。
定时误差算法解释如下:相邻的两个符号值y(tn-1)、y(tn)不相同的情况下,y(tn-1/2+τ)的平均值如果为零,则不存在定时误差;如果不为零,则可以用y(tn-1/2+τ)的数值代表定时误差的大小。但是y(tn-1/2+τ)并不能指示误差调整的方向,因此用[y(tn+τ)-y(tn-1+τ)]来表示误差调整方向,二者的乘积即为定时误差信号。如果y(tn-1)、y(tn)两个符号值相同,则[y(tn+τ)-y(tn-1+τ)]为零,使得y(tn-1/2+τ)的值被屏蔽了,在这种情况下是不能提取误差信号的。根据Garnder算法可以构造出定时误差提取的实现结构如图3。
1.3 环路滤波器(LPF)和数控振荡器(NCO)
定时误差信号通过低通环路滤波器(LPF)滤波后,控制数控振荡器(NCO)工作。这两部分的实现结构如图4。
LPF采用二阶滤波器,包含比例路径和积分路径,这两条路径分别可以跟踪相位误差和频率误差。通过控制比例增益k1和积分增益k2,可以调整环路的带宽和收敛速度。NCO是一个相位累加器,对输入的相位误差进行累加,为内插滤波器提供插值相位。
2 数字解调系统的定时同步仿真
本文对一个全数字BPSK解调系统进行了MATLAB仿真,旨在验证上述定时同步算法。首先,利用SIMULINK搭建了整个接收系统,包括AD转换、载波同步、定时同步、匹配滤波和判决;其次,对输入信号进行了模拟,模拟的输入信号为中频10.7MHz、带宽1.5MHz的BPSK已调信号,符号速率为660kbps。对此信号带通采样,采样频率为符号速率的5倍即3.3Mbps。由于上述定时同步算法要求一个符号有两个采样信号,故载波同步恢复成基带信号后,调整采样速率使之成为符号速率的2倍,再进行定时同步、匹配滤波和判决输出。
图5给出了定时同步模块中TED的输出ε、LPF的输出e和NCO的输出μ的仿真结果。可以看到,大约100个符号后,μ趋于一稳定值,定时环路锁定同步。
在这种定时结构下,对100,000个随机符号进行数次仿真,实现的BPSK接收系统在输入信噪比Eb/N0=12.5dB情况下,平均能够达到10-6的误码性能。事实上,基于内插滤波的定时算法不仅适用于BPSK接收系统,只要修改定时误差的计算式[2],不难将它推广到nQPSK、nQAM等其它解调系统。
3 FPGA实现
3.1 从SIMULINK仿真到FPGA实现
利用SIMULINK搭建BPSK解调系统,主要目的是确定定时同步的结构、仿真定时算法的性能,同时也为下一步的设计——用现场可编程芯片(FPGA)实现该算法,提供了简单有效的方法。由于SIMULINK仿真的电路已经做到寄存器级,各部分的电路主要由乘法器、加/减法器、锁存器和移位寄存器等组成,便于向FPGA的设计输入方法转换。事实上,一些公司已经开发出第三方软件,如Altera开发的DSP Builder,可以嵌入在MATLAB软件中,直接完成从MATLAB的设计到FPGA实现的转换,缩短了设计周期。
3.2 FPGA实现结构
图6给出了FPGA实现整个BPSK中频数字解调系统的结构图。其中,实线框内为定时同步相关电路。
对输入的时钟信号(5fsymbol)进行5分频和2.5分频,可以得到符号钟(fsymbol)和2倍符号钟(2fsymbol),提供给各模块。
由于FPGA只能处理有限精度的数据,可以通过SIMULINK定点仿真来选取合适的数据位宽和精度,即保证系统性能,又节省资源。在设计中采用了10位带符号数作为主要数据类型,对TED、NCO、LPF这些数据精度要求高的模块则采用16位带符号数。电路的设计可以尽量简化,如内插滤波器的级数为N=3、M=2时,就可以有较好的内插效果,不需要采用更高阶数的滤波器。利用ISE6.2开发环境中的综合工具XST,对定时同步的设计进行行为级和RTL级综合,得到各部分资源占用情况,如表2。
乘数为常数的乘法,如Interpolator和LPF中的部分乘法运算,在实现过程中是转化成移位和加减运算的,大大节省了硬件资源。
本文讨论了一种基于Farrow结构的内插滤波器,其利用Garnder的定时误差计算方法,经环路滤波提取误差信号,为内插滤波器提供插值相位。仿真结果表明该算法具有良好的性能和较低的复杂度。同时,给出了FPGA硬件实现,为全数字解调算法的实现提供了一种简单有效的解决方案。
参考文献
1 Gardner, F.M. Interpolation in digital modems. I.Fundamentals,Communications, IEEE Transactions on,1993;41(3):501~507
2 Gardner, F.M., A BPSK/QPSK Timing-Error Detector for Sampled Receivers; Communications, IEEE Transactions on [legacy, pre-1988], 1986;34(5):423~429
3 H. Meyr, M. Moeneclaey, S. A. Fechtel, Digital Communi-cation Receivers- Synchronization, Channel Estimation, and Signal Processing, John Wiley & Sons, 1998
4 Ki Hyuk Park, Dae Kyo Shin, Jun Sung Lee, Sunwoo, M.H., A QPSK/16 QAM receiver chip for LMDS application; ASICs,2000.AP-ASIC 2000.Proceedings of the Second IEEE Asia Pacific Conference on 28-30 Aug.2000:207~210