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

📄 lms.m

📁 LMS自适应算法
💻 M
字号:
clear all;close all;% LMS算法验证ChouTou = 11;              %抽头AveTime = 500;             %平均次数      N = 1008;                % 输入噪声序列长度与迭代次数有关mu = 0.075;% 冲击函数n = [1:3]';w = [2.9,3.1,3.3,3.5]';Hn = zeros(length(n),length(w));for i = 1:length(w)    Hn(:,i)= 0.5*(1+cos(2*pi*(n-2)/w(i)));endOverLap = N+length(n)-ChouTou;W1 = zeros(ChouTou,(OverLap+1));%权列向量 初始状态多算一次W2 = zeros(ChouTou,(OverLap+1));%权列向量 初始状态多算一次W3 = zeros(ChouTou,(OverLap+1));%权列向量 初始状态多算一次W4 = zeros(ChouTou,(OverLap+1));%权列向量 初始状态多算一次kesai1=zeros(OverLap,1);kesai2=zeros(OverLap,1);kesai3=zeros(OverLap,1);kesai4=zeros(OverLap,1);Delay = 7;for i = 1:length(w)    for AT = 1:AveTime        P = 2000;        Noise1 = randsrc(P,1);    % 产生波努力噪声序列        W = zeros(ChouTou,(OverLap+1));        kesai = zeros(OverLap,1);        X1n = Noise1(100:(100+N-1));        Dn = Noise1((100+ChouTou-Delay):(100+OverLap+ChouTou-Delay));        X2n = conv(X1n,Hn(:,i))+sqrt(0.001)*randn(N+length(Hn(:,i))-1,1);                for k = 1:OverLap  % length(X2n)-ChouTou+1次迭代            X = flipud(X2n(k:(k+ChouTou-1)));            kesai(k) = Dn(k)-X'*W(:,k);            W(:,k+1) = W(:,k)+mu*kesai(k)*X;        end                if i == 1            W1 = W1+W;            kesai1 = kesai.^2+kesai1;        end        if i == 2;            W2 = W2+W;            kesai2 = kesai.^2+kesai2;        end        if i == 3            W3 = W3+W;            kesai3 = kesai.^2+kesai3;        end        if i == 4;            W4 = W4+W;            kesai4 = kesai.^2+kesai4;        end    endendfigure(1)subplot(4,1,1);stem(W1(:,OverLap+1)/AveTime);ylabel('权值(w=2.9)','Fontsize',12),title('权系数解','Fontsize',14),subplot(4,1,2);stem(W2(:,OverLap+1)/AveTime);ylabel('权值(w=3.1)','Fontsize',12),subplot(4,1,3);stem(W3(:,OverLap+1)/AveTime);ylabel('权值(w=3.3)','Fontsize',12),subplot(4,1,4);stem(W4(:,OverLap+1)/AveTime);xlabel('k','Fontsize',12),ylabel('权值(w=3.5)','Fontsize',12),         figure(2) semilogy(1:length(kesai1),kesai1/500); hold on semilogy(1:length(kesai2),kesai2/500); hold on semilogy(1:length(kesai3),kesai3/500); hold on semilogy(1:length(kesai4),kesai4/500); xlabel('Number of iterations'); ylabel('Ensemble-average square error'); title('自适应信道均衡的LMS算法(500次平均)');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -