📄 err1.m
字号:
function [p]=err1(rho_in_db)
rho=10^(rho_in_db/10);
Eb=rho; %energy per bit
if (rho>2),
alpha=2/rho;
else
alpha=1;
end;
sgma=sqrt(1/(2*alpha)); %noise standard deviation
N=10000;
for i=1:N,
temp=rand;
if (temp<0.5)
data(i)=1;
else
data(i)=0;
end;
end;
for i=1:N,
if (data(i)==0),
r1c(i)=sqrt(Eb);
r1s(i)=0;
r2c(i)=0;
r2s(i)=0;
else
r1c(i)=0;
r1s(i)=0;
r2c(i)=sqrt(Eb);
r2s(i)=0;
end;
if (rand<alpha), %接收到的信号叠加了噪声的概率为alpha
r1c(i)=r1c(i)+gngauss(sgma);
r1s(i)=r1s(i)+gngauss(sgma);
r2c(i)=r2c(i)+gngauss(sgma);
r2s(i)=r1s(i)+gngauss(sgma);
end;
end;
num_of_err=0;
for i=1:N,
r1=r1c(i)^2+r1s(i)^2;
r2=r2c(i)^2+r2s(i)^2;
if (r1>r2),
decis=0;
else
decis=1;
end;
if (decis~=data(i)),
num_of_err=num_of_err+1;
end;
end;
p=num_of_err/N
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -