이산 LTI 시스템
임펄스 응답으로 잡음 깎아 내기
위는 이 디지털 필터의 임펄스 응답 h[n] = (1−α)αⁿ 다. 임펄스 δ[n] 하나를 넣으면 이 모양이 그대로 나온다. 아래에서 흐린 선이 잡음 섞인 입력 x[n](계단 + 잡음)이고, 금색 막대가 그 출력 y[n] 이다. 출력은 h[n] 를 입력 위로 미끄러뜨리며 곱해 더한 이산 합성곱이다. 평활 세기 α 를 올려 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] 이고, 이들을 다 더하면 전체 출력이 된다.
출력은 미끄러지는 가중합
그 합 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] 안에 담겨 있었던 것이다.
시간 위에서 합성곱으로 거른 결과는 봤지만, 이 필터가 정확히 어떤 주파수를 살리고 어떤 주파수를 죽이는지는 아직 숫자로 보지 못했다. 다음 유닛 DTFT 와 DFT에서는 임펄스 응답을 주파수로 펼친다. 임펄스 응답을 단위원 위 z = ejω 에서 평가한 것이 DTFT, 곧 이산 시스템의 주파수 응답이다. 평균꼴 h 의 DTFT 는 높은 ω 에서 작아지는 저역통과 모양으로 나온다. 그리고 무한한 DTFT 를 컴퓨터가 실제로 계산할 수 있도록 유한 개 주파수로 표본한 것이 DFT 이고, 그것을 빠르게 셈하는 알고리즘이 FFT 다. 합성곱이 주파수 영역에서는 다시 곱셈이 된다.