Discrete Fourier Transform หรือ DFT เป็นเทคนิคทางคณิตศาสตร์ที่ช่วยในการแปลงข้อมูลเชิงพื้นที่เป็นข้อมูลความถี่
Fast Fourier Transformation หรือ FTT เป็นอัลกอริทึมที่ได้รับการออกแบบมาเพื่อคำนวณ Discrete Fourier Transformation ของข้อมูลเชิงพื้นที่
ข้อมูลเชิงพื้นที่มักจะอยู่ในรูปแบบของอาร์เรย์หลายมิติ ข้อมูลความถี่หมายถึงข้อมูลที่มีข้อมูลเกี่ยวกับจำนวนสัญญาณหรือความยาวคลื่นในช่วงเวลาที่กำหนด
ให้เราดูว่า DFT นี้สามารถทำได้โดยใช้ไลบรารี "SciPy" อย่างไร
กราฟถูกสร้างขึ้นโดยใช้ไลบรารี 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' จะใช้เพื่อค้นหาการแปลงฟูริเยร์ที่รวดเร็วของข้อมูลที่สร้างขึ้น
- ข้อมูลนี้ถูกลงจุดบนกราฟอีกครั้ง