본문 바로가기
Python/numpy

파이썬 numpy.fft.ifft 함수 활용하기

by PySun 2024. 10. 4.
반응형

파이썬 NumPy FFT: IFFT 함수로 신호의 주파수 성분 복원하기

파이썬의 NumPy 라이브러리에는 강력한 FFT(Fast Fourier Transform) 기능이 포함되어 있습니다. 이 중 numpy.fft.ifft 함수는 주파수 도메인에서 얻은 데이터를 시간 도메인으로 복원하는 데 사용됩니다. 이 블로그 포스트에서는 numpy.fft.ifft 함수의 구조와 사용법, 그리고 예제 코드를 소개합니다!

numpy.fft.ifft 함수 소개

numpy.fft.ifft 함수는 주어진 주파수 도메인 데이터의 역 변환을 수행하여 원래의 시간 도메인 신호를 복원합니다. 이 함수는 디지털 신호 처리 분야에서 주로 사용되며, 다양한 신호의 주파수 성분을 분석하고 복원하는 데 필수적입니다.

함수 시그니처

numpy.fft.ifft(a)

매개변수:

  • a: 주파수 성분이 포함된 복소수 배열입니다. 이 배열은 변환 될 데이터입니다.

반환 값:

  • 시간 도메인 신호를 나타내는 복소수 배열을 반환합니다.

사용 예제

기본 예제

다음은 numpy.fft.ifft 함수를 사용하여 주파수 도메인에서 시간 도메인으로 신호를 복원하는 간단한 예제입니다.

import numpy as np

# 주파수 도메인 신호 생성 (샘플 주파수 성분)
freq_signal = np.array([1, 0, 0, 0, 0, 0.5, 0, 0])

# 역 변환 수행
time_signal = np.fft.ifft(freq_signal)

print("시간 도메인 신호:")
print(time_signal)
# 출력 예시:
# 시간 도메인 신호:
# [0.5 + 0.j  0.5 + 0.j  0.5 + 0.j  0.5 + 0.j  0.5 + 0.j
#  0.5 + 0.j  0.5 + 0.j  0. + 0.j]

복잡한 신호 복원 예제

복잡한 주파수 성분을 가진 신호를 복원해보겠습니다. 이 예제에서는 여러 주파수 성분을 추가하여 신호를 복원해보겠습니다.

import numpy as np
import matplotlib.pyplot as plt

# 샘플 시간 도메인 신호 생성
t = np.linspace(0, 1, 400, endpoint=False)  # 0부터 1까지 400개 샘플
signal = 0.5 * np.sin(2 * np.pi * 50 * t) + 0.5 * np.sin(2 * np.pi * 120 * t)

# 주파수 도메인으로 변환
freq_signal = np.fft.fft(signal)

# 역 변환 수행
recovered_signal = np.fft.ifft(freq_signal)

# 신호 시각화
plt.subplot(2, 1, 1)
plt.plot(t, signal)
plt.title('원본 신호')
plt.subplot(2, 1, 2)
plt.plot(t, recovered_signal.real)
plt.title('복원된 신호')
plt.tight_layout()
plt.show()

결론

numpy.fft.ifft 함수는 주파수 도메인에서 시간 도메인으로의 신호 변환을 간단하게 수행할 수 있게 해줍니다. 이를 통해 복잡한 신호를 효과적으로 분석하고 복원할 수 있으며, 디지털 신호 처리에 있어서 중요한 도구가 됩니다.

  • 주파수 성분으로부터 원래 신호를 복원하는 법을 익혀보세요!
  • 지금 바로 numpy.fft.ifft 함수를 사용하여 여러분의 신호를 복원해보세요!
반응형