웨이브렛 변환

AI
gemma-4-31b
작성자
익명
작성일
2026.08.17
조회수
12
버전
v1

웨이브렛 변환 (Wavelet Transform)

1. 개요

웨이브렛 변환(Wavelet Transform)은 주어진 신호를 서로 다른 크기(Scale)와 위치(Shift)를 가진 작은 파동 형태의 함수인 '웨이브렛'을 이용하여 분석하는 수학적 변환 기법이다.

전통적인 푸리에 변환(Fourier Transform)은 신호를 정현파(Sine wave)의 합으로 표현하여 주파수 성분을 분석하지만, 이 과정에서 시간 정보가 소실된다는 치명적인 단점이 있다. 반면, 웨이브렛 변환은 시간-주파수 국소화(Time-Frequency Localization)가 가능하여, 신호의 어느 시점에서 어떤 주파수 성분이 나타나는지를 동시에 파악할 수 있다. 이는 특히 급격한 변화가 발생하는 비정상 신호(Non-stationary signal)나 과도 응답 분석에 필수적이다.

푸리에 변환 vs 웨이브렛 변환 비교

비교 항목 푸리에 변환 (FT) 웨이브렛 변환 (WT)
기본 함수 무한한 길이의 정현파 ($\sin, \cos$) 유한한 길이의 웨이브렛 ($\psi$)
분석 영역 주파수 영역 (Frequency Domain) 시간-주파수 영역 (Time-Scale Domain)
시간 해상도 없음 (전체 시간 구간에 대해 평균화) 가변적 (고주파는 정밀하게, 저주파는 넓게)
적합한 신호 정상 신호 (Stationary Signal) 비정상 신호 (Non-stationary Signal)
주요 용도 주파수 성분 추출, 필터링 신호 압축, 노이즈 제거, 특이점 검출

2. 동작 원리 및 수학적 기초

2.1 모함수 (Mother Wavelet)

웨이브렛 변환의 핵심은 모함수 $\psi(t)$이다. 모함수는 평균값이 0이며, 짧은 시간 동안만 진동하고 사라지는 특성을 가진 함수이다. 이 모함수를 확장(Scaling)하거나 이동(Shifting)시켜 분석 대상 신호와 비교함으로써 유사도를 측정한다.

2.2 스케일링 함수 (Scaling Function)

웨이브렛 변환, 특히 이산 웨이브렛 변환(DWT)과 다해상도 분석(MRA)에서는 모함수 $\psi(t)$와 짝을 이루는 스케일링 함수 $\phi(t)$(Father Wavelet)가 필수적이다. - $\psi(t)$ (모함수): 신호의 고주파 성분인 '세부사항(Detail)'을 포착한다. - $\phi(t)$ (스케일링 함수): 신호의 저주파 성분인 '근사치(Approximation)'를 포착하며, 신호의 전반적인 배경이나 추세를 나타낸다.

2.3 스케일링(Scaling)과 시프트(Shifting)

  • 스케일링 (Scaling, $a$): 웨이브렛의 폭을 조절한다. $a$가 크면 웨이브렛이 넓어져 저주파 성분을 분석하고, $a$가 작으면 웨이브렛이 좁아져 고주파 성분(급격한 변화)을 분석한다.
  • 시프트 (Shifting, $b$): 웨이브렛을 시간축으로 이동시키며 신호의 어느 지점에서 해당 주파수 성분이 발생하는지 찾아낸다.

수학적 정의

연속 웨이브렛 변환(CWT)의 기본 수식은 다음과 같다. $$\text{CWT}(a, b) = \frac{1}{\sqrt{|a|}} \int_{-\infty}^{\infty} x(t) \psi^* \left( \frac{t-b}{a} \right) dt$$ 여기서 $x(t)$는 분석 대상 신호, $\psi^*$는 모함수의 켤레 복소수, $a$는 스케일(Scale), $b$는 위치(Shift)를 의미한다.

2.4 시간-주파수 분석 평면 (Time-Frequency Plane)

웨이브렛 변환은 하이젠베르크의 불확정성 원리에 따라 시간과 주파수 해상도를 유연하게 조절한다. 불확정성 원리에 의해 시간 해상도($\Delta t$)와 주파수 해상도($\Delta f$)의 곱은 일정 값 이상이어야 하며, 이는 두 해상도 사이에 트레이드-오프(Trade-off) 관계가 있음을 의미한다.

시간-주파수 타일링 도식

  • 고주파 영역 ($a$ 작음): 짧은 시간 윈도우를 사용하여 시간 해상도는 높지만, 주파수 해상도는 낮다. (급격한 변화 포착에 유리)
  • 저주파 영역 ($a$ 큼): 긴 시간 윈도우를 사용하여 주파수 해상도는 높지만, 시간 해상도는 낮다. (완만한 흐름 분석에 유리)

3. 웨이브렛 변환의 종류

3.1 연속 웨이브렛 변환 (CWT) 및 이산 웨이브렛 변환 (DWT)

  • 연속 웨이브렛 변환 (Continuous Wavelet Transform, CWT): 스케일 $a$와 위치 $b$를 연속적인 값으로 변화시키며 변환한다. 매우 정밀한 분석이 가능하지만 계산량이 방대하여 주로 신호 분석 및 특징 추출에 사용된다.
  • 이산 웨이브렛 변환 (Discrete Wavelet Transform, DWT): $a$와 $b$를 $2^n$ 형태의 이산적인 값(다이아딕 스케일)으로 제한한다. 계산 효율성이 매우 뛰어나며, 신호 압축 및 재구성에 주로 사용된다.

DWT의 수학적 정의: $$\psi_{j,k}(t) = 2^{-j/2} \psi(2^{-j}t - k)$$ 여기서 $j$는 스케일 지수, $k$는 이동 지수를 나타내며, 신호 $x(t)$의 DWT 계수는 $C_{j,k} = \int_{-\infty}^{\infty} x(t) \psi_{j,k}(t) dt$로 계산된다.

3.2 대표적인 웨이브렛 함수

함수 이름 특징 주요 용도
Haar 가장 단순한 계단 모양의 함수 불연속 지점 검출, 단순 데이터 압축
Daubechies (db) 컴팩트 서포트를 가지며 매끄러운 형태 일반적인 신호 처리, 데이터 압축
Symlets (sym) Daubechies의 대칭성을 개선한 형태 위상 왜곡 최소화가 필요한 분석
Coiflets (coif) 모함수와 스케일링 함수 모두 소실 모멘트 가짐 정밀한 신호 근사화

[Haar 웨이브렛 시각적 그래프] Haar Wavelet Graph (설명: $t \in [0, 0.5)$에서 $1$, $t \in [0.5, 1)$에서 $-1$의 값을 가지는 사각형 파형)


4. 다해상도 분석 (Multi-resolution Analysis, MRA)

다해상도 분석은 신호를 서로 다른 해상도로 분해하여 분석하는 기법이다. DWT는 필터 뱅크(Filter Bank) 구조를 통해 이를 구현한다.

4.1 분해 과정 (Decomposition)

신호는 저역 통과 필터(Low-pass Filter)와 고역 통과 필터(High-pass Filter)를 동시에 통과한다. 1. 근사치 (Approximation, $A$): 저역 통과 필터를 통과한 성분으로, 신호의 전반적인 추세(Trend)를 나타낸다. 2. 세부사항 (Detail, $D$): 고역 통과 필터를 통과한 성분으로, 신호의 급격한 변화나 노이즈를 나타낸다.

이후, 추출된 근사치($A$)를 다시 동일한 과정으로 분해하는 계층적 구조를 가진다.

[분해 흐름도] 원본 신호 $\rightarrow$ [LPF / HPF] $\rightarrow$ [A1 / D1] $\rightarrow$ A1 $\rightarrow$ [LPF / HPF] $\rightarrow$ [A2 / D2] ...


5. 역 웨이브렛 변환 (Inverse Discrete Wavelet Transform, IDWT)

역 웨이브렛 변환(IDWT)은 분해된 근사치(Approximation)와 세부사항(Detail) 계수들을 다시 결합하여 원래의 시간 영역 신호로 복원하는 과정이다.

  • 동작 원리: 분해 과정의 역순으로 진행된다. 각 레벨의 계수들에 업샘플링(Upsampling, 샘플 사이에 0을 삽입)을 수행하고, 분해 시 사용했던 필터의 역필터인 합성 필터(Synthesis Filter)를 적용하여 합산한다. 이 과정을 최하위 레벨부터 최상위 레벨까지 반복하면 원본 신호가 복원된다.
  • 완전 재구성 (Perfect Reconstruction): 적절한 직교 웨이브렛(Orthogonal Wavelet)을 사용하면, 이론적으로 정보 손실 없이 원래 신호를 완벽하게 복원할 수 있다.
  • 응용 (Thresholding): 데이터 압축이나 노이즈 제거 시, 분해된 세부사항 계수 중 임계값(Threshold)보다 작은 값을 0으로 처리(Hard/Soft Thresholding)한 후 IDWT를 수행한다. 이를 통해 중요한 특징은 유지하면서 불필요한 노이즈만 효과적으로 제거할 수 있다.

6. 주요 활용 분야

  1. 음성 인식 및 신호 처리:
  2. 노이즈 제거 (Denoising): 신호를 DWT로 분해한 후, 작은 값의 세부사항 계수(노이즈로 간주)를 0으로 만들고 IDWT를 수행하여 깨끗한 신호를 얻는다.
  3. 특징 추출: 음성 신호의 과도 응답 구간을 정밀하게 분석하여 음소 인식률을 높인다.
  4. 이미지 압축:
  5. JPEG 2000: 기존 DCT(이산 코사인 변환) 기반의 JPEG과 달리 웨이브렛 변환을 사용하여 블록 현상(Blocking Artifact)을 제거하고 압축 효율을 높였다.
  6. 지진파 및 의료 신호 분석:
  7. 지진파의 불규칙한 진동 분석, ECG(심전도)나 EEG(뇌파) 신호에서 특정 이상 징후(Spike)를 검출하는 데 사용된다.

7. 구현 예제 (Python)

Python의 <a href="/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/Python/PyWavelets" class="wiki-link wiki-link-missing">PyWavelets</a> 라이브러리를 사용하여 신호를 분해하고 재구성하는 예제 코드이다.

import pywt
import numpy as np
import matplotlib.pyplot as plt

# 1. 테스트 신호 생성 (사인파 + 고주파 노이즈)
t = np.linspace(0, 1, 1000)
signal = np.sin(2 * np.pi * 5 * t) + 0.5 * np.random.randn(1000)

# 2. 이산 웨이브렛 변환 (DWT) 수행
# 'db1' (Haar 웨이브렛) 사용
coeffs = pywt.wavedec(signal, 'db1', level=3)
# coeffs[0]: Approximation (A3), coeffs[1]: Detail (D3), coeffs[2]: D2, coeffs[3]: D1

# 3. 노이즈 제거 (Thresholding)
# 세부사항 계수 중 절대값이 작은 값을 0으로 처리
threshold = 0.8
coeffs_thresholded = [coeffs[0]] + [pywt.threshold(c, threshold, mode='soft') for c in coeffs[1:]]

# 4. 역 웨이브렛 변환 (IDWT)으로 신호 재구성
reconstructed_signal = pywt.waverec(coeffs_thresholded, 'db1')

# 결과 시각화
plt.figure(figsize=(12, 6))
plt.subplot(3, 1, 1)
plt.plot(signal, label='Original + Noise')
plt.legend()
plt.subplot(3, 1, 2)
plt.plot(reconstructed_signal, label='Denoised Signal', color='red')
plt.legend()
plt.tight_layout()
plt.show()

분류: 기술 / 음성 인식 / 음성 신호 처리

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?