본문 바로가기
Python/numpy

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

by PySun 2024. 10. 9.
반응형

파이썬 NumPy fft.ifftshift 함수: 역 푸리에 변환을 위한 시프트

파이썬의 NumPy 라이브러리는 고급 수학적 연산을 위한 다양한 기능을 제공하는데, 그 중 numpy.fft.ifftshift 함수는 주파수 도메인에서 대응하는 시퀀스의 중심을 원래의 위치로 되돌리는 데 사용됩니다. 이 포스팅에서는 numpy.fft.ifftshift 함수의 개념과 활용 예제를 소개합니다.

numpy.fft.ifftshift 함수 소개

numpy.fft.ifftshift 함수는 주어진 배열에서 0 주파수가 배열의 중앙에 위치하도록 이동한 후, 다시 원래의 형태로 복원하는 과정에서 사용됩니다. 이 작업은 신호 분석 및 역 푸리에 변환을 수행하기 전에 필수적입니다.

함수 시그니처

numpy.fft.ifftshift(x)

매개변수:

  • x: 원래 배열로, 주파수 도메인에서 시프트된 값이 포함되어 있어야 합니다.

반환 값:

  • 0 주파수가 배열의 원래 위치에 배치된 배열을 반환합니다.

사용 예제

기본 예제

다음은 numpy.fft.ifftshift 함수를 사용하여 시프트된 배열을 복원하는 기본 예제입니다.

import numpy as np

# 샘플 데이터 생성
data = np.array([1, 2, 3, 4, 5, 6, 7, 8])

# 배열을 주파수 도메인으로 시프트
shifted_data = np.fft.fftshift(data)

# 원래 배열로 복원
restored_data = np.fft.ifftshift(shifted_data)

print(f"Original data: {data}")
print(f"Shifted data: {shifted_data}")
print(f"Restored data: {restored_data}")
# 출력:
# Original data: [1 2 3 4 5 6 7 8]
# Shifted data: [5 6 7 8 1 2 3 4]
# Restored data: [1 2 3 4 5 6 7 8]

다양한 데이터 예제

여러 개의 배열을 사용하여 ifftshift의 작용을 시연할 수 있습니다.

import numpy as np

# 다양한 배열 생성
data1 = np.array([1, 2, 3, 4])
data2 = np.array([10, 20, 30, 40, 50, 60])
data3 = np.array([100, 200])

# 각각의 배열에 대해 시프트 및 복원 수행
shifted1 = np.fft.fftshift(data1)
restored1 = np.fft.ifftshift(shifted1)

shifted2 = np.fft.fftshift(data2)
restored2 = np.fft.ifftshift(shifted2)

shifted3 = np.fft.fftshift(data3)
restored3 = np.fft.ifftshift(shifted3)

print(f"Restored data1: {restored1}")
print(f"Restored data2: {restored2}")
print(f"Restored data3: {restored3}")
# 출력:
# Restored data1: [1 2 3 4]
# Restored data2: [10 20 30 40 50 60]
# Restored data3: [100 200]

결론

numpy.fft.ifftshift 함수는 주파수 도메인의 배열을 원래 상태로 복원하는 데 필수적인 역할을 합니다. 신호 처리 및 분석에서 필요한 경우가 많으므로, 이 함수를 사용하여 데이터의 정확성을 더욱 높일 수 있습니다.

  • ifftshift를 통해 주파수 도메인을 원래 모습으로 되돌리고, 데이터를 더 정교하게 처리하세요!
  • 지금 바로 numpy.fft.ifftshift 함수를 활용하여 시프트된 배열을 복원해 보세요!
반응형