利用LMS算法自适应系统仿真

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用LMS算法的自适应系统仿真

[摘要] 一待辩识的iir系统,用一有限长度的fir滤波器来近似辩识系统,介绍了基于最小均方算法(lms算法)的自适应均衡器的原理和结构,采用lms算法得到n阶fir滤波器来逼近原iir滤波器,并且分析了步长,滤波器系数以及自适应过程中的噪声对系统辩识性能的影响,做出了仿真试验结果并分析了仿真试验结果的意义。

[关键词] lms算法 fir滤波器自适应滤波 iir matlab仿真0、引言

假定待辨识系统是极点-零点(iir)系统,要求用一个有限长度的fir 滤波器来辨识该系统,如下图所示。已知待辨识系统的传输函数为:

(iir),求fir 滤波器的系数。

自适应系统辨识的原理图

系统设计要求为:首先待辨识系统为iir滤波器,利用自适应滤波的方法,采用lms算法得到n阶fir滤波器来逼近原iir滤波器,输入信号为高斯白噪声,考察步长、阶数n对自适应滤波器性能的影响。

1、系统设计原理

由于lms算法不需要离线方式的梯度估值或重复使用数据以及它的简单易行性而被广泛采用。只要自适应系统是线性组合器,且有输入数据向量和期待响应在每次迭代时可利用,对许多自适应处理

的应用来说,lms算法是最好的选择。

我们采用lms算法自适应调整fir滤波器的系数,自适应滤波器的结构是具有可调系数的直接型fir滤波器。

输入信号为功率为1,长度为1000点的高斯白噪声。为期望响应,为自适应fir滤波器的输出,误差信号。

对一个fir滤波器,其可调系数为,为滤波器的阶数。则输出lms算法是由最速下降法导出的,求出使均方误差达到最小值时相应的最佳滤波器系数组。

从任意选择的一组初始值开始,接着在每个新的输入采样值进入自适应滤波器后,计算相应的输出,再形成误差信号,并根据如下方程不断修正滤波器系数:

其中为步长参数,为时刻输入信号在滤波器的第个抽头处的采样值,是滤波器第个系数的负梯度的近似值。这就是自适应地调整滤波器系数以便使平方误差最小化的lms算法。

2、系统仿真条件设置

我们在matlab7.0 上进行仿真,仿真条件为:利用matlab的库函数randn产生均值为零,方差为1的高斯白噪声。为了观察不同的步长和阶数对系统性能的影响,必要时可以设定“种子值”产生相同的输入序列,待辨识系统对输入的期待响应。

由待辨识系统的传递函数可以写出它的差分方程形式为:,

其中,,可用filter函数实现,可得到待辨识系统的期待响应。步长delta范围的确定,fir滤波器有n个lms算法调整的抽头

系数,滤波器长度n作为程序输入变量。步长参数控制该算法达到最佳解的收敛速度。大使收敛较快,然而,如果取得太大,算法则会变得不稳定,为了保证稳定,的取值应满足。在实际工程应用中,因为不可能大于输入相关矩阵对角元素之和,我们采用更为严格的限制条件,对于自适应横向滤波器,即,其中为输入信号功率。

为了检测lms算法的收敛速度,计算均方误差的短时平均并绘制其学习曲线图,即计算:

平均区间可自由设定。

3、仿真结果分析

1)步长对结果的影响

首先固定阶数,用某个状态的randn函数产生同一组输入高斯白噪声,调整步长为不同值,可以观察到以下均方误差与迭代次数的关系的学习曲线:

图1步长=0.01图2步长=0.05

图3步长=0.1图4步长=0.002

从上面的图1至图4中可见,在满足步长的取值范围内,步长越大,收敛越快。当步长过大,学习曲线会发散,不能收敛,步长过小,收敛速度很慢,在工程中无实际意义。当步长取0.01左右时,均方误差最小,约为0.01;如果需要较快的收敛速度或者说处理的实时性要求比较强,保证一定误差范围内可以适当增加步长。

2)滤波器阶数对结果的影响

步长固定为0.01,改变自适应滤波器的阶数n,观察到如下学习

曲线:

图5滤波器的阶数为4 图6 滤波器的阶数为12

从图5、图6中可以看出,阶数对于收敛速度影响不大。随着滤波器阶数的增加,均方误差得到改善。所以可以通过提高阶数来降低均方误差。

3)加噪对结果的影响

在期望响应中加入高斯白噪声,可以观察以下加噪前和加造后的学习曲线比较图:

图7未加高斯白噪声图8叠加高斯白噪声

从图7、图8中可以看出自适应过程中的噪声引起稳态权向量解发生了较大的变化,收敛于一个距离最佳权向量一定距离的范围内扰动。所以在设计实现时要尽量减少不必要的噪声,增加系统辨识的精度。

4、结束语

从仿真结果可以看出,在满足步长的取值范围内,步长越大,收敛越快。当步长过大,学习曲线会发散,不能收敛,步长过小,收敛速度很慢。在工程中,我们需要折中考虑,存在一个步长值使得均方误差达到最小并且有较快的收敛速度。阶数对于收敛速度没有影响,随着阶数的增加,均方误差得到改善,所以可以通过提高阶数来降低均方误差。但是,也不能无限制地提高阶数,一方面是滤波器造价的增加,一方面失调会增加。对于一个具体的待辨识系统,根据设计指标要求,存在一个合适的步长和阶数,达到最佳状态。

参考文献:

[1] (美)威德罗,(美)斯蒂恩.自适应信号处理.机械工业出版社.2007年

[2] 邹鲲,袁俊泉,龚享铱.matlab 6.x信号处理.清华大学出版社.2002年

[3] 胡昌华,张军波. 基于matlab的系统分析与设计-小波分析[m].西安电子科技大学出版社.1999

相关文档
最新文档