MATLAB通信系统建模与仿真

第四部分:数字基带传输

数字基带传输
在某些具有低通特性的有线信道中,特别是传输距离不太远的情况下,数字基带信号可以不用载波调制直接经行传输,称为数字基带传输。

例.用Matlab仿真二进制正交信号通过AWGN信道后的误比特率性能。发送信号如下:

S0(t)=1,0tTbS1(t)={1,0t<Tb/21,Tb/2tTb { S 0 ( t ) = 1 , 0 ≤ t ≤ T b S 1 ( t ) = { 1 , 0 ≤ t < T b / 2 − 1 , T b / 2 ≤ t ≤ T b

每个信号周期采样10次,使用相关接受机,绘制误比特率随Eb/N0的变化,其中Eb/N0的取值范围是0~12dB。

clear all
nsamp=10;                               %每个脉冲信号的抽样点数

s0=ones(1,nsamp);                       %基带脉冲信号
s1=[ones(1,nsamp/2) -ones(1,nsamp/2)];          

nsymbol=100000;                         %每种信噪比下的发送符号数

EbN0=0:12;                              %信噪比,E/N0
msg=randi([0,1],1,nsymbol);             %消息数据
s00=zeros(nsymbol,1);                   
s11=zeros(nsymbol,1);
indx=find(msg==0);                      %比特0在发送消息中的位置
s00(indx)=1;
s00=s00*s0;                             %比特0影射为发送波形s0
indx1=find(msg==1);                     %比特1在发送消息中的位置
s11(indx1)=1;                               
s11=s11*s1;                             %比特1映射为发送波形s1
s=s00+s11;                              %总的发送波形
s=s.';                                  %数据转置,方便接收端处理

for indx=1:length(EbN0)
    decmsg=zeros(1,nsymbol);
    r=awgn(s,EbN0(indx)-7);             %通过AWGN信道EbN0(indx)-7表示SNR
    r00=s0*r;                           %与s0相关
    r11=s1*r;                           %与s1相关
    indx1=find(r11>=r00);               
    decmsg(indx1)=1;                    %判决
    [err,ber(indx)]=biterr(msg,decmsg);
end
semilogy(EbN0,ber,'-go',EbN0,qfunc(sqrt(10.^(EbN0/10))));
title('二进制正交信号误比特率性能');
xlabel('EbN0');ylabel('误比特率pe');
legend('仿真结果','理论分析');

运行结果:
MATLAB通信系统建模与仿真_第1张图片
程序里Eb/N0与信噪比SNR之间存在一定的转换关系:

SNR=EbRb/(N02B) S N R = E b R b / ( N 0 2 B )

其中,Rb表示每秒传输的比特数,程序中为1,B为带宽,等于采样率为10。所以SNR转换为dB表示为SNR=Eb/N0-7。

你可能感兴趣的:(matlab)