Discrete-Time Fourier Transform(DTFT)와 Discrete Fourier Transform(DFT)는 모두 이산 신호의 주파수 특성을 분석하기 위한 도구로 사용된다.
항목 | DTFT | DFT |
신호 길이 | 무한 | 유한 (N개) |
주파수 축 | 연속적 (무한) | 이산적 (N개) |
존재 이유 | 이론적 분석 (연속 주파수) | 실제 계산 및 구현 |
계산 가능성 | 불가능 | 가능 (FFT 사용) |
Discrete-Time Fourier Transform(DTFT)
Discrete-Time Fourier Transform(DTFT)는 무한 길이의 이산 신호를 연속적인 주파수 변수(ω)에 대해 변환하는 수학적 도구이다.
시간 이산 신호 \( x[n] \)에 대한 DTFT는 다음과 같이 정의된다.
$$ X(e^{j\omega}) = \sum_{n=-\infty}^{\infty} x[n] e^{-j \omega n} $$
Inverse DTFT는 다음과 같다.
$$ x[n] = \frac{1}{2\pi} \int_{-\pi}^{\pi} X(e^{j\omega}) e^{j \omega n} d\omega $$
또는 주파수 \( f \)를 사용하여 표현할 수도 있다.
$$ X(f) = \sum_{n=-\infty}^{\infty} x[n] e^{-j 2\pi f n} $$
이에 대한 Inverse DTFT는 다음과 같다.
$$ x[n] = \int_{-1/2}^{1/2} X(f) e^{j 2\pi f n} df $$
DTFT는 이산 신호의 연속적인 주파수 성분을 이론적으로 분석하기 위해 필요하다. 이는 아날로그 푸리에 변환과 대응되게 이산 신호 및 이산 시스템의 주파수 특성을 다루기 위해 존재한다. 특히 필터나 시스템의 주파수 응답을 정확히 이해하는 데 사용된다.
특징은 다음과 같다.
- 입력 신호가 무한 길이일 수 있다.
- 주파수 변수는 연속적이다 (ω ∈ [–π, π]).
- 실제로는 무한 데이터를 다루기 때문에 수치적으로 계산할 수 없다.
예제를 하나 풀어보자.
예제 1
단순한 이산 신호를 고려하자.
$$ x[n] =
\begin{cases}
1, & 0 \leq n \leq 2 \\
0, & \text{otherwise}
\end{cases} $$
즉, 신호는 \( n=0,1,2 \)에서 값이 1이고, 그 외에는 0이다.
이 신호는 \( n=0,1,2 \)만 값이 1이므로
$$ X(e^{j\omega}) = 1 \cdot e^{-j \omega \cdot 0} + 1 \cdot e^{-j \omega \cdot 1} + 1 \cdot e^{-j \omega \cdot 2} $$
$$ = 1 + e^{-j \omega} + e^{-j 2\omega} $$
따라서 결과는 다음과 같다.
$$ X(e^{j\omega}) = 1 + e^{-j\omega} + e^{-j2\omega} $$
- 가로축: \(\omega\) (단위: radians/sample)이다.
- \(\omega\): \(-\pi\)에서 \(\pi\)까지 연속적으로 변한다.
- 세로축: DTFT의 크기 \(|X(e^{j\omega})|\)이다.
위 그래프가 바로 DTFT 결과를 보여주는 그림이다. 우리가 알고 싶은 것은 "주파수 ω마다 신호의 에너지가 얼마나 존재하는가"이다. 복소수는 방향(위상)도 가지고 있다. 따라서 절대값을 취하여 복소수의 순수한 세기(Strength)만 확인이 가능하게 바꿔주어야 한다.
$$ |a + jb| = \sqrt{a^2 + b^2} $$
그래프를 보면, \(-\pi\)에서 시작해서 \(\pi\)까지 부드럽게 연결되고 있으며, \(-\pi\)와 \(\pi\)에서 그래프가 이어지듯 반복되려고 한다. 이는 주파수 \( w \)에 대해 연속적이로 \( [-\pi, \pi] \) 사이를 연속적으로 움직일 수 있다는 것을 의미한다.
하지만 이 결과는 0Hz 근처에서 크고, 고주파수로 갈수록 점점 작아진다. 따라서 지금 신호는 거의 "DC 성분"만 가지고 있다고 볼 수 있다.
Discrete Fourier Transform(DFT)
Discrete Fourier Transform(DFT)는 유한 길이의 이산 신호를 유한 개수의 주파수 성분으로 변환하는 수학적 도구이다.
길이 \( N \)인 이산 신호 \( x[n] \)에 대한 DFT는 다음과 같이 정의된다.
$$ X[k] = \sum_{n=0}^{N-1} x[n] e^{-j \frac{2\pi}{N} kn} $$
Inverse DFT 정의는 다음과 같다.
$$ x[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] e^{j \frac{2\pi}{N} kn} $$
실제 컴퓨터는 무한한 데이터를 다룰 수 없기 때문에, DTFT를 수치적으로 계산할 수 있는 형태로 만든 것이 DFT이다. 디지털 신호 처리, 오디오 및 영상 처리, 통신 시스템 등 다양한 분야에서 실제 주파수 분석과 변환 작업을 수행하기 위해 존재한다.
특징은 다음과 같다.
- 입력 신호는 유한 길이(N개)이어야 한다.
- 주파수도 이산적이다 (N개의 고정된 주파수 포인트를 가진다).
- 수치적으로 계산할 수 있다 (FFT 알고리즘 등 사용).
- DFT는 DTFT를 \( 2\pi \) 간격 안에서 이산적으로 샘플링한 것과 같다.
다음과 같이 DTFT를 이산적으로 샘플링하면 DFT가 된다. 즉, DTFT를 \( w = \frac{2\pi}{N}k \) 지점에서 샘플링하여 DFT를 만든다.
$$ X[k] = X(e^{j\omega}) \Big|_{\omega = \frac{2\pi}{N}k} $$
예제 1
위 DTFT와 같은 신호를 사용하여 길이 \( N=3 \)로 DFT를 구하자.
$$ x[n] =
\begin{cases}
1, & 0 \leq n \leq 2 \\
0, & \text{otherwise}
\end{cases} $$
$$ x[0] = 1, \quad x[1] = 1, \quad x[2] = 1 $$
여기서 \( N = 3, \, k = 0,1,2 \)이다.
\begin{aligned}
\textbf{k = 0:} \quad & \\
X[0] &= 1 \cdot e^{-j\frac{2\pi}{3} \cdot 0 \cdot 0} + 1 \cdot e^{-j\frac{2\pi}{3} \cdot 0 \cdot 1} + 1 \cdot e^{-j\frac{2\pi}{3} \cdot 0 \cdot 2} \\
&= 1 + 1 + 1 = 3 \\[1.2em]
\textbf{k = 1:} \quad & \\
X[1] &= 1 \cdot e^{-j\frac{2\pi}{3} \cdot 1 \cdot 0} + 1 \cdot e^{-j\frac{2\pi}{3} \cdot 1 \cdot 1} + 1 \cdot e^{-j\frac{2\pi}{3} \cdot 1 \cdot 2} \\
&= 1 + e^{-j\frac{2\pi}{3}} + e^{-j\frac{4\pi}{3}} \\
&= 1 + \left( -\frac{1}{2} - j\frac{\sqrt{3}}{2} \right) + \left( -\frac{1}{2} + j\frac{\sqrt{3}}{2} \right) \\
&= 0 \\[1.2em]
\textbf{k = 2:} \quad & \\
X[2] &= 1 \cdot e^{-j\frac{2\pi}{3} \cdot 2 \cdot 0} + 1 \cdot e^{-j\frac{2\pi}{3} \cdot 2 \cdot 1} + 1 \cdot e^{-j\frac{2\pi}{3} \cdot 2 \cdot 2} \\
&= 1 + e^{-j\frac{4\pi}{3}} + e^{-j\frac{8\pi}{3}} \\
&= 0
\end{aligned}
\( ※ \text{(단, } e^{-j\frac{8\pi}{3}} = e^{-j\frac{2\pi}{3}} \text{ 주기성 이용)} \) => 한바퀴 돌면 원위치이므로
따라서 다음과 같다.
$$ X[0]=3, \, X[1]=0, \, X[2]=0 $$
이는 모든 값이 0이고 DC 성분(0Hz)만 존재한다는 의미가 된다. 당연히 DTFT와 동일한 결과를 보여준다.
예제 2
\( x[0]=1, \, x[1]=0, \, x[2]=−1, \, x[3]=0 \)일 때 DFT를 이용하여 변환해 보자.
풀이와 정답은 아래를 펼치면 나온다. 직접 풀어보기를 추천한다.
$$ X[k] = ∑_{n=0}^{N-1} x[n] · W_N^{kn}, \quad where \quad W^{kn}_{N} = e^{-j \frac{2\pi}{N} kn} $$
$$
\begin{aligned}
k=0: \quad & \\
X[0] &= x[0] \cdot W_4^{0} + x[1] \cdot W_4^{0} + x[2] \cdot W_4^{0} + x[3] \cdot W_4^{0} \\
&= 1 + 0 + (-1) + 0 = 0 \\[1.2em]
k=1: \quad & \\
X[1] &= x[0] \cdot W_4^{0} + x[1] \cdot W_4^{1} + x[2] \cdot W_4^{2} + x[3] \cdot W_4^{3} \\
&= 1 \cdot 1 + 0 \cdot (-j) + (-1) \cdot (-1) + 0 \cdot j \\
&= 1 + 0 + 1 + 0 = 2 \\[1.2em]
k=2: \quad & \\
X[2] &= x[0] \cdot W_4^{0} + x[1] \cdot W_4^{2} + x[2] \cdot W_4^{4} + x[3] \cdot W_4^{6} \\
&= 1 \cdot 1 + 0 \cdot (-1) + (-1) \cdot 1 + 0 \cdot (-1) \\
&= 1 + 0 - 1 + 0 = 0 \\[1.2em]
k=3: \quad & \\
X[3] &= x[0] \cdot W_4^{0} + x[1] \cdot W_4^{3} + x[2] \cdot W_4^{6} + x[3] \cdot W_4^{9} \\
&= 1 \cdot 1 + 0 \cdot j + (-1) \cdot (-1) + 0 \cdot (-j) \\
&= 1 + 0 + 1 + 0 = 2
\end{aligned}
$$
※ 오일러 공식에 따라 복소 지수 함수 \( e^{−jπ} = e^{jπ} = −1 \)이다.
\( e^{j\theta} = \cos(\theta) + j\sin(\theta) \)이고, \( \sin(\pi) = 0 \)이므로 \( j \)의 부호는 무관하다.
정답: \( X[0]=0, \, X[1]=2, \, X[2]=0, \, X[3]=2 \)
이번엔 주파수까지 구해보자. 주파수는 다음과 같이 구할 수 있다.
$$ \text{주파수} = \frac{N}{k} × f_s $$
- \( k \): 주파수 인덱스
- \( N \): DFT 포인트 수
- \( f_s \): 샘플링 주파수 (sampling frequency)
예제 2에서 \( N = 4 \)이고 \( f_s = 4Hz \)라 가정하면 \( k=1 \)일 때 \( 1Hz \), \( k=3 \)일 때 \( 3Hz \)가 된다. 이를 그래프로 표현하면 다음과 같다.
만약 \( f_s = 8Hz \)라면 \( k=1 \)일 때 \( 2Hz \), \( k=3 \)일 때 \( 6Hz \)가 나오게 된다. 샘플링 주파수에 따라 구해진 1번과 3번 주파수 성분이 결정된다는 것을 알 수 있다.
다만 나이퀴스트 주파수에 의해 사실 최대 표현 가능 주파수는 샘플링 주파수의 절반까지이다. 만약 \( f_s = 8Hz \)라면 표현 가능한 주파수는 \( 4Hz \)까지이다. \( 4Hz \) 이상의 주파수인 6Hz는 "진짜 주파수"가 아니라 Aliasing된 결과이지만 이 내용은 더 설명이 필요하니 다음에 다루도록 한다.
결론
DTFT는 이론적 분석을 위해 존재하며, DFT는 현실적인 계산과 구현을 위해 존재한다.
DTFT 없이는 시스템과 신호를 수학적으로 깊이 이해할 수 없고, DFT 없이는 실제 환경에서 주파수 변환과 분석을 수행할 수 없다. 이는 추후 FFT와도 연관이 있다.
관련 포스팅
2025.04.08 - [Data Science/SR & VC] - 푸리에 급수(Fourier Series)와 푸리에 계수(Fourier Coefficient)
2025.04.08 - [Data Science/SR & VC] - 오일러 공식(Euler's Formula)과 푸리에 변환(Fourier Transform)