📅  最后修改于: 2023-12-03 14:55:53.720000             🧑  作者: Mango
正交相移键控(Quadrature Phase Shift Keying,QPSK)是数字通信中频移键控(FSK)的改进版本,它允许在单位时间内传输更多的比特数,同时保持相同的带宽。正交相移键控是最常见的相移键控(PSK)方案之一。
正交相移键控使用两个正弦波信号,分别称为正弦(I)和余弦(Q)信号,用于表示比特流中每个比特的值。它使用恒定的幅度,但是改变不同的位相(相位角)。每个输入比特集合可以由一个离散值集合(离散相位)表示,这些值可以视为相位角的离散样本。
同样,QPSK可以视为一种类型的调制,其中发送方同时调制两个正交载波,分别称为I和Q。这样做可以在单位带宽内传输比较多的比特,因为每个载波可以携带多个比特。
以下是使用Python生成QPSK信号的示例代码。
import numpy as np
M = 4 # QPSK模式4
n = np.arange(0, 100) # 生成100个符号
# 生成随机位流
bits = np.random.randint(0, M, len(n))
# 符号映射
mapping = {
0: (1 + 1j) / np.sqrt(2),
1: (-1 + 1j) / np.sqrt(2),
2: (-1 - 1j) / np.sqrt(2),
3: (1 - 1j) / np.sqrt(2),
}
# 复数映射
symbols = np.array([mapping[b] for b in bits])
# 生成QPSK信号
signal = np.real(symbols * np.exp(1j * np.pi / 4))
# 画图
import matplotlib.pyplot as plt
plt.plot(signal)
plt.title('QPSK Signal')
plt.show()
以上代码利用Python的NumPy库实现了QPSK调制的信号生成,并且用Matplotlib可视化了生成的信号。