基于MATLAB的ADSP AR(2)模型的LMS 与 RLS 算法分析
自适应滤波LMS与RLS地matlab实现

MATLAB 仿真实现LMS 和RLS 算法的二阶AR 模型及仿真结果分析一、题目概述:二阶AR 模型如图1a 所示,可以如下差分方程表示:)()()2()1()()(21n d n v n x a n x a n v n x +=----= (1)图1a其中,v(n)是均值为0、方差为0.965的高斯白噪声序列。
a 1,a 2为描述性参数,.95,0,195.021=-=a a 设x(-1)=x(-2)=0,权值w 1(0)=w 2(0)=0,μ=0.04①推导最优滤波权值(理论分析一下)。
②按此参数设置,由计算机仿真模拟权值收敛曲线并画出,改变步长在此模拟权值变化规律。
③对仿真结果进行说明。
④应用RLS 算法再次模拟最优滤波权值。
解答思路:(1)高斯白噪声用normrnd 函数产生均值为0、方差为0.965的正态分布随机1*N 矩阵来实现。
随后的产生的信号用题目中的二阶AR 模型根据公式(1)产生,激励源是之前产生的高斯白噪声。
(2)信号长度N 取为2000点,用以观察滤波器权值变化从而估计滤波器系数,得到其收敛值。
(3)仿真时分别仿真了单次LMS 算法和RLS 算法下的收敛性能以及100次取平均后的LMS 和RLS 算法的收敛性能,以便更好的比较观察二者的特性。
(4)在用不同的分别取3个不同的μ值仿真LMS 算法时,μ值分别取为0.001,0.003,0.006;用3个不同的λ值仿真RLS 算法时λ值分别取为1,0.98,0.94,从而分析不同步长因子、不同遗忘因子对相应算法收敛效果的影响。
二、 算法简介1.自适应算法的基本原理自适应算法的基本信号关系如下图所示:图 1b 自适应滤波器框图输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。
e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。
当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。
MATLAB仿真实现LMS和RLS算法

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自适应算法的基本原理自适应算法的基本信号关系如下图所示:图 1 自适应滤波器框图输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。
e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。
当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。
2.2 LMS 算法简介LMS 算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下:1()()()()()()(1)()2()()(0,1,2,....1)N i i i y n w n x n i e n d n y n w n w n e n x n i i N μ-=-=-+=+-=-∑ 写成矩阵型式为:()()()()()()(1)()2()()T y n W n X n e n d n y n W n W n e n X n μ==-+=+ 式中,W(n) 为n 时刻自适应滤波器的权矢量,011()[(),(),....()]TN W n w n w n w n -=,N 为自适应滤波器的阶数;X( n) 为n 时刻自适应滤波器的参考输入矢量,由最近N 个信号采样值构成,()[(),(1),....(1)]TX n x n x n x n N =--+;d ( n) 是期望的输出值;e ( n) 为自适应滤波器的输出误差调节信号(简称失调信号) ;μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。
RLS和LMS自适应算法分析

RLS和LMS自适应算法分析RLS(Recursive Least Squares)自适应算法和LMS(Least Mean Squares)自适应算法是常见的自适应滤波算法,在信号处理、通信系统等领域有广泛应用。
本文将对这两种算法进行详细分析比较,并对它们的优缺点进行评价。
首先,我们先介绍一下这两种算法的基本原理。
RLS算法是一种递归估计算法,通过估计系统的权值并逐步修正的方式逼近期望响应。
根据最小二乘估计准则,RLS算法通过最小化滤波器输出与期望响应之间的均方误差来更新权值。
该算法以过去的输入和期望响应作为参考,通过不断修正权值,逼近最佳解。
常用的RLS算法有全选信号算法、选择性部分信号退化算法等。
LMS算法则是一种基于梯度下降的迭代算法,通过不断修正权值,使得滤波器输出的均方误差逐渐减小。
该算法的优势在于计算简单、适合实时应用。
LMS算法通过使用当前输入和期望响应对滤波器权值进行更新,更新步长由算法的学习速率参数确定,步长过大会导致算法发散,步长过小会降低收敛速度。
接下来,我们以几方面来分析比较这两种算法。
1.性能比较:在滤波效果方面,RLS算法由于基于历史输入和期望响应进行计算,能够更好地估计权值,提高滤波性能。
而LMS算法则在计算简单、实现容易的基础上,性能相对较差。
在噪声较大的环境下,RLS算法的性能相对更为优秀。
2.计算复杂度:RLS算法需要存储历史输入和期望响应,并进行矩阵运算,因此计算复杂度较高。
而LMS算法只需要存储当前输入和期望响应,并进行简单的乘法和加法运算,计算复杂度较低。
在资源受限的环境下,LMS算法更加适用。
3.收敛速度:RLS算法在每次迭代时都通过递归方式重新计算权值,因此收敛速度较快。
而LMS算法只通过当前输入和期望响应更新权值,因此收敛速度较慢。
在需要快速适应的应用场景下,RLS算法更为适合。
4.算法稳定性:由于RLS算法需要存储历史输入和期望响应,内存消耗较大。
LMS和RLS自适应滤波算法对比研究

τ
记θ=[a1,a2,…,ana,b1,b2,…,bnb] ,θ为待估计的参数。
τ
h(k)=[-z(k-1), … ,-z(k-na),u(k-1), … ,u(k-nb)]
(9)
对于k=1,2,…,L(L为数据长度)。 方程(8)构成
一个线性方程组,写成
zL(k)=HL(k)θ+nL(k)
(10)
2011 年 4 月
LMS和RLS自适应滤波算法对比研究
李姣军 李 刚 李 恒 (重庆理工大学,重庆 400054)
摘 要 :介 绍 了 自 适 应 滤 波 器 的 基 本 原 理 ,对 最 小 均 方 (LMS, Least Mean Squares)和 递 归 最 小 二 乘 (RLS, Recursive
根据最优的数学算法最陡下降法, 下一个权矢
量Wj+1(n) 等 于 现 在 的 权 矢 量 Wj(n) 加 一 个 正 比 于 梯 度
荦j的负值变化量,即有:
收 稿 日 期 :2010-10-11 基 金 项 目 :重 庆 市 自 然 科 学 基 金 项 目 (CSTC2009BB2420);重 庆 市 教 委 科 技 研 究 项 目 (KJ100810) 作者简介:李姣军(1965- ),女,副教授,硕士生导师,研究方向为通信信号处理及电力线通信。
2
0
-2 2 000 4 000 6 000 8 000 10 000 12 000 RLS algorithrn of signal processing
2
0
-2 2 000 4 000 6 000 8 000 10 000 12 000 Time Index
图7 自适应算法恢复带噪声信号
LMS和RLS算法应用及仿真分析

LMS和RLS算法应用及仿真分析
LMS算法(Least Mean Squares)是一种基于梯度下降策略的机器学
习算法,它主要应用于解决系统辨识、信号分类和数据拟合等问题。
LMS
算法是一种收敛率较高的优化算法,由于其算法简单、快速,因此在工业
中被广泛应用。
基本原理:LMS算法的基本原理是进行参数更新,以最小化残差平方
和(RSS)作为目标函数,从而改善结果的稳定性和准确性。
LMS算法的
另一个重要思想是,在学习过程中每次迭代都仅使用当前一个输入和相应
的输出。
因此,该算法不需要获得训练样本数据的完整集合,可以仅仅从
一个训练样本中获得有限的信息,并通过这种限定的信息进行迭代。
LMS算法的算法步骤:
(1)初始化参数θ;
(2)给定一个输入样本xn,根据当前的参数θ计算出预测输出ŷn;
(3)根据已知的真实输出dn,计算出当前的残差en;
(4)根据梯度下降法更新参数θ;
(5)重复2~4步,直到达到目标函数的收敛性。
仿真分析:
首先,使用Matlab仿真模拟LMS算法,以模拟实际的系统辨识任务。
LMS和RLS算法应用及仿真分析

LMS 和RLS 算法应用及仿真分析摘要:本文采用MATLAB 软件对LMS 和RLS 两种自适应均衡算法在回波抵消器中的应用进行仿真,分析收敛步长μ、抽头w 、遗忘因子λ 等参数对回波抵消器性能的影响,并对两种算法下的性能做出比较。
关键词:LMS ;RLS ;自适应;回波抵消1 引言进入90 年代后期,通过网络拨打长途电话即IP 电话开始盛行,由于发话端到受话端的延迟达100ms 以上,而人耳对大于50ms 的回声就能辨别出来,因此IP 电话的回声严重影响通话效果。
如何消除回声成为非常重要的问题,回波抵消器就是一个自适应辨识系统,它通过特定的算法辨识未知的目标系统,即回声路径。
本文采用LMS 和RLS 算法实现回波抵消,并对收敛步长μ、抽头w 、遗忘因子λ 等相关参数对回波抵消性能的影响进行了仿真分析,从而为一种通用的回波抵消技术的实际应用提供理论参考。
回波抵消算法原理图如图1 所示。
图1 回波抵消算法原理图 2 LMS 和RLS 算法概述最陡下降法(LMS )和递归最小二乘算法(RLS )是自适应滤波最常用,也是最基本的两种算法。
下面分别对LMS 和RLS 两种算法原理做简单介绍。
2.1 LMS 算法设J(n)是n 时刻均方误差,J(n+1)是n+1 时刻的均方误差,W(n)、W(n+1)分别是n 、n+1时刻M 维抽头权向量011()[()()...()]T M W n w n w n w n -= (1)为使J(n+1)<J(n) (2)W(n)必须按J(n)的负方向变化即(1)()W n W n J μ→→→+=-∇ (μ>0) (3)最后以U (n )*e (n )瞬时值代替统计平均,得到抽头权向量迭代式 *(1)()()()W n W n U n e n μ→→+=- (4)式中U(n)式n 时刻的输入向量[u(n) u(n-1) u(n-2)···u(n-M+1)]。
LMS及RLS自适应干扰抵消算法的比较

LMS及RLS自适应干扰抵消算法的比较LMS(Least Mean Square)和RLS(Recursive Least Squares)是两种常用的自适应滤波算法,用于干扰抵消。
它们在不同场景下有着不同的特点和适用性。
LMS算法是一种迭代算法,通过不断调整滤波器的权值来最小化误差信号的均方差。
它的优点是实现简单,计算量较小,适用于大多数实时应用。
它采用梯度下降法来更新权值,根据误差信号和输入信号的乘积来调整权值,使得误差不断减小。
然而,LMS算法有一个较大的问题,就是收敛速度较慢,因为它只基于当前样本进行权值更新,对数据的统计特性要求较高。
另外,LMS算法对噪声的功率估计不准确,容易导致性能退化。
与LMS算法相比,RLS算法是一种递推算法,通过不断更新逆协方差矩阵来获得最佳权值。
它的优点是收敛速度快,稳定性好,适用于非平稳环境下的信号处理。
RLS算法通过在线估计输入信号的统计特性,能够更准确地抵消干扰。
然而,RLS算法的计算量较大,实时性不如LMS算法,而且对初始参数的选择要求较高,误差传播的问题可能会导致性能下降。
虽然LMS算法和RLS算法在特点和适用性上存在差异,但在实际应用中,可以根据具体的场景选择合适的算法。
如果系统对实时性要求较高,并且希望实现简单,LMS算法是一个合适的选择。
如果系统需要更准确的干扰抵消,并且可以容忍一定的计算复杂度,RLS算法是一个更好的选择。
另外,也可以考虑将两种算法结合使用,利用它们各自的优点来提高干扰抵消的性能。
总结起来,LMS算法和RLS算法是两种常用的自适应干扰抵消算法。
LMS算法具有实现简单、计算量小的特点,适用于实时应用;RLS算法具有收敛速度快、稳定性好的特点,适用于非平稳环境下的信号处理。
在实际应用中可以根据具体的场景选择合适的算法,或者结合两种算法来提高干扰抵消的性能。
RLS和LMS自适应算法分析

RLS和LMS自适应算法分析RLS (Recursive Least Squares) 和 LMS (Least Mean Squares) 是两种常见的自适应滤波算法。
它们在信号处理、通信系统和自适应控制等领域得到广泛应用。
本文将对这两种算法进行分析比较。
首先,我们来看看RLS算法。
RLS算法使用最小均方误差准则来自适应调整滤波器系数。
它利用递归方式计算出均方误差的最小值。
RLS算法基于Wiener-Hopf方程,通过解析方法来计算最优系数。
这种方法计算量较大,但是提供了更好的性能。
RLS算法根据观测数据和期望输出之间的误差信号来不断调整滤波器的权重,并且在递归过程中更新这些权重。
相比于LMS算法,RLS算法具有更快的收敛速度和更高的精度。
但是,RLS 算法也存在一些问题,比如计算复杂度高、存储要求大以及对噪声和系统不确定性敏感。
接下来,我们来看看LMS算法。
LMS算法是一种基于随机梯度下降的自适应算法。
在LMS算法中,滤波器的系数通过逐步调整以减小误差标准差。
LMS算法利用误差信号和输入信号之间的乘积来更新滤波器系数。
这种算法简单易于实现,计算复杂度低,并且对存储要求不高。
LMS算法适用于非平稳环境下的自适应滤波问题。
然而,LMS算法的收敛速度较慢,需要一定的迭代次数才能达到最优解,而且对于高阶滤波器,可能存在稳定性问题。
此外,LMS算法对输入信号的统计特性有一定的要求。
综上所述,RLS算法和LMS算法都是常见的自适应滤波算法,它们在不同的应用领域有不同的适用性和特点。
RLS算法在计算复杂度和存储要求上较高,但是具有更快的收敛速度和更高的精度。
LMS算法计算复杂度低,存储要求小,但是收敛速度较慢。
一般情况下,对于较小的系统和较简单的滤波器,可以使用LMS算法,而对于复杂的系统和高阶滤波器,可以使用RLS算法。
在实际应用中,需要根据具体的要求和约束来选择合适的算法。
此外,还可以根据实时计算需求和系统资源限制等因素,对RLS 和LMS算法进行优化和改进,如考虑快速RLS算法和正则化LMS算法等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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自适应算法的基本原理自适应算法的基本信号关系如下图所示:图 1 自适应滤波器框图输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。
e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。
当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。
2.2 LMS 算法简介LMS 算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下:1()()()()()()(1)()2()()(0,1,2,....1)N i i i y n w n x n i e n d n y n w n w n e n x n i i N μ-=-=-+=+-=-∑ 写成矩阵型式为:()()()()()()(1)()2()()T y n W n X n e n d n y n W n W n e n X n μ==-+=+式中,W(n) 为n 时刻自适应滤波器的权矢量,011()[(),(),....()]TN W n w n w n w n -=,N 为自适应滤波器的阶数;X( n) 为n 时刻自适应滤波器的参考输入矢量,由最近N 个信号采样值构成,()[(),(1),....(1)]TX n x n x n x n N =--+;d ( n) 是期望的输出值;e ( n) 为自适应滤波器的输出误差调节信号(简称失调信号) ;μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。
2.3 RLS 算法简介RLS 算法是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间进行迭代计算。
其基本原理如下所示:λ称为遗忘因子,它是小于等于1的正数。
():d n 参考信号或期望信号。
():n w 第n 次迭代的权值。
():n ε均方误差。
按照如下准则:()()20min nn k k n e k ελ-==→∑即越旧的数据对()n ε的影响越小。
对滤波器系数w 求偏导数,并令结果等于零知()()02()0nn k k n e k k ελ-=∂=-=∂∑x w整理得到标准方程 ()()00()()n nn k T n kk k k k d k k λλ--==⎡⎤=⎢⎥⎣⎦∑∑x x w x定义()0()()nn k T k n k k λ-==∑R x x()0()()nn k k n d k k λ-==∑P x标准方程可以化简成形式:()()n n =R w P经求解可以得到迭代形式 (1)()(1)(1)T n n n n λ+=+++R R x x(1)()(1)(1)n n d n n λ+=+++P P x定义:1()()n n -=T R ,则可知T 的迭代方程为11()[(1)()()]T n n n n λ--=-+T T x x系数的迭代方程为()(1)()(|1)n n n e n n =-+-w w k其中增益()n k 和误差(|1)e n n -的定义分别为 (|1)()(1)()T e n n d n n n -=--w x(1)()()()(1)()Tn n n n n n λ-=+-T x k x T x由上边分析可知,RLS 算法递推的步骤如下:1. 在时刻n ,已经知道(1),(1)n n --w T 和(),()d n n x 也已经存储在滤波器的实验部件中2. 利用公式(1.9)、(1.10)、(1.11)和(1.12)计算(),(),(),(|1)n n n e n n -T w k ,并得到滤波器的输出相应()y n 和误差()e n 即:()()()T y n n n =w x()()()e n d n y n =-3. 进入第1n +次迭代优点--其优点是收敛速度快,而且适用于非平稳信号的自适应处理 条件--:是每次迭代时都知道输入信号和参考信号,计算量比较大3 仿真过程简介仿真过程按照如下过程进行(1)信号产生:首先产生高斯白噪声序列w(n),然后将此通过一个简单的二阶自回归 滤波器生成信号()x n ,该滤波器的参数为.7.0,4.121-==a a(2)将步骤一生成的信号通过LMS 和RLS 自适应滤波器进行处理(3)通过改变u 值对1a 收敛速度的影响来分析LMS 算法的性能以及通过改变λ值对1a 收敛速度的影响来分析RLS 算法的性能。
(4)绘制各种图形曲线 (5)源代码如下:%(1)信号序列与高斯白噪声的产生 %参数初始化a1=1.4; %生成信号所用AR (2)滤波器的参数 a2=-0.7;n=2000; %信号点数%信号及白噪声信号序列的初始化 x=zeros(1,n)'; %信号的初始化w=randn(1,n)'; %高斯白噪声的初始化,均值为0,方差为1 x(1)=w(1); %信号前两点的初始赋值 x(2)=a1*x(1)+w(2);%信号序列的产生 for i=3:nx(i)=a1*x(i-1)+a2*x(i-2)+w(i);%信号由AR (2)产生 end%绘制信号和高斯白噪声波形 figure(1)plot(1:n,x,'b:',1:n,w,'r-');legend('信号序列','高斯白噪声') % 图例title('基于AR (2)模型产生的信号x 和高斯白噪声w'); xlabel('信号点数n'); ylabel('x(n)/w(n)');%(2)LMS 和RLS 算法下的参数a1、a2的收敛曲线 %LMS 滤波L=2; %滤波器长度u=0.001; %LMS 算法下自适应增益常数初始化 wL=zeros(L,n);%LMS 滤波器的权值初始化 for i=(L+1):nX=x(i-1:-1:(i-L));y(i)=X'*wL(:,i); %i时刻输出信号e(i)=x(i)-y(i); %i时刻误差信号wL(:,(i+1))=wL(:,i)+2*u*e(i)*X; %i时刻滤波器的权值end;a1L=wL(1,1:n); % a1在LMS算法下值的变化a2L=wL(2,1:n); % a2在LMS算法下值的变化%RLS滤波L=2; %滤波器长度lam=0.98; %RLS算法下lambda取值wR=zeros(L,n);%权系数,初值为0T=eye(L,L)*10;% %RLS算法下T参数的初始化,T初始值为10for i=(L+1):nX=x(i-1:-1:(i-L));K=(T*X)/(lam+X'*T*X);%i时刻增益值e1=x(i)-wR(:,i-1)'*X;wR(:,i)=wR(:,i-1)+K*e1; %i时刻权值y(i)=wR(:,i)'*X;%输出信号e(i)=x(i)-y(i);%预测误差T=(T-K*X'*T)/lam; %i时刻的维纳解end;a1R=wR(1,1:n); % a1在RLS算法下值的变化a2R=wR(2,1:n); % a2在RLS算法下值的变化%绘制LMS与RLS算法下a1、a2收敛曲线figure(2)plot(1:n,a1L,'r-',1:n,a1R,'b:',1:n,a2L,'g--',1:n,a2R,'m-.',1:n,a2 ,'k-',1:n,a1,'k-');legend('LMS-a1变化','RLS-a1变化','LMS-a2变化','RLS-a2变化','a1收敛值','a2收敛值',0); % 图例title('LMS与RLS算法对比');xlabel('信号点数n');ylabel('对应a1、a2的值');%(3)LMS算法下不同u值的参数收敛曲线wL=zeros(L,n,3);eL=zeros(n,3); % LMS算法下误差初始化yL=zeros(n,3); % LMS算法下滤波器输出初始化u=[0.001,0.003,0.006]; %不同的u值for j=1:3for i=(L+1):nyL(i,j)=x(i-1:-1:i-2)'*wL(1:L,i-1,j);eL(i,j)=x(i)-yL(i,j);wL(1:L,i,j)=wL(1:L,i-1,j)+2*u(j)*eL(i,j)*x(i-1:-1:i-L);endenda1L1=wL(1,1:n,1);a1L2=wL(1,1:n,2);a1L3=wL(1,1:n,3);figure(3)plot(1:n,a1L1,'b-',1:n,a1L2,'r:',1:n,a1L3,'c-.',,1:n,a1,'k') % 画图显示不同u值下LMS算法性能差别legend('u=0.001','u=0.003','u=0.006','a1收敛值',0) % 图例title('LMS算法下不同的u值对a1收敛速度影响')xlabel('信号点数 n')ylabel('对应a1的值')%(4)RLS算法下不同lambda值的参数收敛曲线wR=zeros(2,n,3); % RLS算法下自适应滤波器参数初始化eR=zeros(n,3); % RLS算法下误差项初始化yR=zeros(n,3); % RLS算法下滤波器输出初始化lam=[1,0.98,0.94];for j=1:3for i=(L+1):nxR=x(i-1:-1:i-2);k=(T*xR)/(lam(j)+xR'*T*xR);T=(T-k*xR'*T)/lam(j);eR=x(i)-xR'*wR(1:2,i-1,j);yR(i,j)=xR'*wR(1:2,i-1,j);wR(1:2,i,j)=wR(1:2,i-1,j)+k*eR;endenda1R1=wR(1,1:n,1);a1R2=wR(1,1:n,2);a1R3=wR(1,1:n,3);figure(4)plot(1:n,a1R1,'b-',1:n,a1R2,'r:',1:n,a1R3,'c-.',1:n,1:n,a1,'k') % 画图显示不同lamda值下RLS算法性能差别legend('lam=1','lam=0.98','lam=0.94','a1收敛值',0) % 图例title('RLS算法下不同的lam值对a1收敛速度影响')xlabel('信号点数 n')ylabel('对应a1的值')4 仿真结果信号和高斯白噪声波形如图(1)所示:图1 信号和高斯白噪声波形图2 LMS算法和RLS算法收敛曲线对比图3 u对LMS收敛速度的影响图4 λ对RLS收敛速度的影响4 结果分析(1)由(图2)可以看到在u和λ值相当的情况下,RLS比LMS具有更快的收敛速度,但是RLS权系数收敛后出现了较大的噪声,是因为RLS中有效记忆长度只有49.(2)由(图3)可知u越小,LMS算法的收敛速度越慢,但权系数收敛后噪声越小。