您的位置:首页 > 其它

蒙特卡罗仿真双极性数字基带系统在…

2015-04-28 16:37 190 查看
主程序:

%计算蒙特卡洛仿真误码率

SNRindB1=0:1:12%信噪比数组(单位dB),用于蒙特卡洛仿真
SNRindB2=0:0.01:12;%同上,用于误码率理论计算


% 求蒙特卡洛计算对应不同初始信噪比的误码率
for
i=1:length(SNRindB1)  


 smld_err_prb(i)=exa0308_Fun_singlePe(SNRindB1(i));

end


%作误码率的对数图
semilogy(SNRindB1,smld_err_prb,'r*');


%计算理论误码率
for i=1:length(SNRindB2)

   
SNR=10^(SNRindB2(i)/10);%把dB值转换为倍数
   
theo_err_prb(i)=(1/2)*erfc(sqrt(SNR/4));

end

hold on

semilogy(SNRindB2,theo_err_prb);

grid on


子函数:

function
[p]=exa038_Fun_singlePe(snr_in_dB)

E=1;

SNR=10^(snr_in_dB/10);

sgma=E/sqrt(2*SNR);%计算理论方差
N=10000;

disource=(sign(rand(1,N)-0.5)+1)/2;

numoferr=0;

for i=1:length(disource)

    if
disource(i)==1

       
r=E+randn*sgma;%对应接收信号
   
else

       
r=0+randn*sgma;

    end

   
if(r>0.5*E)%判决门限为A/2
       
decis=1;

    else

       
decis=0;

    end

   
if(decis~=disource(i))

       
numoferr=numoferr+1;

    end

end

p=numoferr/N;






echon on
作用:把m文件的命令一行一行回显在命令窗口观察执行效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: