?? cm_sm_qam32_ray_1.m
字號:
% 符號錯(cuò)誤概率 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;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -