lmsxn.m
来自「自适应滤波算法LMS算法的性能调试部分的软件代码」· M 代码 · 共 47 行
M
47 行
clear;
ts=cputime;
clc;
N=2000;
% close all;
sum=zeros(1,N);
Ci=1000;
h = waitbar(0,'Please wait...');
for i=1:Ci
waitbar(i/Ci,h)
N=2000;
N1=1000;
Nd1=8;
Nd2=5;
Noise1=randn(1,N);
Noise3=randn(1,N);
x2=randn(1,N1);
x=Noise1+0.01*Noise3;
d=[zeros(1,Nd2) 0.8*x(1:end-Nd2)]+[zeros(1,Nd1) 0.4*x(1:end-Nd1)]+[0.01*x2(1:1000) zeros(1,1000)];%主回路信号
lenth=10; %滤波器阶次
% w=[0 0 0 0 0 0.7 0 0 0.3 0];
w=zeros(1,lenth); %系数初始化
u=0.01;
% u=1/(x*x'/N*lenth)*0.1; %步长
y=zeros(1,N);
e=ones(1,N);
%开始算法;
for n=lenth:N;
xx=x(n:-1:n-lenth+1);
y(n)=xx*w';
e(n)=d(n)-y(n);
w=w+2*u*xx*e(n);
ee(n)=e(n).^2;
end
sum=sum+10*log10(ee);
end
close(h)
h1=figure(1);
plot(sum/Ci,'r')
title('学习曲线')
% title('滤波器阶数对滤波效果影响')
xlabel('迭代次数Ci');
ylabel('误差/db');
axis([0,1000,-50,0]);
hold on
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?