1.理论

BPSK调制信号可以看做载波幅度和频率不变,相位由0和pi之间变换,即:

dk为信息数据序列,取值服从下述关系:

        PSK信号的产生方法有两种:调相法和相位选择法。调相法产生PSK信号,就是将调制基带数据直接与载波信号相乘;相位选择法产生PSK信号时,需预先把所需相位的载波准备好,然后根据基带信号的规律来选择相应的载波输出。

2.误码率

BPSK的误码率在不同的信道下,理论值不同。在高斯白噪声信道下,理论误码率为如下公式:

在衰减信道中,理论误码率为:

  ​​​理论误码率结果如下图所示:

ber_awgn=1:30;
ber_fading=1:30;
for i=1:30
    ebn0=i;
    ber_awgn(i)=0.5*erfc(sqrt(10^(ebn0/10)));
    ber_fading(i)=0.5*(1-1/sqrt(1+1/10^(ebn0/10)));   
end
semilogy(ber_awgn(1:10));
hold on
semilogy(ber_fading);
hold off

 3.仿真环路

在整个通信系统中,整体处理流程应该如下所示:

a.生成随机码

可以使用rand函数:data=rand(1,nd)>0.5;

或者使用data  = randi(2,1,nd*m1)-1;

b.转换为01并插值

data1=data.*2-1;

    [data2] = oversamp( data1, nd , IPOINT) ;

插值后的频谱如下所示:

c.成形滤波

data3 = conv(data2,xh);

conv表示的是卷积

滤波后的频谱如下所示:

D. 高斯白噪声信道

    spow=sum(data3.*data3)/nd;

    attn=0.5*spow*sr/br*10.^(-ebn0/10);

    attn=sqrt(attn);

inoise=randn(1,length(data3)).*attn;  % randn: built in function

    data4=data3+inoise;

E.滤波和抽取

data5=conv(data4,xh2);  % conv: built in function

sampl=irfn*IPOINT+1;

data6 = data5(sampl:8:8*nd+sampl-1);

F.判决

demodata=data6 > 0;

G:计算误码

noe2=sum(abs(data-demodata));  % sum: built in function

    nod2=length(data);  % length: built in function

    noe=noe+noe2;

    nod=nod+nod2;

最后仿真结果如下所示:

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐