Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để biến đổi Fourier rời rạc có thể được thực hiện trong SciPy Python?

Biến đổi Fourier rời rạc, hoặc DFT là một kỹ thuật toán học giúp chuyển đổi dữ liệu không gian thành dữ liệu tần số.

Chuyển đổi Fourier nhanh, hoặc FTT là một thuật toán được thiết kế để tính toán Chuyển đổi Fourier rời rạc của dữ liệu không gian.

Dữ liệu không gian thường ở dạng mảng nhiều chiều. Dữ liệu tần số đề cập đến dữ liệu chứa thông tin về số lượng tín hiệu hoặc bước sóng trong một khoảng thời gian cụ thể.

Hãy để chúng tôi xem cách đạt được DFT này bằng cách sử dụng thư viện 'SciPy'.

Biểu đồ được tạo bằng thư viện matplotlib và dữ liệu được tạo bằng thư viện Numpy -

Ví dụ

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

Đầu ra

Làm thế nào để biến đổi Fourier rời rạc có thể được thực hiện trong SciPy Python?

Giải thích

  • Các gói bắt buộc đã được nhập.
  • Dữ liệu được tạo với sự trợ giúp của thư viện Numpy.
  • Dữ liệu này được vẽ dưới dạng sóng sin trên bảng điều khiển với sự trợ giúp của thư viện matplotlib.
  • Tiếp theo, gói 'fftpack' được sử dụng để tìm chuyển đổi Fourier nhanh chóng của dữ liệu được tạo.
  • Dữ liệu này lại được vẽ trên biểu đồ.