[python] SciPy를 사용하여 고속 푸리에 변환 수행하기

푸리에 변환은 시계열 데이터를 주파수 영역으로 변환하는데 사용되는 기술입니다. 이는 신호 처리, 영상 처리, 통신 시스템 등 다양한 분야에서 활용됩니다. SciPy는 파이썬에서 과학적 계산을 위한 라이브러리로, 푸리에 변환을 포함한 여러 신호 처리 기능을 제공합니다.

이 글에서는 SciPy를 사용하여 고속 푸리에 변환(Fast Fourier Transform, FFT)을 수행하는 방법을 알아보겠습니다.

FFT란?

고속 푸리에 변환(Fast Fourier Transform, FFT)은 시간 복잡도를 크게 줄여주는 푸리에 변환 알고리즘입니다. 입력 시계열 데이터를 주파수 영역으로 변환하는 데 걸리는 시간을 크게 단축시킬 수 있습니다. FFT 알고리즘은 주로 실수 데이터에 대한 푸리에 변환을 계산하는 데 사용됩니다.

SciPy에서 FFT 사용하기

SciPy는 scipy.fft 모듈을 통해 FFT를 제공합니다. 다음은 SciPy를 사용하여 고속 푸리에 변환을 수행하는 예제 코드입니다.

import numpy as np
from scipy.fft import fft

# 입력 시계열 데이터 생성
t = np.linspace(0, 1, 1000)  # 0부터 1까지 1000개의 샘플 생성
signal = np.sin(2 * np.pi * 50 * t) + 0.5 * np.sin(2 * np.pi * 120 * t)  # 주파수 50Hz와 120Hz의 섞인 신호

# FFT 수행
fft_result = fft(signal)

# 결과 출력
print(fft_result)

위의 예제 코드에서는 numpy를 사용하여 입력 시계열 데이터를 생성한 후, fft 함수를 사용하여 FFT를 수행합니다. FFT 결과는 복소수 형태로 반환됩니다. 이 예제에서는 FFT 결과를 그대로 출력하였습니다.

결론

SciPy를 사용하여 고속 푸리에 변환을 수행하는 방법을 알아보았습니다. 푸리에 변환은 다양한 분야에서 신호 처리에 사용되며, SciPy는 파이썬에서 이를 수행하는 간편한 인터페이스를 제공합니다.