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

📄 cm_sm41.m

📁 功能如名称主要就是介绍蒙特卡罗方法的使用
💻 M
字号:
function[p]=cm_sm41(snr_in_db)
%[p]=cm_sm41(snr_in_db)
% 求出以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 + -