📄 101.m
字号:
L= 2; %取定权的个数
k =500; %设置迭代次数
x0 = sin(pi*[1:k]/8); %原始输入信号
r0 = 0.1*rand(1,k); %功率为0。01的随机信号
x=x0+r0; %实际输入信号
d= 2*cos(pi*[1:k]/8); %参考输入信号
u1 = 0.1;
y1 = zeros(1,k);
e1 = zeros(1,k);
h1= zeros(1,L); %权从(0,0)开始
w0 = zeros(1,k);
w1 = zeros(1,k);
for n = L:k
x1 = x(n:-1:n-L+1);
y1(n) = h1* x1';
e1(n) = d(n) - y1(n);
h1 = h1 + u1* e1(n) * x1;
w0(n) = h1(1);
w1(n) = h1(2);
end
u2=0.05
y2= zeros(1,k);
e2= zeros(1,k);
h2 = [4,-10]; %权从(-4,10)开始
w3 = zeros(1,k);
w4 = zeros(1,k);
for n = L:k
x2 = x(n:-1:n-L+1);
y2(n) = h2 * x2';
e2(n) = d(n) - y2(n);
h2 = h2 + u2 *e2(n) * x2;
w2(n) = h2(1);
w3(n) = h2(2);
end
e3 = e1.*e1; %用e*e代替E[e*e]
%---------------------------------------------
for p = 1:99
E(p)=sum(e3(5*(p-1)+1:5*(p+1)))/10 ; %取平均
end
figure(1)
plot(E) %画学习曲线
xlabel('平滑取平均后得到的99点')
ylabel('均方误差')
title('学习曲线(learning curve)');
%-------------------画等高线
figure(2)
syms w4 w5
eps=(0.5+0.01)*(w4^2+w5^2)+w4*w5*cos(pi/8)+2*w4*sin(pi/8)+2;
ezcontour(eps,[,-2,8,-10,0],80);
hold on %在同一幅图中画
plot(w0,w1) %上轨迹
plot(w2,w3) %下轨迹
hold off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -