คำนวณ FFT และแสดงแกน X เป็นความถี่จริง (Hz) ไม่ใช่ Bin Index
ขั้นตอน
- ตั้งค่าขนาด Figure
- กำหนด
N(จำนวนตัวอย่าง) และm(ความถี่สัญญาณ) - สร้างสัญญาณ Sine Wave:
signal = sin(2π·m/N·t) - คำนวณ FFT:
ft = np.fft.fft(signal) - หาความถี่จริง:
freq = np.fft.fftfreq(N) - วาด
freqvs|ft|^2(Power Spectrum)
ตัวอย่างโค้ด
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True N = 256 t = np.arange(N) m = 4 nu = float(m)/N signal = np.sin(2*np.pi*nu*t) ft = np.fft.fft(signal) freq = np.fft.fftfreq(N) plt.plot(freq, ft.real**2 + ft.imag**2) plt.show()
ผลลัพธ์
กราฟ Power Spectrum แสดง Peak ที่ความถี่ ±4/256
