LMS算法实验报告
- 格式:doc
- 大小:357.00 KB
- 文档页数:8
LMS 算法自适应均衡器实验08S005073 房永奎一、实验目的1、掌握LMS 算法的计算过程,加深对LMS 算法的理解。
2、研究用LMS 算法自适应均衡引起失真的线性色散信道问题。
3、研究特征值扩散度()R χ和步长参数μ对学习曲线的影响。
二、实验原理1、自适应均衡器)n图1 自适应信道均衡试验原理图自适应均衡器用来纠正存在加性白噪声的信道的畸变,信道均衡器的原理框图如1所示。
随机噪声发生器(1)产生用来探测信道的测试信号序列{n x },本实验中由Bernoulli 序列组成,n x =±1,随机变量n x 具有零均值和单位方差。
随机噪声发生器(2)产生干扰信道的白噪声()n ν,具有零均值,方差为2νσ=0.001。
信道的脉冲响应用升余弦表示为:20.51cos (2)1,2,30n n n h W π⎧⎡⎤⎛⎫+-=⎪ ⎪⎢⎥=⎝⎭⎨⎣⎦⎪⎩(1) 其中,参数W 控制均衡器抽头输入相关矩阵的特征值分布()R χ,并且特征值分布随着W 的增大而扩大。
均衡器具有11M =个抽头。
由于信道的脉冲响应n h 关于n =2时对称,那么均衡器的最优抽头权值on ω在5n =时对称。
因此,信道的输入n x 被延时了257∆=+=个样值,以便提供均衡器的期望响应。
通过选择匹配横向均衡器中点的合适延时∆,LMS 算法能够提供信道响应的最小相位分量和非最小相位分量之逆。
2、均衡器输入相关矩阵在时刻n ,均衡器第1个抽头的输入为()()()31k k u n h x n k v n ==-+∑ (2)其中所有参数均为实数。
因此,均衡器输入的11个抽头(),(1),,(10)u n u n u n --的自相关矩阵R 为一个对称的1111⨯矩阵。
此外,因为脉冲响应n h 仅在1,2,3n =时为非零,且噪声过程()v n 是零均值、方差为2v σ的白噪声,因此相关矩阵R 是主对角线的,有以下特殊结构所示:()()()()()()()()()()()()()()()012001012021010021000000r r r r r r r r r r r r r r r ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦R (3) 其中()22221230v r h h h σ=+++ (4)()12231r h h h h =+ (5)()132r h h = (6)其中方差20.001v σ=。
音视频信号处理实验报告一、实验目地:1、掌握LMS算法的基本原理,了解自适应波器原理及性能分析的的方法。
2、利用改进LMS算法实现对一个含有噪声的信号的滤波。
二、实验内容:LMS算法的编程仿真。
三、实验原理:LMS算法是自适应滤波器中常用的一种算法,其系统的系数随输入序列而改变。
LMS算法则是对初始化的滤波器系数依据最小均方误差准则进行不断修正来实现的。
在系统进入稳定之前有一个调整的时间,这个时间受到算法步长因子u 的控制,在一定值范围内,增大u会减小调整时间,但超过这个值范围时系统不再收敛,u的最大取值为R的迹。
权系数更新公式为:W(n+1)=W(n)+2u*e(n)*X(n)。
对LMS算法的改进主要集中在对u的算法的改进。
通过对步长大小的控制来控制收敛速度。
本实验采用了u=1/(1+rho_max)算法来避免步长过大同时使补偿足够大来加快收敛速度。
四、实验程序及程序的分析:1、首先产生一个周期性余弦信号作为原始音频信号并输出其波形,如图1t=0:99;xs=10*cos(0.5*t);figure;subplot(2,1,1);plot(t,xs);grid;ylabel('幅值');title('输入周期性信号');2、然后生成一个随机噪声信号作为噪声干扰并输出其波形,如图1randn('state',sum(100*clock));xn=randn(1,100);subplot(2,1,2);plot(t,xn);grid;ylabel('幅值');xlabel('时间');title('随机噪声信号');图13、将其二者相加形成受干扰的音频信号4、利用滤波器权值计算的迭代式求滤波器权值系数并利用最优系数对受干扰信号进行滤波for k = M:N % 第k次迭代x = xn(k:-1:k-M+1); % 滤波器M个抽头的输入y = W(:,k-1).' * x; % 滤波器的输出en(k) = dn(k) - y ; % 第k次迭代的误差W(:,k) = W(:,k-1) + 2*u*en(k)*x;% 滤波器权值计算的迭代式endyn = inf * ones(size(xn));for k = M:length(xn)x = xn(k:-1:k-M+1);yn(k) = W(:,end).'* x;end5、最后分别输出滤波器的输入、输出信号的波形,并且输出两者之差,即误差波形如图2图2由图2我们不难看出,输出信号与原始信号基本吻合。
实验报告实验名称:基于LMS算法的矩阵变换实验目的:本次实验主要是让大家对Widrow 和 Hoff 为 ADALINE 网络设计的 LMS 学习算法进一步了解和认识,熟悉ADALINE 网络,熟知LMS学习算法的原理以及其在MATLAB中的程序实现,在掌握这些基本原理的同时把LMS算法运用求解矩阵的实际问题中。
实验内容:在 Windows 环境中用 C 或MATLAB实现LMS学习算法,并实现X=AY的矩阵变换(矩阵A∈R n⨯m自选)实验步骤:1、熟读LMS算法,深知其原理,并求出其在MATLAB中的实现程序;2、在MATLAB中写出矩阵变换程序,并运行,查看结果是否正确;3、根据实验结果写出实验报告;实验原理:W-H 学习规则是由威德罗和霍夫提出的用来修正权矢量的学习规则,所以用他们两人姓氏的第一个字母来命名。
采用 W-H 学习规则可以用来训练一层网络的权值和偏差使之线性地逼近一个函数式而进行模式联想(Pattern Association)。
线性网络具有抛物线型误差函数所形成的误差表面,所以只有一个误差最小值。
通过W-H 学习规则来计算权值和偏差的变化,并使网络误差的平方和最小化,总能够训练一个网络的误差趋于这个最小值。
我们的目的是通过调节权矢量,使误差函数达到最小值。
所以在给定误差函数后,利用 W-H 学习规则修正权矢量和偏差矢量,使误差函数从误差空间的某一点开始,沿着函数的斜面向下滑行。
依梯度下降原理,以均方误差为性能函数,以搜寻最优点 *ew 使 mse (w e) 最小为目标,计算ADALINE 网络联接关系向量 w e 的梯度下降算法(Gradient Descent Algorithm)为:其中,σ 为学习率(Learning Rate)。
上式称为 W-H 学习规则,或为最小均方差算法(LMS) 。
注:在矩阵变换X=AY 中设Y 为输入量,X 为输出量,A 为权值矩阵,通过给定的A 以及运用LMS 算法找出接近给定矩阵的权值矩阵。
自适应LMS算法及其应用本实验通过一个二阶自回归过程来研究实时数据集平均对LMS算法的影响,AR模型的差分方程为:u(n)+a1x(n-1)+a2x(n-2)=v(n)其中a1=1.558;a2=-0.81;v(n)是零均值方差为的白噪声;图1为AR模型及其二阶自适应线性预测模型,根据LMS算法的基本步骤可以写出该算法的matlab程序如下:clearclose allclca1=1.588;a2=-0.81;u=0.001;N=1024;G=100;e=zeros(1,N);w1=zeros(1,N+1);w2=zeros(1,N+1);y=zeros(1,N);ee=zeros(1,N);%每个点的误差平方ep=zeros(1,N);%每个点的误差平方累积eq=zeros(1,N);%每个点的100次误差平方均值w11=zeros(1,N+1);%w1权值的累积w22=zeros(1,N+1);%w2权值的累积for g=1:Gv=randn(1,N);x(1)=v(1);x(2)=x(1)*a1+v(2);for n=3:Nx(n)=a1*x(n-1)+a2*x(n-2)+v(n);endfigure(1)plot(x)title('输入信号x')for n=3:Ny(n)=w1(n)*x(n-1)+w2(n)*x(n-2);e(n)=x(n)-y(n);w1(n+1)=w1(n)+2*u*e(n)*x(n-1);w2(n+1)=w2(n)+2*u*e(n)*x(n-2);ee(n)=e(n)^2;endw11=w1+w11;w22=w2+w22;ep=ep+ee;endeq=ep/G;W1=w11/G;W2=w22/G;figure(2)subplot(2,1,1)plot(w1)hold onsubplot(2,1,2)plot(W1)hold onsubplot(2,1,1)plot(w2,'r')title('w1与w2的收敛曲线,u=0.004')hold onsubplot(2,1,2)plot(W2,'r');title('100次平均后w1与w2的收敛曲线,u=0.004')figure(3)subplot(2,1,1)plot(e)title('误差曲线(学习曲线)u=0.004')subplot(2,1,2)plot(eq)title('100次平均误差曲线(学习曲线)u=0.004')下面对结果进行分析:图3为w1与w2的收敛曲线,比较平滑的为100次平均求得的收敛曲线,而另外一种起伏较大的为单次实现的收敛曲线,权初值为0。
LMS算法实验报告LMS(Least Mean Squares)算法是一种基于梯度下降的自适应滤波算法,常用于信号处理、通信系统等领域。
本实验通过实现LMS算法并对其性能进行评估,探究其在自适应滤波中的应用。
1.实验背景自适应滤波在许多领域中被广泛应用,如信号降噪、语音增强、通信频谱感知等。
自适应滤波的核心思想是根据输入信号的特性自动调整滤波器的系数,以实现信号的最佳重构或增强。
2.实验目的本实验旨在通过实现LMS算法并对其性能进行评估,探究其在自适应滤波中的应用。
具体目的如下:1)了解LMS算法的基本原理和实现步骤;2)实现LMS算法,完成自适应滤波任务;3)评估LMS算法的性能,分析其在不同情况下的表现;4)对比LMS算法和其他自适应滤波算法的优缺点。
3.实验步骤本实验的实现步骤如下:1)理解LMS算法的基本原理和数学模型;2)根据LMS算法的更新规则,实现算法的代码;3)根据自适应滤波的具体任务需求,选择合适的输入信号和期望输出;4)根据实验需求,设置合适的参数(如学习率、滤波器长度等);5)使用LMS算法对输入信号进行滤波,并计算输出信号的均方误差;6)根据实验结果,评估LMS算法的性能,并进行分析。
4.实验结果根据以上步骤,完成了LMS算法的实现和性能评估。
实验结果显示,LMS算法能够有效地调整滤波器的权值,实现输入信号的滤波和增强。
随着学习率的增加,LMS算法的收敛速度较快,但容易发生震荡现象。
而学习率过小,则会导致算法收敛速度慢,需要更多的迭代次数才能达到较小的均方误差。
此外,在不同噪声情况下,LMS算法的性能表现也有所差异。
在信噪比较低的情况下,LMS算法的滤波效果明显,能够有效抑制噪声并实现信号增强。
然而,在信噪比较高的情况下,LMS算法的性能受到一定影响,可能会出现性能下降或收敛困难的情况。
5.总结与分析通过本实验,深入了解了LMS算法的原理和实现步骤,并对其性能进行了评估。
基于LMS算法自适应滤波器的Matlab仿真学院(系):计算机与通信学院年级专业:通信与信息系统学号:学生姓名:1 LMS算法的原理图1中,设x k为输入信号,它表示了连续时间信号x(t)在t=kT 时刻的离散采样值。
在数字信号处理中,我们一般采用x(kT)表示这一输入值,这里将其记为x k。
这个输入信号经过一个乘法器与权值w1,w2,…,w L相乘,把这些相乘结果相加,便形成了此时的输出信号y k。
系统的输出信号y k与期望信号d k相比较,产生一个误差信号e k=d k-y k,这个误差信号就成为自适应滤波器的控制信号。
自适应算法根据输入的误差信号e k,按照一定的算法和准则,去控制和调整各权值。
图1 自适应横向滤波器的结构定义输入矢量定义权矢量我们希望y k尽可能地逼近d k,即希望y k与d k之间的误差尽可能地小。
从统计意义上说,就是希望e k的均方误差越小越好。
定义R为下述方阵:这个方阵即为输入相关矩阵,其中主对角线上的各项是输入信号的诸元素的均方值,而其他项则是输入信号元素之间的互相关值。
根据梯度搜索法的基本思想,若权矢量W在k时刻值记为W k,为求得一个权向量使均方误差最小,可以从一组初始值W0开始,计算此时的梯度值,然后选一个新值W1,让它等于初值W0加上一个正比于负梯度负值的增量。
下一个新值W2是由计算W1的梯度用同样的方法导出。
这个过程重复进行直到最佳权被找到为止。
上述过程表示为:W k+1=W k+μ(-▽k)式中k是步数或迭代次数,参数μ是一个控制稳定度与收敛度的常数。
可以证明,迭代收敛的充要条件是:式中,λmax是的最大特征值。
实际应用中,有两个关键问题需要解决:①梯度值无法精确给出;②μ上限中的特征值依然是未知的。
LMS算法为这两个问题提供了一条简单的解决途径。
LMS 包含两个过程:①滤波过程,包括计算线性滤波器输出对信号输入的响应,通过比较输出结果与期待响应产生估计误差;②自适应过程,根据估计误差自动调整滤波器参数。
.Harbin Institute of Technology自适应平衡器计算机实验课程名称:自适应信号处理院系:电子与信息工程学院姓名:学号:授课教师:**哈尔滨工业大学一、实验目的:1. 深入掌握自适应平衡器的理论基础和以及它的可能用途。
2. 理解最小均方自适应算法的适用条件,以及最小均方自适应算法的理论推导。
3. 改变特征值扩散度)(R χ与步长参数μ,观察实验结果,深入理解理解这些参数对实验结果的重要性。
4. 探究在线性色散信道中使用最小均方自适应算法引起的失真问题。
二、实验内容:在此次实验中我们研究LMS 算法自适应均衡引起未知失真的线性色散信道问题。
假设数据是实数,图2.1表示用来进行该项研究的系统框图。
自适应均衡器用来纠正存在白噪声的信道的畸变。
通过随机数发生器1产生用来探测信道的测试信号n x ;通过随机数发生器2来产生干扰信道输出的白噪声源()v n 。
这两个发生器是相互独立的。
经过适当延迟,随机数发生器1页提供用作训练序列的自适应均衡器的期望相应。
加到信道输入的随机序列{}n x 由伯努利序列组成,其中1n x =±,随机变量n x 具有零均值和单位方差。
信道的单位脉冲响应应用升余弦表示为20.5[1cos((2))]1,2,30n n n h Wπ⎧+-=⎪=⎨⎪⎩,其他 (2-1)等价地,参数W 控制均衡器抽头输入的相关矩阵的特征值分布()χR ,并且特征值分布随着W 的增大而扩大。
随机数发生器2产生的序列是零均值,方差20.001v σ=。
随机噪声发生器(1)信道随机噪声发生器(2)延迟∑自适应横向滤波器∑nx nv +-ne图2.1 自适应均衡实验框图这里均衡器具有11M =个抽头。
由于信道的脉冲响应n h 关于2n =时对称,均衡器的最优抽头权值on w 在5n =时对称。
因此信道的输入n x 被延时了=∆2+5=7个样值,以便提供均衡器的期望响应。
通过选择匹配横向均衡器中点的合适延时Δ,LMS 算法能够提供信道响应的最小相位分量和非最小相位分量之逆。
基于LMS算法的自适应均衡器设计及MATLAB实现一.实验目的1.了解LMS算法的基本原理;2.掌握MATLAB的使用方法;3.初步体会分析问题、研究问题的基本步骤和方法,为以后科研积累经验。
二.实验原理1. LMS算法简介在移动通信环境中,多径传播效应和频率选择性衰落会导致传输信号失真。
失真主要表现为码间干扰,码间干扰是降低数字通信系统性能的一个主要因素。
在这样的信道条件下设计实际的数字通信系统以高速传输数据时,往往不能获得足够准确的信道频率响应用于调制和解调器的最佳滤波器的设计。
这是因为在每次通信时信道的路由不同,对于这样的信道,要设计最佳固定解调滤波器是不可能的。
在这样的情况下,应该采取信道均衡的方式以减小失真。
信道均衡是通信技术和信号处理的基本问题之一,其目的在于克服传送的符号码和符号码之间的相互干扰,这种干扰是因为信道的非理想特性造成的。
由于通信信道可能是未知和变化的,就需要自适应的调整均衡器,使得整个传输系统输出的符号码和符号码之间的干扰被消除。
信道均衡可以利用发送的训练信号来开始,这称为自动均衡。
在设计自适应均衡器的多种方法中,最小均方自适应算法(LMS)采用梯度搜索法,这使收敛到最优解远比其他算法快,而且该算法原理简单,实施容易,所以目前这一算法已广泛用于计算自适应滤波器的权系数。
2.LMS算法的原理(1)自适应滤波原理自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。
一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。
自适应滤波器的结构采用FIR或IIR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。
图1给出了自适应滤波器的一般结构。
图1为自适应滤波器结构的一般形式,图中x(n)为输入信号,通过参数可调的数字滤波器后产生输出信号y(n),将输出信号y(n)与标准信号(或者为期望信号)d(n)进行比较,得到误差信号e(n)。
e(n)和x(n)通过自适应算法对滤波器的参数进行调整,调整的目的使得误差信号e(n)最小。
自适应滤波器设计中最常用的是FIR横向型结构。
图2是横向型滤波器的结构示意图。
其中:x(n)为自适应滤波器的输入;w(n)为自适应滤波器的冲激响应:w(n)={w(O),w(1),…,w(N-1)};y(n)为自适应(2)自适应滤波算法自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。
自适应算法是根据某种判断来设计的。
自适应滤波器的算法主要是以各种判据条件作为推算基础的。
通常有两种判据条件:最小均方误差判据和最小二乘法判据。
LMS算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。
最小均方误差(Least Mean Square,LMS)算法是一种易于实现、性能稳健、应用广泛的算法。
所有的滤波器系数调整算法都是设法使y(n)接近d(n),所不同的只是对于这种接近的评价标准不同。
LMS算法的目标是通过调整系数,使输出误差序列e(n)=d(n)-y(n)的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。
误差序列的均方值又叫“均方误差”(Mean Sqluare Error,MSE)。
理想信号d(n)与滤波器输出y(n)之差e(n)的期望值最小,并且根据这个判据来修改权系数wi(n)。
由此产生的算法称为LMS。
均方误差ε表示为:对于横向结构的滤波器,代入y(n)的表达式:其中:R=E[X(n)XT(n)]为N×N的自相关矩阵,它是输入信号采样值间的相关性矩阵。
P=E[d(n)X(n)]为N×1互相关矢量,代表理想信号d(n)与输入矢量的相关性。
在均方误差ε达到最小时,得到最佳权系数它应满足下式:这是一个线形方程组,如果R矩阵为满秩的,R-1存在,可得到权系数的最佳值满足:W*=R-1p。
用完整的矩阵表示为:显然φx(m)=E[x(n)x(n-m)]为x(n)的自相关值,φxd(R)=E[x(n)d(n一k)]为x(n)与d(n)互相关值。
在有些应用中,把输入信号的采样值分成相同的一段(每段称为一帧),再求出R,P的估计值得到每帧的最佳权系数。
这种方法称为块对块自适应算法。
如语音信号的线性预测编码LPC就是把语音信号分成帧进行处理的。
R,P的计算,要求出期望值E,在现实运算中不容易实现,为此可通过下式进行估计:用以上方法获得最佳W*的运算量很大,对于一些在线或实时应用的场合,无法满足其时间要求。
大多数场合使用迭代算法,对每次采样值就求出较佳权系数,称为采样值对采样值迭代算法。
迭代算法可以避免复杂的R-1和P的运算,又能实时求得近似解,因而切实可行。
LMS算法是以最快下降法为原则的迭代算法,即W(n+1)矢量是W(n)矢量按均方误差性能平面的负斜率大小调节相应一个增量:W(n+1)=W(n)-μ▽(n),这个“是由系统稳定性和迭代运算收敛速度决定的自适应步长。
▽(n)为n次迭代的梯度。
对于LMS算法▽(n)为下式E[e2(n)]的斜率:由上式产生了求解最佳权系数W*的两种方法,一种是最陡梯度法。
其思路为:设计初始权系数W(0),用W(n+1)=W(n)一μ▽(n)迭代公式计算,到W(n+1)与W(n)误差小于规定范围。
其中▽(n)计算可用估计值表达式:上式K取值应足够大。
如果用瞬时一2e(n)X(n)来代替上面对-2E[e(n)X(n)]的估计运算,就产生了另一种算法——随机梯度法,即Widrow-Hoft的LMS算法。
此时迭代公式为:W(n+1)=W(n)+2ue(n)X(n)以后讨论的LMS算法都是基于WidrOW-Hoff的LMS算法。
上式的迭代公式假定滤波器结构为横向结构。
对于对称横向型结构也可推出类似的迭代公式:W(n+1)=W(n)+2ue(n)[X(n)+X(n一N+1)]三.MATLAB仿真源程序1.LMS算法function [yn,W,en]=LMS(xn,dn,M,mu,itr)% LMS(Least Mean Squre)算法% 输入参数:% xn 输入的信号序列(列向量)% dn 所期望的响应序列(列向量)% M 滤波器的阶数(标量)% mu 收敛因子(步长) (标量) 要求大于0,小于xn的相关矩阵最大特征值的倒数% itr 迭代次数(标量) 默认为xn的长度,M<itr<length(xn)% 输出参数:% W 滤波器的权值矩阵(矩阵)% 大小为M x itr,% en 误差序列(itr x 1) (列向量)% yn 实际输出序列(列向量)% 参数个数必须为4个或5个if nargin == 4 % 4个时递归迭代的次数为xn的长度itr = length(xn);elseif nargin == 5 % 5个时满足M<itr<length(xn)if itr>length(xn) | itr<Merror('迭代次数过大或过小!');endelseerror('请检查输入参数的个数!');end% 初始化参数en = zeros(itr,1); % 误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差W = zeros(M,itr); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0% 迭代计算for k = M:itr % 第k次迭代x = xn(k:-1:k-M+1); % 滤波器M个抽头的输入y = W(:,k-1).' * x; % 滤波器的输出en(k) = dn(k) - y ; % 第k次迭代的误差% 滤波器权值计算的迭代式W(:,k) = W(:,k-1) + 2*mu*en(k)*x;end% 求最优时滤波器的输出序列yn = inf * ones(size(xn));for k = M:length(xn)x = xn(k:-1:k-M+1);yn(k) = W(:,end).'* x;end2.调用LMS算法%function main()close all% 周期信号的产生t=0:99;xs=10*sin(0.5*t);figure;subplot(2,1,1);plot(t,xs);grid;ylabel('幅值');title('{输入周期性信号}');% 噪声信号的产生randn('state',sum(100*clock));xn=randn(1,100);subplot(2,1,2);plot(t,xn);grid;ylabel('幅值');xlabel('时间');title('{随机噪声信号}');% 信号滤波xn = xs+xn;xn = xn.' ; % 输入信号序列dn = xs.' ; % 预期结果序列M = 20 ; % 滤波器的阶数rho_max = max(eig(xn*xn.')); % 输入信号相关矩阵的最大特征值mu = rand()*(1/rho_max) ; % 收敛因子0 < mu < 1/rho[yn,W,en] = LMS(xn,dn,M,mu);% 绘制滤波器输入信号figure;subplot(2,1,1);plot(t,xn);grid;ylabel('幅值');xlabel('时间');title('{滤波器输入信号}');% 绘制自适应滤波器输出信号subplot(2,1,2);plot(t,yn);grid;ylabel('幅值');xlabel('时间');title('{自适应滤波器输出信号}');% 绘制自适应滤波器输出信号,预期输出信号和两者的误差figureplot(t,yn,'b',t,dn,'g',t,dn-yn,'r');grid;legend('自适应滤波器输出','预期输出','误差');ylabel('幅值');xlabel('时间');title('{自适应滤波器}');3.运行结果。