⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cm_sm.m

📁 16QAM的MATLAB源程序
💻 M
字号:
function[p]=cm_sm(snr_in_dB)
N=10000;
d=1;
Eav=10*d^2;
snr=10*(snr_in_dB/10);
if snr==0
    delta=1/1000;
    snr=snr+delta;
end
sgma=sqrt(Eav/(8*snr));
M=16;

for i=1:N
    temp=rand;
    dsource(i)=1+floor(M*temp);
end

mapping=[-3*d  3*d;
         -d    3*d;
         d     3*d;
         3*d   3*d;
         -3*d  d;
         -d    d;
         d     d;
         3*d   d;
         -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(1) n(2)]=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~=dsource(i))
        numoferr=numoferr+1;
    end
end
p=numoferr/(N);
     

⌨️ 快捷键说明

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