seegongsik
SC · 샘플링·이산

이산 LTI 시스템

이산 LTI 시스템은 임펄스 응답 h[n] 하나로 완전히 정해진다. 임펄스 δ[n]를 넣었을 때 나오는 h[n]를 입력 위로 미끄러뜨리며 곱하고 더하면 어떤 입력에 대한 출력도 나오는데, 이것이 이산 합성곱이다. 평활 세기를 움직이며 h[n]가 입력의 잡음을 어떻게 깎아 내는지 이 강에서 확인해요.

임펄스 응답으로 잡음 깎아 내기

위 그림은 이 디지털 필터의 임펄스 응답 h[n] = (1 − α)αⁿ을 n = 0부터 20까지 막대로 그린 것으로, 임펄스 δ[n] 하나를 넣으면 이 모양이 그대로 나온다. 아래 그림에서 흐린 선은 n = 10에서 0에서 1로 오르는 계단에 잡음을 섞은 입력 x[n]이고, 금색 막대가 출력 y[n]이에요. 출력은 h[n]를 입력 위로 미끄러뜨리며 곱해 더한 이산 합성곱이다. 처음 α = 0.2에서는 h[n]의 꼬리가 짧아 잡음이 거의 그대로 지나간다. 평활 세기 α를 올려 꼬리를 길게 늘이면 이웃을 더 많이 평균해 잡음이 깎이지만, 너무 키우면 계단의 모서리가 뭉개지고 늦게 올라와요.

임펄스 응답 h[n] = (1−α)αⁿ
입력 x[n](흐림)과 출력 y[n](금색)
평활 세기 α0.20
필터와 출력
α = 0.20 · h[n] = 0.80·0.20^n
기억 길이 ≈ 1.3 표본 (IIR)
평활이 약해 임펄스 응답 h[n]의 꼬리가 짧다. 출력이 이웃을 거의 평균하지 않으니 잡음이 그대로 통과하고, 출력 막대도 입력처럼 들쭉날쭉해요. α가 0.45보다 작은 동안은 이 상태가 이어진다.
잡음이 남음

임펄스 응답이 시스템의 전부

이산 LTI 시스템은 선형(입력을 더하면 출력도 더해짐)이고 시불변(입력을 미루면 출력도 그만큼 미뤄짐)인 시스템이다. 이런 시스템은 임펄스 응답 h[n] 하나로 완전히 정해지는데, 임펄스 δ[n](n = 0에서 1, 나머지는 0)을 넣었을 때 나오는 출력이 h[n]다. 이것 하나로 충분한 까닭은 어떤 입력 x[n]이든 임펄스 여러 개의 합 Σ x[k]·δ[n−k]로 쪼갤 수 있기 때문이에요. 선형이고 시불변이니 각 임펄스 x[k]δ[n−k]에 대한 출력은 x[k]·h[n−k]이고, 이들을 모두 더하면 전체 출력이 된다.

관찰입력 δ[n] ⟶ 출력 h[n]
δ[n]를 넣었을 때의 출력이 임펄스 응답 h[n]다.
고르기y[n] = Σₖ h[k] ?
출력은 h와 x의 이산 합성곱이다.
빈칸IIR y[n] = α y[n−1] + (1−α) ?
재귀식은 과거 출력을 되먹인다.
스스로유한 h[n] = FIR, 재귀 = ?
재귀가 있으면 응답이 무한히 이어지는 IIR이다.

출력은 미끄러지는 가중합

그 합 y[n] = Σₖ h[k]·x[n−k]가 이산 합성곱이다. 출력 시점 n마다 임펄스 응답 h를 시간 축에서 뒤집어 입력의 n 자리에 포갠 뒤, 겹친 표본끼리 곱해 모두 더하고, 한 칸 옮겨 다음 출력을 구한다. B 챕터의 연속 합성곱에서 적분 ∫이 합 Σ으로, 곡선이 표본으로 바뀌었을 뿐 원리는 똑같아요. h[n]가 짧으면 가까운 몇 점만, 길면 더 먼 과거까지 섞는다. 고르게 평균하는 꼴의 h는 잡음을 깎는 저역통과 필터가 되고, 이웃 표본의 차를 내는 꼴의 h는 변화를 키우는 고역통과 필터가 된다.

FIR과 IIR, 그리고 차분방정식

임펄스 응답이 유한한 길이에서 끝나면 FIR(유한 임펄스 응답) 필터다. 길이 M인 이동평균 h[n] = 1/M(n = 0, …, M−1)이 대표적인 예로, 입력 표본만 가중합하므로 늘 안정하다. 반면 과거 출력을 되먹이는 재귀식이면 임펄스 응답이 끝없이 이어지는 IIR(무한 임펄스 응답) 필터가 돼요. 첫 화면의 필터 y[n] = α·y[n−1] + (1 − α)·x[n]이 그 예로, 임펄스 응답 h[n] = (1 − α)αⁿ이 영원히 꼬리를 끈다. 이 재귀식이 곧 차분방정식이고, E3 유닛에서 본 대로 z 변환하면 H(z) = (1 − α)/(1 − α z⁻¹), 극은 z = α다. 극이 단위원 안(|α| < 1)에 있어야 임펄스 응답이 잦아들어 안정하며, 적은 계수로 긴 응답을 내는 IIR은 효율적이지만 극이 원 밖으로 나가면 발산할 수 있다.

첫 화면으로 돌아가서

첫 화면 위쪽의 임펄스 응답 h[n] = (1 − α)αⁿ 하나가 이 필터의 전부였다. 평활 세기 α를 키워 h[n]의 꼬리를 늘이자 이산 합성곱이 더 많은 이웃을 평균해 출력의 잡음이 깎였고, 너무 키우자 계단의 모서리가 뭉개졌어요. 출력은 언제나 y[n] = Σₖ h[k]x[n−k], 곧 h를 입력 위로 미끄러뜨린 가중합이었다. 임펄스 하나에 대한 응답만 알면 그것을 미끄러뜨려 어떤 입력의 출력이든 만들어 낼 수 있다. 이산 LTI 시스템의 모든 것이 그 작은 h[n] 안에 담겨 있었다.

이산 LTI 시스템은 선형이고 시불변이어서 임펄스 응답 h[n](δ[n]에 대한 출력) 하나로 완전히 정해진다. 어떤 입력의 출력도 이산 합성곱 y[n] = Σₖ h[k]x[n−k], 곧 뒤집어 미끄러뜨린 h와 입력의 가중합이다(B 챕터 합성곱에서 ∫ → Σ로 바꾼 이산판). 임펄스 응답이 유한하면 FIR(늘 안정), 과거 출력을 되먹이는 재귀면 끝없이 이어지는 IIR이다. 재귀식(차분방정식)을 z 변환하면 H(z)의 극이 나오고, 극이 단위원 안에 있어야 안정하다(E3 유닛). 평균하는 꼴의 h는 저역통과, 차를 내는 꼴의 h는 고역통과예요.
다음 유닛으로

시간 축에서 합성곱으로 거른 결과는 보았지만, 이 필터가 정확히 어떤 주파수를 살리고 어떤 주파수를 죽이는지는 아직 숫자로 보지 못했다. 다음 유닛 DTFT 와 DFT에서는 임펄스 응답을 주파수로 펼친다. 임펄스 응답의 z 변환 H(z)를 단위원 위 z = ejω에서 잰 것이 DTFT, 곧 이산 시스템의 주파수 응답이고, 평균하는 꼴의 h라면 높은 ω에서 작아지는 저역통과 모양이 나와요. 끝없이 이어진 DTFT를 컴퓨터가 실제로 계산할 수 있게 유한 개의 주파수로 표본화한 것이 DFT이고, 그것을 빠르게 셈하는 알고리즘이 FFT다. 시간에서의 합성곱은 주파수 영역에서 다시 곱셈이 된다.