【MATLAB源码-第9期】基于matlab的DQPSK的误码率BER和误符号率SER仿真。

122 篇文章 7 订阅
53 篇文章 0 订阅

1.算法描述

DQPSK信号的解调与2DPSK信号的解调类似,也有两种方法,分别是极性比较法和相位比较法
极性比较法。其原理方框图如下图所示。由于DQPSK信号可以看做是两路2DPSK信号的合成,解
调时也可以分别按两路2DPSK信号解调,因此在解调过程中用两路相干载波去解调,可以很容易
分离出这两路正交的2DPSK信号。经低通滤波和抽样判决后恢复出相对相对码,再经码反变换器
变换成绝对码,从而恢复出发送的二进制信息
相位比较法。其原理方框图如下图所示。用这种方法解调时不需要专门的相干载波,只需由收到的
信号时延一个码元间隔T,然后与信号本身相乘。相乘起着相位比较的作用,相乘结果反映了前后
码元的相位差,经低通滤波后在抽样判决,即可直接恢复出原始数字信息,故解调器中不需要码反
变换器。
DQPSK是差分QPSK的缩写,可以解决QPSK的相位模糊的问题。DQPSK就是在QPSK的基础上增加了一个差分编译码。DQPSK是利用前后相邻码元的载波相对变化传递数字信息,因此,DQPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信息符号。DQPSK可以采用非相干解调中的差分解调。

1.差分编码

差分编码又称为增量编码,在算法上表现为异或运算

差分编码的实现

 差分译码的实现

 2、DQPSK调制和解调

 

2.仿真结果演示

 

3.关键代码展示

%I路Q路调制
I_data=zeros(1,N/2);
Q_data=zeros(1,N/2);
I_data(1,:)=data(1:2:end);
Q_data(1,:)=data(2:2:end);
data_pa=[I_data;Q_data];
I_data_mod=zeros(N/2+1,2);
Q_data_mod=zeros(N/2+1,2);

%差分编码
I_data_diff=zeros(1,(1+N/2));
Q_data_diff=zeros(1,(1+N/2));
for k=1:N/2
    if (I_data_diff(k)==I_data(k))
        I_data_diff(k+1)=0;
    else
        I_data_diff(k+1)=1;
    end
    
    if (Q_data_diff(k)==Q_data(k))
        Q_data_diff(k+1)=0;
    else
        Q_data_diff(k+1)=1;
    end
end

%符号映射
for k=1:N/2+1
    if (I_data_diff(k)==1 && Q_data_diff(k)==1)
        data_mod(k,:)=[1 1];
    elseif (I_data_diff(k)==1 && Q_data_diff(k)==0)
        data_mod(k,:)=[1 -1];
    elseif (I_data_diff(k)==0 && Q_data_diff(k)==0)
        data_mod(k,:)=[-1 -1];
    else
        data_mod(k,:)=[-1 1];
    end
end

4.MATLAB源码获取

v

点击下方名片

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值