seegongsik
내 단어장
SC · 샘플링·이산

이산 LTI 시스템

이산 LTI 시스템은 임펄스 응답 h[n] 하나로 완전히 정해진다. 임펄스 δ[n] 를 넣었을 때 나오는 그 h[n] 를, 입력 위로 미끄러뜨려 곱하고 더하면 어떤 입력의 출력도 나온다(이산 합성곱). 평활 세기를 움직여, h[n] 가 입력의 잡음을 어떻게 깎아 내는지 직접 본다.

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

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

임펄스 응답 h[n] = (1−α)αⁿ
입력 x[n](흐림)과 출력 y[n](금색)
평활 세기 α0.20
필터와 출력
α = 0.20 · h[n] = 0.80·0.20^n
memory ≈ 1.3 samples (IIR)
평활이 약해 임펄스 응답 h[n] 의 꼬리가 짧다. 출력이 이웃을 거의 평균하지 않아 잡음이 그대로 통과한다. 출력 막대가 입력처럼 들쭉날쭉하다.
잡음이 남음

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

이산 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] 이고, 이들을 다 더하면 전체 출력이 된다.

관찰input δ[n] ⟶ output h[n]
δ[n] 의 출력이 임펄스 응답 h[n].
고르기y[n] = Σₖ h[k] ?
출력은 h 와 x 의 이산 합성곱.
빈칸IIR y[n] = α y[n−1] + (1−α) ?
재귀식은 과거 출력을 되먹인다.
스스로finite h[n] = FIR, recursive = ?
재귀가 있으면 무한 응답 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 = e 에서 평가한 것이 DTFT, 곧 이산 시스템의 주파수 응답이다. 평균꼴 h 의 DTFT 는 높은 ω 에서 작아지는 저역통과 모양으로 나온다. 그리고 무한한 DTFT 를 컴퓨터가 실제로 계산할 수 있도록 유한 개 주파수로 표본한 것이 DFT 이고, 그것을 빠르게 셈하는 알고리즘이 FFT 다. 합성곱이 주파수 영역에서는 다시 곱셈이 된다.