資源簡介
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
評論
共有 條評論