📄 lmsxn.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -