16qam.m
来自「在matlab下输入guide命令后打开main_main.gig 实现卷积编码」· M 代码 · 共 30 行
M
30 行
%function [p]=qammoto(snr_in_dB)
N=1000;
d=1;
Eav=10*1^2;
snr=10^(snr_in_dB/10);
agam=sqrt(Eav/(8*snr));
M=16;
for i=1:N
temp=rand;
dsource(i)=1+floor(M*temp);
end;
mapping=[-3*d3*d;-d3*d;d3*d;3*d3*d;-3*dd;-dd;dd;3*dd;-3*d-d;-d-d;d-d;3*d-d;-3*d-3*d;-d-3*d;d-3*d;3*d-3*d];
for i=1:N,
qam_sig(i,:)=mapping(dsource(i),:);
end;
for i=1:N,
n=gngauss(sgma);
r(i,:)=qam_sig(i,:)+n;
end;
numoferr=0;
for i=1:N,
for j=1:M,
metrics(j)=(r(i,1)-mapping(j,1))^2+(r(i,2)-mapping(j,2))^2;
end;
[min_metric decis]=min(metrics);
if(decis~=dscource(i)),%出错加一
numoferr=numoferr+1;
end;
end;
p=numoferr/(N);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?