Để vẽ biến đổi Fourier nhanh (FFT) của tín hiệu với tần số chính xác trên trục X trong Matplotlib:
Các bước thực hiện
- Thiết lập kích thước hình và padding
- Khởi tạo
N(số mẫu) vàmđể tínhnu - Tạo tín hiệu sin dùng numpy, tính FFT 1D bằng
np.fft.fft() - Lấy tần số mẫu bằng
np.fft.fftfreq(N) - Vẽ phổ công suất:
freqvs|FFT|² - Hiển thị bằng
show()
Ví dụ minh họa
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()
Đầu ra
Đồ thị phổ công suất với đỉnh tại tần số ±4/256 (chu kỳ 64 mẫu).
