QPSK调制

QPSK 四相相移键控就是四相相移调制.和BPSK调制差不多,只不过它有4种相位.将360度分成4分.各个相位角相差90度所以又称正交相移调制.常用的初始相位角可以是0或者45度. 一般QPSK可以看成正交的两路传播,一路I支路,一路为Q支路.正交相移调制(QPSK)特点:调制效率高,传输的频带利用率高,要求传送途径的信噪比低.如果不懂或者需要相信了解的话可以看通信原理书,都有的.QDPSK的全称应该是多进制差分相移键控(Quadrature Differential Phase Shift Keying)I-Q的调变信号可由同相载波和90度相移的载波相加合成,在电路上下直接牵涩到载波相位的改变,所以比较好实现.其次,通常I-Q图上只有几个固定点,简单的数字电路就足以腾任编码的工作。而且不同调变技术的差异只在于I-Q图上点的分布不同而已,所以只要改变I-Q编码器,利用同样的调变器,便可得到不同的调变结果。 I-Q解调变的过程也很容易,只要取得和发射机相同的载波信号,解调器的方块图基本上只是调变器的反向而已。从硬件的开点而言,调变器和解调器的方块图上,没有会因为I-Q值的不同(不同的I-Q调变技术)而必须改变的部份,所以这两个方块图可以应用在所有的I-Q调变技术中。 BPSK(Bi-Phase Shiftkeying)为最简单的数字元题调变方式,如图6-5。当基频数据为1时,载波的振幅不变,相位也不改变.当基频数据为0时,载波的振幅还是不变,但相位改变180度.如果数据1和0交互传送,载波相位就会有180度的大转换,造成信号不连续。所以BPSK调变后的信号频宽较大.BPSK的I-Q图或星座图(constellation diagram)上只有两个点,分别在原点的两侧,两点和原点的距离相同,但是相位差180度。 QPSK(Quadrature PhaseKeying)在星座图上有四点,以原点为中心,构成一个正方形,如图6-6。星座图上四点到原点的距离相同,所以载波的振幅没有改变,只改变了相位。由于星座图上只有四个点,即有四种可能调变的状况,每种状况可用两个数据位来代表。 定义I-Q图上的每一个点为一个符号(symbol),图上点出现的频率即为符号传输速率(symbol rote)或是鲍率(boudrate),也就是实际载波改变的速率。在QPSK中,每个符号代表两个数据位,所以数据传输速率(bitrate)为符号传输速率的两倍。反过来说,符号传输速率为数据传输速率的一半。如果已知一个符号代表几个数据位,那么符号传输速率即为数据传输速率除以一个符号所代表的数据位数。 调变后信号的频宽和符号传输速率成正比,而QPSK将载波直接作180度变化的机会相对比BPSK少,在同样的符号传输速率下,QPSK所占的频宽会比较小一点,但实际上数据传输速率却是BPSK的两倍。  复基带信号的虚(Q)实(I)部即为IQ两路信号。之所以如此称呼,是由于采用正交调制方式调制到射频 上再发送--即I路乘以载频的正弦,Q路乘以载频的余弦(pi/2相差),然后相加发送出去。
### QPSK 调制概述 正交相移键控 (Quadrature Phase Shift Keying, QPSK) 是一种常见的数字调制技术,在通信系统中广泛使用。它通过利用两个相互垂直的载波信号来传输数据,从而提高了频谱效率[^1]。 QPSK 的基本原理是将输入的数据流分为两路独立的比特流(I 和 Q),每一路分别用于控制同相分量和正交分量的幅度。这两个分量随后被叠加到同一载波频率上并发送出去。接收端则通过对这两路信号解码恢复原始数据[^2]。 以下是基于 Python 实现的一个简单 QPSK 调制器: ```python import numpy as np import matplotlib.pyplot as plt def qpsk_modulate(bits): """ 对二进制序列执行 QPSK 调制。 参数: bits: 输入的二进制位列表 返回: modulated_signal: 复数形式的已调制信号 """ symbols = np.array([bits[i:i+2] for i in range(0, len(bits), 2)]) symbol_map = { (0, 0): complex(-1, -1), (0, 1): complex(-1, 1), (1, 0): complex(1, -1), (1, 1): complex(1, 1) } mapped_symbols = np.array([symbol_map[tuple(symbol)] / np.sqrt(2) for symbol in symbols]) t = np.arange(len(mapped_symbols)) carrier_frequency = 10 modulated_signal = mapped_symbols * np.exp(1j * 2 * np.pi * carrier_frequency * t) return modulated_signal # 测试函数 input_bits = [int(bit) for bit in '0110'] modulated_output = qpsk_modulate(input_bits) plt.plot(np.real(modulated_output), label="Real part", marker='o') plt.plot(np.imag(modulated_output), label="Imaginary part", marker='x') plt.legend() plt.title("QPSK Modulated Signal") plt.xlabel("Time Index") plt.ylabel("Amplitude") plt.grid(True) plt.show() ``` 上述代码展示了如何创建一个简单的 QPSK 调制器,并绘制其输出信号的实部与虚部分量图象。此程序可以作为学习工具帮助理解 QPSK 原理及其实际应用中的表现。 ### 层次化分解在通信协议设计中的作用 层次化的概念对于解决复杂的整体通讯问题是至关重要的。通过把整个过程划分为多个更易处理的小问题,每一层专注于特定功能,使得系统的开发维护更加便捷高效。这种设计理念同样适用于像 QPSK 这样的具体物理层机制的设计当中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值