📄 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 + -