通常,在数字信号处理时,我们避不开matlab这个工具,因其它的强大的功能受到广大工程师的好评,也一直都是业界的不二之选。但是,matlab毕竟是商业软件,公司里如果使用的话,就需要支付高昂的费用。即使公司购买了商业版本,也不会每个人都能随时使用,这对我们平时的工作和学习将会带来很多的不便之处。

不过,除了Matlab外,还有什么不错的工具推荐呢?在这里为大家推荐的是一直很受欢迎的Python。对Python有所了解的同学就会知道,Python拥有丰富的第三方库,涉及到各个领域。应该说,没有你不知道的,只有你想不到的,它通通都有。在科学研究和数据处理上,它的应用非常的广泛。而且,他们通通都是免费的。是不是很诱人?不过,按照Python后,需要我们根据需求自己手动安装相关的第三方库,今天和大家一起学习下如何使用Python替代matlab进行数字信号处理。


python代替matlab的工程 python可以代替matlab吗?_python代替matlab的工程

numpy是一个支持多维度的数组和矩阵运算库,并包含了大量的数学函数库,其科学数值运算较为高效,而被广泛应用于各种工程研发中。安装命令如下:

-m pip install numpy

如下图,出现安装成功的提示即可。

python代替matlab的工程 python可以代替matlab吗?_matlab信号相位概率密度函数_02


我们使用numpy写个代码试试吧。

import numpy

代码运行的结果如下,上面的示例中,n1和n2是两个数组,而n3和n4是两个矩阵,不过,矩阵库在numpy.matlab中。这里初始化我们用到了zeros和ones函数,是不是和之前学习的C++的Eigen库类似?

python代替matlab的工程 python可以代替matlab吗?_python np fft_03


python代替matlab的工程 python可以代替matlab吗?_matlab fft函数说明_04

matplotlib是一个风格类似matlab的绘图库,有着丰厚的图表绘制功能,并且和matlab有着相似的函数,对于熟悉matlab的同学可以无缝切入。安装命令如下:

-m pip install matplotlib

python代替matlab的工程 python可以代替matlab吗?_matlab信号相位概率密度函数_05

到这里我们已经安装了numpy和matplotlib这两个库,我们再结合numpy画个曲线看看,例如:y=3x+2。

import numpy

终端输出x,y的值:

python代替matlab的工程 python可以代替matlab吗?_matlab fftshift_06

关于x,y的曲线图:

python代替matlab的工程 python可以代替matlab吗?_python代替matlab的工程_07


python代替matlab的工程 python可以代替matlab吗?_matlab fftshift_08

scipy是一个开源的科学计算库,主要有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等功能。安装命令如下:

-m pip install scipy

scipy库比上面两个要大一些,下载速度可能较慢,同学们请耐心等待。

python代替matlab的工程 python可以代替matlab吗?_python np fft_09


按照惯例,这里可以上代码了,我们结合上面的numpy和matplotlib库写个正弦信号和正弦信号的傅立叶变换的例子。

import numpy

执行结果如下:

python代替matlab的工程 python可以代替matlab吗?_python np fft_10


当然,我们还可以用命令查看我们安装了哪些库。

-m pip

python代替matlab的工程 python可以代替matlab吗?_python np fft_11

以上,这三个库是平时数字信号处理用到的非常重要的三个库。是不是已经心动了?大家赶快动手试下吧!

- End -