📄 snr2pb.m
字号:
function p=snr2pb(snr_in_db)
N=10000;
eb=1;
snr=10^(snr_in_db/10);
sgma=sqrt(eb/(2*snr));
phi=0;
%生成输入数据
for i=1:N,
temp=rand(i);
if(temp<0.5),
dsource(i)=0;
else
dsource(i)=1;
end
end;
%检测并计算误码率
numoerr=0;
for i=1:N,
%解调输出
if (dsource(i)==0),
r0c=sqrt(eb)*cos(phi)+gausamp(sgma);
r0s=sqrt(eb)*sin(phi)+gausamp(sgma);
r1c=gausamp(sgma);
r1s=gausamp(sgma);
else
r0c=gausamp(sgma);
r0s=gausamp(sgma);
r1c=sqrt(eb)*cos(phi)+gausamp(sgma);
r1s=sqrt(eb)*sin(phi)+gausamp(sgma);
end;
%平方率检测输出
r0=roc^2+r0s^2;
r1=r1c^2+r1s^2;
%判决
if (r0>r1),
decis=0;
else
decis=1;
end;
%如果检测结果不正确,无码计算器加1
if (decis~=dsource(i)),
numoferr=numoferr+1;
end;
end;
p=numoferr/(N);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -