i writed a code for adaptive channel equalizer with LMS algorithm but i donot recieve a desire answer for learning curve . i want to find problem of program . input signal of channel is a 16-QAM .

2 views (last 30 days)
iterate=200;
N=1000;
M=8;
mu=0.01;
ms=zeros(N,1);
p=[0.1483;0.2595;-0.0318;-0.1536;-0.2118;0.1059;0.5295;0.7314];
for k=1:iterate
j = sqrt(-1);
x = sign(randn(N,1)).*(2+sign(randn(N,1)))+ j*sign(randn(N,1)).*(2+sign(randn(N,1)));
v=sqrt(0.001)*randn(N,1);
d=filter(p,1,x)+v;
u=d(1:N);
w=zeros(M,1);
e=zeros(N,1);
y=zeros(N,1);
uvect=zeros(M,1);
for i=1:N
uvect=[u(i);uvect(1:M-1)];
y(i)=w'*uvect;
e(i)=x(i)-y(i);
w=(w+mu*uvect*conj(e(i)));
end
ms=ms+abs(e.*e);
end
mse1=ms/iterate;
semilogy(mse1);
ylabel('MSE');
xlabel('iteration number');
title('learning curve LMS');

Answers (1)

hadi zavi
hadi zavi on 29 Jun 2015
can anybody help me?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!