?? lms.m
字號:
% 基本LMS algorithm
%***********************************************
% y(n)=SUMw(k)*x(n-k) k=0,1,2,...,order
% e(n)=d(n)-y(n)
% w(k+1)=w(k)+2*mu*e(n)*x(n) k=0,1,2,...,order
% where we use filter order=63,mu=0.02
%***********************************************
% simulate parameters
% isi=input('the chanel parameter(the typical vector:[_,1,_]):isi=');
% order=input('order of the adaptive equalizer(usually odd):order=');
% snr=input('snr(dB):snr=');
% len=input('the length of training sequence:len=');
% mu=input('the mu value(the typical value<0.1):mu=');
%***********************************************
%仿真時采用的參數(shù)如下:
order=63;
isi=[0.28,1,0.28];
snr=30;
len=3000;
mu=0.02;
%***********************************************
M=(order-1)/2;
N=len+length(isi)-1;
e=zeros(1,N);
error=e;
out=zeros(1,N);
number=0;
for i=1:100;
x=sign(rand(1,len)-0.5);
noise=randn(1,N)/10.^(snr/10);
y=conv(isi,x)+noise;
wk=zeros(1,order);
for n=order:N-M+1
y1=y(n+M-1:-1:n-M-1);
d1=wk*y1';
e(n)=x(n-2)-d1;
wk=wk+mu*e(n)*y1;
e(n)=e(n)^2;
e(n)=10*log10(abs(e(n)));
end
error=error+e;
end
error=error(order:N-M+1)/100;
for i=1:2950
for j=1:9
e(i)=e(i)+e(i+j);
end
e(i)=e(i)/10;
end
for i=2950:3000
e(i)=e(i-100);
end
n=1:1:3000;
e(n)=e(n)+n-n;
plot(n,e(n));
xlabel('迭代次數(shù)');
ylabel('均方誤差(dB)');
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -