LMS算法matlab实现

LMS算法matlab实现

ID:43510490

大小:140.01 KB

页数:7页

时间:2019-10-09

LMS算法matlab实现_第1页
LMS算法matlab实现_第2页
LMS算法matlab实现_第3页
LMS算法matlab实现_第4页
LMS算法matlab实现_第5页
资源描述:

《LMS算法matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、LMS算法function[yn,W,en]=LMS(xn,dn,M,mu,itr)%LMS(LeastMeanSqure)算法%输入参数:%xn输入的信号序列(列向量)%dn所期望的响应序列(列向量)%M滤波器的阶数(标量)%mu收敛因子(步长)(标量)要求大于0,小于xn的相关矩阵最大特征值的倒数%itr迭代次数(标量)默认为xn的长度,M

2、为4个或5个ifnargin==4%4个时递归迭代的次数为xn的长度itr=length(xn);elseifnargin==5%5个时满足Mlength(xn)

3、itr

4、算fork=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));fork=M:length(xn)x=xn(k:-1:k-M+1);yn(k)=W(:,end).'*x;end调用LMS算法%functionmain()closeall%周期

5、信号的产生t=0:99;xs=10*sin(0.5*t);figure;subplot(2,1,1);plot(t,xs);grid;ylabel('幅值');title('it{输入周期性信号}');%噪声信号的产生randn('state',sum(100*clock));xn=randn(1,100);subplot(2,1,2);plot(t,xn);grid;ylabel('幅值');xlabel('时间');title('it{随机噪声信号}');%信号滤波xn=xs+xn;xn=xn.';%输入信

6、号序列dn=xs.';%预期结果序列M=20;%滤波器的阶数rho_max=max(eig(xn*xn.'));%输入信号相关矩阵的最大特征值mu=rand()*(1/rho_max);%收敛因子0

7、lot(t,yn);grid;ylabel('幅值');xlabel('时间');title('it{自适应滤波器输出信号}');%绘制自适应滤波器输出信号,预期输出信号和两者的误差figureplot(t,yn,'b',t,dn,'g',t,dn-yn,'r');grid;legend('自适应滤波器输出','预期输出','误差');ylabel('幅值');xlabel('时间');title('it{自适应滤波器}');运行结果LMS算法DSP程序#include"math.h"#definePI3.14

8、15926#defineCoeff16//定义阶数16阶#definenum1024//点数intFIRLMS(int*nx,float*nh,intnError,intnCoeffNum);//LMS函数声明floath[Coeff],fU;//h单位脉冲响应fu---2U的值intx[num],y[num],z[num];//x输入信号,y输出,z误差信号main(){inti,out;out=0;fU=0.0005;for(i=0;i

9、;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。