天天看点

BPSK调制解调matlab仿真

1.理论

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

BPSK调制解调matlab仿真

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

BPSK调制解调matlab仿真

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

2.误码率

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

BPSK调制解调matlab仿真

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

BPSK调制解调matlab仿真

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

BPSK调制解调matlab仿真
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.仿真环路

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

BPSK调制解调matlab仿真

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) ;

插值后的频谱如下所示:

BPSK调制解调matlab仿真

c.成形滤波

data3 = conv(data2,xh);

conv表示的是卷积

滤波后的频谱如下所示:

BPSK调制解调matlab仿真

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;

最后仿真结果如下所示:

BPSK调制解调matlab仿真

继续阅读