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' จะใช้เพื่อค้นหาการแปลงฟูริเยร์ที่รวดเร็วของข้อมูลที่สร้างขึ้น
- ข้อมูลนี้ถูกลงจุดบนกราฟอีกครั้ง