푸리에 변환(Fourier transform) (1) - 이해와 유도
- 영상처리
- 2020. 2. 16.
우리는 신호를 얻게 되면 그 신호를 여러 가지 방법들을 가지고 분석할 수 있는데 푸리에 변환(Fourier transfrom)이 그 중에서 가장 대표적이며 범용적으로 사용되는 도구라고 할 수 있다. 그렇기 때문에 신호처리 분야(영상, 음성, 통신 등등)에서 종사하는 연구자라면 꼭 한번은 푸리에 변환의 개념에 대해서 명확하게 이해하고 정리해둘 필요가 있다. 또, 푸리에 변환이 적용되는 예를 통해서 이해도를 넓히고자 한다.
본 글은 푸리에 변환의 소개를 시작으로 그렇다면 어떻게 수학적으로 푸리에 변환이 유도되었는지를 다룰 예정이다.
1. 푸리에 변환의 소개
간단히 푸리에 변환에 대해서 말하자면 푸리에 변환은 주어진 신호를 다양한 주파수를 가지는 주기함수들의 합으로 나타내는 것이다. 여기서 주기함수란 우리가 일반적으로 알고 있는 사인(sin), 코사인(cos) 함수를 의미한다. 사인, 코사인 함수는 그 모양에 따라서 굉장히 다양한 주파수를 가질 수 있다. 이를 통해서 신호를 낮은 저주파에 해당하는 함수부터 고주파의 함수까지 수 많은 주기함수의 합으로 표현하는 것이다.
예를 들어보자 아래 그림 1과 같이 빨간색 신호가 측정되었다고 가정해보자. 빨간색 신호를 직관적으로 특정함수로 분석하기란 매우 힘들다. 하지만 푸리에 변환을 하면 빨간색 신호를 대표적인 세 가지 서로 다른 주기를 가진 주기함수들로 분리할 수 있다 (즉, 세 가지 주기함수를 합하면 빨간색 신호가 된다.). 이를 파란색 그래프와 같이 주기에 따라 다시 표현하면 세 가지 해당 주기가 강조되는 그래프를 얻을 수 있다. 이와 같이 푸리에 변환을 사용하면 복잡한 신호를 다소 간략히 해석할 수 있다.
하지만 이쯤에서 하나의 의문점을 품을 수 있다. 모든 신호가 푸리에 변환을 거치면 해석에 용이해질까?
미리 정답을 말하자면 아니다.
푸리에 변환을 이용하며 간략히 해석 가능한 신호는 주기가 관찰되는 신호이다. 더 엄밀히 말하자면 사인과 코사인함수와 같은 파형으로 주기를 가진 신호를 말한다. 물론 이러한 특징은 눈으로 쉽게 판별하기 어려울 수 있다. 이에 대해서는 다음 글에서 여러 가지 대표적인 예를 통해서 자세히 설명하겠다.
그럼에도 불구하고 푸리에 변환은 신호 해석뿐만 아니라 주파수별로 데이터를 처리하기 용이하므로 잡음 제거나 특정 주파수 강조 신호 생성에 자주 쓰인다.
2. 푸리에 변환의 수학적 유도
지금부터 푸리에 변환에 대해서 수학적으로 이해해보자. 사실 푸리에 변환에 대해서 수학적으로 정확히 이해하기 위해서는 대학에서 배우는 것처럼 푸리에 사인 변환 및 푸리에 코사인 변환부터 푸리에 불연속 변환에서 연속 변환까지 한단계 한단계 학습하는 것이 맞는 방법이다. 하지만 본 글의 취지는 그러한 자세한 수학적 이해보다는 우리가 푸리에 변환을 사용하기 위한 최소한의 수학적인 유도만을 할 예정이다.
(본 글은 상당 부분이 kreyszig의 공업수학을 참고하였다.)
앞서 말한 것과 같이 우리는 신호를 다양한 주파수를 가진 주기함수들의 합으로 가정하였다. 그리고 실제로 무한개의 주기함수면 이 세상 모든 신호를 합으로 표현할 수 있다. 이를 수학식으로 표현하면 아래와 같다.
$$ f(x) = \int_{0}^{\infty}[A(w)\cos wx + B(w)\sin wx]\, dw \label{basic01}\tag{1}$$
여기서 $$ A(w) = \frac{1}{\pi}\int_{-\infty}^{\infty}f(v)\cos wv\, dv \tag{2}$$
$$ B(w) = \frac{1}{\pi}\int_{\infty}^{\infty}f(v)\sin wv\, dv \tag{3}$$
이다. 여기서 두 함수 \(f(x)\)와 \(f(v)\)는 편의상 다른 기호를 사용하는 것이지 동일한 함수이다. \(w\)는 주기함수의 주파수를 나타낸다. \(A(w)\)와 \(B(w)\)의 유도는 삼각함수의 적분에서의 직교성을 통하여 증명할 수 있다. 본 글에서는 부차적인 증명은 생략하도록 하겠다 (이는 kreyszig의 공업수학에서 Chapter 11 Theorem 1을 참고하기 바란다.).
위 식 (1)에 \(A(w)\)와 \(B(w)\) 을 식 (2)와 (3)으로 대체하면 다음과 같이 적을 수 있다.
$$ f(x) = \frac{1}{\pi}\int_{0}^{\infty} \int_{-\infty}^{\infty} f(v) \left[\cos wv \cos wx + \sin wv \sin wx \right]\, dv\, dw \tag{4}$$
이는 삼각함수의 공식 \( \cos (ax - by) = \cos ax\cos by + \sin ax\sin by\)를 통해서 다시 표현하면
$$ f(x) = \frac{1}{\pi}\int_{0}^{\infty} \left[\int_{-\infty}^{\infty} f(v)\cos (wx - wv)\, dv \right]\, dw \tag{5}$$ 이다. 괄호 안의 코사인함수는 우함수(even function)이며 \(f(v)\)는 \(w\)에 대한 함수가 아니다. 그러므로 괄호 밖의 \(w\)에 대한 적분 안의 함수는 우함수이다. 그러므로 아래와 같이 적분 범위를 0에서 \(-\infty\)로 두 배 늘리고 2를 나누어 표현할 수 있다.
$$ f(x) = \frac{1}{2\pi}\int_{-\infty}^{\infty} \left[\int_{-\infty}^{\infty} f(v)\cos (wx - wv)\, dv\right]\, dw \tag{6}$$
여기까지가 최초의 의도하였던 주기함수들의 합으로 함수 \( f(x)\)를 표현한 것이다. 하지만 여기서 변수 \( x,v\)의 분리가 쉽지 않기 때문에 이대로는 변환을 통한 주파수 \( w \)에 대한 분석이 용이하지 않다. 약간의 수학적 트릭으로 쉽게 변수 분리가 가능하다 (정말 어떻게 이런 것을 생각했는지 감탄이 나온다.).
괄호 안의 \(w\)에 대한 코사인함수가 우함수이므로 사인함수는 기함수(odd function)이다. 그래서 동일한 적분 범(\(-\infty,\infty\))에서는 0이다.
$$ \frac{1}{2\pi}\int_{-\infty}^{\infty} \left[\int_{-\infty}^{\infty} f(v)\sin(wx - wv)\, dv\right]\, dw = 0 \tag{7}$$
다음으로 오일러 공식(Euler formula)를 생각해보자.
$$ e^{ix} = \cos x + i\sin x \tag{8}$$
위의 사인함수를 포함한 적분식의 값이 0이므로 \( f(x)\)를 다음과 같이 표현할 수 있다.
$$ f(x) = \frac{1}{2\pi} \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(v) \left[\cos (wx - wv) + i\sin(wx - wv) \right]\, dv\, dw = \frac{1}{2\pi} \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(v) e^{i(wx - wv)}\, dv\, dw \tag{9}$$
이를 정리하여 다시 적으면 아래와 같다.
$$ f(x) = \frac{1}{2\pi} \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(v) e^{iw(x - v)}\, dv\, dw \tag{10}$$
여기까지 이해하였다면 끝났다. 위 식을 우리의 입맛에 맞게 나누어 표현하면
$$ f(x) = \sqrt{\frac{1}{2\pi}} \int_{-\infty}^{\infty}\left[ \int_{-\infty}^{\infty} f(v) e^{-iwv}\, dv\right]e^{iwx}\, dw \tag{11}$$ 이다. 위 식에서 \(v\)에 대한 적분을 가르켜 푸리에 변환이라 하고 \(x\)에 대한 적분을 가르켜 푸리에 역변환(Fourier inverse transform)이라 한다. 두 변환을 거치면 원래의 함수와 동일함을 증명하였다. 이를 나누어서 다시 적으면 푸리에 변환은 $$ \hat{f}(w) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{\infty} f(x)e^{-iwx}\, dx \tag{12}$$ 이고 역변환은 $$ f(x) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{\infty} \hat{f}(x)e^{iwx}\, dw \tag{13}$$ 이다. 우리는 위 식을 매번 적기 어렵고 다른 수식과 섞이면 해석이 매우 어렵기 때문에 아래와 같이 기호를 써서 표현하기로 약속하였다. 그것은
$$ \hat{f} = \mathcal{F}(f), \tag{15}$$ 그리고 $$ f = \mathcal{F}^{-1}(\hat{f}) \tag{14}$$ 이다.
사실 유도만 놓고 보면 이게 어떻다는 거지? 라는 의문이 든다. 하지만 여기서 우리가 확인할 수 있는 점은 임의의 \( f(x)\) 혹은 \(f(v)\) 라는 함수를 푸리에 변환하여 주파수 \(w\)를 변수로 함수로 변환할 수 있고 이에 대한 역변환이 주어짐으로써 주파수 \(w\)에 대한 자유로운 신호처리가 가능하다는 것이다.
본 글에서는 어쩔 수 없이 와닿지 않는 긴 설명과 수식으로 푸리에 변환에 대해서 적어보았다. 다음 글에서는 우리가 자주 접하는 함수의 푸리에 변환과 푸리에 변환을 이용한 영상처리 방법을 소개하겠다.
※ 본 글은 필자가 공부를 하며 얻은 이해를 바탕으로 적은 글이므로 다소 해석의 오류가 있을 수 있습니다. 글이 도움이 되었다면 하트 클릭 부탁드립니다 :) (비로그인으로도 가능합니다.)
'영상처리' 카테고리의 다른 글
푸리에 변환(Fourier transform) (3) - 샘플링과 나이퀴스트 정리 (1) | 2020.03.19 |
---|---|
푸리에 변환(Fourier transform) (2) - 영상에서의 응용 (8) | 2020.03.15 |