基于DSPBuilder的LMS自适应滤波器设计

作者:袁江南;徐敏 刊名:计算机应用 上传者:安治国

【摘要】介绍了LMS、NLMS自适应滤波器的工作原理,以及现场可编程门阵列(FPGA)在信号处理计算中的重要作用。详细介绍了使用Altera公司基于Simulink的DSP算法开发工具DSPBuilder设计自适应滤波器的流程与方法。给出了滤波器的设计图和时序仿真结果,设计可以在FPGA中实现。

全文阅读

0引言最小均方误差(LeastMean-Square,LMS)算法因适合于硬件实现而被广泛应用。传统的数字信号处理算法一般使用可编程DSP处理器实现,但是,DSP器件内部的乘法器数量有限,对于乘法较多的运算只能靠软件编程进行串行运算。大容量现场可编程门阵列(FieldProgrammableGateArray,FPGA)内部有丰富的资源用于算法的并行实现,然而在算法的开发方面,直接使用硬件描述语言(HardwareDescriptionLanguage,HDL)的难度较大,开发周期长并且容易出错。使用基于Simulink的设计工具如DSPBuilder设计LMS类滤波器就如搭建通常的仿真平台一般,可以快速地构建数字信号处理系统。1LMS类自适应算法维纳的最优滤波理论是LMS类自适应滤波器的理论基础[1]。如图1所示,u(n)、y(n)、d(n)、e(n)分别为输入序列、输出序列、期望序列和误差序列。滤波器第k个复数抽头wk=ak+jbk。首先建立一个代价函数J(w)(以下简写为J):J=E[e(n)e*(n)](1)其中:e*(n)、wk*分别表示e(n)和wk的共轭。预测误差e(n)可以写为:e(n)=d(n)-M-1k=0wk*u(n-k)(2)当权向量调整到最佳woi时,令梯度kJ=aJk+jbJk为M-1i=0woir(i-k)=p(-k);k=0,1,…,M-1(3)其中r(i-k)为输入数据的自相关,p(-k)为输入数据与期望的互相关。写成矩阵形式为:wo=R-1p(4)式(4)称为维纳-霍夫方程,是为滤波器权向量收敛到最佳时的解,是LMS类滤波器设计的基础,但是利用该式求解需要有信号全部的预先统计值,这通常是无法做到的。图1自适应滤波器自适应滤波器的核心思想是根据某种准则不断地调整滤波器的系数直到逼近维纳解。在实际设计自适应滤波器时,通常是采用某种迭代算法,使得权向量逐次逼进最佳权向量的维纳解,其中最直接的方法是最速下降法。最速下降法的迭代公式为(其中g(n)为J的梯度):w(n+1)=w(n)-21g(n)(5)由此可以得到:w(n+1)=w(n)+[p-Rw(n)](6)其中是收敛因子。滤波器抽头按照式(6)不断更新,最终将收敛于维纳解。但是,最速下降法仍然需要计算相关矩阵p和R,因计算量太大限制了该算法的进一步使用。由Widrow和Hoff提出的LMS算法[2]使用瞬时的“随机梯度”来代替最速下降法中的梯度,与最速下降法相比,尽管会产生一定的失调量[3],由于无须计算信号的统计量,因而具有计算量小、易于实现等优点而在实际中被广泛采用。LMS算法的迭代公式如下。滤波器输出:y(n)=w^H(n)u(n)(7)估计误差:e(n)=d(n)-y(n)(8)抽头更新方程:w^(n+1)=w^(n)+u(n)e*(n)(9)其中:w^(n)表示w(n)的瞬时估计,w^H(n)为其共轭转置。LMS算法收敛的条件为:0<<1/max,max是输入信号自相关矩阵的最大特征值,算法的收敛因子的取值对算法的收敛速度和稳态误差有重要的影响。权向量w的变化由、e(n)、u(n)确定。由于正比于输入序列u(n),对低能量信号而言,算法收敛速度将变缓,对大信号时梯度的估计误差会随着u(n)幅度的增加而增加。滤波器的失调直接与输入向量u(n)成正比,所以的取值与信号的特征是相关的。为了解决LMS滤波器收敛速度和信号能量相关的这一问题,Nagumo和Noda以及Allbert和Gardner于1967年分别提出了归一化最小均方算法(NormoalizedLM

参考文献

引证文献

问答

我要提问