이산 신호 $x[n]$을 주파수 영역에서 분석하기 위한 방법중에 DTFT(Discrete Time Fourier Transform, 이산 시간 푸리에 변환)가 있고 식은 아래와 같다.
$$X(e^{j\omega}) = \sum_{n=-\infty}^{\infty}x[n]e^{-j \omega n} \tag{DTFT}\label{DTFT}$$
DFT(Discrete Fourier Transform)의 필요성
DTFT를 보면 이산신호를 주파수 영역의 함수로 변환한 꼴이다. 이를 실전해서 활용하기 위해서는 컴퓨터로 코딩을 해야할텐데 주파수($\omega$)는 continous하여 실제로 (\ref{DTFT})를 구현하기는 불가능하다. DTFT가 이산 신호를 연속인 주파수 영역의 함수로 변환했던것과는 다르게 이산 신호를 컴퓨터로 구현가능한 이산인 주파수 영역의 함수로 변환하는 방법이 있을까? 라는 생각에서 탄생한것이 DFT이다.
DFT(Discrete Fourier Transform)의 정의
길이가 $N$인 신호 $x[n]$($n=0,1,…,N-1$에서 값을 갖고 나머지 $n$에서는 $x[n]=0$인 신호)에 대하여 DFT, X[k]를 다음과 같이 정의한다.
$$X[k] = \begin{cases} \sum_{n=0}^{N-1} x[n] e^{-j\frac{2\pi k}{N} n} & n=0,1,…,N-1 \\ 0 & \text{otherwise} \end{cases} \tag{DFT}\label{DFT}$$
DFT의 의미
(\ref{DFT})의 의미를 살펴보도록 하자. 그러기 위해서는 신호 $x[n]$의 DTFT를 구해보도록 하자.
$$X(e^{j\omega}) = \sum_{n=-\infty}^{\infty}x[n]e^{-j \omega n} = \sum_{n=0}^{N-1}x[n]e^{-j \omega n} $$
더하기 하는 영역이 0 에서 N-1 까지로 바뀐것은 $x[n]$이 n=0,1,…,N-1 외에서는 0이기 때문이다. 여기서 $w=\frac{2\pi k}{N}$을 대입하면
$$X[k] = X(e^{j\frac{2\pi k}{N}}) \text{ for } k=0,1,…,N-1\tag{DFT의 의미}\label{1}$$
DTFT에서부터 DFT를 얻을 수 있음을 알수 있고, DFT $X[k]$의 값은 DTFT의 주파수 영역 $[0,2\pi)$를 N등분해서 한칸씩 옮겨가며 얻을수 있다. (\ref{1})을 통해 DFT는 연속인 주파수 영역을 이산화 해서 분석한 것임을 알 수 있다.
DFT 예시
길이가 N=5인 신호 $x[n]$의 DTFT $X(e^{j\omega})$를 점선으로 표시했다. 여기서 DFT $X[k]$를 구하기 위해서는 주파수 $2\pi /N$간격으로 $X(e^{j\omega})$을 구하면 된다.
결론
1. 연속인 주파수 영역에서 신호를 분석는 DTFT $X(e^{jw})$를 이산인 주파수 영역에서 신호를 분석하기 위해 탄생한것이 DFT $X[k]$이다.
2. $X[k] = X(e^{\frac{2\pi k}{N}})$로써 연속인 주파수 영역을 $2\pi/N$간격으로 쪼갠 점에서 DTFT $X(e^{j\omega})$를 구하면 DFT $X[k]$를 구할 수 있다.
Reference
Alan V. Oppenheim, Ronald W. Schafer “Discrete-Time Signal Processing”