시간-주파수 해석
주파수가 도중에 바뀌는 신호에서, 언제 어떤 주파수가 있었는지 알 수 있을까?
주파수가 시간에 따라 바뀌는 신호를 통째로 DFT 하면 모든 시각의 성분이 한 스펙트럼에 섞인다. 언제 어떤 주파수가 있었는지 보려면 신호를 짧은 윈도우로 잘라 윈도우마다 DFT를 구한다. 이것이 단시간 푸리에 변환(short-time Fourier transform, STFT)이다.
은 윈도우 길이, 은 윈도우, 은 윈도우를 옮기는 간격인 hop 크기이다. 윈도우(window function) 은 잘라 낸 개 샘플에 하나씩 곱하는 가중치이고, 모두 1이면 2장의 윈도우처럼 구간만 잘라 내는 사각 윈도우이다. 다음 예에서는 가운데가 1이고 양 끝으로 갈수록 0에 가까워지는 Hann 윈도우 을 쓴다. 윈도우마다의 크기 를 시간 과 주파수 평면에 색으로 칠한 것이 스펙트로그램이다.
- 주파수 간격은 이다. 윈도우가 길수록 주파수는 잘 가르지만, 한 윈도우 안에 여러 시각이 섞여 시간이 흐려진다.
- 윈도우가 짧으면 변화 시각은 또렷하지만 주파수 bin이 넓어진다.
- 겹침(overlap)을 늘리면 윈도우의 개수가 늘어 시간 방향으로 촘촘해진다. 윈도우 하나의 주파수 간격은 바뀌지 않는다.
그림의 입력은 Hz로 잰 복소 톤이고, s에서 12 Hz가 20 Hz로 바뀐다. 짧은 윈도우는 16샘플(0.25 s)이라 주파수 간격이 Hz이고, 긴 윈도우는 64샘플(1 s)이라 1 Hz이다. 두 그림 모두 윈도우를 2샘플(0.031 s)씩 옮긴다. 윈도우마다 제로 패딩해 256점으로 계산하므로 곡선은 0.25 Hz 간격으로 그려지지만, 피크의 폭은 제로 패딩과 상관없이 윈도우 길이가 정한다.
같은 입력을 짧은 윈도우와 긴 윈도우로 계산한 두 스펙트로그램과, 같은 중심 시각의 두 윈도우 스펙트럼을 비교한다. 맨 위 그림의 두 종 모양 곡선은 입력에 곱하는 Hann 윈도우 w[n]으로, 파랑이 16 샘플(0.25 s), 보라가 64 샘플(1 s)이고 높이는 가운데에서 1, 양 끝에서 0이다.
해 보기
- 윈도우 중심이 1.0 s일 때 두 윈도우의 스펙트럼을 비교하라.
관찰
두 윈도우 모두 12 Hz만 본다. 긴 윈도우의 피크가 짧은 윈도우보다 좁다.
- 윈도우 중심이 2.0 s일 때 두 윈도우에서 12 Hz와 20 Hz 성분이 갈라지는지 비교하라.
관찰
긴 윈도우에는 12 Hz와 20 Hz 피크가 둘 다 선다. 짧은 윈도우에서는 두 성분이 피크 하나로 합쳐진다.
윈도우 중심을 2 s에서 멀리 두면 긴 윈도우의 피크가 짧은 윈도우보다 좁다. 중심을 2 s 쪽으로 옮기면 긴 윈도우에 바뀌기 전과 뒤의 샘플이 함께 들어온다. 다만 Hann 윈도우는 가장자리 가중치가 0에 가까워서, 윈도우 끝에 조금 걸친 쪽은 스펙트럼에 거의 나타나지 않는다.
긴 윈도우에서 12 Hz와 20 Hz 피크가 모두 0.1(한 톤만 있을 때의 피크 1 기준)을 넘는 것은 중심이 약 1.78–2.22 s일 때이다. 짧은 윈도우는 중심이 약 1.97–2.03 s일 때만 12 Hz와 20 Hz 자리의 값이 함께 0.1을 넘는데, 이때도 피크가 둘로 갈라지지 않는다.
길이 인 사각 윈도우의 DTFT는 위의 Dirichlet 핵 이다. Hann 윈도우의 코사인을 복소 지수 둘로 나누어 다음을 얻는다.
이렇게 Dirichlet 핵 세 개를 옮겨 더하면 사이드로브는 줄지만, 옮긴 두 핵의 피크가 에 놓여 사각 윈도우의 첫 영점을 채우므로 메인로브의 첫 영점이 로 멀어진다. 따라서 Hann 윈도우의 영점 사이 폭은 로 사각 윈도우의 의 두 배이다.
짧은 윈도우의 메인로브 폭(null-to-null)은 Hz로 두 톤의 간격 8 Hz보다 넓어서, 두 성분이 13.5–18.5 Hz 사이를 옮겨 가는 피크 하나로 합쳐진다. 긴 윈도우는 메인로브 폭이 4 Hz라 두 피크가 갈라진다. 그래서 스펙트로그램에서 바뀐 시각이 짧은 윈도우에서는 좁은 띠로, 긴 윈도우에서는 넓은 띠로 보인다.
강의 노트