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

📄 psk.m

📁 根据蒙特卡罗仿真原理
💻 M
字号:
%********************************************************
% psk.m
% 8PSK通信系统蒙特卡罗仿真              
% 在不同信噪比Eb/N0下发送10000符号的蒙特卡罗仿真,
% 其中Eb=Es/2是比特能量,图中给出了误码率和相应的理论误码率
% Programmed by Liu Dejian
% Dtat:2008-3-8
%********************************************************
clear
clc
echo on
 SNRindB1=0:2:10
% SNRindB1=0:2:20
 SNRindB2=0:0.1:10
% SNRindB2=0:0.1:20

for i=1:length(SNRindB1),
   [pb,ps]=cm_sm32(SNRindB1(i));                      % simulated bit and symbol error rates
   smld_bit_err_prb(i)=pb;
   smld_symbol_err_prb(i)=ps;
end;

for i=1:length(SNRindB2),
   SNR=exp(SNRindB2(i)*log(10)/10);                   % signal to noise ratio
   % 由SNRindB2(i)=10log(SNR)=10ln(SNR)/ln10得 SNRindB2(i)*ln(10)/10=ln(SNR)
   % 二边取以e为底的对数得:SNR=exp(SNRindB2(i)*log(10)/10)
   theo_symbol_err_prb(i)=2*Qfunct(sqrt(6*SNR)*sin(pi/8)); % theoretical symbol error rate
   theo_bit_err_prb(i)=2*Qfunct(sqrt(6*SNR)*sin(pi/8))/3; % theoretical bit error rate
   % 理论比特误码率Pb≈Pm/k=2Q[sqrt(2kEb/N0)*sin(pi/m)]/k,其中Pm=2Q[sqrt(2kEb/N0)*sin(pi/m)]为理论符号误码率
   % 对于8PSK则m=8,k=log2(m)=3代入上式得理论比特误码率theo_bit_err_prb(i)=2*Qfunct(sqrt(6*SNR)*sin(pi/8))/3;
 end;
% Plotting commands follow
semilogy(SNRindB1,smld_bit_err_prb,'*');
hold on
semilogy(SNRindB1,smld_symbol_err_prb,'O');
semilogy(SNRindB2,theo_bit_err_prb);
semilogy(SNRindB2,theo_symbol_err_prb,'r');
 axis([0,10,10^(-5),10^0]);
% axis([0,20,10^(-10),10^0]);
grid
xlabel('Eb/No in dB')
ylabel('error probability')
title('8PSK通信系统的蒙特卡洛仿真')
legend('仿真比特误码率','仿真符号误码率','理论比特误码率','理论符号误码率')
% gtext('(注:“—”理论比特误码率;“r—”理论符号误码率;“*”仿真比特误码率;“o”仿真符号误码率)')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -