📄 dsssker.m
字号:
function [p]=ss_Pc94(snr_in_dB,Lc,A,w0)
%计算在当前信噪比,码片数,干扰正弦幅度,频率下的误码率,不用产生pn序列
% snr_in_dB=10;
% Lc=20;%码片数
% A=3;
% w0=1;
snr=10^(snr_in_dB/10);
sgma=1; %噪声的标准差
Eb=2*sgma^2*snr;%根据信噪比,噪声能量,求出信号能量,且 N0/2=sgma^2
E_chip=Eb/Lc;%每个码元能量
N=10000;
num_of_err=0;%错误数计数器
for i=1:N
%生成下一个bit
temp=rand;
if (temp<.5)
data=-1;
else
data=1;
end
%重复Lc次,
for j=1:Lc
repeated_data(1,j)=data;
end;
%生成pn序列
for j=1:Lc
temp=rand;
if(temp<0.5)
pn_seq(j)=-1;
else
pn_seq(j)=1;
end
end;
%得到传输信号
trans_sig=sqrt(E_chip)*repeated_data.*pn_seq;%假设码片间隔Tc=1
%AWGN的方差为sgma^2
noise=sgma*randn(1,Lc);
%干扰
n=(i-1)*Lc+1:i*Lc;
interference=A*sin(w0*n);%CW干扰为1*Lc的向量
%接收信号
rec_sig=trans_sig+noise+interference;
%从接收信号中判断信号
temp=rec_sig.*pn_seq;
decision_variable=sum(temp);
%作出判决,采用硬判决
if(decision_variable<0);
decision=-1;
else decision=1;
end
%如果判决错误者计数器加1
if (decision~=data)
num_of_err=num_of_err+1;
end;
end
%得到错误概率
p=num_of_err/N;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -