윈도 함수

편집 역사 토론
전자공학 수치해석 마지막 수정: 2026-08-01 05:13:10

1. 개요[편집]

신호는 무한한데 하드디스크는 유한하다. 그래서 우리는 자를 수밖에 없고, 자르는 순간 스펙트럼이 번진다.

윈도 함수(window function, 창 함수)는 무한히 이어지는 신호에서 유한한 길이의 구간만 잘라낼 때 곱해 주는, 양 끝에서 매끄럽게 0으로 수렴하는 가중 함수다. 아무 창도 곱하지 않는 것은 곧 사각창(rectangular window)을 곱한 것과 같으며, 이때 스펙트럼에 생기는 번짐이 바로 스펙트럼 누설(spectral leakage)이다. 창을 고르는 일은 누설을 없애는 일이 아니라 주엽 폭과 부엽 준위를 저울질하는 일이다.

범위 구분: 푸리에 변환이 변환의 정의와 성질을, 고속 푸리에 변환O(NlogN)O(N\log N) 알고리즘을, 웨이블릿 변환이 시간-주파수 다중해상도를 다룬다면, 이 문서는 유한 관측이라는 행위 자체가 스펙트럼에 남기는 손상과 그 거래 조건에 한정한다.

2. 누설은 어디서 오는가[편집]

길이 NN의 사각창을 시간 영역에서 곱하는 것은 주파수 영역에서 그 창의 스펙트럼과 합성곱하는 것이다. 사각창의 이산시간 푸리에 변환은 디리클레 커널이다.

WR(ω)=n=0N1ejωn=ejω(N1)/2sin(Nω/2)sin(ω/2)W_R(\omega) = \sum_{n=0}^{N-1} e^{-j\omega n} = e^{-j\omega(N-1)/2}\,\frac{\sin(N\omega/2)}{\sin(\omega/2)}

이 커널의 주엽 폭은 널에서 널까지 4π/N4\pi/N이고, 첫 부엽은 주엽보다 겨우 13.3-13.3 dB 낮으며 감쇠율도 옥타브당 6-6 dB로 느리다. 순수 정현파의 주파수가 DFT 빈 중심에 정확히 떨어지면 부엽이 전부 다른 빈의 널 위치에 앉아 누설이 0이 되지만, 조금이라도 어긋나면(관측 구간에 정수 주기가 들어가지 않으면) 그 13-13 dB짜리 부엽이 전 대역에 그대로 깔린다. 바로 옆 빈에 40-40 dB짜리 약한 신호가 있으면 통째로 파묻힌다.

창을 매끄럽게 만들면 부엽은 급격히 낮아지지만, 대가로 주엽이 넓어진다. 주엽 폭은 곧 인접한 두 정현파를 분해할 수 있는 최소 간격이므로, 이것이 창 설계의 근본 트레이드오프다.

3. 대표 창과 성능 지표[편집]

한(Hann) 창은 w[n]=0.5(1cos(2πn/N))w[n] = 0.5\left(1 - \cos(2\pi n/N)\right), 해밍(Hamming) 창은 0.540.46cos(2πn/N)0.54 - 0.46\cos(2\pi n/N)이다. 두 창의 형태 차이는 계수 두 개뿐인데 성능은 꽤 다르다. 해밍은 첫 부엽을 상쇄하도록 계수를 맞춰 최대 부엽이 더 낮지만, 창이 양 끝에서 0이 아니라 불연속이 남아 원거리 감쇠율은 옥타브당 6-6 dB에 그친다. 반면 한 창은 최대 부엽은 조금 높아도 18-18 dB/oct로 빠르게 죽는다.

주엽 폭 (널-널)최대 부엽스캘롭 손실ENBW
사각4π/N4\pi/N−13.3 dB3.92 dB1.00
8π/N8\pi/N−31.5 dB1.42 dB1.50
해밍8π/N8\pi/N−42.7 dB1.75 dB1.36
블랙만12π/N12\pi/N−58.1 dB1.10 dB1.73
블랙만-해리스 (4항)16π/N16\pi/N−92.0 dB0.83 dB2.00
플랫톱20π/N20\pi/N−93 dB 급0.01 dB 미만3.77

표에 나온 세 지표의 뜻은 다음과 같다(수치는 Harris의 고전적 정리표 기준).1

  • 스캘롭 손실(scalloping loss): 신호 주파수가 두 빈의 정확히 중간에 있을 때 진폭이 얼마나 과소평가되는지. 사각창은 최대 3.92 dB, 즉 진폭을 36%나 놓친다.
  • 등가잡음대역폭(ENBW): 백색잡음에 대해 그 창이 실효적으로 통과시키는 대역폭을 빈 단위로 잰 값. 잡음 전력밀도를 계산할 때 반드시 이 값으로 나눠야 한다.
  • 간섭성 이득(coherent gain): 1Nnw[n]\frac{1}{N}\sum_n w[n]. 정현파 진폭을 복원하려면 스펙트럼을 이 값으로 나눈다. 한 창은 0.5, 해밍은 0.54다.

4. 어떤 창을 고를 것인가[편집]

용도가 정해지면 선택은 거의 기계적이다.

  • 진폭을 정확히 재야 한다 → 플랫톱. 주엽을 일부러 평평하게 눌러 스캘롭 손실을 0.01 dB 미만으로 만든 창이라 교정용 계측기의 기본값이다. 대신 주엽이 넓어 분해능은 포기한다.
  • 강한 신호 옆의 약한 신호를 봐야 한다 → 블랙만-해리스. 부엽 92-92 dB면 16비트 ADC의 양자화 잡음 바닥 아래로 내려간다.
  • 딱히 정한 게 없다 → 한 창. 부엽 감쇠가 빠르고 중첩 처리 특성이 좋아 사실상 국룰.
  • 사각창이 옳은 경우도 있다 → 과도 신호가 관측 구간 안에 완전히 들어가 있고 양 끝이 이미 0인 경우(임펄스 응답 측정, 타격 시험). 이때 창을 씌우면 멀쩡한 데이터를 깎아 SNR만 떨어뜨린다.2

카이저 창은 이 선택을 파라미터 하나로 연속화한다.

w[n]=I0 ⁣(β1(2nN11)2)I0(β)w[n] = \frac{I_0\!\left(\beta\sqrt{1-\left(\frac{2n}{N-1}-1\right)^2}\right)}{I_0(\beta)}

I0I_0는 0차 변형 베셀 함수이고, β=0\beta = 0이면 사각창, β5\beta \approx 5면 해밍, β8.6\beta \approx 8.6이면 블랙만에 가까워진다. 요구 부엽 감쇠 AA dB가 주어지면 β\beta가 경험식으로 바로 나오기 때문에 “부엽 60-60 dB, 전이대역 몇 Hz”라는 사양을 그대로 숫자로 옮길 수 있다.3

5. 스펙트럼 추정과 중첩[편집]

단일 주기도(periodogram)는 데이터가 아무리 길어져도 분산이 줄지 않는 악명 높은 추정량이다. 웰치 방법은 신호를 길이 LL의 여러 구간으로 나누고, 각 구간에 창을 씌워 주기도를 구한 뒤 평균 낸다.

S^(f)=1KULk=1Kn=0L1w[n]xk[n]ej2πfn2,U=1Ln=0L1w2[n]\hat{S}(f) = \frac{1}{K\,U\,L}\sum_{k=1}^{K}\left|\sum_{n=0}^{L-1} w[n]\,x_k[n]\,e^{-j2\pi f n}\right|^2, \qquad U = \frac{1}{L}\sum_{n=0}^{L-1} w^2[n]

UU는 창이 잡아먹은 전력을 되돌려 놓는 정규화 상수다. 구간이 독립이면 분산이 1/K1/K로 줄고, 대신 각 구간이 짧아지니 주파수 분해능은 그만큼 나빠진다 — 여기서도 거래다.

구간을 50% 중첩시키는 것이 관례인데, 이는 창이 양 끝에서 눌러 버린 데이터를 이웃 구간이 가운데에서 되살려 주기 때문이다. 한 창의 경우 50% 중첩에서 시간축 가중치의 합이 정확히 상수가 되어 데이터가 균등하게 쓰인다. 중첩 구간은 완전히 독립이 아니므로 분산 감소는 1/K1/K보다 다소 나쁘지만, 같은 데이터 길이에서 구간 수 KK가 거의 두 배가 되므로 순이득이다. 블랙만-해리스처럼 더 좁은 창은 65~75% 중첩을 쓰기도 한다.

6. 구현에서 자주 틀리는 것[편집]

창은 개념이 쉬운 만큼 구현에서 조용히 틀리기도 쉽다. 반복되는 사고 세 가지만 짚는다.

대칭형과 주기형. 길이 NN의 한 창을 0.5(1cos(2πn/(N1)))0.5(1-\cos(2\pi n/(N-1)))로 만들면 양 끝이 정확히 대칭인 대칭형이 되고, 분모를 NN으로 두면 마지막 표본이 빠진 주기형(DFT-even)이 된다. 필터 설계에는 대칭형이 맞고, 스펙트럼 분석에는 주기형이 맞다. 주기형이라야 창의 DFT가 실수가 되어 위상 오차가 생기지 않기 때문이다. 대부분의 라이브러리는 sym=True/False 같은 인자로 이 둘을 구분하는데, 기본값은 라이브러리마다 다르다.

영 채우기와 창은 다른 일을 한다. 영 채우기(zero-padding)는 스펙트럼을 더 촘촘히 보간할 뿐 분해능을 늘리지 않는다. 진짜 분해능은 관측 시간 TT가 정하고(Δf1/T\Delta f \approx 1/T), 창은 그 분해능을 주엽 폭만큼 더 나쁘게 만드는 대신 부엽을 눌러 준다. “영 채우기를 했으니 분해능이 좋아졌다”는 문장은 어느 쪽 개념도 이해하지 못했다는 신호다.

정규화를 두 번 하거나 안 한다. 정현파 진폭을 읽을 때는 간섭성 이득으로, 잡음 전력밀도를 읽을 때는 ENBW로 나눠야 한다. 둘은 서로 다른 상수이며, 같은 스펙트럼에서 순음의 진폭과 바닥 잡음 밀도를 동시에 보고할 때 이 구분을 놓치면 잡음 바닥이 통째로 몇 dB씩 밀린다.

7. FIR 필터 설계에서의 창 방법[편집]

창은 스펙트럼 분석 도구이기 전에 필터 설계 도구이기도 하다. 이상적 저역통과 필터의 임펄스 응답은 무한히 뻗는 sinc 함수이므로, 유한 길이로 만들려면 잘라야 한다. 그런데 그냥 자르면(=사각창) 깁스 현상이 나타난다. 차단 주파수 근방에서 통과대역 리플의 최대 오버슈트가 약 8.95%로 고정되며, 필터 차수를 아무리 올려도 이 값이 줄지 않는다. 리플이 좁아질 뿐 낮아지지는 않는 것이다.4

여기에 매끄러운 창을 곱하면 오버슈트가 사라지는 대신 전이대역이 넓어진다. 사각창 절단의 저지대역 감쇠 21-21 dB가 한 창에서는 44-44 dB, 블랙만에서는 74-74 dB로 올라가지만, 같은 필터 길이에서 전이대역은 각각 세 배, 다섯 배 넓어진다. 카이저 창을 쓰면 필요한 길이가

NA82.285ΔωN \approx \frac{A - 8}{2.285\,\Delta\omega}

로 곧바로 나오므로, 창 방법은 최적 등리플 설계보다 성능은 조금 뒤지지만 설계식이 닫힌 형태로 존재한다는 압도적 편의성 때문에 여전히 널리 쓰인다.

8. 관련 문서[편집]

9. Footnotes[편집]

  1. 창 함수 계보를 한 편으로 정리한 Harris(1978)의 리뷰 논문은 지금도 이 분야의 표준 참고문헌이다. 다만 그 논문의 표에는 오식이 몇 개 있고, 그걸 그대로 베낀 후속 문헌들이 수십 년째 같은 숫자를 옮겨 적고 있다는 사실이 더 유명하다.

  2. “일단 한 창 씌우고 본다”가 습관이 되면 임펄스 응답의 초반 에너지를 절반으로 깎아 놓고 감쇠비를 잘못 뽑는 일이 생긴다. 창은 공짜가 아니다. 무엇을 잃는지 모르고 쓰면 그게 곧 손실이다.

  3. 이 경험식들은 Kaiser가 1974년에 수치 실험으로 맞춘 것이지 유도된 것이 아니다. 그런데 40년 넘게 거의 모든 DSP 교재와 라이브러리에 그대로 실려 있다. 잘 맞는 경험식의 수명은 정리(theorem)보다 길다.

  4. 정확한 값은 1π0πsinttdt120.0895\frac{1}{\pi}\int_0^\pi \frac{\sin t}{t}dt - \frac{1}{2} \approx 0.0895. 깁스가 1899년 Nature에 이 문제를 정리했지만, 사실 9년 앞서 영국의 Henry Wilbraham이 이미 계산해 놨다. 이름은 늦게 온 사람이 가져갔다.