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

📄 ss_pe94.m

📁 matlab编写的有关直接序列扩频的代码
💻 M
字号:
function[p]=ss_Pe94(snr_in_dB,Lc,A,w0)
%[p]=ss_Pe94(snr_in_dB,Lc,A,w0)
%SS_PE92得到给定snr_in_dB,Lc,A和w0运算得出的误码率
snr=10^(snr_in_dB/10);
sgma=1;                           %噪声的标准方差设置为固定值
Eb=2*sgma^2*snr;   %达到设定信噪比所需的信号幅度
E_chip=Eb/Lc;%每码片的能量
N=10000;%传送的比特数目
%为减少该程序的运算时间,数据的产生,噪声,干扰,误码和差错计算都一起执行
%这样做有助于超长运算矢量的计算
num_of_err=0;
for i=1:N,
    %产生下一数据比特
    temp=rand;
    if(temp<0.5),
        data=-1;
    else
        data=1;
    end;
    %将其重复Lc次
    for j=1:Lc,
        repeated_data(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;
    %方差为sgma^2的高斯白噪声
    noise=sgma*randn(1,Lc);
    %干扰
    n=(i-1)*Lc+1:i*Lc;
    interference=A*sin(w0*n);
    %接收信号
    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;
    %I如果存在传输中的错误,计数器累加操作
    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 + -