STFT (Short-Time Fourier Transform)
1. 개념
-
목적: 시간에 따라 변하는 주파수를 보기 위해
-
방법: 신호를 일정한 길이의 창(window)로 잘라서 각각 Fourier Transform을 수행
- Details
- 긴 신호 → 겹치는 작은 조각들로 나눔 → 각 조각을 Fourier Transform → time–frequency 정보를 얻음.
-
한계점: window 크기가 고정
\(\)\rightarrow\(\) time–frequency resolution은 항상 일정
2. 수식
\(\)\text{STFT}_x(t, \omega) = \int_{-\infty}^{\infty} x(\tau)\, w(\tau - t)\, e^{-j \omega \tau} d\tau\(\).
- \(\)x(\tau)\(\): 입력 신호
- \(\)w(\tau - t)\(\): window 함수 (center = t)
- \(\)\omega\(\): 분석하려는 주파수
- 저주파 (느린 진동)
- 고주파 (빠른 진동)
\(\)\rightarrow\(\) 즉, 윈도우를 t 위치에 두고 해당 조각만 Fourier Transform 수행
3. 한계점
- 짧은 window: 아주 작은 조각만 보임 → “시간 해상도↑ / 주파수 해상도↓”
- 긴 window: 넓은 구간을 한 번에 보게 됨 → “주파수 해상도↑ / 시간 해상도↓”
4. 한계점 예시
e) 신호 안에 “짧은 스파이크”와 “긴 파동”이 함께 존재
(0~3초) ── 천천히 진동하는 저주파
(3~3.1초) ── 아주 짧은 고주파 스파이크
Window size는 고정!
-
Case 1) window가 길면
-
저주파는 잘 보임
- 스파이크는 번져서 보임 (창이 너무 커서 정확히 “언제” 스파이크가 나왔는지 모호)
- 즉, 긴 창은 “언제 발생했는지(time)에 둔감”해짐 → 시간 해상도↓
-
-
Case 2) window가 짧으면
-
스파이크는 잘 탐지됨
-
하지만 저주파는 잘린 부분만 보이기 때문에 제대로 분석 불가
→ 주파수 해상도↓
-
즉, 짧은 창은 “이 파동의 정확한 주기(frequency)가 뭔지” 알기 어려움 → 주파수 해상도↓
-
한계점 한 줄 요약: “resolution이 항상 일정하다”
- 시간 해상도(Time resolution)
- 주파수 해상도(Frequency resolution)
- 연결 관계
- \(\)\text{time resolution} \propto \text{window length}^{-1}\(\).
- \(\)\text{frequency resolution} \propto \text{window length}\(\).
\(\)\rightarrow\(\) 따라서 window 길이를 바꾸지 않는 한, 두 해상도는 절대 변하지 않음.
5. 해결책: CWT
CWT는 window 대신 wavelet의 scale을 바꾼다(확대/축소).
- 큰 scale → 저주파 분석
- 작은 scale → 고주파 분석
즉, wavelet 자체가 확대/축소되며 resolution 자동 최적화!
(반면 STFT는 wavelet 같은 scale 조절이 불가능)