MATLAB 仿真实现LMS 和RLS 算法
题目:
序列x(n)有AR (2)模型产生:)()2()1()(21n w n x a n x a n x +-+-=,w(n)是均值为0、方差为1的高斯白噪声序列。.7.0,4.121-==a a 用LMS 算法和RLS 算法来估计模型参数21,a a 。
按照课本第三章63页的要求,仿真实现LMS 算法和RLS 算法,比较两种算法的权值收敛速度,并对比不同u 值对LMS 算法以及λ值对RLS 算法的影响。
解答:
1 数据模型
(1)高斯白噪声用用randn 函数产生均值为0、方差为1的标准正态分布随机矩阵来实现。随后的产生的信号用题目中的AR (2)模型产生,激励源是之前产生的高斯白噪声。
(2)信号点数这里取为2000,用2000个信号来估计滤波器系数。
(3)分别取3个不同的u 、λ值来分析对不同算法对收敛效果的影响。其中u=[0.001,0.003,0.006],lam=[1,0.98,0.94]。
2 算法模型
2.1自适应算法的基本原理
自适应算法的基本信号关系如下图所示:
Σ自适应算法
参数可调数字滤波器
x(n)
d(n)
y(n)e(n)
-+
图 1 自适应滤波器框图
输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。 2.2 LMS 算法简介
LMS 算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下: