메뉴
[Fourier Transforms] Discrete Fourier Transform (DFT)

2011. 2. 17. 21:43

개요

어떠한 경우에는 함수 대신 Sampling 된 데이터에 대해서 Fourier Transform을 해야할 경우가 있다.
이때 사용하는 것이 Discrete Fourier Transform이다. 



유도

먼저 f(x)가 Periodic 하다고 가정하자. 편의상 Period를 2π로 잡자.
그리고 이 Period에서 N만큼의 Sample을 얻었다고 하자. 
그러면 어떤 Sample Point x_k는 다음과 같이 표시할 수 있다.


즉, f(x)가 이러한 Points에 대하여 Sampling 되었다고 할 수 있다.


위 식은 Complex Trigonometric Polynomial q(x)를 나타낸 것으로, 
f(x)를 이러한 q(x)의 형태로 나타낼 수 있다고 했을때, x 대신 x_k를 넣어 식을 다시 써보면,


이제 c_0 ~ c_{N_1} 에 대해서 결정해야할 시간이다. 
우리는 이전에 Fourier Series에서 Fourier Coefficient를 구하기 위해 Orthogonality를 이용한 적이 있다.
여기서도 비슷한 아이디어를 사용하여 c_0 ~ c_{N_1}을 결정할 것이다.
그런데 여기서는 Integral 대신 Summation을 사용하고 있다. 
따라서 f_ke^{-imx_k}를 곱하고, k를 0 ~ N-1 까지 더하는 Summation으로 Integral을 대신할 것이다.
식으로 나타내면,


만약 위 식에서 n = m 이라면 Exponential 값은 1이될 것이다.
즉, n = m인 경우의 Summation은 곧 N이 될 것이다.

한편, n ≠ m인 경우를 생각해 보면, 일정한 비율, 즉 e^{i(n-m)2π/N} 으로 곱해지는 값들을 더해나가는 꼴이 되므로,
r = e^{i(n-m)2π/N} 이라고 잡았을때, 이 식의 합을 다음과 같이 다시 쓸 수 있다.


그런데 r^N을 고려해 보면,


n = m 인 경우에 대해서만 고려해 주면 된다.
정리해서 식을 써 보면,


이렇게 쓸 수 있다. 편의상 m대신 n으로 바꾸어 식을 다시 써보면,


을 구할 수 있다.

여기서 도출된 c_n은 우리가 식을 구하는 과정에서 N이라는 크기만큼 나누어진 상태로 나타나게 된다. 
일반적으로, Discrete Fourier Transform은 


어떠한 Signal이 위와 같이 정의되었을때,


위와 같은 Component 에 의해서 다음과 같이 나타나게 된다.


Vector의 형태로 나타내면, 


위와 같다.