seegongsik
SC · 샘플링·이산

DTFT 와 DFT

DTFT는 이산 신호의 진짜 주파수 스펙트럼으로, z 변환을 단위원 위에서 본 것이다. DFT는 그 연속 스펙트럼을 컴퓨터가 셈할 수 있도록 N개 주파수에서 표본화한 것이다. 신호 주파수를 움직이며 그것이 DFT 눈금에 딱 맞으면 깨끗한 한 점이, 눈금 사이에 끼면 여러 칸으로 새는 누설이 나타나는 것을 이 강에서 확인해요.

눈금에 맞추면 한 점, 어긋나면 누설

위 그림은 길이 N = 16인 이산 코사인 x[n] = cos(ω₀n)이다. 아래 그림의 금색 곡선은 그 DTFT 크기, 곧 ω를 0부터 π까지 연속으로 훑은 진짜 스펙트럼이고, 파란 막대는 ω = 2πk/N에 놓인 DFT 눈금에서 그 곡선을 표본화한 값이에요. 눈금 간격은 2π/16 ≈ 0.39 rad이고, 회색 점선이 신호의 진짜 주파수 ω₀다. 처음 ω₀ = 0.98은 눈금 k = 2와 3의 거의 한가운데라 에너지가 여러 칸으로 샌다. ω₀를 파란 눈금 하나에 딱 맞추면 그 칸만 솟고 나머지 칸은 0이 되는 깨끗한 한 점이 나와요.

이산 코사인 x[n] = cos(ω₀n), N=16
DTFT 크기(금 곡선)와 DFT 눈금(파란 막대)
신호 주파수 ω₀0.98 rad
신호 주파수와 DFT 눈금
ω₀ = 0.98 · N = 16 · 눈금 간격 Δ = 2π/N = 0.39
가장 가까운 눈금 k = 2 · ω = 0.79
신호 주파수 ω₀가 두 DFT 눈금 사이에 끼었다(가장 가까운 눈금에서 눈금 간격의 1/4 넘게 떨어짐). 어느 눈금도 DTFT 봉우리의 꼭대기에 놓이지 않고, 나머지 눈금들도 영점이 아니라 봉우리의 비탈과 옆 봉우리를 표본화하므로 에너지가 여러 칸으로 넓게 새요. 이것이 스펙트럼 누설이다.
눈금 사이 (누설)

단위원 위에서 본 스펙트럼

이산 신호 x[n]의 DTFT는 X(e^(jω)) = Σₙ x[n] e^(−jωn)이다. 이는 E3 유닛의 z 변환 X(z) = Σ x[n] z⁻ⁿ에서 z를 단위원 위의 z = e^(jω)로 놓은 것과 똑같으므로, DTFT는 z 평면의 단위원을 한 바퀴 돌며 본 스펙트럼이고 시스템에 대해서는 주파수 응답이 된다. 눈에 띄는 특징은 주기성이에요. e^(−jωn)이 ω에 대해 2π 주기라 DTFT도 2π마다 똑같이 되풀이되는데, 이는 E1 유닛에서 본 '표본화가 스펙트럼을 fs마다 복제한다'는 사실의 다른 얼굴이다. 그래서 이산 신호의 스펙트럼은 −π에서 π까지 한 구간만 보면 충분하고, 실수 신호라면 0에서 π까지의 절반만 보아도 되며 첫 화면의 그림도 그 절반을 그렸다.

관찰DTFT X(ejω) = Σₙ x[n] e−jωn
DTFT는 이산 신호의 스펙트럼이다.
고르기DTFT = X(z), z = ?
DTFT는 단위원 위에서 본 z 변환이다.
빈칸DFT X[k] = X(ejω), ω = ?
DFT는 DTFT를 N개 점에서 표본화한 것이다.
스스로DFT를 빠르게 셈하는 알고리즘 = ?
FFT는 DFT를 N log N 수준으로 셈한다.

컴퓨터가 셈하는 DFT

DTFT는 ω가 연속이라 값이 무한히 많다. 컴퓨터는 무한을 셈할 수 없으니 한 주기 2π를 N등분한 ω = 2πk/N (k = 0, …, N−1)에서만 값을 골라내는데, 이것이 DFT X[k] = Σₙ x[n] e^(−j2πkn/N)이다. 유한한 N개 입력에서 유한한 N개 출력을 내며, DTFT 곡선을 N개 눈금에서 표본화한 것과 같아요. DFT를 곧이곧대로 계산하면 곱셈이 N²번 들지만, 1965년 쿨리와 튜키가 내놓은 FFT가 이를 N log N 수준으로 줄여 디지털 신호 처리를 실용의 영역으로 끌어왔다. 시간 영역의 합성곱이 DFT 영역에서는 곱셈이 되므로(서로 겹쳐 감기지 않게 0을 덧붙인다), 긴 필터도 FFT로 빠르게 돌릴 수 있다.

눈금에 어긋난 주파수의 누설

신호를 유한한 N개만 잘라 쓰면 그 자른 창 때문에 DTFT가 폭이 있는 봉우리(주엽)와 그 옆에 늘어선 작은 봉우리들(부엽)을 가진 모양이 된다. 신호 주파수 ω₀가 눈금 2πk/N에 딱 맞으면 그 눈금은 주엽 꼭대기에, 나머지 눈금은 정확히 부엽 사이의 영점에 놓여 깨끗한 한 점이 돼요. 그러나 ω₀가 눈금 사이에 끼면 모든 눈금이 주엽의 비탈이나 부엽을 표본화해, 에너지가 여러 칸으로 새는 스펙트럼 누설이 일어난다. 이를 줄이려고 자를 때 양끝을 부드럽게 깎는 창 함수(해닝, 해밍 등)를 쓰면 부엽이 낮아져 누설은 줄지만, 주엽이 넓어져 가까운 두 주파수를 가려내는 힘은 떨어진다. 분해능과 누설을 맞바꾸는 셈이다.

첫 화면으로 돌아가서

첫 화면에서는 길이 N = 16인 이산 코사인 하나를 두고 그 스펙트럼을 보았다. 금색 DTFT 곡선은 ω를 연속으로 훑은 진짜 스펙트럼이었고, 파란 DFT 막대는 그 곡선을 N개 눈금에서 표본화한 값이었어요. 신호 주파수 ω₀를 눈금 2πk/N에 딱 맞추자 한 칸만 솟고 나머지는 0인 깨끗한 한 점이 나왔고, 눈금 사이로 옮기자 에너지가 여러 칸으로 새는 누설이 보였다. DFT는 DTFT의 표본일 뿐이고, DTFT는 z 변환을 단위원 위에서 본 것이다. 신호의 기초에서 시작해 합성곱, 푸리에, 라플라스, 표본화를 거쳐 온 분석 도구의 사슬이 이산 스펙트럼에서 한 바퀴를 맺는다.

DTFT X(ejω) = Σₙ x[n] e−jωn은 이산 신호의 스펙트럼으로, z 변환을 단위원 z = ejω에서 본 것이며 ω에 대해 2π 주기다(이산화의 결과). DFT X[k] = Σ x[n] e−j2πkn/N은 그 DTFT를 ω = 2πk/N의 N개 점에서 표본화한 유한하고 계산 가능한 버전이고, FFT가 이를 N log N 수준으로 빠르게 셈한다. 신호 주파수가 눈금에 맞으면 깨끗한 한 점, 눈금 사이면 스펙트럼 누설이 나타난다(유한한 창이 만든 부엽). 창 함수로 누설을 줄이면 그 대가로 분해능이 떨어져요.
다음 챕터로

이로써 신호와 시스템을 분석하는 도구가 모두 갖춰졌다. 시간 축에서 보고, 푸리에와 라플라스와 z로 변환하고, 표본화해 디지털로 다루는 법까지 익혔어요. 마지막 챕터에서는 방향이 분석에서 설계로 바뀐다. 다음 유닛 안정도와 라우스 판별법의 첫 질문은 시스템을 어떻게 안정하게 만드느냐이고, 극을 직접 구하지 않고 특성방정식의 계수만으로 모든 극이 좌반면에 있는지 가려내는 라우스 표를 세운다. 극을 풀기 어려운 고차 시스템에서도 안정 여부를 손으로 판정할 수 있게 되며, 이어서 근궤적과 보드 선도로 제어기를 설계해 나간다.