📄 cm_sm41.m
字号:
function [p]=cm_sm41(snr_in_dB)
% This function finds the probability of error for the given value of
% snr_in_dB, SNR in dB
N=20000;
d=1; %min. distance between symbols
Eav=10*d^2; % energy per symbol
snr=10^(snr_in_dB/10); % SNR per bit (given)
sgma=sqrt(Eav/(8*snr)); % noise variance
M=16;
% generation of the data source
for i=1:N
temp=rand;
dsource(i)=1+floor(M*temp);
end
% mapping to the signal constellation
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
% Received signal
for i=1:N
[n(1) n(2)]=gngauss(sgma);
r(i,:)=qam_sig(i,:)+n;
end
scatterplot(r);
%detection and error probability calculation
numoferr=0;
for i=1:N
%metric computation
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 + -