单载波频域均衡的NP算法研究与FPGA实现*

2011-02-27 07:28黄秋元
关键词:频域载波滤波器

周 鹏 陈 慧 黄秋元 陈 伟 黄 彩

(武汉理工大学信息工程学院1) 武汉 430070) (上海明波通信技术有限公司2) 上海 201203)

0 引 言

单载波的频域均衡(SC-FDE)包括ZF及MMSE均衡相比OFDM系统,由于多一个IFFT,扩展了子信道的干扰.因此,在高信噪比条件下,SC-FDE可以获得优于OFDM系统的误码性能,但是在低信噪比条件下,特别是信道中存在衰落较大的频点,则对应位置上的噪声就会被放大,之后进行的IFFT将误差扩展到了所有符号上,导致大规模的误码[1].SC-FDE均衡后的信号残留了ISI,其噪声频谱不是白噪声,而是色噪声[2].

为了消除SC-FDE时色噪声对系统性能的影响,必须加个机制来去除色噪声,即噪声白化滤波器.白噪声过程是由一系列不相关的随机变量组成.色噪声白化过程即去除相邻样值相关性的过程,而前向与后向线性预测滤波器都可以完成这个工作.基于此,本文对NP噪声预测算法及其改进实现方案进行了研究,并予以实现.

1 系统设计

1.1 单载波频域均衡SC-FDE的模型

在单载波的系统中,频域均衡(FDE)的结构框图以及NP模块在均衡(EQ)模块中的位置如图1所示,信号经过信道h(n)之后加上了噪声分量w(n),将接受的数据进行信道估计后得到信道响应值,将信道估计值和接受的数据进行FFT变换成频域后做除法运算,经过IFFT的数据直接进入到NP模块中,通过NP模块计算出噪声,最后减去预测的噪声之后作为单载波模式下均衡的最终输出.

图1 SC-FDE结构框图

1.2 算法介绍

白噪声过程是由一系列不相关随机变量组成.色噪声白化过程即去除相邻样值相关性的过程.

本质上,预测依赖于输入过程相邻样值间存在的相关性.如果增加预测滤波器阶数,则可连续减小输入过程相邻样值间的相关性,直到最终达到某一个点.在该处滤波器具有足够高的阶数,以便产生一系列不相关样值组成的输出过程.从而完成了滤波器输入端的原过程的白化[3].

1.2.1 NP算法原理 前向与后向线性预测滤波器都可以完成这个工作.前向预测是利用过去M的时间来对预测当前时刻u(n)的噪声值;对于后向预测是利用未来M时刻的值来预测当前时刻的噪声值[4].上述的前向与对应的后向预测滤波器之间,其系数存在如下关系

通过反转抽头系数序列并对其取复共轭,可将后向预测滤波器修改为前向预测滤波器.在实际的应用中,未来时刻的值是未知的,因此,只能采用前向预测滤波器来实现色噪声的白化过程.

对于滤波器抽头的更新,可以结合LMS(least mean square)算法来实现[5].前向预测滤波结合LMS抽头更新算法的NP噪声预测算法框图如图2所示.

图2 NP噪声预测算法框图

SC_data为SC_FDE经IFFT后的时域数据,包括有色噪声干扰,^u(n|n-M)为过去M时刻对当前时刻色噪声的预测,它由前向预测滤波器实现,SC_out为均衡数据去除预测色噪声后的数据.u(n)为当前时刻的实际存在的色噪声.e(n)为实际色噪声与预测色噪声间的误差,即预测误差.在滤波器稳定后,估计出来的色噪声频谱与实际色噪声频谱相识,而预测误差的频谱为白噪声.

当前第n时刻的SC_data中实际存在的色噪声为

如果理想数据是未知的,那么对SC_out的硬判数据代替发端符号数据.

因此,整个NP预测的动作过程如下:利用过去M时刻的色噪声预测得到本时刻的色噪声量将本时刻频域均衡后的SC_data(n)中减去预测色噪声,对去噪后的SC_out(n)进行硬判,利用式(3)得到当前时刻实际色噪声,利用实际色噪声与预测色噪声得到预测误差e(n),根据预测误差,利用LMS算法更新预测滤波器的抽头系数,然后,将滤波器存储的过去时间的色噪声进行移位,以便进行下一次噪声预测[6].

用数学表达式可以表示如下.

1.2.2 算法方案改进 从式(4)~(9)中,可以看出,该算法在实现上的主要复杂度在于噪声预测时的乘法,以及抽头更新时的乘法,而且,算法的复杂度会随着滤波器阶数N的增加,乘法器也会正比的增加,所以应该尽量减少NP抽头的个数.但是,对于深衰落信道及强径延时比较长的情况,如果抽头的个数较少那么就会严重影响性能[7].因此,为了考虑硬件实现的方便,又要结合算法上对性能的要求,提出一种改进的更新抽头降频的方案.

该方案的主要思想是将NP的所有抽头系数的更新频率降低以减少更新所需的乘法器的个数.降低更新频率就是将所有的抽头系数进行分组,每个symbol的时间间隔内只对每组中的一个系数进行更新.假设系数总数为32,分为4组,在NP开始工作的期间,每接收一个新的数据就对每组中的一个系数进行更新,那么所有的抽头被更新的周期为8个symbol.在符号间隔中,对抽头进行分组间隔更新的同时采用时分复用的方式对所有的系数进行求和,这样就可减少更新的抽头个数以及参与乘加求和的抽头个数,从而大大减少了乘法器的个数以降低实现的复杂度.

1.3 方案代价分析及选择

通过更新抽头降频的方案,可以在降低复杂度的同时,保证所有位置抽头的值都可以慢慢的收敛起来.当若干帧达到稳定后,就可以得到抽头更新的频率对系统性能的影响很小,经仿真发现,抽头更新的频率降为1/32仍能满足性能要求.同时在此基础上的时分复用进行求和的实现方式在完全不影响性能的基础上大大减少了算法实现的复杂度.

综上考虑,最终选取抽头个数为64,采用1/8的降频处理,这样在降低复杂度的同时也满足了性能的需求.

2 硬件电路实现

2.1 系统模型

根据上述所选的方案,本算法硬件电路实现的关键技术就在时序的分配,NP输入数据以clk速率灌入NP,由于NP处理需要大约5个clk完成,而NP算法内部存在的环路延迟最多只允许有2个,所以NP需要以symbol速率处理数据,输入数据经RAM0,RAM1调速后再由NP处理,最后处理后的数据以symbol速率输出.

NP噪声预测的硬件实现如图3所示.CLK为系统的时钟信号,RST_N为系统的复位信号(低有效);ENB为模块的使能信号;NPi_DATA,NPi_DATA_V,DIXSC_FH分别为NP的输入数据、输入有效信号、输入帧头信号;NPo_DATA,NPo_DATA_V,NPo_FH分别为输出数据、输出有效信号、输出帧头信号.

图3 NP硬件实现框图

NP的模块划分如下,NP_RAM_CTRL负责把输入数据从clk速率调成symbol速率,NP_CTRL接收经NP_RAM_CTRL调速后的数据,负责产生各模块运行的控制信号并控制输出,NP_ERR计算误差,NP_UPD负责系数的更新和噪声的管理,NP_SUM为求和模块.

NP模块的端口时序如图4所示.系统工作流程为:RST_N=0,系统初始化,当第一个帧头信号到来,即DIXSC_FH=1时,ENB=1,模块做好准备;当输入有效信号为高,即NPi_DATA_V=1时,NP模块开始工作.NP只在单载波下启用,EQ给NP的使能信号只在单载波下才会拉高,输入是每帧都有3 780个数据以clk速率进入,NP启用后第二帧才会有输出,因为输入需要调速,第1帧输入数据先存在RAM0里,第2帧开始边从RAM0里取数据边处理输出,同时输入数据切换存到RAM1里,以后每帧都会有3 780个数据输出.

图4 NP模块端口时序

NP_RAM_CTRL模块负责把输入数据从clk速率调成symbol速率,Symbol速率是均匀的8个clk.该模块用2块RAM实现,RAM0和RAM1以帧为单位交替写交替读,且先写RAM0,每一个RAM都是1帧写1帧读,并以clk速率写,symbol速率读,第1帧只对RAM0进行写操作,所以RAM1的使能信号在第2帧才被拉高.

NP_CTRL模块负责产生其他各模块运行的控制信号并控制输出,而且还肩负着最外层环路上的简单逻辑运算.除去色噪声后的数据要经过硬判的逻辑,硬判在系统信息部分的处理和真正数据部分的处理是不一样的[8],所以需要一个si_flag标志信号,为“1”进入si部分slicer处理,否则进入data部分slicer.

NP_UPD模块完成系数的更新和噪声的管理,是本设计的关键所在.前面已经讲到为了减少硬件开销采用了8倍时分复用的设计方式,如图5所示,64个数被分为8组,一行表示一组,每组里的8个数分别记为x_0,x_1,x_2直到x_7,其中:x就是组号.因为更新和求和都用到噪声和系数,求和是64个都要求的,因为8分复用,一个clk里完成8个数的求和就可以了,这里按列选择,例如,第一个clk里完成0,8,16,24,32,40,48,56的求和,也是每组里的第一个数;更新和求和不一样,在性能允许的情况下我们尽量降低更新的频率,这里是一个clk更新一个,一个symbol里完成8个更新,所有64个全部更新完需要8个symbol,又因为更新选择的数要尽量打乱,这样效率要高一些,所以更新如图7标记所示,例如,第1个symbol里依次更新0,9,18,27,36,45,54,63,第2个symbol里依次更新8,17,26,35,44,53,62,7.

图5 组划分

NP_SUM模块完成求和的功能,时序在上面已经讲过了,根据组划分的情况,每个clk完成8个系数的乘加运算,一个symbol完成所有系数的求和,并将最后求得的和即NIS_AVR输出给NP_ERR模块.

NP_ERR模块完成误差计算,该模块根据求和的值计算出误差值ERR,然后将ERR值输出给NP_UPD模块用于系数更新[9].

2.2 仿真验证

本设计采用Verilog语言描述,为了配合RTL的测试,用C编写了对应的NP算法的验证程序,然后利用NC Verilog直接观察仿真波形,最终仿真结果表明,NP噪声预测模块功能正确.

本设计的所有模块都是在Synplify Premier 8.8、ISE9.2及Xilinx FPGA XC5VLX220芯片上实现的.

模块占用Slice的数量仅为4 802,最高工作频率100.4MHz.显然满足模块的自身要求,所以本模块的设计完全满足系统要求.

3 结束语

本文针对单载波的频域均衡时色噪声对系统性能的影响,提出一种NP算法来去除色噪声.通过NP算法去除了相邻样值的相关性,使得色噪声得到白化,并且通过仿真验证,仿真结果表明NP算法可以很好地消除单载波频域均衡时色噪声的影响.此外,在逻辑设计中通过引入8倍的时分复用的思想,采用了巧妙的组划分的方式,在保证性能的同时,减小了硬件的开销,节约了资源,还提高了工作频率.

[1]吴轶刚,范 猛.自适应滤波器参数选择和仿真结果[J].吉林工学院学报:自然科学版,2001,22(2):61-63.

[2]赫 金.自适应滤波器原理[M].4版.北京:电子工业出版社,2003.

[3]黄秋元,任晓明.一种基于子波包和中值滤波的图像去噪方法[J].武汉理工大学学报:交通科学与工程版,2003,27(1):53-55.

[4]沈福民.自适应信号处理[M].西安:西安电子科技大学出版社,2001.

[5]Kaligineedi P,Bijay K.Bharagva frequency-domain turbo equalization and multiuser detection for DSUWB systems[J].IEEE Transaction on Wire-less Communication,2008,7(9):3 280-3 284.

[6]费满锋,易克初.基于滤波器组的单载波频域均衡技术研究[J].无线电工程,2007,37(7):17-19.

[7]Poratb B.Friedlander blind equalization of digital communication channels using highorder moments[J].IEEE Trans.Signal Processing,1991,39:52-526.

[8]卢海风,陈 伟,黄秋元.一种应用于OFDM通信系统的简化软判决算法[J].武汉理工大学学报:交通科学与工程版,2009,33(1):114-116.

[9]荣雅君,杨秋霞.自适应滤波器的设计及其应用[J].河北大学学报,2003,23(3):307-311.

猜你喜欢
频域载波滤波器
大型起重船在规则波中的频域响应分析
水声单载波扩频均衡技术研究
从滤波器理解卷积
用于SAR与通信一体化系统的滤波器组多载波波形
开关电源EMI滤波器的应用方法探讨
频域稀疏毫米波人体安检成像处理和快速成像稀疏阵列设计
网络控制系统有限频域故障检测和容错控制
基于Canny振荡抑制准则的改进匹配滤波器
低压台区载波抄表技术研究
基于TMS320C6678的SAR方位向预滤波器的并行实现