📄 cm_sm_qam32_ray_1.m
字号:
% 符号错误概率 R=【1 sqrt(21/5) 21/5】
function [p]=cm_sm_qam32_ray(snr_in_db,R)
N=10000;
M=32;k=5;
snr=10^(snr_in_db/10);
dI=1;
dQ=R*dI;
m=sqrt(-1);
Eav=21*dI^2+5*dQ^2;
sgma=sqrt(Eav/(2*snr));
%generation of the data source follows
temp=rand(1,N);
dsource=1+floor(M.*temp);
%
mapping=[-7*dI+m*3*dQ;-5*dI+m*3*dQ;-3*dI+m*3*dQ;-dI+m*3*dQ;
dI+m*3*dQ;3*dI+m*3*dQ;5*dI+m*3*dQ;7*dI+m*3*dQ;
-7*dI+m*dQ;-5*dI+m*dQ;-3*dI+m*dQ;-dI+m*dQ;
dI+m*dQ;3*dI+m*dQ;5*dI+m*dQ;7*dI+m*dQ;
-7*dI-m*dQ;-5*dI-m*dQ;-3*dI-m*dQ;-dI-m*dQ;
dI-m*dQ;3*dI-m*dQ;5*dI-m*dQ;7*dI-m*dQ;
-7*dI-m*3*dQ;-5*dI-m*3*dQ;-3*dI-m*3*dQ;-dI-m*3*dQ;
dI-m*3*dQ;3*dI-m*3*dQ;5*dI-m*3*dQ;7*dI-m*3*dQ];
for i=1:N
qam_mod(i,:)=mapping(dsource(i));
end
%
h=(normrnd(0,1,N,1)+m*normrnd(0,1,N,1))./sqrt(2);
n=normrnd(0,sgma,N,1)+m*normrnd(0,sgma,N,1);
r=h.*qam_mod+n;
%
numoferr=0;
for i=1:N
for j=1:M
metrics(j)=(abs(r(i)-h(i)*mapping(j)))^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 + -