Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแปลงฟูริเยร์แบบไม่ต่อเนื่องสามารถทำได้ใน SciPy Python ได้อย่างไร


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()

ผลลัพธ์

การแปลงฟูริเยร์แบบไม่ต่อเนื่องสามารถทำได้ใน SciPy Python ได้อย่างไร

คำอธิบาย

  • นำเข้าแพ็คเกจที่จำเป็น
  • ข้อมูลถูกสร้างขึ้นด้วยความช่วยเหลือของไลบรารี Numpy
  • ข้อมูลนี้ถูกวางแผนเป็นคลื่นไซน์บนคอนโซลโดยใช้ไลบรารี matplotlib
  • ถัดไป แพ็คเกจ 'fftpack' จะใช้เพื่อค้นหาการแปลงฟูริเยร์ที่รวดเร็วของข้อมูลที่สร้างขึ้น
  • ข้อมูลนี้ถูกลงจุดบนกราฟอีกครั้ง