matlab fftshift_数字信号处理没有Matlab?用Python一样很爽
通常,在數字信號處理時,我們避不開matlab這個工具,因其它的強大的功能受到廣大工程師的好評,也一直都是業界的不二之選。但是,matlab畢竟是商業軟件,公司里如果使用的話,就需要支付高昂的費用。即使公司購買了商業版本,也不會每個人都能隨時使用,這對我們平時的工作和學習將會帶來很多的不便之處。
不過,除了Matlab外,還有什么不錯的工具推薦呢?在這里為大家推薦的是一直很受歡迎的Python。對Python有所了解的同學就會知道,Python擁有豐富的第三方庫,涉及到各個領域。應該說,沒有你不知道的,只有你想不到的,它通通都有。在科學研究和數據處理上,它的應用非常的廣泛。而且,他們通通都是免費的。是不是很誘人?不過,按照Python后,需要我們根據需求自己手動安裝相關的第三方庫,今天和大家一起學習下如何使用Python替代matlab進行數字信號處理。
numpy是一個支持多維度的數組和矩陣運算庫,并包含了大量的數學函數庫,其科學數值運算較為高效,而被廣泛應用于各種工程研發中。安裝命令如下:
python -m pip install numpy如下圖,出現安裝成功的提示即可。
我們使用numpy寫個代碼試試吧。
代碼運行的結果如下,上面的示例中,n1和n2是兩個數組,而n3和n4是兩個矩陣,不過,矩陣庫在numpy.matlab中。這里初始化我們用到了zeros和ones函數,是不是和之前學習的C++的Eigen庫類似?
matplotlib是一個風格類似matlab的繪圖庫,有著豐厚的圖表繪制功能,并且和matlab有著相似的函數,對于熟悉matlab的同學可以無縫切入。安裝命令如下:
python -m pip install matplotlib到這里我們已經安裝了numpy和matplotlib這兩個庫,我們再結合numpy畫個曲線看看,例如:y=3x+2。
import numpy as npfrom matplotlib import pyplot as pltx = np.arange(0, 10)y = 3*x + 2print("x=")print(x)print("y=")print(y)plt.plot(x, y)plt.title("y = 3x + 2")plt.show()終端輸出x,y的值:
關于x,y的曲線圖:
scipy是一個開源的科學計算庫,主要有最優化、線性代數、積分、插值、擬合、特殊函數、快速傅里葉變換、信號處理、圖像處理、常微分方程求解器等功能。安裝命令如下:
python -m pip install scipyscipy庫比上面兩個要大一些,下載速度可能較慢,同學們請耐心等待。
按照慣例,這里可以上代碼了,我們結合上面的numpy和matplotlib庫寫個正弦信號和正弦信號的傅立葉變換的例子。
執行結果如下:
當然,我們還可以用命令查看我們安裝了哪些庫。
python -m pip list以上,這三個庫是平時數字信號處理用到的非常重要的三個庫。是不是已經心動了?大家趕快動手試下吧!
總結
以上是生活随笔為你收集整理的matlab fftshift_数字信号处理没有Matlab?用Python一样很爽的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 界面绘制完毕,几种获取a
- 下一篇: 二叉树先序遍历,中序遍历,后序遍历,层次