고속푸리에변환 (Fast Fourier Transform)

전기전자공학
한 줄 정의: 시간에 따라 변하는 신호를 주파수 성분으로 빠르게 분해해주는 계산 알고리즘입니다.

쉽게 풀면

어떤 화음을 들었을 때 그 안에 어떤 음들이 섞여 있는지 알아내는 것과 비슷합니다. 신호를 시간의 흐름으로만 보면 그 안에 어떤 주파수 성분이 얼마나 들어 있는지 한눈에 알기 어렵습니다. 고속푸리에변환은 이 신호를 여러 주파수 성분으로 쪼개서 보여주는 도구이며, 이름 그대로 이 작업을 매우 빠르게 계산할 수 있도록 고안된 방법입니다. 원래의 계산 방식보다 훨씬 적은 연산으로 같은 결과를 얻을 수 있어서 컴퓨터로 실시간에 가깝게 처리하는 것이 가능해집니다.

왜 중요한가

통신, 음향, 영상 처리 등 거의 모든 신호처리 분야에서 신호를 주파수 영역에서 분석하거나 변조·복조해야 하는 경우가 많은데, 계산량이 큰 원래 방식으로는 실시간 처리가 어렵습니다. 고속푸리에변환은 이 계산을 실용적인 속도로 끌어내려, 무선통신 시스템의 변조 방식이나 신호 분석 장비의 핵심 연산으로 널리 쓰입니다.

논문에서는 이렇게 쓰입니다

"수신 신호에 FFT를 적용하여 각 부반송파의 주파수 응답을 추정하였다."

OFDM과 같은 다중반송파 시스템에서 수신된 시간영역 신호를 주파수영역으로 변환할 때 FFT가 사용되는 예입니다.

"제안한 알고리즘은 기존 방식 대비 FFT 연산 횟수를 절반으로 줄여 처리 지연시간을 감소시켰다."

신호처리 알고리즘의 연산 효율을 논할 때 FFT 연산량이 성능 지표로 언급되는 예입니다.

조금 더 깊게 보면

고속푸리에변환은 이산푸리에변환(DFT)을 더 빠르게 계산하기 위한 알고리즘으로, 신호의 길이를 반으로 나누어 재귀적으로 계산하는 분할정복 방식을 사용합니다. 이를 통해 직접 계산 대비 연산량을 크게 줄일 수 있습니다. 역변환인 역고속푸리에변환(IFFT)도 함께 자주 사용되며, 통신 시스템에서는 송신 시 IFFT, 수신 시 FFT를 짝지어 사용하는 구조가 일반적입니다. 가장 널리 쓰이는 기수-2(radix-2) 방식의 FFT는 신호 길이가 2의 거듭제곱일 때 가장 효율적으로 동작하며, 길이가 이에 맞지 않는 경우에는 0을 채워 길이를 맞추는 제로 패딩이 흔히 함께 사용됩니다.

주의할 점

FFT는 유한한 길이의 신호를 다루기 때문에 경계 효과나 스펙트럼 누설이 발생할 수 있으며, 이를 줄이기 위해 윈도우 함수를 함께 적용하는 경우가 많습니다. 또한 FFT 자체는 계산 기법이며, 신호의 물리적 의미 해석은 별도의 분석이 필요합니다. FFT로 얻은 주파수 성분의 해상도는 분석에 사용한 신호 구간의 길이에 반비례하므로, 짧은 구간의 신호로는 인접한 주파수 성분을 세밀하게 구분하기 어렵다는 근본적인 한계가 있습니다.

관련 용어