深入浅出通信原理(Python代码版)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了深入浅出通信原理(Python代码版),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1403字,纯文字阅读大概需要3分钟。
内容图文
![深入浅出通信原理(Python代码版)](/upload/InfoBanner/zyjiaocheng/755/1bbe805f6dc64259ab109160e3327ee0.jpg)
深入浅出通信原理Python代码版
深入浅出通信原理是陈爱军的心血之作,于通信人家园连载,此处仅作python代码笔记训练所用
陈老师的连载从多项式乘法讲起,一步一步引出卷积、傅立叶级数展开、旋转向量、三维频谱、IQ调制、数字调制等一系列通信原理知识
连载1:从多项式乘法说起
\[ (x+1)(x^2+2x+5)=x^3+3x^2+7x+5 \]
import sympy
x = sympy.Symbol('x')
sympy.expand((x+1)*(x*x+2*x+5))
这种计算方法总结起来就是:
反褶:一般多项式都是按x的降幂排列,这里将其中一个多项式的各项按x的升幂排列。
平移:将按x的升幂排列的多项式每次向右平移一个项。
相乘:垂直对齐的项分别相乘。
求和:相乘的各结果相加。反褶、平移、相乘、求和-这就是通信原理中最常用的一个概念“卷积”的计算过程。
连载2:卷积的表达式
将多项式转换成矩阵形式
\[
x+1 -> [1,1]\x^2+2x+5 -> [1,2,5]\x^3+3x^2+7x+5=[1,1]*[1,2,5]=[1,3,7,5]
\]
其中卷积(*)的运算如下:
\(c(n)=a(n)*b(n)=\sum_{k=0}^n{a(k)b(n-k)},n=0~(n1+n2)\)
其中n1是a(n)的系数总个数,n2是b(n)的系数总个数
Python计算卷积
import numpy as np
np.convolve([1,1],[1,2,5]) #上例,result:[1, 3, 7, 5]
# 杨辉三角,输入行数,输出对应行的值
def pascal_triangle(n):
if n == 0:
return 1
elif n == 1:
return [1,1]
else:
return np.convolve([1,1],pascal_triangle(n-1))
# test code
for i in range(0,7):
print(pascal_triangle(i))
# 杨辉三角,迭代器形式
def triangles():
nlist=[1]
while True:
yield nlist
nlist.append(0)
nlist = [nlist[i] + nlist[i-1] for i in range(len(nlist))]
# test code
tr = triangles()
for i in range(0,7):
print(next(tr))
内容总结
以上是互联网集市为您收集整理的深入浅出通信原理(Python代码版)全部内容,希望文章能够帮你解决深入浅出通信原理(Python代码版)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。