⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 101.m

📁 自适应算法中的LMS算法的例子
💻 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 + -