?? nmls.m
字號:
%lms
clear all
close all
hold off
sysorder=5;
N=1000;
inp=randn(N,1);
n=randn(N,1);
[b,a]=butter(2,0.25);
Gz=tf(b,a,-1);
h=[0.0976;0.2873;0.3360;0.2210;0.0964;];
y=lsim(Gz,inp);
n=n*std(y)/(10*std(n));
d=y+n;
totallength=size(d,1);
N=60;
w=zeros(sysorder,1);
for n=sysorder:N
u=inp(n:-1:n-sysorder+1);
y(n)=w'*u;
r(n)=u'*u;
e(n)=d(n)-y(n);
fai=0.0001;
if n<20
mu=0.32;
else
mu=0.15;
end
w=w+mu*u*e(n)/(r(n)+fai);
end
for n=N+1:totallength
u=inp(n:-1:n-sysorder+1);
y(n)=w'*u;
e(n)=d(n)-y(n);
end
hold on
plot(d)
plot(y,'r');
title('系統輸出');
xlabel('樣本')
ylabel('實際輸出')
figure
semilogy((abs(e)));
title('誤差曲線');
xlabel('樣本')
ylabel('誤差矢量')
figure
plot(h,'k+')
hold
plot(w,'r*')
legend('實際權矢量','估計權矢量')
title('比較實際和估計權矢量');
axis([0 6 0.05 0.35])
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -