DQPSK

1、QPSK的原理与概念

   在PSK(相位调制)中,四相调制是一种被常用的多进制调制方式。四相调制又被分为四相绝对移相调制(也成为四相绝对移相键控,记为4PSK)和四相相对移相调制(也称为四相相对移相键控,记为4DPSK)

 4PSK:将输入的二级制数据进行分组,每两个二进制数据为一组,然后根据其组合情况,用四种不同的载波相位去表征他们。其中每个双比特码元中的两个数据是按照格雷码来编写的。由于4PSK可以看作是两个正交的二相绝对移相调制的合成,所以4PSK也被称为QPSK

4DPSK(也称为DQPSK):在4PSK的基础上加上差分编码,即将双比特码元进行查分编码,然后进行相应的处理。

 

2、QPSK的实现

  DQPSK信号的产生有两种方式,调相法和相位选择法。

2.1 调相法

实现框图如下:

成型滤波器的作用:在DQPSK调制系统中,由于原始信号的带宽无限大,但90%的能量均集中在主瓣带宽内,因此,为提高发射端的功率利用率,降低噪声的影响,通常需要在调制之前对原始基带信号进行成形滤波,以滤除主瓣外的信号和噪声。

              

串并转换:将一比特的数据流转换为两比特的数据流

成形滤波:消除码间串扰,以及抑制主瓣带外频率分量功率的目的,通常会在平衡调制器之前增加一级成形滤波器。这里采用的是低通滤波器。

2.2 相位选择法

  四相载波发生器分别送出调相所需要的四种不同相位的载波, 安装串并转换器输出的不同双比特码元,选择输出相应相位的载波。这调制方式无法在数据调制前增加成形滤波器。只能依靠对已调信号进行带通滤波,实现降低主瓣带外功率的目的。达到降低码间串扰,达到滤除边带信号频谱的目的。

3. DQPSK的实现

总体框图如下:

                           

在QPSK的基础上添加了差分编码,来减小误码率。差分编码将绝对码转换为相对码。

4、解调部分

                         

低通滤波:滤除高频分量

环路滤波:环路滤波器用于衰减由输入信号噪声引起的快速变化的相位误差和平滑相位检测器泄露的高频分量,即滤波,

载波恢复:采用极性科斯塔斯环来实现,输入信号分别乘上同相和正交两路载波信号,载波信号的频率由环路滤波器的输出来控制。以下为载波恢复:

     

位定时采用锁相环位同步法来实现:

  位同步锁相环的基本原理:在接收端利用鉴相器比较码元和本地产生的位同步信号的相位,若两者相位不一致(超前或者滞后),鉴相器就产生误差信号去调整位同步信号的相位,直至获得准确的位同步信号为止。

 

 

  • 13
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DQPSK调制解调是数字通信领域中常用的一种调制解调方式,其原理比较简单,主要是将数据信号进行二进制差分编码,然后进行相位调制,以达到提高频谱利用率和抗噪性能的目的。下面介绍一下DQPSK调制解调的原理及matlab实现方法。 一、DQPSK调制原理 DQPSK调制的原理是将原始的数字信号进行二进制差分编码,然后将差分编码后的数据进行相位调制,最后输出连续的相位变化序列。 1. 二进制差分编码 二进制差分编码的原理是将相邻两个二进制数据进行异或运算,得到的结果作为差分编码后的数据。例如,对于一个二进制序列10110100,其差分编码序列为: 1 0 1 0 0 1 0 0 差分编码的目的是为了减小传输过程中的误码率,因为相邻的差分编码只有一位变化,所以即使出现了一些误码,也不会对整个数据序列造成太大的影响。 2. 相位调制 相位调制的原理是将差分编码后的数据映射到一个相位变化序列中。通常采用4个相位值来表示差分编码的4种可能情况,如下表所示: 差分编码 相位值 00 0 01 pi/2 11 pi 10 3*pi/2 根据上表,可以将差分编码序列10100100映射为相位变化序列: 0 pi/2 pi/2 pi 3*pi/2 pi/2 pi/2 pi 上述过程就是DQPSK调制的原理,将差分编码后的数据作为相位变化序列输出。 二、DQPSK解调原理 DQPSK解调的原理与调制原理相反,主要是将接收到的相位变化序列转换为差分编码序列,然后进行差分解码,得到原始的数字信号。 1. 相位差检测 相位差检测的原理是比较相邻两个相位值的差值,根据差值的正负来判断差分编码的值。具体实现方法是使用相位差检测器,将接收到的相位变化序列作为输入,输出差分编码序列。 2. 差分解码 差分解码的原理与差分编码相反,主要是将相邻两个差分编码进行异或运算,得到原始的数字信号。例如,对于差分编码序列10101001,其原始的数字信号序列为: 1 0 1 1 0 1 1 0 上述过程就是DQPSK解调的原理,将接收到的相位变化序列转换为原始的数字信号输出。 三、DQPSK调制解调matlab实现 下面给出DQPSK调制解调的matlab实现代码,其中,调制部分使用了matlab自带的comm.DifferentialEncoder和comm.QPSKModulator函数,解调部分使用了matlab自带的comm.QPSKDemodulator和comm.DifferentialDecoder函数。 调制部分代码: ```matlab % 生成随机数据 data = randi([0 1],100,1); % 差分编码 diff_data = diff_encode(data); % DQPSK调制 mod_data = dqpsk_mod(diff_data); % 绘制调制后的信号 scatterplot(mod_data); ``` 解调部分代码: ```matlab % 接收信号 rx_data = mod_data; % DQPSK解调 demod_data = dqpsk_demod(rx_data); % 差分解码 decode_data = diff_decode(demod_data); % 比较解码前后的数据是否一致 isequal(data,decode_data) ``` 其中,diff_encode、dqpsk_mod、dqpsk_demod和diff_decode四个函数分别实现了差分编码、DQPSK调制、DQPSK解调和差分解码的功能。 完整代码如下: ```matlab % 生成随机数据 data = randi([0 1],100,1); % 差分编码 function diff_data = diff_encode(data) diff_data = xor(data,[0;data(1:end-1)]); end % 差分解码 function data = diff_decode(diff_data) data = xor(diff_data,[0;diff_data(1:end-1)]); end % DQPSK调制 function mod_data = dqpsk_mod(diff_data) mod = comm.DifferentialEncoder; diff_data = logical(diff_data); diff_data = mod(diff_data); mod = comm.QPSKModulator; mod_data = mod(diff_data); end % DQPSK解调 function demod_data = dqpsk_demod(rx_data) demod = comm.QPSKDemodulator; demod_data = demod(rx_data); demod = comm.DifferentialDecoder; demod_data = demod(demod_data); end % 接收信号 rx_data = mod_data; % DQPSK解调 demod_data = dqpsk_demod(rx_data); % 差分解码 decode_data = diff_decode(demod_data); % 比较解码前后的数据是否一致 isequal(data,decode_data) ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值