📄 ch7example1.m
字号:
% ch7example1.m
clear;
s0=0; s1=5;
P0=0.7; % 信源概率
P1=1-P0;
A2_over_sigma2_dB=-5:0.5:20; % 仿真信噪比范围(dB)
A2_over_sigma2=10.^(A2_over_sigma2_dB./10);
sigma2=s1^2./A2_over_sigma2; % 噪声方差范围
N=1e5; % 信源序列长度
for k=1:length(sigma2)
X=(rand(1,N)>P0); % 信源发生
n=sqrt(sigma2(k)).*randn(1,N); % 噪声
xi=s1.*X+n; % 接收机判决输入
C_opt=(s0+s1)/2+sigma2(k)/(s1-s0)*log(P0./P1); % 计算最佳判决门限
y=(xi>C_opt); % 判决输出
err(k)=(sum(X-y~=0))./N; % 误码率统计
end
semilogy(A2_over_sigma2_dB,err,'o');hold on; % 仿真结果
for k=1:length(sigma2) % 理论计算
C_opt=(s0+s1)./2+sigma2(k)./(s1-s0).*log(P0./P1);% 计算最佳判决门限
Pe0=0.5-0.5*erf((C_opt-s0)/(sqrt(2*sigma2(k)))); % 发0出错率
Pe1=0.5+0.5*erf((C_opt-s1)/(sqrt(2*sigma2(k)))); % 发1出错率
Pe(k)=P0*Pe0+P1*Pe1; % 平均错误率
end
semilogy(A2_over_sigma2_dB,Pe); % 理论曲线
xlabel('A^2/\sigma^2 (dB)');
ylabel('错误率 P_e');
legend('仿真结果','理论曲线');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -