自适应信号处理论文程序原版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用LMS 算法的自适应系统仿真
摘 要: 一待辩识的IIR 系统,用一有限长度的FIR 滤波器来近似辩识系统,介绍了基于最小均方算法(LMS 算法)的自适应均衡器的原理和结构,采用LMS 算法得到N 阶FIR 滤波器来逼近原IIR 滤波器,并且分析了步长,滤波器系数,初始权值以及自适应过程中的噪声对系统辩识性能的影响。针对用硬件实现LMS 算法的自适应均衡器存在的诸多缺点,利用MATLAB 工具对各种结构形式的自适应均衡器在不同信道模型下的收敛速度和精度进行仿真,描述了用仿真试验得出LMS 自适应均衡滤波器的收敛性和跟踪性能与滤波器长度和选代算法跳步两个重要的参数之间的定量关系,为此构建了有实用价值的系列时延扩展的传输环境和可变多径传输信道,建立了系统仿真模型,做出了仿真试验结果并分析了仿真试验结果的意义。
关 键 词 LMS 算法; FIR 滤波器; 自适应滤波;IIR; MATLAB 仿真
关 键 词:
LMS 算法 自适应均衡系统 仿真 移动通信 无线数据通信
0、 引言
待辨识系统是极点-零点(IIR )系统,要用一个有限长度的FIR 滤波器来近似辨识该系统如图1所示。已知待辨识系统的传输函数为:
23.01.111)(-+-=z
z z H d (IIR ),求FIR 滤波器的系数。 图1 自适应系统辨识的原理图
1、系统设计要求
1)、待辨识系统为IIR 滤波器,利用自适应滤波的方法,采用LMS 算法得到N 阶FIR 滤波器来逼近原IIR 滤波器;
2)、输入信号)(n x 为高斯白噪声;
3)、考察步长delta 、阶数N 对自适应滤波器性能的影响。
2、系统设计原理
由于LMS 算法不需要离线方式的梯度估值或重复使用数据以及它的简单易行性而被广泛采用。只要自适应系统是线性组合器,且有输入数据向量)(n x 和期待响应)(n d 在每次迭代时可利用,对许多自适应处理的应用来说,LMS 算法是最好的选择。
我们采用LMS 算法自适应调整FIR 滤波器的系数,自适应滤波器的结构是具有可调系数)1(,),1(),0(-N h h h 的直接型FIR 滤波器。
输入信号)(n x 为功率为1,长度为1000点的高斯白噪声。)(n d 为期望响应,)(n y 为自适应FIR 滤波器的输出,误差信号)()()(n y n d n e -=。
对一个FIR 滤波器,其可调系数为10),(-≤≤N k k h ,N 为滤波器的阶数。则输出 M n k n x k h n y N k ,,0),
()()(10 =∑-=-=
LMS 算法是由最速下降法导出的,求出使均方误差∑==M n n e 0
2)(ε达到最小值时相应的最佳滤
波器系数组。
从任意选择的一组)(k h 初始值开始,接着在每个新的输入采样值)(n x 进入自适应滤波器后,计算相应的输出)(n y ,再形成误差信号)()()(n y n d n e -=,并根据如下方程不断修正滤波器系数:
,1,0,10),()()()(1=-≤≤-⋅⋅∆+=-n N k k n x n e k h k h n n
其中∆为步长参数,)(k n x -为n 时刻输入信号在滤波器的第k 个抽头处的采样值,)()(k n x n e -⋅是滤波器第k 个系数的负梯度的近似值。这就是自适应地调整滤波器系数以便使平方误差ε最小化的LMS 算法。
3、系统仿真和结果分析
1)、仿真环境和各参量设置
在MATLAB7 上用软件仿真,仿真条件:
(1) 高斯白噪声的产生
利用MATLAB 的库函数randn 产生均值为零,方差为1的高斯白噪声。为了观察不同的步长和阶数对系统性能的影响,必要时可以设定“种子值”产生相同的输入序列。
(2) 待辨识系统对输入的期待响应
由待辨识系统的传递函数可以写出它的差分方程形式为
002
1)()2()1()(b n x a n d a n d a n d ++-+-=
本系统中1,3.0,1.1,10210==-==b a a a ,可用filter 函数实现,可得到待辨识系统的期待响应)(n d 。
(3) 步长delta 范围的确定
FIR 滤波器有N 个LMS 算法调整的抽头系数,滤波器长度N 作为程序输入变量。步长参数∆控制该算法达到最佳解的收敛速度。∆大使收敛较快,然而,如果∆取得太大,算法则会变得不稳定,为了保证稳定,∆的取值应满足max 1
0λ<∆<。在实际工程应用中,
因为m ax λ不可能大于输入相关矩阵对角元素之和,我们采用更为严格的限制条件]
[10R tr <∆<,对于自适应横向滤波器,即NP 10<∆<,其中P 为输入信号功率。 (4) 绘制学习曲线
为了检测LMS 算法的收敛速度,计算均方误差ε的短时平均并绘制其学习曲线图,即计算:
n M N N m i e n m MSE m n m
i -+=∑=+=,,1,,)(1)(2 平均区间n 可自由设定。本文中n 取200。
2)、仿真结果分析
步长对结果的影响
首先固定阶数,用某个状态的randn 函数产生同一组输入高斯白噪声,调整步长为不同值,可以观察到以下均方误差与迭代次数的关系的学习曲线:
图1 步长=0.01 图2步长=0.05
图3步长=0.1图4步长=0.002
从上面的图1至图4中可见,在满足步长的取值范围内,步长越大,收敛越快,步长越小,收敛越慢。当步长过大,学习曲线会发散,不能收敛,步长过小,收敛速度很慢,在工程中无实际意义。当步长取0.01左右时,均方误差最小,约为0.01;如果需要较快的收敛速度或者说处理的实时性要求比较强,保证一定误差范围内可以适当增加步长。
滤波器阶数对结果的影响
步长固定为0.01,改变自适应滤波器的阶数N,观察到如下学习曲线:
从上面的图中可以看出,阶数对于收敛速度没有影响。随着阶数的增加,均方误差得到改善。所以可以通过提高阶数来降低均方误差。
加噪对结果的影响
在期望响应中加入高斯白噪声,可以观察以下加噪前和加造后的学习曲线比较图: