Wavelet 변환: 신호 처리에서의 시간과 주파수의 세밀한 분석
Wavelet 변환은 신호 처리와 데이터 분석의 중요한 수학적 도구임.
$\sin, \cos$ 을 basis function으로 삼는 Fourier Transform 과 달리
Wavelet 변환은
평균이 0이고, 시간 및 공간에서 한정된 길이를 가진 파형 함수인 wavelet을 basis function 으로 삼는 변환임.
'Wavelet'이라는 용어는
wave
+-let
으로 '작은 파동'을 의미함.
wave: 파동 / -let: 작다는 의미의 접미사
wavelet이 갖춰야 하는 특성은 다음과 같음:
- compact support: 한정된 길이 for locality
- vanishing at boundaries: 양쪽 끝이 0으로 수렴. for locality
- unit energy condition (신호 전체의 에너지가 1로 정규화) : $\int^\infty_{-\infty} |\Psi(t)|^2 dt = 1$
- zero mean condition (평균이 0) : $\int^\infty_{-iunfty} \Psi(t) dt = 0$
그리고 가급적 가지면 좋은 특성은 orthogonality 와 smoothness 임.
1910년 제안된 Haar(db1)은 smoothness만 만족하지 않을 뿐 나머지를 다 만족하는 가장 간단한 wavelet임.
1988년 제안된 Daubechies (도베시, db4)는 모두 만족함.
이 작은 파동들인 wavelet을 basis function으로 삼아 데이터를 분석함으로써,
signal의 시간과 주파수 특성을 동시에 포착 할 수 있음.
- 이를 통해 데이터에서 시간에 따른 주파수 변화와 같은 중요한 정보를 추출하고,
- 특정 시간 또는 주파수 영역의 불필요한 부분은 효과적으로 제거할 수 있음.
이는 Wavelet 변환 기반의 encoding을 통해
대상 신호를 시간-주파수에 대해 국소적으로 정확하게 묘사할 수 있음을 의미함.
basis function의 관점에서 본 FT와의 비교.
Fourier transform은 신호를 다양한 주파수의 $\sin, \cos$으로 분해하여 구성하는 것과 비슷하게
wavelet transform은 신호를 mother wavelet의 shifted, scaled 변형된 것들(=wavelet의 집합)로 분해함.
- FT의 주파수 대신 wavelet에선 scale이 이를 담당하며 wavelet에서의 shift는 특정 시간의 지점(분석될 위치 지정)을 분석하는데 사용됨.
- FT는 전체 시간영역에 대해 주파수 분석을 하므로 wavelet의 shift에 해당하는 게 없음
(Short Time Fourier Transform의 경우엔 window function의 위치가 shift에 해당)
푸리에 변환(FT)의 basis:
- FT는 사인(sine)과 코사인(cosine) 함수를 basis로 사용.
- 이 basis 함수들은 무한히 지속되는(infinite duration) 주기함수임.
- 모든 주파수에 대해 동일한 형태의 basis를 사용됨.
Wavelet 변환의 basis:
- Wavelet 변환은 "wavelet"이라 불리는 작은 파동 $\Psi \left(\frac{t-k}{s}\right)$을 basis 로 사용.
- $s$ : scale factor (주파수 선택)
- $k$ : shift factor (위치 선택)
- Wavelet은 한정된 길이(finite duration)를 가짐.
- 다양한 스케일(scale)과 위치(position)의 wavelet을 사용됨 (동일한 형태의 basis를 사용하는 FT와의 차이).
- scale 이 작을수록 high-frequency에 해당함.
- scale $s$는 equivalent freqency $F_\text{equivalent}$에 반비례: $F_\text{equivalent}=\frac{C_f}{s\delta_t}$
- $F_\text{equivalent}$ : 등가주파수
- $C_f$ : center frequency (of wavelet).
- $\delta_t$ : sampling interval
- $s$ : wavelet scale (클수록 low freq에 해당하는 wavelet생성)
해당 basis에 의해 $f$에 대한 (Continuous) Wavelet transform coefficients는 다음과 같음:
$$W_\Psi (f)(s,k) = \langle f, \Psi_{s,k} \rangle = \int^\infty_{-\infty} f(t) \Psi^*_{s,k}(t) dt \\ \Psi_{s,k}(t)=\frac{1}{\sqrt{s}}\Psi \left( \frac{t-k}{s} \right) $$
이것의 discrete version인 DWT (밑수를 2로 사용하는 dyadic scale방식)는 다음과 같음.
$$W_\Psi (f)(s,k) = \sum_n f[n] \Psi^*_{s,k} [n] \\ \Psi_{s,k} [n] = \frac{1}{\sqrt{2^s}}\Psi \left( \frac{ n-k2^s }{2^s} \right)$$
- $s$와 $k$가 discrete value임: 많은 경우 $s$ 대신 $j$로 scale factor를 사용함.
위의 식이 이상적이긴 하나, 실제로 DWT는 Scaling 함수와 Wavelet함수 두 개를 사용하고, 변환된 Wavelet Transform Coefficient는 다음의 2개가 나옴:
- Approximation coefficient: $A_{j}[k]$
- Detail coefficient: $A_{j}[k]$
https://dsaint31.tistory.com/917#Mallat%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20(1988%2F89)-1-4
[DIP] Discrete Wavelet Transform: Wavelet Decomposition
다음은 DWT의 수식이다.$$ W_\Psi (f)(j,k) = \sum_n f[n] \Psi^*_{j,k} [n] \\ \Psi_{j,k} [n] = \frac{1}{\sqrt{2^j}}\Psi \left( \frac{ n-k2^j }{2^j} \right)$$ 간단하게는 CWT의 discrete version으로 이해하면 되고, 사실 이를 바탕으로
dsaint31.tistory.com
Haar wavelet 처럼 orthonomal이라면 다음이 성립함:
$$f[n] = \sum^\infty_{s,k=-\infty} \langle f[n], \Psi_{s,k}[n] \rangle \Psi_{s,k}[n]$$
basis 차이의 효과
- 지역성(Locality):
- FT의 사인/코사인 basis는 무한히 지속되어 전체 신호에 걸쳐있어 지역적 특성을 포착하기 어려움 (신호 전체에 적용됨).
- Wavelet basis는 한정된 길이를 가져 신호의 특정 부분을 집중적으로 분석.
- 다중 해상도 분석(Multi-resolution analysis):
- FT는 모든 주파수에 대해 동일한 basis를 사용: 동일한 해상도를 의미함.
- Wavelet은 다양한 스케일의 basis를 사용하여 주파수에 따라 다른 해상도로 분석 가능.
- 고주파수에 대해서: 높은 시간해상도 + 낮은 주파수해상도
- 저주파수에 대해서: 낮은 시간해상도 + 높은 주파수해상도
- 시간-주파수 표현:
- FT의 basis는 주파수 정보만을 명시적으로 표현
- FT는 '언제' 어떤 주파수가 나타났는지 알려주지 못함.
- 전체 신호에서 '어떤' 주파수들이 있었는지만 알려줌.
- Wavelet basis는 시간(위치)과 주파수(스케일) 정보를 모두 포함하고 있어, 시간-주파수 동시 표현이 가능함.
- 참고로, 영상 신호라면 시간 이 공간으로 바뀜.
- FT의 basis는 주파수 정보만을 명시적으로 표현
Wavelet의 장점
이를 통한 Wavelet변환의 주요 장점은 다음과 같습니다.
1. 시간과 주파수 정보의 동시 제공
Wavelet 변환은 데이터의 시간에 따른 변화와 주파수 정보를 효과적으로 함께 제공함.
- FT의 경우, signal 전체에 대한 주파수 성분을 분석하여 정보를 제공
- 시간에 따른 주파수 변화를 나타내기 어려움.
- Short-Time Fourier Transform (STFT)을 사용하면 가능하나
- STFT도 고정된 시간-주파수 해상도 라는 단점이 있음.
- 높은 시간해상도는 낮은 주파수 해상도를 가지게되는 trade-off 존재: 불확정성의 원리 $\Delta t \Delta f \ge \frac{1}{4\pi}$
- 양자역학에서 momentum과 position의 관계가 신호처리에선 time과 frequency의 해상도로 이어짐.
- Heisenberg-Gabor uncertainty principle 이 원래 이름임.
- 이 때문에 time resolution과 freq. resolution의 곱의 최소 한계가 있기 때문에 서로에 대해 trade-off 관계가 이루어짐.
- Wavelet은 시간과 주파수 정보를 동시에 표현
- 주파수 대역별로 다른 시간-주파수 해상도를 제공함.
- 이를 통해 시간에 따른 주파수 변화를 FT와 비교할 때 훨씬 더 잘 표현함.
- 이를 신호의 지역적 특성을 더 잘 분석한다고 칭함.
이 기능은 특정 시간에 데이터에서 발생하는 중요한 변화를 정확하게 파악할 수 있게 해 줌.
- 위의 경우 0.4초 이전에 존재하던 20-40Hz 의 주파수 성분을 선택적으로 필터링함.
wavelet은 음성 신호에서 어떤 단어가 언제 발화되었는지, 음악에서 특정 음이 어느 시간대에 연주되었는지를 쉽게 알 수 있음.
2. 적응적 해상도 조절
Wavelet 변환은 다양한 주파수에서 해상도를 적응적으로 조절할 수 있음:
- 앞서 살펴본 "주파수 대역별로 다른 시간-주파수 해상도를 제공"하는 wavelet 변환의 특징임.
- 낮은 주파수에서는 주파수의 변화를 자세히 살펴볼 수 있는 높은 주파수 해상도를 제공함.
- 이는 길고 천천히 변하는 신호의 특성을 잘 포착하게 함: 높은 주파수 해상도를 통해 미세한 주파수 변화를 포착가능.
- 단, 이 경우 시간-주파수 trade-off로 인해 시간 해상도는 낮음.
- 높은 주파수에서는 빠르게 변하는 신호의 세밀한 시간적 변화를 추적할 수 있는 높은 시간 해상도를 제공.
- 이는 짧고 빠르게 변하는 신호의 세부적인 부분을 포착하는 데 적합.
- 단, 이 경우 시간-주파수 trade-off로 인해 주파수 해상도는 낮음.
이러한 적응적 해상도 조절 기능은 FT의 고정된 해상도와 대비 되며,
Wavelet 변환을 통해 데이터의 다양한 특성에 따라 최적의 분석이 가능합니다.
3. 불연속성 검출과 노이즈 제거
시간에 따른 주파수 변화를 보여주며, 지역적 특성(locality)을 잘 분석하는 장점 덕에,
- Wavelet 변환은 데이터에서 급격한 변화나 불연속점을 효과적으로 감지할 수 있음.
- 이는 Wavelet 변환을 이용하여 보다 효과적으로 noise를 분리하여 제거할 수 있게 해줌.
- 이는 신호의 질을 향상시키고, 분석 결과의 정확도를 높이는 데 기여함.
특정 시간대와 주파수대의 신호를 선택적으로 증폭 및 제거가 가능함.
(FT에서는 특정 주파수대의 요소만을 증폭 및 제거)
응용 분야
Wavelet 변환은 다음과 같은 다양한 분야에서 활용됨:
- 신호 처리: 음성 신호 분석, 지진파 분석
- 이미지 처리: 사진이나 의료 영상의 압축과 분석: MPEG-4, JPEG2000등에서 사용됨
- 금융 공학: 주가 변동 분석, 리스크 평가
- 생물정보학: DNA 서열 분석
- 컴퓨터 그래픽스: 3D 모델링, 텍스처 합성
결론
Wavelet 변환은
- basis(기저함수)로 사인, 코사인 함수 보다 복잡하고 국소적인 wavelet 함수를 사용할 수 있음.
- 푸리에 변환에는 없는 국소적인 특성을 확인하는데 유리함.
- Low frequency band는 신호 (or 영상 또는 음성) 전체의 특징(=낮은 공간 또는 시간해상도)을 잘 나타내며 High frequency band는 국부적인 특성(=높은 공간 또는 시간해상도)을 나타냄.
- 다중 해상도 분석이 가능하여, 주파수에 따라 다른 시간-주파수 해상도를 제공.
- 시간과 주파수 정보를 동시에 표현할 수 있어, 시간에 따른 주파수 변화를 효과적으로 분석 가능.
- 비정상 신호나 급격한 변화, 불연속점 등을 효과적으로 포착할 수 있어 다양한 유형의 신호 분석에 적합.
같이 보면 좋은 자료들
https://youtu.be/y7KLbd7n75g?si=aZNFuPPRyXoQRIfY
2025.06.30 - [Programming/DIP] - [DIP] Discrete Wavelet Transform: Wavelet Decomposition
[DIP] Discrete Wavelet Transform: Wavelet Decomposition
다음은 DWT의 수식이다.$$ W_\Psi (f)(j,k) = \sum_n f[n] \Psi^*_{j,k} [n] \\ \Psi_{j,k} [n] = \frac{1}{\sqrt{2^j}}\Psi \left( \frac{ n-k2^j }{2^j} \right)$$ 간단하게는 CWT의 discrete version으로 이해하면 되고, 사실 이를 바탕으로
dsaint31.tistory.com
2025.06.29 - [Programming/DIP] - [DIP] Wavelet Transform: PyWavelet
[DIP] Wavelet Transform: PyWavelet
PyWavelets는 다양한 1D, 2D, N차원 데이터에 대해 웨이블릿 변환, 잡음 제거, 신호 분석을 지원하는 Python용 강력한 웨이블릿 처리 라이브러리임. 공식 site url: https://pywavelets.readthedocs.io/en/latest/ 관련 g
dsaint31.tistory.com
'... > Signals and Systems' 카테고리의 다른 글
[SS] Shannon-Nyquist Sampling Theorem (0) | 2024.10.21 |
---|---|
[SS] Eigenmode, Eigenvector, and System mode (0) | 2024.09.23 |
[SS] Fourier Transform : Frequency Shifting (0) | 2023.12.14 |
[SS] DFT에서 Aliasing을 피하기 위한 N은? (0) | 2023.12.07 |
[SS] Fourier Analysis: 4가지 Fourier Transform 비교 (0) | 2023.12.07 |