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

📄 cm_sm41.m

📁 16QAM
💻 M
字号:
function[p]=cm_sm41(snr_in_dB)
%[p]=cm_sm41(snr_in_dB)
%        CM_SM41求出16 QAM以dB为单位的给定信噪比的
%        符号误码率
N=10000;
d=1;                       %符号间的最小距离
Eav=10*d^2;                %每符号能量
snr=10^(snr_in_dB/10);     %信噪比
sgma=sqrt(Eav/(8*snr));    %噪声标准方差
M=16;
%数据源产生如下
for i=1:N,
	temp=rand;                    %在区间(0,1 )间的一个均匀随机变量
    dsource(i)=1+floor(M*temp);   %在1到16间的一个数,均匀的
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 + -