python的快速傅利葉變換

2021-09-24 13:16:43 字數 1537 閱讀 5345

原理目前還未搞懂
安裝以下這幾個庫,(cmd下輸入pip install matplotlib)

import numpy as np

from scipy.fftpack import fft,ifft

import matplotlib.pyplot as plt

import seaborn

1、生成乙個0到1的等差序列 列表,用來表示x軸,即取樣點。還有另乙個意義,1剛好表示1秒,則列表的長度,就是取樣頻率fs

例如:以下是生成10個點的等差數列,即取樣頻率fs=10hz

2、生成縱座標y值, 這是x的函式

6----表示的是正弦波的幅值

當10x等於1的時候,括號裡的值就是 2pi1, 剛好是乙個週期的正弦波,如下圖。如果x=1,則括號裡是 10個2pi,則是10個週期正弦波。所以10是正弦波的頻率。

3、呼叫函式對 y進行傳里葉變換, 每乙個y值對應乙個複數,所以變換出來的也是乙個列表

4、分別對變換出來的複數,取實部, 虛部,取模

yy=fft(y)                     #快速傅利葉變換

yreal = yy.real # 獲取實數部分

yimag = yy.imag # 獲取虛數部分

yf=abs(yy) # 取模

5、歸一化

如果需要歸一化,則進行歸一化,不然可以不歸一化

yf1=yf / ((len(x)/2))           #歸一化處理
歸一化就是用模除以 取樣點個數的一半, 沒想明白?

yf2 =  yf1[range(int(len(x)/2))]  #由於對稱性,只取yf1 列表的一半區間
6、生成x軸座標

xf = np.arange(len(y))        # 這裡就是生成乙個0-n的列表

xf1 = xf

xf2 = xf[range(int(len(x)/2))] #取一半區間

7、畫出fft圖,並顯示出來

plt.plot(xf2,yf2,『b』)

plt.show()

傅利葉變換與快速傅利葉變換

作為電子資訊專業的學生老說,這個不知道,或者理解不清楚,是十分不應該的,作為乙個學渣,有時候確實是理解不清楚的 1 首先離散傅利葉變換目的 簡單點說 就是將乙個訊號從時域變換到頻域 標準點說 將以時間為自變數的訊號 與 頻率為自變數的頻譜函式之間的某種關係變換 數學描述 對於 n點序列 其中自然對數...

快速傅利葉變換

學習快速傅利葉變化是量子計算中的基礎,查了很多資料,以下鏈結可以作為參考 本部落格部分知識學習於 最後這個裡面有解釋蝴蝶效應是怎麼來的!實用數字訊號處理 dft 離散傅利葉變換 o n2 計算多項式乘法 fft 快速傅利葉變換 o n log n 計算多項式乘法 fntt ntt 快速傅利葉變換的優...

快速傅利葉變換

傅利葉變換 fft fast fourier transformation 是離散傅氏變換 dft 的快速演算法。即為快速傅氏變換。它是根據離散傅氏變換的奇 偶 虛 實等特性,對離散傅利葉變換的演算法進行改進獲得的。採用這種演算法能使計算機計算離散傅利葉變換所需要的乘法次數大為減少,特別是被變換的抽...