📄 pjh3.m
字号:
%LMS algorithm
close all;
clear all;
N1=1000; %总点数
N2=512; %采样点数
K=100; %循环次数
w0=zeros(1,2);
J_N2=0;
sum=zeros(1,N2); %for learning curve
uu=0.005; %parameter in one case
a1=-1.595;
a2=0.95;
var_v=0.0332;
y1=1.818;
y2=0.182;
%get the input data:u(n),n=1,2,...,N2
for nn=1:K %循环K=100次
x=zeros(1,N1);
u=zeros(1,N2);
V=sqrt(var_v)*randn(1,N1);
for n=3:N1
x(n)=-a1*x(n-1)-a2*x(n-2)+V(n);%get the input data:u(n),n=1,2,...,N2
end
u=x(N1-N2+1:N1); %选取后面N2个点
clear x V;
w1=zeros(1,N2); %初始化w1,w2,e
w2=zeros(1,N2);
e=zeros(1,N2);
e(1)=u(1); %对e(1),e(2)初始化
e(2)=u(2);
w1(3)=uu*u(1)*u(2); %how??
for m=3:N2
e(m)=u(m)-conj(w1(m))*u(m-1)-conj(w2(m))*u(m-2);
w1(m+1)=w1(m)+uu*conj(e(m))*u(m-1);
w2(m+1)=w2(m)+uu*conj(e(m))*u(m-2);
end
sum=sum+abs(e).^2;
J_N2=J_N2+abs(e(N2))^2;
w0=w0+[w1(N2),w2(N2)];
end
sum=sum./K; %学习曲线
w0=w0./K %估计权向量
J_N2=J_N2/K; %均方误差
Jex_N2=J_N2-var_v %剩余均方误差
M=uu*(y1+y2)/(2-uu*(y1+y2))
ex_jinfi=M*var_v %what??
est_M=Jex_N2/var_v %失调
z=1:N2;
plot(z,sum);
grid on;
title('learning curve');
xlabel('n');
ylabel('估计均方误差');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -