APP下载

标准串行LMS自适应滤波器的MATLAB实现

2013-07-17张立萍

赤峰学院学报·自然科学版 2013年19期
关键词:加法器乘法器滤波器

张立萍

(赤峰学院 物理与电子信息工程系,内蒙古 赤峰 024000)

标准串行LMS自适应滤波器的MATLAB实现

张立萍

(赤峰学院 物理与电子信息工程系,内蒙古 赤峰 024000)

自适应滤波器有多种硬件实现方法.本文以随机干扰噪声信号作为研究对象,在Matlab环境中调用Simu1ink中的IP模块,对4阶串行自适应滤波器进行了系统建模和仿真,最终实现了所设计的自适应滤波器.

自适应滤波器;LMS算法;SLMS;MATLAB

对于自适应滤波器,有IIR和FIR两种实现形式,但FIR滤波器比IIR滤波器应用更广泛.因为FIR滤波器只有可调的零点而没有极点,所以它比IIR滤波器要稳定,此外,LMS算法的计算量小,对应的硬件实现电路较为简单,因此本文所设计的自适应滤波器是基于FIR形式的标准串行LMS自适应滤波器.

1 实现LMS算法的信号流图

LMS算法递推公式为:W(k+1)=W(k)+mX(k)e(k),其中误差信号e(k)为e(k)=d(k)-y(k)=d(k)-WT(k)X(k),其信号流图如图1所示.我们将基于LMS算法的自适应滤波器的算法过程重新整理如下,.

(1)将输入信号X(k)与权值W(k)的各个分量对应相乘,然后进行累加得到实际输出信号y(k);

(2)将期望输出信号d(k)与实际输出信号y(k)相减得到误差信号e(k);

(3)将误差信号e(k)与步长参数μ相乘得到一个中间结果M;

(4)再将中间结果M与输入信号X(k)相乘又得到另一个中间结果N;

图1 LMS算法实现的信号流图

(5)实际上中间结果N是一个向量,它与原来权值的每一个对应的分量进行相加得到新的权值向量.

(6)新的权值向量再与新的输入向量进行(1)到(5)步骤的操作,如此循环往复,从而实现自适应滤波.

在图1中,滤波模块与系数更新模块式彼此分开的.上面的虚线框是标准FIR滤波器,可由延时单元、加法器与乘法器组成;下面的虚线框是系数更新模块,用减法器产生误差信号,由加法器、延迟模块与乘法器实现误差更新.

由于采样是按串行方式处理的,而不是按流水线或并行方式来处理的.因此该结构被称为串行LMS(SLMS).只有在一个采样输入被完全处理之后,新的输入采样才能被接受.由于加法器链的进位迟延,这样的结构会影响系统可能达到的最高运行速度.

2 标准串行LMS自适应滤波器(SLMS)的系统建模

从LMS算法的信号流图中可以看出,LMS自适应滤波器可由延迟器、乘法器、加法器和系数更新子模块组成.基于此点,可以在Matlab/Simu1ink平台上,调其中的I P模块进行系统建模,得到了4阶标准串行自适应滤波器(SLMS)的系统框图,见图2.

在图2中,所有的模块都是直接调用Simu1ink中的IP模块,其中正弦波和白噪声的叠加作为输入信号x(k),正弦波作为期望信号d(k).标准串行LMS滤波器主要由以下三部分组成:

(1)FIR滤波模块(FIRFilter):模块图如图3

图2 4阶标准串行LMS自适应滤波器系统

所示,它是一个四阶的滤波器,滤波器的输出为y(k).其中延迟模块、加法模块、乘法模块式直接调用Simu1ink中的IP模块.根据滤波器的输出公式y(k)=x(k)w0+x(k-1)w1+x(k-2)w2+x(k-3)w3,即x(k)乘以滤波器的第一个滤波参数w0,x(k)的第一个延时x(k-1)乘以滤波器的第二个滤波参数w1,x(k)的第二个延时x(k-2)乘以滤波器的第三个滤波参数w2x(k)的第三个延时x(k-3)乘以滤波器的第四个滤波参数w 3,然后相加就得到滤波器的输出y(k),对应的就是模型中的乘法器(Mult0-Mult3)和加法器模块(Add0-Add2).

图3 FIR模块

(2)权重更新模块(weight):模块图如图4所示,根据自适应滤波器参数的调整公式W(k+1)=W(k)+me(k)X(k)可知,这是一个反馈系统,即k+1时刻的参数w(k+l)是由k时刻的参数w(k)的经过计算得到的.这是一个迭代公式,对应的模型是带有反馈的乘法器(Mult0-Mult3)和加法器模块(Add0-Add2).误差信号e(k)与迭代步长μ相乘,为节省硬件资源,取m=1/1024,就可以将乘法运算转化为向右移位10位,对应的是模型中的移位模块shift,然后将μe(k)反馈给乘法器模块(Mult0-Mult3),作为乘法器的一个输入,再与对应的X(k)相乘,实现权系数的更新.

图4 权重更新模块

(3)误差计算模块:误差计算模块比较简单,对应的是模型中的减法运算模块(Sub3),完成e(k)=d (k)-y(k)的计算,得到误差信号e(k).

图中还有一些数据类型转换模块,如Gatewayin和Gatewayout模块,主要用来进行定点数和浮点数之间的转换.

图5是经过模拟仿真后得到的4阶SLMS自适应滤波器的Simulink仿真结果图.第一行信号是参考信号d(k),第二行信号是输入信号x(k),第三行信号是滤波器的输出信号y(k),第四行信号是输出误差信号e(k).

图5 4阶SLMS自适应滤波器Simulink仿真波形图

3 结论

从图中可以看出,误差信号e(k)和x(k)中叠加的随机噪声成分很接近,这与理论分析相同,滤波后的输出信号为单一的正弦波,可见自适应滤波器的输出还是比较理想的.

〔1〕施阳,李俊.MATLAB语言工作箱——TOOLBOX使用指南[M].西安:西北工业大学出版社,1999.

〔2〕黄智伟,王彦,陈琼,等.FPGA系统设计与实践[M].北京:电子工业出版社,2005.

〔3〕王诚,薛小刚,钟信潮.Xilinx ISE使用详解[M].北京:人民邮电出版社,2005.

〔4〕尚勇,吴顺.一种新的FIR滤波器脉动实现结构[J].电子学报,2000(1):57-59.

〔5〕李虎虎,罗丰.基于算法的高阶FIR滤波器优化设计[J].雷达科学与技术,2006(6):377-381.

〔6〕刘雄飞,高金定,齐海兵.LMS自适应滤波器FPGA实现的新方法[J].压电与声光,2007,29(1):87-89.

TP273.2

A

1673-260 X(2013)10-0012-02

猜你喜欢

加法器乘法器滤波器
分段式高性能近似加法器设计
一种低开销的近似乘法器设计
浅析基于verilog 的加法器设计
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
基于FPGA的流水线单精度浮点数乘法器设计*
三旋光结构一步无进位加法器的设计
条件推测性十进制加法器的优化设计
基于Canny振荡抑制准则的改进匹配滤波器
基于TMS320C6678的SAR方位向预滤波器的并行实现