我是靠谱客的博主 粗心夏天,这篇文章主要介绍【信号处理】python按原理实现BPSK、QPSK、QAM信号调制完整的使用不涉及原理的包的使用请转到我的另一篇文章1 BPSK调制2 QPSK3 QAM4 参考资料,现在分享给大家,希望可以做个参考。

完整的使用不涉及原理的包的使用请转到我的另一篇文章

【信号处理】Python实现2PSK、QPSK、8PSK、N-QAM的调制和解调

1 BPSK调制

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- coding:utf-8 -*- import numpy as np from math import pi import matplotlib.pyplot as plt import matplotlib import math #码元数 size = 10 sampling_t = 0.01 t = np.arange(0, size, sampling_t) # 随机生成信号序列 a = np.random.randint(0, 2, size) m = np.zeros(len(t), dtype=np.float32) for i in range(len(t)): m[i] = a[math.floor(t[i])] fig = plt.figure() ax1 = fig.add_subplot(2, 1, 1) ax1.set_title('generate Random Binary signal', fontsize = 20) plt.axis([0, size, -0.5, 1.5]) plt.plot(t, m, 'b') fc = 4000 fs = 20 * fc # 采样频率 ts = np.arange(0, (100 * size) / fs, 1 / fs) coherent_carrier = np.cos(np.dot(2 * pi * fc, ts)) bpsk = np.cos(np.dot(2 * pi * fc, ts) + pi * (m - 1) + pi / 4) # BPSK调制信号波形 ax2 = fig.add_subplot(2, 1, 2) ax2.set_title('BPSK Modulation', fontsize=20)#, fontproperties=zhfont1 plt.axis([0,size,-1.5, 1.5]) plt.plot(t, bpsk, 'r') plt.show() print()

在这里插入图片描述

2 QPSK

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from scipy import signal, special import numpy as np import matplotlib.pyplot as plt import matplotlib.ticker as mticker from matplotlib.font_manager import FontProperties t = np.arange(0,8.5,0.5) # input plt.subplot(4,1,1) y1 = [0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0] plt.plot(t,y1,drawstyle='steps-post') plt.xlim(0,8) plt.ylim(-0.5,1.5) plt.title('Input Signal') # I Signal plt.subplot(4,1,2) a = 1/np.sqrt(2) tI = np.arange(0,9,1) yI = [-a,a,-a,a,-a,a,-a,a,a] plt.plot(tI,yI,drawstyle='steps-post') plt.xlim(0,8) plt.ylim(-2,2) plt.title('I signal') # Q signal plt.subplot(4,1,3) yQ = [a,-a,-a,a,a,-a,-a,a,a] plt.plot(tI,yQ,drawstyle='steps-post') plt.xlim(0,8) plt.ylim(-1,1) plt.title('Q Signal') # QPSK signal plt.subplot(4,1,4) t = np.arange(0,9.,0.01) def outputwave(I,Q,t): rectwav = [] for i in range(len(I)): t_tmp = t[((i)*100):((i+1)*100)] yI_tmp = yI[i]*np.ones(100) yQ_tmp = yQ[i]*np.ones(100) wav_tmp = yI_tmp*np.cos(2*np.pi*5*t_tmp)-yQ_tmp*np.sin(2*np.pi*5*t_tmp) rectwav.append(wav_tmp) return rectwav rectwav = outputwave(yI,yQ,t) plt.plot(t,np.array(rectwav).flatten(),'r') plt.xlim(0,8) plt.ylim(-2,2) plt.title('QPSK Signal') plt.tight_layout() plt.show()

在这里插入图片描述

3 QAM

4 参考资料

  1. python实现BPSK调制信号解调
  2. 深入浅出通信原理Python代码版
  3. Python实现M-QAM

最后

以上就是粗心夏天最近收集整理的关于【信号处理】python按原理实现BPSK、QPSK、QAM信号调制完整的使用不涉及原理的包的使用请转到我的另一篇文章1 BPSK调制2 QPSK3 QAM4 参考资料的全部内容,更多相关【信号处理】python按原理实现BPSK、QPSK、QAM信号调制完整的使用不涉及原理的包的使用请转到我的另一篇文章1内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部