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 .
Afficher commentaires plus anciens
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');
Réponses (1)
hadi zavi
le 29 Juin 2015
0 votes
Catégories
En savoir plus sur Adaptive Filters dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!