Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Matplotlib – Vẽ FFT tín hiệu với tần số chính xác trên trục X

Để 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

  1. Thiết lập kích thước hình và padding
  2. Khởi tạo N (số mẫu) và m để tính nu
  3. Tạo tín hiệu sin dùng numpy, tính FFT 1D bằng np.fft.fft()
  4. Lấy tần số mẫu bằng np.fft.fftfreq(N)
  5. Vẽ phổ công suất: freq vs |FFT|²
  6. 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).

Matplotlib – Vẽ FFT tín hiệu với tần số chính xác trên trục X