- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于802.16d的定时同步算法改进及FPGA实现
0 引言
WiMAX ( Wordwide Interoperability for Mi-crowave Access)是代表空中接口满足IEEE 802.16标准的宽带无线通信系统。其中IEEE标准在2004年定义了空中接口的物理层(PHY),即802.16d协议。该协议规定数据传输采用突发模式,调制采用OFDM技术。在接收端,为了正确解调,必须找到符号的起始位置,因此,必须进行定时估计。如果定时不正确,就可能引起严重的码间干扰。由于频偏估计是在定时估计之后进行,如果定时估计不准确,也会影响频偏的估计性能,从而导致整个OFDM系统性能下降。因此,必须在短时间内对接收数据进行快速准确的定时同步。
目前常用的定时算法多采用计算序列的相关性。由于计算复杂,其硬件资源消耗非常庞大,所以,目前OFDM系统中的同步算法以软件方法为主,已有的硬件方法由于消耗资源太大而无法将同步模块和接收部分的其他模块集成在一片芯片中。本文参考IEEE 802.16d物理层帧结构,提出了一种低复杂度的帧同步和定时同步联合算法,该算法可在FPGA上利用较少资源来实现。
1 OFDM中的符号定时同步算法
对于定时同步算法的研究,总体上可以分为两类:第一类是依靠OFDM固有的结构,如利用OFDM符号周期性前缀CP的方法,这通常被称作循环前缀同步方法;第二类是利用OFDM中插入导频或者训练符号的方法。在两类同步方法中,第一类方法中最具代表性的是Beek提出的最大似然估计法,其优点是不需要额外的开销,可以提高通信的效率,但其缺点是估计的时间较长,而且对频偏和噪声比较敏感;第二类方法中最具代表性的是Schmidl和Cox提出的利用PN序列相关性的SCA算法,这一种算法受频偏的影响较小,而且估计的时间相对比较短,非常适合用于突发通信系统。
2 适合802.16d的定时同步算法
IEEE 802.16d定义了一组特殊的训练符号,以用于同步和信道估计。这组特殊的训练符号包括短训练序列和长训练序列两部分,其中短训练序列包括4个重复的 64点数据加上循环前缀(CP);长训练序列包括两个重复的128点数据加上循环前缀。在发射端,若干OFDM符号再加上短训练序列和长训练序列,所构成的帧头经过发送滤波器和A/D转换,再通过上变频后,即可发送到信道中。而在接收端,则利用帧头的训练序列来进行同步。为了使定时同步不受频偏的影响,同时可以在较短时间内完成,本文采用SCA算法。该算法又可细分为延时自相关算法和本地序列互相关算法两类。
2.1 延时自相关法
通常选用短训练序列来进行定时同步。假设接收到的基带数字序列为rn,n是该序列的序号,然后将接收序列经过两个滑动窗口R和P,其中R是接收信号和接收信号延时的互相关系数,P是互相关系数窗口期间接收信号的能量,此窗口的值可用于判决的归一化,它和接收功率的绝对值是独立的,其公式如下:
公式
式中,N为窗口长度,N=64,即短训练序列的周期,d在窗内滑动时,可同时计算M(n)的值。当没有包含前导字结构的信号出现时,得到的M (n)值通常非常小(远小于1),而当有前导字结构的信号出现时,相应的M(n)值迅速升高,并将出现一个台阶,对应的峰值接近于1。由于M(n)值升高需要一个时间范围,因此该算法并不能精确定时,只适合粗略的检测帧是否到达。图1所示的虚线即表示信号出现时M(n)曲线的变化情况。
10dB SNR时的仿真曲线
2.2 互相关法
由于IEEE 802.16d协议中的前导字具有良好的互相关特性,故可用已知的训练序列和接收序列做滑动互相关。当已知的训练序列和接收的训练序列恰好对齐时,便会产生一个峰值,峰值对准的位置正是训练符号的起始点。因此,可以通过寻找互相关的峰值位置来做精确的定时同步。算法公式如下:
公式
式中,c(n)为短训练符号在本地的复制样本,N为短训练符号的样值点数。当已知的训练序列和接收训练序列恰好对齐时,也会产生一个峰值,其仿真曲线如图1中的实曲线所示。该算法的缺点是易受频偏的影响。
根据以上分析,并从算法性能上考虑,若采用延迟自相关法,帧到达时会出现一个峰值平台,该方法并不能确定帧到达的准确时刻;而采用与本地序列互相关算法又容易受到频偏的影响而导致定时偏差。
3 算法改进
针对上述算法的不足,可对其加以改进,以保证同时具有良好的性能和硬件实现的可行性。改进算法是将两种算法结合起来进行联合估计,首先确定一个帧到达的大致平台,再在这个平台内找到互相关峰值,如果各个峰值间隔相等,那么可根据最后一个峰值来判断下一个符号的开始。这种联合估计的办法在软件仿真时具有良好的性能,但若要在硬件上实现则比较困难。因为在延时自相关算法中,计算M(n)的值虽然可采用迭代算法,每次计算只需1次复数运算和若干加法运算;但在自相关计算中,假设接收信号被定点化为16位整数,那么计算一次自相关的值需要16位数据的64次复数乘法,显然,所需要的硬件资源开销非常大,而且会影响系统的运行速度。这在硬件上,因资源消耗太大而无法实现。为了兼顾算法的估计精度和实现的复杂性,有必要将算法做进一步改进。即对接收数据进行二阶量化以得到d[n]=Q[r(n)],其中Q表示复数量化器,见下式:
公式
来源:电子设计技术论坛