MATLAB仿真实现LMS和RLS算法

合集下载

自适应滤波LMS与RLS地matlab实现

自适应滤波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算法

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) 为自适应滤波器的输出误差调节信号(简称失调信号) ;μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。

(完整word版)自适应滤波LMS算法及RLS算法及其仿真

(完整word版)自适应滤波LMS算法及RLS算法及其仿真

自适应滤波第1章绪论 (1)1.1自适应滤波理论发展过程 (1)1. 2自适应滤波发展前景 (2)1. 2. 1小波变换与自适应滤波 (2)1. 2. 2模糊神经网络与自适应滤波 (3)第2章线性自适应滤波理论 (4)2. 1最小均方自适应滤波器 (4)2. 1. 1最速下降算法 (4)2.1.2最小均方算法 (6)2. 2递归最小二乘自适应滤波器 (7)第3章仿真 (12)3.1基于LMS算法的MATLAB仿真 (12)3.2基于RLS算法的MATLAB仿真 (15)组别: 第二小组组员: 黄亚明李存龙杨振第1章绪论从连续的(或离散的)输入数据中滤除噪声和干扰以提取有用信息的过程称为滤波。

相应的装置称为滤波器。

实际上, 一个滤波器可以看成是一个系统, 这个系统的目的是为了从含有噪声的数据中提取人们感兴趣的、或者希望得到的有用信号, 即期望信号。

滤波器可分为线性滤波器和非线性滤波器两种。

当滤波器的输出为输入的线性函数时, 该滤波器称为线性滤波器, 当滤波器的输出为输入的非线性函数时, 该滤波器就称为非线性滤波器。

自适应滤波器是在不知道输入过程的统计特性时, 或是输入过程的统计特性发生变化时, 能够自动调整自己的参数, 以满足某种最佳准则要求的滤波器。

1. 1自适应滤波理论发展过程自适应技术与最优化理论有着密切的系。

自适应算法中的最速下降算法以及最小二乘算法最初都是用来解决有/无约束条件的极值优化问题的。

1942年维纳(Wiener)研究了基于最小均方误差(MMSE)准则的在可加性噪声中信号的最佳滤波问题。

并利用Wiener. Hopf方程给出了对连续信号情况的最佳解。

基于这~准则的最佳滤波器称为维纳滤波器。

20世纪60年代初, 卡尔曼(Kalman)突破和发展了经典滤波理论, 在时间域上提出了状态空间方法, 提出了一套便于在计算机上实现的递推滤波算法, 并且适用于非平稳过程的滤波和多变量系统的滤波, 克服了维纳(Wiener)滤波理论的局限性, 并获得了广泛的应用。

LMS和RLS算法应用及仿真分析

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算法应用及仿真分析

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)]。

Matlab中的信号滤波方法

Matlab中的信号滤波方法

Matlab中的信号滤波方法信号滤波是一种常见的信号处理技术,用于从输入信号中去除噪声或不需要的频率成分,保留所需信号。

Matlab是一种强大的数学软件,提供了许多用于信号滤波的函数和工具箱。

本文将介绍Matlab中常用的信号滤波方法,并讨论它们的优缺点和适用范围。

一、数字滤波器数字滤波器是一种在数字信号上进行滤波的工具。

Matlab提供了多种数字滤波器设计函数,如butter、cheby1、cheby2、ellip等。

这些函数根据不同的设计要求(如滤波器类型、通带和阻带的频率响应等)生成滤波器系数。

用户可以通过调整这些参数来实现所需滤波效果。

这些函数使用了不同的滤波器设计方法,如巴特沃斯、切比雪夫等。

巴特沃斯滤波器是一种常用的滤波器,具有平坦的通带频率响应和陡峭的阻带频率响应。

切比雪夫滤波器在通带和阻带的频率响应上都具有可调节的波纹特性。

数字滤波器的优点是可以精确控制滤波器的频率响应,且可以根据需求进行实时滤波。

然而,它们可能引入幅度和相位失真,并且在滤波器阶数较高时会引起较大的延迟。

二、时频分析时频分析是一种将信号在时间和频率域上分解的方法。

在Matlab中,常用的时频分析方法有短时傅里叶变换(Short-Time Fourier Transform,STFT)和小波变换(Wavelet Transform)。

STFT将信号分成一系列短时段,并对每个时段进行傅里叶变换。

这样可以得到信号的时频表示,即频谱在时间上的变化。

Matlab中的spectrogram函数可以用于计算和绘制STFT。

小波变换是一种多分辨率分析方法,对不同频率的信号具有更好的时域和频域分辨率。

通过使用不同的小波基函数,可以分解信号,并对高频部分进行平滑处理。

Matlab中的cwt和wavedec函数可以用于计算和绘制小波变换。

时频分析的优点是可以捕捉信号在时间和频率上的变化,并提供更详细的频谱信息。

然而,它们可能对信号产生一定程度的模糊,且对噪声敏感。

matlab的lms算法

matlab的lms算法

matlab的lms算法"matlab的lms算法"一、介绍matlab是一种强大的数值计算和科学编程工具,可以用于各种信号处理和机器学习应用。

其中,最小均方(LMS)算法是一种自适应滤波算法,常用于信号降噪和系统辨识等领域。

本文将详细介绍matlab中的LMS 算法的实现步骤和应用。

二、LMS算法原理LMS算法是基于梯度下降的一种自适应滤波算法,用于根据输入信号和期望输出信号来估计系统的权重。

其基本原理是通过调整权重,使得算法输出的估计信号与期望输出信号之间的均方误差最小化。

LMS算法的迭代公式如下:w(n+1) = w(n) + μ* e(n) * x(n)其中,w(n)表示第n次迭代的权重,μ是步长(学习速率),e(n)表示估计信号与期望输出信号之间的误差,x(n)表示输入信号。

三、matlab中的LMS算法实现步骤1. 定义输入信号和期望输出信号在matlab中,首先需要定义输入信号和期望输出信号。

输入信号一般为一个信号向量,期望输出信号为一个与输入信号长度相同的向量。

2. 初始化权重和步长LMS算法需要初始化权重和步长。

权重可以初始化为全零向量,步长可以根据实际应用进行选择,常用的有固定步长和自适应步长。

3. 迭代更新权重使用迭代公式进行权重更新,更新的次数可以根据实际情况进行选择。

每次迭代时,根据输入信号和当前权重估计输出信号,计算误差,并根据误差和步长更新权重。

4. 输出估计信号使用更新后的权重和输入信号计算估计输出信号,并将其作为最终的LMS 算法输出。

四、案例应用:噪声消除为了更好地理解LMS算法的应用,我们将通过一个噪声消除的案例来演示其使用方法。

假设我们有一个含有噪声的信号,并且我们希望通过LMS 算法来滤除噪声。

1. 定义输入信号和期望输出信号首先,我们生成一个长度为N的纯净信号,并向其添加一定程度的高斯噪声,生成含有噪声的输入信号。

我们还定义一个与输入信号长度相同的期望输出信号,该信号为纯净信号。

论文第三章LMS和RLS自适应滤波器的仿真实现与比较

论文第三章LMS和RLS自适应滤波器的仿真实现与比较

论文第三章LMS和RLS自适应滤波器的仿真实现与比较自适应滤波器是一种能够根据输入信号的特性自动调整其滤波器性能的滤波器。

LMS(最小均方)和RLS(递归最小二乘)是两种常用的自适应滤波器算法。

本文将对这两种算法进行仿真实现,并对其性能进行比较。

首先,我们实现了LMS自适应滤波器的仿真。

LMS自适应滤波器通过不断调整滤波器系数来最小化预测误差的均方误差。

在仿真中,我们生成了一个包含噪声的信号作为输入信号,并设置了一个期望的滤波器响应。

然后,我们使用LMS算法来自适应调整滤波器的系数,使其逼近期望的响应。

最后,我们比较了实际和期望的滤波器响应,并计算了均方误差。

接下来,我们实现了RLS自适应滤波器的仿真。

RLS自适应滤波器使用递归最小二乘算法来调整滤波器的系数。

在仿真中,我们同样生成了一个包含噪声的输入信号,并设置一个期望的滤波器响应。

然后,我们使用RLS算法来递归地更新滤波器的系数,使其逼近期望的响应。

最后,我们比较了实际和期望的滤波器响应,并计算了均方误差。

在比较LMS和RLS自适应滤波器的性能时,我们主要关注以下几个方面:收敛速度、稳定性和计算复杂度。

收敛速度是指自适应滤波器达到期望的响应所需要的时间。

稳定性是指自适应滤波器在逼近期望的响应时是否会出现不稳定的情况。

计算复杂度是指实现自适应滤波器算法所需要的计算量。

根据我们的仿真结果,我们可以得出以下结论:LMS自适应滤波器的收敛速度较快,但在达到期望的响应后可能会出现振荡的情况,所以在实际应用中需要设置合适的步长参数来平衡收敛速度和稳定性。

RLS自适应滤波器的收敛速度较慢,但在达到期望的响应后相对稳定,不容易出现振荡的情况。

然而,RLS算法的计算复杂度较高,需要大量的计算资源。

总的来说,LMS和RLS自适应滤波器都有各自的优势和劣势。

在实际应用中,我们需要根据具体的需求来选择合适的自适应滤波器算法。

如果追求较快的收敛速度和较低的计算复杂度,可以选择LMS算法;如果追求较稳定的滤波器性能并且有充足的计算资源,可以选择RLS算法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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算法的收敛速度越慢,但权系数收敛后噪声越小。

相关文档
最新文档