当前位置:文档之家› 基于LMS的自适应滤波器设计及应用

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

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

数字信号处理课程要求论文

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

学院名称:

专业班级:

学生姓名:

学号:

2013年6月

摘要自适应滤波在统计信号处理领域占有重要地位,自适应滤波算法直接决定着滤波器性能的优劣。目前针对它的研究是自适应信号处理领域中最为活跃的研究课题之一。收敛速度快、计算复杂性低、稳健的自适应滤波算法是研究人员不断努力追求的目标。

自适应滤波器是能够根据输入信号自动调整性能进行数字信号处理的数字滤波器。作为对比,非自适应滤波器有静态的滤波器系数,这些静态系数一起组成传递函数。研究自适应滤波器可以去除输出信号中噪声和无用信息,得到失真较小或者完全不失真的输出信号。本文介绍了自适应滤波器的理论基础,重点讲述了自适应滤波器的实现结构,然后重点介绍了一种自适应滤波算法最小均方误差(LMS)算法,并对LMS算法性能进行了详细的分析。最后本文对基于LMS算法自适应滤波器进行MATLAB仿真应用,实验表明:在自适应信号处理中,自适应滤波信号占有很重要的地位,自适应滤波器应用领域广泛;另外LMS算法有优也有缺点,LMS算法因其鲁棒性强特点而应用于自回归预测器。

关键词:自适应滤波器,LMS算法,Matlab,仿真

1.引言

滤波技术在当今信息处理领域中有着极其重要的应用。滤波是从连续的或离散的输入数据中除去噪音和干扰以提取有用信息的过程,相应的装置就称为滤波器。滤波器实际上是一种选频系统,他对某些频率的信号予以很小的衰减,使该部分信号顺利通过;而对其他不需要的频率信号予以很大的衰减,尽可能阻止这些信号通过。滤波器研究的一个目的就是:如何设计和制造最佳的(或最优的)滤波器。Wiener于20世纪40年代提出了最佳滤波器的概念,即假定线性滤波器的输入为有用信号和噪音之和,两者均为广义平稳过程且己知他们的二阶统计过程,则根据最小均方误差准则(滤波器的输出信号与期望信号之差的均方值最小)求出最佳线性滤波器的参数,称之为Wiener滤波器。同时还发现,在一定条件下,这些最佳滤波器与Wiener滤波器是等价的。然而,由于输入过程取决于外界的信号、干扰环境,这种环境的统计特性常常是未知的、变化的,因而不能满足上述两个要求,设计不出最佳滤波器。这就促使人们开始研究自适应滤波器。自适应滤波器由可编程滤波器(滤波部分)和自适应算法两部分组成。可编程滤波器是参数可变的滤波器,自适应算法对其参数进行控制以实现最佳工作。自适应滤波器的参数随着输入信号的变化而变化,因而是非线性和时变的。

2. 自适应滤波器的基础理论

所谓自适应滤波,就是利用前一时刻已获得的滤波器参数等结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。所谓“最优”是以一定的准则来衡量的,最常用的两种准则是最小均方误差准则和最小二乘准则。最小均方误差准则是使误差的均方值最小,它包含了输入数据的统计特性,准则将在下面章节中讨论;最小二乘准则是使误差的平方和最小。

自适应滤波器由数字结构、自适应处理器和自适应算法三部分组成。数字结构是指自适应滤波器中各组成部分之间的联系。自适应处理器是前面介绍的数字滤波器(FIR或IIR),所不同的是,这里的数字滤波器是参数可变的。自适应算法则用来控制数字滤波器参数的变化。

自适应滤波器可以从不同的角度进行分类,按其自适应算法可以分为LMS自适应滤波器、RLS自适应滤波器等等。

自适应滤波器实际上是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要预先知道关十输入信号和噪声的统计特性,它能够在工作过程中逐步了解或估计出所需的统计特性,并以此为依据自动调整自身的参数,以达到最佳滤波效果。

自适应滤波器的特性变化是由自适应算法通过调整可编程滤波器系数来实现的。图给出了自适应滤波器的一般结构,其中输入信号二x(n)通过可编程滤波器后产生输出信号(或响应)y(n),将其与参考信号d(n)进行比较,形成误差信号e(n),并以此通过某种自适应算法对滤波器参数进行调整,最终使得e(n)的均方值最小。

利用抽头延迟线做成的横向滤波结构的自适应滤波器,通称为自适应横向滤波器(或自适应FIR 滤波器)。它是研究所有自适应滤波算法的基本结构,由于其结构简单、成本较低,也是工程领域最常用的一种自适应滤波器。

……

图 单输入自适应滤波器 自适应横向滤波器的结构图如图所示,)()........(),(10n w n w n w N 为可调节抽头权系数表示在n 时刻的系数值。它利用正规直接形式实现全零点传输函数,而不采用反馈调节。权系数的调节过程是首先自动调节滤波器系数的自适应训练步骤,然后利用滤波系数加权延迟抽头上的信号来产生输出信号,将输出信号与期望信号进行对比,所得的误差值通过一

)

(n d

图 自适应滤波器的原理图

定的自适应控制算法再用来调整权值,以保证滤波器处在最佳状态,其抽头加权系数集正好等于它的冲激响应,达到实现滤波的目的。

自适应递归滤波器是指零点和极点都能自适应调整的滤波器,它的传输函数中分子和分母通常具有独立的迭代步长因子。对有些利用横向滤波器实现时需要数百个甚至上千个抽头系数,可以考虑使用自适应递归滤波器。缺点是递归滤波器要求对极点的稳定性进行监视,而且收敛速度很慢。采用得最多的自适应递归滤波器结构是如图2-3所示的直接形式结构,自适应滤波器传输函数分母的系数为)().........(),(10n b n b n b N ,传输函数分子的系数为)().........(),(10n a n a n a N ,其中N 和M 分别是自适应滤波器分母和分子的阶数。

3. 自适应滤波算法

最小均方误差(LMS )算法

LMS 算法是基于最小均方误差准则(MMSE)的维纳滤波器和最陡下降法提出的,依据输入信号在迭代过程中估计梯度矢量,并更新权系数以达到最优的自适应迭代算法。这算法不需要计算相应的相关函数,也不需要进行矩阵运算。自适应滤波器最普通的应用就是横向结构。滤波器的输出信号y(n)是

()()()()()∑-=-=*=1

0N i i T

i n x n w n x n w n y (3-1)

图 自适应递归滤波器

T 表示转置矩阵, n 是时间指针,N 是滤波器次数。这个例子就是有限脉冲响应滤波器的形式,为x(n)和w(n)两个矩阵卷积。这种自适应算法使用误差信号

()()()n y n d n e -= (3-2)

为了方便起见,将上述式子表示为向量形式,则上述式子表示为:

()()()T y n w n x n =* (3-3)

误差序列可写为

()()()()()()n x n w n d n y n d n e T *-=-= (3-4)

其中d(n)是期望信号,y(n)是滤波器的输出。使用输入向量x(n)和e(n)来更新自适应滤波器的最小化标准的相关系数。

显然,自适应滤波器控制机理是用误差序列e(n)按照某种准则和算法对其系数{wi(n)},i=1,2,…,N 进行调节的,最终使自适应滤波的目标(代价)函数最小化,达到最佳滤波状态。

本节所用的标准是最小均方误差(MSE )即

()2e E e n ??=?? (3-5)

E[]表示算子期望。假如公式中的y(n)被公式(3-4)取代,式(3-5)就可以表示为

()[]

()()()P n w n w R n w n e E e T T *-**+=22 (3-6)

()()T R E x n x n ??=*??是N N ?自相关矩阵,是输入信号的自相关矩阵。 ()()[]n x n d E P *=是1*N 互相关向量,也指出了期望信号)(n d 和输入信号向量)(n x 的相互关矢量。

由式(3-6)可见,自适应滤波器的代价函数是延迟线抽头系数的二次函数。当矩阵R 和矢量P 己知时,可以由权系数矢量w 直接求其解。

最优解[]T

N o w w w w ***=-110 最小化MSE ,源自解这个公式 ()0=n w δδε

(3-7)

将式(3-6)对w 求其偏导数,并令其等于零,假设矩阵R 满秩(非奇异),可得代价函数最小的最佳滤波系数:

P R w *=-10 (3-8) 这个解称为维纳解,即最佳滤波系数值。因为均方误差(MSE)函数是滤波系数w 的二次方程,由此形成一个多维的超抛物面,这好像一个碗状曲面又具有唯一的碗底最小点,通常称之为自适应滤波器的误差性能曲面。当滤波器工作在平稳随机过程的环境下,这个误差性能曲面就具有固定边缘的恒定形状。自适应滤波系数的起始值{wi(0)},i=1,2,…,N 是任意值,位于误差性能曲面上某一点,经过自适应调节过程,使对应于滤波系数变化的点移动,朝碗底最小点方向移动,最终到达碗底最小点,实现了最佳维纳滤波。

对于LMS 算法梯度v(n)通过假设平方误差。2(n)作为公式(3-7)的MSE 来预测。因此,梯度预测可以单一化表示为:

()()[]()

()()n x n e n w n e n *-==?22δδ (3-9) 在实际应用中,2u 经常用来代替u 。瞬间梯度预测产生的Widrow 一Hoff LMS 算法,w(n)为自适应滤波器在n 时刻的滤波系数或权矢量。按照最陡下降法调节滤波系数,则在n+1时刻的滤波系数或权矢量w(n+l)可以用下列简单递归关系来计算:

()()()()12w n w n u e n x n +=+** (3-10) u 是自适应步长来控制稳定性和收敛率。这种瞬时估计是无偏的,因为它的期望值E[]等于最陡下降法的梯度矢量。

以任意初始向量w(0)来开始,向量w(n)集中在最佳解决方法w0,假如选u max 1

0u λ<< (3-11)

m ax λ为矩阵R 的最大特征值,受限制于

[]()()1

max 0

00N i Tr R r Nr λ-=<==∑ (3-12)

Tr[]为指示矩阵的轨迹,()()20r E x n ??=??是平均输入功率。 对于自适应信号处理应用,最重要的实际考虑是收敛速度,决定滤波器跟踪不稳定型号的能力。总体来说,权向量要获得收敛只有当最缓慢的权集中一点。这个最慢的时间 min 1

t u λ= (3-13)

这个指出时间连续相反的以u 的比例收敛,并且依靠输入矩阵的自相关特征值。具有全异的特征值,规定时间是受最慢模式的限制。以梯度预测为基础的自适应导致噪声矩阵的权向量,因此会有性能的损失。这个自适应处理的噪声导致稳态权向量随意的改变为最适宜的权向量。稳态权向量的精度通过超额的最小均方误差来测量。这个LMS 算法超过EMS 的是

[]min ε**=R Tr u excessEMS (3-14) m in ε是MSE 在稳态的最小值。

公式(3-15)和(3-16)产生LMS 算法基本协定:为了在稳态获得高精度(低超自适应滤波算法及应用研究额MSE),需要u 的最小值,但是也会降低收敛率。后面会有进一步关于LMS 算法特征的讨论。

对于N 维更新u*e(n)是常数,误差信号e(n)乘以u 得到u*e(n)。这个常数首先计算,然后乘以x(n)来更新w(n)。自适应LMS 算法如同最陡下降法,利用时间n=0的滤波系数矢量为任意的起始值w(n),然后开始LMS 算法的计算,其步骤如下:

l)由现在时刻n 的滤波器滤波系数矢量估值w(n),输入信号矢量x(n)及期望信号d(n),计算误差信号e(n):

()()()n y n d n e -= (3-15)

2)利用递归法计算滤波系数矢量的更新估值。

3)将时间指数n 增加1,回到第一步骤,重复上述计算步骤,一直到达稳定状态为止。由此可见,自适应LMS 算法简单,它既不需要计算输入信号的相关函数,又不要求矩阵之逆。因而得到了广泛的应用。

最小均方差(LMS)算法的性能分析

LMS 算法的性能准则是采用瞬时平方误差性能函数|e(k)|2代替均方误差性能函数E{|e(k)|2},其实质是以当前输出误差、当前参考信号和当前权系数求得下个时刻的权系数。

其输出信号()y k 输出误差()e k 及权系数()W k 的计算公式为:

)()()()

()(2)()1()

()()()

()()(k n k x k d k X k n W k W k y k d k e k X k W k y e T +=+=+-==μ (3-16)

k 为迭代次数,

M 为滤波器的阶数。()d k 表示第k 时刻的输入信号矢量式中,式中,)(k X 表示参考信号的信号矢量:

)]1()1(),([)(+--=M k n k n k n k X (3-17)

()y k 、()e k 分别表示第k 时刻的输出信号与输出误差,W(k)表示k 时刻权系数矢量:

[]()(,0),(,1)......(,1)W k W k W k W k M =- (3-18)

μ表示LMS 算法步长收敛因子。自适应滤波器收敛的条件是:

max 1

0λμ≤≤ (3-19)

其中m ax λ是输入信号的自相关矩阵R 的最大特征值。μ的选取必须在收敛速度和失调之间取得较好的折中,既要具有较快的收敛速度,又要使稳态误差最小。它控制了算法稳定性和自适应速度,如果μ很小,算法的自适应速度会很慢;如果μ很大,算法会变得不稳定。由于LMS 算法结构简单、计算量小、稳定性好,因此被广泛应用于系统辨识、信号增强、自适应波束形成、噪声消除以及控制领域等。

关于LMS 算法的收敛速度,将讨论两点:第一,对一个特定的信号环境,收敛速度和步长因子μ有何关系。第二,信号环境本身的特性,对收敛速度有何影响。从收敛速度的角度考虑,步长因子μ应该尽可能大,再看信号环境,即xx R 的特性对算法收敛性能的影响如果当特征值的分布范围较大,即最大特征值和最小特征值之比较大时,公比的取值幅度也将比较大,算法的总的收敛速度将会变得比较慢。

4.基于LMS 的自适应滤波器应用仿真预测器

自回归过程是用来描述伴随一些可能性规律出现的统计现象的瞬时估计的随机过程。一阶自回归模型的公式如下:

1()(1)()y k a y k b k =--+

1a 是模型的唯一参数,b(k)是零均值白噪声。用一个自适应滤波器生成一个可以对参

数1a 进行一步预测的一阶自适应预估器。LMS 算法可由如下方程表示:

)1()()(1--=Λk y a k y k e ()

)()1()()1(11k e k y k a k a -+=+ΛΛδ

仿真实验结果

为了比较不同的δ,我们选取N 个点估计参数1a ,为获取平均值重复M 次。而且分别对δ=,δ=,δ=进行计算。参数1a 固定在.这样用MATLAB 进行仿真实验时每一个δ便会得出一个曲线,图为平方误差曲线图,其中红色曲线代表δ=,同理蓝色曲线代表δ=,绿色曲线代表δ=,从图中可以看出δ越小,误差信号收敛越快。而图为滤波器系数曲线,从图中看出系数以时间常数的指数曲线收敛,δ越

大,时间常数越小。

1010100Mean square error

Samples

图 平均方差误差

Filter coeffcient ev alution

Samples

图滤波器系数曲线

5.总结

自适应滤波技术的核心问题是自适应算法的性能问题,研究自适应算法是自适应滤波器的一个关键内容,算法的特性直接影响滤波器的效果。介绍了基本的自适应算法:最小均方(LMS)算法,并就这种基本算法的特点进行了分析。

对LMS算法收敛性能的改进一直是自适应算法乃至自适应滤波器研究领域的热点。目前对LMS算法性能改进的研究已经取得了相当多的研究成果。今后的研究方向应该是针对不同的应用环境,例如输入信号特性、噪声特性、信道特性,研究特定的高性能的LMS算法,并给出算法在不同应用环境下的稳态性能分析以及相应的参数选择指导,使算法的实用成为可能。另外,深入探讨步长与阶数迭代的相互作用与影响,从而全面的提高LMS 算法性能也将是未来的研究内容。

参考文献

[1]Widrow B, Steams S D. Adaptive Signal Processing. Prenice-Hall. Inc, 1985.

[2]丁玉美,阔永红,高新波. 维纳滤波器[M]. 西安:西安电子科技大学出版社,2002

[3]徐常胜,周兆英,李杰. 自适应滤波的原理[J]. 中国仪器仪表,1994,(6)

[4]邹艳碧,高鹰. 自适应滤波[J]. 广州大学学报(自然科学版),2002,1(2):43-49

[5]覃景繁,欧阳景正. 最小均方误差(LMS)算法[J]. 数据采集与处

理,1997,12(3):171-194.

[6]王鲁彬等.自适应滤波算法研究及其 matlab 实现[J].现代电子技术, 2008,266(3):

174-178

[7]王永德, 龙宪惠. 自适应信号处理[M]. 北京: 机械工业出版社. 2008. 1

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

[9]潘士先. 基于MATLAB的自适应滤波器的仿真实验. 北京:北京航空航天大学出版社,

1985,23~28

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

[11]龚耀寰. 自适应滤波器. 北京:电子工业出版社,1989,45~47

[12]韩曾晋. 自适应控制系统. 北京:机械工业出版社,1983,69~73

[13]王敏强. 变步长自适应滤波算法的研究. 电子学报,1990,18(4):13~15

[14]Paulo 自适应滤波的算法与实现.刘郁林译.北京:电子工业出版社,2004,5~7

[15]Y. Tsuda and T. Shimamura. An improved NLMS algorithm for channel equalizat-ion,

Proc. IEEE International Symposium on Circuits and Systems, no. 5, 356, May 200

附录:

(1)自回归过程的自适应预估器实现程序如下:

N=500;

M=20;

n=1;

a1=;

h=zeros(M,n+1,3);

e=zeros(M,n,3);

for d=1:3

if d==1 delta=;

else delta=*(d-1);

end;

for k=1:M

b=*randn(1,N);

y(1)=1;

for i=2:N

y(i)=-a1*y(i-1)+b(i);

end

for i=n+1:N

e(k,i,d)=y(i)-h(k,i,d)*y(i-1);

h(k,i+1,d)=h(k,i,d)+delta*y(i-1)*e(k,i,d); end

end

end

for d=1:3

for i=1:N

em(i,d)=0;

hm(i,d)=0;

for j=1:M

em(i,d)=em(i,d)+e(j,i,d)^2;

hm(i,d)=hm(i,d)+h(j,i,d);

end

end

end

figure(1)

semilogy(1:150,em(1:150,1)),hold on semilogy(1:150,em(1:150,2),'r'),hold on semilogy(1:150,em(1:150,3),'g'),hold off axis([0 150 1]),grid

title('Mean square error ')

xlabel('Samples')

gtext('\leftarrowd=');

gtext('\leftarrowd=');

gtext('\leftarrowd=');

figure(2),plot(1:N,hm(1:N,1)),hold on plot(1:N,hm(1:N,2),'r'),hold on

plot(1:N,hm(1:N,3),'g'),hold off,grid title('Filter coeffcient evalution') xlabel('Samples'),

gtext('d='), gtext('d='), gtext('d=')

相关主题
文本预览
相关文档 最新文档