Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

SciPy Python에서 이산 푸리에 변환을 어떻게 수행할 수 있습니까?

<시간/>

이산 푸리에 변환(DFT)은 공간 데이터를 주파수 데이터로 변환하는 데 도움이 되는 수학적 기법입니다.

고속 푸리에 변환(FTT)은 공간 데이터의 이산 푸리에 변환을 계산하도록 설계된 알고리즘입니다.

공간 데이터는 일반적으로 다차원 배열 형태입니다. 주파수 데이터는 특정 기간의 신호 또는 파장의 수에 대한 정보를 포함하는 데이터를 말합니다.

'SciPy' 라이브러리를 사용하여 이 DFT를 달성하는 방법을 살펴보겠습니다.

그래프는 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' 패키지는 생성된 데이터의 빠른 푸리에 변환을 찾는 데 사용됩니다.
  • 이 데이터는 그래프에 다시 표시됩니다.