qam.m

来自「在高斯信道下」· M 代码 · 共 45 行

M
45
字号
function p=qam(snr)
echo on
N=10000;
M=16;
numerror=0;
sg=10^(snr/10);
sgma=sqrt(10/(8*sg));
for i=1:N,
    temp=rand;
    source(i)=1+floor(64*temp);
end;
b=5;
for j=0:3,
    b=b-2;
    a=-5;
  for i=1:4,
    a=a+2;
    map(i+4*j,1)=a;
    map(i+j*4,2)=b;
  end;
end;
for i=1:N,
    msig(i,:)=map(source(i),:);
end;
for i=1:N,
    [n(1),n(2)]=gngauss(sgma);
    msig(i,:)=msig(i,:)+n;  
end;

for x=1:N,
    for y=1:M,
    result(y)=(msig(x,1)-map(y,1))^2+(msig(x,2)-map(y,2))^2;
    end;
    [metic j]=min(result);
     desource=j;
     if (desource~=source(x)),
         numerror=numerror+1;
     end;
 end;
 p=numerror/(N);

    


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?