资源简介

LMS均衡算法的matlab仿真,设置好数据:训练序列和传输数据,首先使用随机的训练序列进行训练达到均衡收敛,长度为2000,然后使用得到的抽头系数进行均衡,画出均衡前后的星座图比较,画出误差曲线。对LMS理解起到很好的作用。

资源截图

代码片段和文件信息

%% 先训练,后不变均衡器抽头系数
close all;clear;clc;
%% LMS均衡 
N=4000;
len_fir=7;
len_tra=2000;
u=0.002;
tra_seq=randi([01]1len_tra);
data=randi([01]1N-len_tra);
s=[tra_seqdata];
ss=s;
ch=[1 -0.3 0.2 -0.1 0.02];
%ch=[0.2 -0.3 1 -0.3 0.2];
%ch=[0 0 1 0 0];
%ch=[0.8264 -0.1653 0.8512 0.1636 0.81];
s=conv(chs);
sss=s;
s=s(length(ch):N+length(ch)-1);
s=-1*(1-2*s);
%xn=s;
xn=awgn(s20‘measured‘);%noise

y=zeros(1N);
y(1:len_fir)=xn(1:len_fir);
w=zeros(1len_fir);%抽头系数
e=zeros(1N);
 
%% 训练
M=len_tra;
for i=(len_fir+1):M
    
   XN=xn((i-len_fir+1):(i));
   
   %y(i)=w*XN‘;
   y(i)=dot(wXN);
   
   e(i)=ss(i)-y(i);
   
   %w=w+2*u*e(i)*XN;
   %w=w+2*u*sign(e(i))*XN;
   w=w+2*u*e(i)*sign(XN);
   %w=w+2*u*sign(e(i))*sign(XN);
   %a=1;b=0.001;w=w+2*u*e(i)*XN;u

评论

共有 条评论