写一个python QPSK调制解调
时间: 2023-02-14 14:29:15 浏览: 174
QPSK (Quadrature Phase Shift Keying) 是一种常用的数字调制技术。在 QPSK 中,调制信号在相位上进行移相,可以使用四种不同的相位来表示两位二进制数。
下面是一个使用 Python 实现 QPSK 调制和解调的例子:
```
# QPSK 调制
import numpy as np
import matplotlib.pyplot as plt
# 输入数据
data = np.array([1, 0, 1, 1])
# 构建调制信号
modulated_signal = np.array([1 + 1j, -1 + 1j, -1 - 1j, 1 - 1j])
# 调制信号取样
sampled_signal = np.zeros(len(data), dtype=complex)
for i in range(len(data)):
if data[i] == 0:
sampling_signal[i] = modulated_signal[0]
else:
sampling_signal[i] = modulated_signal[1]
# 绘制调制信号
plt.plot(sampling_signal.real, sampling_signal.imag, 'bo-')
plt.title('QPSK Modulated Signal')
plt.xlabel('Real')
plt.ylabel('Imag')
plt.grid()
plt.show()
# QPSK 解调
# 输入调制信号
modulated_signal = sampling_signal
# 解调信号
demodulated_signal = np.zeros(len(modulated_signal))
# 解调
for i in range(len(modulated_signal)):
if modulated_signal[i].real > 0 and modulated_signal[i].imag > 0:
demodulated_signal[i] = 0
else:
demodulated_signal[i] = 1
# 输出解调信号
print(demodulated_signal)
```