본문으로 건너뛰기
190 / HARMONIC ANALYSIS LAB
먼저 알아두면 좋아요 · 연결된 선수 단원의 복소수·적분·선형 사상과 표본 표기
단원 목록 (600) · STFT·Haar Wavelet과 국소 분석
이해하는 속도로 읽으세요.개념도이론실험확인 문제
BUILD YOUR INTUITION

먼저 그림으로 이해하기

한 번에 한 단계씩 살펴보세요.

시간에 따라 tone이 바뀌는 신호를 창 Fourier와 다중 해상도 평균·차이로 분석합니다.

32 samples switch from bin 2 to bin 6 halfway through. Center=8, block length=16, zero extension at boundaries. Hann-windowed STFT uses the global 32-bin grid.

0310.5640
STFT: 가로 32점 bin, 세로 |S|/sum(window) · Haar: 가로 계수 순번, 세로 정규직교 계수
binSTFT realSTFT imaginarymagnitude / sum window
0-4.02400.537
10.0774.0270.537
23.8390.0370.512
30.271-3.1440.421
4-1.984-0.3810.269
5-0.2590.8170.114
60.1010.0490.015
7-0.0550.0940.015
80.0330.0270.006
9-0.0210.0240.004
100.0140.0170.003
11-0.0090.0070.001
120.0060.010.002
13-0.0030.0025.079e-4
140.0020.0056.805e-4
15-0.0013.058e-41.591e-4
168.954e-401.194e-4
17-0.001-3.058e-41.591e-4
180.002-0.0056.805e-4
19-0.003-0.0025.079e-4
200.006-0.010.002
21-0.009-0.0070.001
220.014-0.0170.003
23-0.021-0.0240.004
240.033-0.0270.006
25-0.055-0.0940.015
260.101-0.0490.015
27-0.259-0.8170.114
28-1.9840.3810.269
290.2713.1440.421
303.839-0.0370.512
310.077-4.0270.537

block length = 16

고정 기준 예제의 그림과 수치입니다. 각 단계에서 같은 그림의 의미를 차례로 살펴보세요. 고정된 기준 예제이며 아래 실험의 설정과 독립적입니다.
1 / 4

국소 창

중심과 폭을 정하고 바깥은 0으로 연장합니다.

xwindow[n]=x[n]w[n−m]

실험에서 확인하기 →
이 단원 목차

주파수가 언제 등장했는지 묻습니다

전체 신호의 스펙트럼 하나만 보면 국소 변화의 위치가 숨겨집니다. 여기서는 32개 표본의 앞 절반에 cosine bin 2, 뒤 절반에 bin 6을 넣습니다. 창을 옮기면서 선택한 위치 근처의 진동을 읽습니다. 창이 기록 범위 밖으로 나가면 명시적으로 0을 채웁니다.

창 길이를 L, 시작을 center−L/2로 두고 대칭 Hann 창을 곱합니다.

w[j]=12−12cos⁡2πjL−1,Sc[k]=∑j=0L−1x[start+j]w[j]e−2πik(start+j)/32.w[j]=\tfrac12-\tfrac12\cos\frac{2\pi j}{L-1},\qquad S_c[k]=\sum_{j=0}^{L-1}x[\mathrm{start}+j]w[j] e^{-2\pi i k(\mathrm{start}+j)/32}.

지수에 전체 index를 넣어 위상 관례를 고정했습니다. 창 내부 index를 쓰면 크기는 같고 위상은 달라집니다. 그림은 고정 32-bin 격자의 |S|/Σw이며, 일반적인 불편 sine 진폭 추정량이나 무정규화 spectrum이 아닙니다.

두 위치의 창을 비교하기

center 8, L=16에서 원신호는 bin 2이지만 표시된 최대 bin은 1입니다. 창에 한 주기만 들어가 양·음 주파수 Hann lobe가 겹치기 때문입니다. bin 0,1,2의 크기는 약 0.5365, 0.5371, 0.5119입니다. 최대 bin을 무조건 실제 tone 주파수로 읽으면 안 됩니다. center를 24로 옮기면 최대 bin은 6이 됩니다. center 16 부근에서는 양쪽이 섞입니다. 짧은 창은 변화의 위치를 세밀하게 보지만 주파수 봉우리는 넓힙니다. 32점 padding은 창을 곱한 스펙트럼을 촘촘히 읽을 뿐 실제 32개 비영 관측의 분해능을 만들지 않습니다.

표는 복소 계수를 보여줍니다. 수치 표의 Σ|S|²/32는 창을 곱한 시간 신호 에너지와 같습니다. 이 Parseval 검사는 전체 spectrum을 사용하며, 최대 bin 검색만 0부터 16까지로 제한합니다.

Haar는 국소 평균과 차이를 반복합니다

Haar 모드에서는 Hann을 곱하지 않은 원래 블록에 다음 정규직교 변환을 재귀 적용합니다.

a=(x0+x1)/2,d=(x0−x1)/2,a2+d2=x02+x12.a=(x_0+x_1)/\sqrt2,\qquad d=(x_0-x_1)/\sqrt2, \qquad a^2+d^2=x_0^2+x_1^2.

평균들을 다시 변환해 가장 거친 계수 하나가 남을 때까지 반복합니다. 출력은 가장 거친 scaling 계수 뒤에 거친 detail부터 세밀한 detail까지 이어집니다. 이 index는 STFT의 주파수 bin이 아닙니다. 보존하는 에너지도 Hann 적용 신호가 아닌 원래 블록의 에너지입니다. 선택 index가 L 이상이면 대응 계수가 없으므로 정의되지 않은 값으로 표시합니다.

직접 풀기와 적용 범위

[1,1]은 [√2,0], [1,−1]은 [0,√2]로 바뀝니다. 차이가 국소 변화를, 평균이 거친 수준을 읽는 이유를 설명해 보세요. 창을 기록 끝으로 옮겨 padding 개수도 확인하세요.

STFT와 wavelet은 음성·과학 AI에서 국소·다중 규모 특징을 만듭니다. 이 실험은 이산 정규직교 Haar와 개별 STFT frame을 구현합니다. 모든 wavelet family나 overlap-add 역변환 구현은 아닙니다. STFT의 정확한 복원에는 분석·합성 창과 hop 조건을 추가로 확인해야 합니다.

추가 읽기: Julius O. Smith III, Spectral Audio Signal Processing.

CHECK YOUR UNDERSTANDING

설명할 수 있나요?

실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.

1. Haar detail index가 곧 Fourier Hz인가요?
2. 창을 경계 밖으로 옮겨도 입력을 순환시켰나요?

선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.