【实例简介】
【实例截图】
【核心代码】
clear all
clc
N=5000;
M=16;
m=2000;
L=11;
n=500;
d=0.65;
SNR=25;
uc=10^-4;
ud=6*10^-5;
w=[0 0 0 0 0 1 0 0 0 0 0 ];
h=[0.005 0.009 -0.024 0.854 -0.218 0.049 -0.016 ];
mmse=zeros(1,N-L 1);
for j=1:m
a=randint(1,N,M);
s=qammod(a,M);
a1=abs(s).^4;
a2=abs(s).^2;
R=mean(a1./a2);
s1=filter(h,1,s);
x=awgn(s1,SNR,'measured');
for i=1:N-L 1
y=x(i L-1:-1:i);
ds(i)=w*conj(y');
e(i)=abs(ds(i))^2-R;
w=w-uc*e(i)*ds(i)*conj(y);
if (i>n) & (abs(ds(i)-x(i))
RD=abs(ds(i))^2;
e(i)=abs(ds(i))^2-RD;
w=w-ud*e(i)*ds(i)*conj(y);
end
mse(i)=e(i)^2;
end
mmse=mmse mse;
end
mmse=mmse/m;
plot([1:N-L 1],mmse)
xlabel('iteration numbers')
ylabel('MQAM CMA MMA mse')
hold on
scatterplot(s)
title('original signal');
grid on
hold on
scatterplot(x)
title('received signal');
grid on
hold on
scatterplot(ds)
title('CMA MMAdetected signal');
grid on
hold on