如何在 SciPy Python 中執行離散傅立葉變換?


離散傅立葉變換(DFT)是一種數學技術,有助於將空間資料轉換為頻率資料。

快速傅立葉變換(FFT)是一種旨在計算空間資料的離散傅立葉變換的演算法。

空間資料通常以多維陣列的形式存在。頻率資料是指包含特定時間段內訊號或波長數量的資訊的資料。

讓我們看看如何使用“SciPy”庫來實現此 DFT。

該圖是使用 matplotlib 庫建立的,資料是使用 Numpy 庫生成的。

示例

From matplotlib import pyplot as plt
import numpy as np
my_freq = 6
freq_samp = 70
time_val = np.linspace(0, 3, 3 * freq_samp, endpoint = False )
amp_val = np.sin(my_freq * 3 * np.pi * time_val)
figure, axis = plt.subplots()
axis.plot(time_val, amp_val)
axis.set_xlabel ('Time (in seconds)')
axis.set_ylabel ('Amplitude of signal')
plt.show()
from scipy import fftpack
A = fftpack.fft(amp_val)
frequency = fftpack.fftfreq(len(amp_val)) * freq_samp
figure, axis = plt.subplots()
axis.stem(frequency, np.abs(A))
axis.set_xlabel('Frequency in Hz')
axis.set_ylabel('Frequency Spectrum Magnitude')
axis.set_xlim(-freq_samp / 2, freq_samp/ 2)
axis.set_ylim(-7, 125)
plt.show()

輸出

解釋

  • 匯入所需的包。
  • 藉助 Numpy 庫生成資料。
  • 藉助 matplotlib 庫,此資料在控制檯上繪製為正弦波。
  • 接下來,使用“fftpack”包查詢生成資料的快速傅立葉變換。
  • 此資料再次繪製在圖表上。

更新於: 2020-12-10

402 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告