이산 웨이블릿 변환(DWT)의 개념
이산 웨이블릿 변환의 정의와 기본 구조
연속 웨이블릿 변환은 시간-주파수 영역에서 연속적으로 변화를 추적하지만, 실제 신호 처리에서는 무한히 많은 스케일을 모두 활용하기가 현실적으로 어렵다. 이를 극복하기 위해 신호의 이산 표본화에 따른 스케일과 시프트(shift) 값도 이산화하여 다룰 수 있게 하는 방식이 이산 웨이블릿 변환이다. 이산 웨이블릿 변환은 연속 웨이블릿 변환에서 모함수(mother wavelet)와 스케일링 함수를 이산화한 계수를 구하는 과정으로 이해할 수 있으며, 다중 해상도 분석(Multiresolution Analysis, MRA) 이론에 의해 체계적으로 구성된다.
DWT에서 사용하는 기본 함수를 스케일링 함수 $\phi_{j,k}(t)$와 웨이블릿 함수 $\psi_{j,k}(t)$라 할 때, 지수 $j$는 스케일(또는 해상도) 계층을, $k$는 해당 계층에서의 이동(shift) 위치를 나타낸다. 직관적으로 해석하면 낮은 해상도(큰 스케일)에서 신호의 전반적인 형태를 추출하고, 높은 해상도(작은 스케일)에서 세부 정보를 캡처하여 합성할 수 있다.
이산 웨이블릿 변환은 이상화된 웨이블릿 함수의 연산이 아닌, 필터뱅크(filter bank) 구조를 이용하는 실제 알고리즘으로 구현된다. 이 필터뱅크 구조는 시간 도메인에서의 컨벌루션(convolution) 연산과 다운샘플링(down-sampling)을 결합하여, 각 단계에서 저역통과 필터와 고역통과 필터를 통과한 두 신호로 분리한다. 이렇게 분리된 신호는 스케일이 한 단계 올라간 상태(대략 2배 더 넓은 시간축 스케일)에서 다시 같은 연산을 반복하여, 단계가 올라갈수록 신호의 저주파(approximation) 특성과 고주파(detail) 특성을 계층적으로 분해해 나간다.
다중 해상도 분석(MRA)과 스케일링 함수
이산 웨이블릿 변환은 다중 해상도 분석 개념에 기반한다. 다중 해상도 분석이란, 스케일을 조정해 가며 신호를 점진적으로 분석하는 일련의 함수 공간 계층을 정의하는 방식이다. 가장 낮은 해상도의 스케일링 함수 공간을 $V_0$라 하고, 한 단계 높은 해상도를 표현하는 공간을 $V_1$이라 할 때, 일반적으로
의 관계를 만족시키며, $V_j$가 커질수록 더 세밀한 구조의 함수를 표현할 수 있게 된다.
이때 스케일링 함수를 $\phi(t)$라 할 때, $V_j$에서의 스케일링 함수를
로 정의한다. 지수 $j$가 커질수록 공간 $V_j$는 고해상도(자세한 부분을 포착 가능) 영역을 표현하게 된다. 또한 $k$는 이산적으로 위치를 변화시키며 시간축에서 함수를 이동시켜 신호 전 구간을 동일 구조로 커버하게 만들어 준다.
스케일링 함수와 웨이블릿 함수 사이에는 정교한 정규직교(orthonormality) 조건이 부과된다. 즉, 각 스케일에서의 스케일링 함수들끼리는 서로 직교하고, 웨이블릿 함수들끼리도 서로 직교해야 하며, 스케일링 함수와 웨이블릿 함수 간에도 직교해야 한다. 이를 충족하기 위해 필터의 성능과 위상 특성이 적절히 설계된다.
필터뱅크 구현과 다운샘플링
이산 웨이블릿 변환에서는 일반적으로 컨벌루션 기반 필터뱅크를 통해 각 스케일에서 신호를 두 갈래로 분해한다. 하나는 저역통과 필터 $h[n]$이며, 다른 하나는 고역통과 필터 $g[n]$이다. 신호 $x[n]$이 주어졌을 때, 한 스케일에서의 세부 계산은 다음과 같이 표현될 수 있다.
위 식에서 $\tilde{a}[n]$는 한 단계 분해된 저주파 성분(approximation coefficient)에 해당하고, $\tilde{d}[n]$는 고주파 성분(detail coefficient)에 해당한다. 이산적인 시간축에서 다운샘플링 계수 2가 적용되어, 한 번의 필터링 및 다운샘플링을 거치면 샘플 개수가 절반으로 줄어든다는 점이 핵심이다.
이 과정을 매 단계 반복해 나가면 다음과 같은 계층적 분해 구조를 얻을 수 있다.
이렇게 얻어지는 계수들은 주파수 대역별 특징을 단계적으로 표현하게 된다. 첫 번째 분해에서의 $d1[n]$은 원 신호의 가장 높은 주파수 대역을 대표하고, $a1[n]$은 상대적으로 저주파 대역을 나타낸다. 이후 $a1[n]$을 대상으로 또 한 번 저역통과 및 고역통과 필터링과 다운샘플링을 수행하면, 더 좁은 대역폭의 저주파 영역과 해당 대역의 고주파 영역을 구분해 낼 수 있다.
완전 재구성(Perfect Reconstruction) 조건
이산 웨이블릿 변환은 한 번 분해한 신호를 다시 합성(reconstruction)했을 때, 원 신호를 손실 없이 복원할 수 있어야 한다. 이를 만족시키기 위한 필터 조건이 완전 재구성(Perfect Reconstruction) 조건이며, 필터뱅크 설계에서 중요한 역할을 한다. 저역통과 필터를 $h[n]$, 고역통과 필터를 $g[n]$라 할 때, 역변환에서 사용하는 합성 필터 역시 $h'[n]$, $g'[n]$로 정의된다. 이때 다음과 같은 기본 동차(dyadic) 구조와 직교성(orthogonality) 관계를 포함한 여러 조건을 만족해야 한다.
필터뱅크가 직교 웨이블릿에 해당하는 경우, 일반적으로 $h'[n]$는 $h[-n]$, $g'[n]$는 $g[-n]$ 형태를 띠며 위상 지연만 고려하면 되지만, 실제 구현에서는 경계 처리를 위한 부가 조건 등을 더 다룰 수 있다.
멀라트(Mallat) 알고리즘으로 알려진 계층적 필터뱅크 분석 및 합성 방식은 이러한 완전 재구성 조건을 만족하도록 설계된 대표적인 기법이다. 이 알고리즘은 신호를 분해하는 과정(Analysis Filter Bank)과 신호를 다시 합성하는 과정(Synthesis Filter Bank)으로 크게 나뉘며, Mallat 구조가 보장하는 특성에 의해 필터 계수들이 적절히 설정된 경우 원 신호와 동일한 형태로 복원된다.
폴리페이즈(Polyphase) 표현
이산 웨이블릿 변환에 사용되는 필터뱅크는 폴리페이즈(Polyphase) 표현으로도 분석할 수 있다. 폴리페이즈 구조는 다운샘플링과 업샘플링을 고려해 필터를 분해하는 방식으로, 필터뱅크의 행렬 표현을 통해 완전 재구성 조건을 보다 간결하게 확인할 수 있다는 장점이 있다. 폴리페이즈 표현을 쓰면, 필터 연산과 다운샘플링을 하나의 행렬 연산으로 묶어볼 수 있으므로 수학적으로 필터뱅크가 가지는 위상(phase) 특성, 직교 조건, 대칭성 등을 더 체계적으로 해석하게 된다.
직교 웨이블릿과 이산 웨이블릿 변환
직교 웨이블릿(Orthonormal Wavelet)을 이용한 이산 웨이블릿 변환에서는 각 스케일 및 이동(shift)에 따라 정의되는 웨이블릿 함수들이 서로 직교한다. 이 경우 분해된 계수들 사이에 중복이 없어, 계산 효율이 높고 역변환 과정에서 계수들의 상호 간섭(interference)이 일어나지 않는다. 직교 조건이 성립하려면 필터뱅크가 적절히 정규화(normalized)되어야 하며, 스케일링 함수와 웨이블릿 함수를 동시에 만족시키는 수학적 제약이 존재한다. 이러한 제약은 대체로 다항 근사(Polynomial Approximation) 특성, 정규직교성(Orthogonality), 직교 필터 쌍(Quadrature Mirror Filter, QMF) 구조 등으로 나타난다.
다베시(Daubechies) 웨이블릿
직교 웨이블릿 계열 중에서 가장 널리 알려진 웨이블릿이 다베시(Daubechies) 웨이블릿이다. 이 웨이블릿은 다항 근사 능력(polynomial approximation order)을 특정 차수 이상 보장하면서, 짧고 매끄러운 지지(support)를 가지도록 설계된다. 매끄럽고 짧은 지지를 가지는 필터일수록 신호 경계 처리(boundary treatment)가 용이하고, 시간 영역에서 빠르게 감쇠하며, 분해·합성 과정에서 잡음이 덜 퍼진다.
다베시 웨이블릿은 DBN이라 표기하는데, N은 스케일링 필터(저역통과 필터)의 소멸 모멘트(vanishing moments) 개수와 관련이 있다. 소멸 모멘트가 크면 다항 근사 능력이 향상되어 신호의 저주파 대역을 더욱 정확히 표현할 수 있지만, 필터 길이도 길어져 연산 복잡도가 커질 수 있다. 실제 적용에서는 신호의 특성이나 대상 해상도 등에 따라 적절한 차수를 선택한다.
다베시 웨이블릿의 필터 길이는 필터의 소멸 모멘트와 밀접한 관계를 갖는다. 예를 들어 다베시 4(DB4)는 저역통과 필터와 고역통과 필터 모두 길이 8의 계수를 가지며, 다베시 6(DB6)는 길이 12의 계수를 가진다. 이들은 모두 완전 재구성 조건을 충족하고 직교성을 유지하도록 설계된다.
바이오스플라인(Biorthogonal) 웨이블릿
직교 웨이블릿과 달리, 분해 과정과 합성 과정에서 서로 다른 필터 쌍을 사용하는 바이오스플라인(Biorthogonal) 웨이블릿 기법도 존재한다. 바이오스플라인 웨이블릿은 분석 필터와 합성 필터 간에 직교성을 갖추지 않아도 되므로, 대칭성(symmetry)이나 위상 특성 면에서 더 유연하게 설계할 수 있다.
직교 웨이블릿의 필터는 일반적으로 선형 위상(linear phase)을 보장하기 어렵지만, 바이오스플라인 웨이블릿에서는 대칭 필터 쌍을 구성하여 선형 위상을 확보하는 방식이 가능하다. 이런 접근은 영상 처리나 특정 유형의 신호 처리에서 경계나 에지(Edge) 정보가 왜곡되는 문제를 완화한다.
웨이블릿 패킷(Wavelet Packet)
이산 웨이블릿 변환은 일반적으로 매 단계에서 저주파 성분만 다시 분해하여 다중 해상도를 얻는다. 그러나 웨이블릿 패킷 변환(Wavelet Packet Transform)은 저주파뿐 아니라 고주파 대역까지 재귀적으로 분해해 더 세밀한 주파수 밴드 분할을 진행할 수 있다.
이 방식은 신호의 특정 주파수 대역에서 더 정교한 해상도를 확보해야 하는 경우에 유용하다. 다만, 모든 대역을 동일하게 분해하기 때문에 계수의 양이 크게 늘어날 수 있으며, 분해 과정에서 어떤 대역을 얼마나 세밀하게 분석할지를 결정하는 비용이 추가로 든다는 점을 고려해야 한다.
경계 처리(Boundary Treatment)와 패딩(Padding)
실제 신호는 유한 길이를 가지므로, 웨이블릿 필터와 컨벌루션을 적용할 때 경계 영역에서 계수 누락이나 잘림 현상이 발생할 수 있다. 이를 해결하기 위해 다양한 경계 처리 방법이 사용된다. 예를 들어 신호의 양단을 반사(reflect)시켜 붙이거나, 0으로 채워 넣거나, 주기적(periodic)으로 이어 붙이는 방법이 대표적이다.
반사 패딩(reflect padding)의 경우 신호의 경계 주변 특성을 매끄럽게 연결할 수 있어 이미지 처리 같은 2차원 응용에서 자주 쓰인다. 0 패딩(Zero padding)은 구현이 단순하나 경계 근방에서 급격한 변화를 야기할 수 있다. 주기적 패딩은 원 신호를 토대로 주기성(periodicity)을 가정할 수 있는 경우에 적합하다.
이산 웨이블릿 변환의 구현
이산 웨이블릿 변환 알고리즘은 필터뱅크 구조를 실제 디지털 시스템에서 어떻게 구현하느냐에 따라 성능, 메모리 사용량, 연산 시간 등이 달라진다. 전형적인 구현은 한 단계씩 저역통과·고역통과 필터를 거쳐 다운샘플링을 수행하는 과정을 반복한다. 스케일이 높아질수록 샘플 개수가 줄어들어, 전체 연산 횟수는 $O(N)$ 수준에서 처리 가능하다. 이는 임의 길이 $N$의 신호에 대해 풀 컨벌루션을 적용했을 때 발생할 수 있는 $O(N \log N)$ 혹은 그 이상의 복잡도보다 효율적이다.
다운샘플링과 필터 연산을 결합한 폴리페이즈 구조를 이용하면, 동일한 변환을 더 적은 연산 단계로도 달성할 수 있다. 이 폴리페이즈 기법은 시스템 내부에서 샘플을 분할하여 동시에 처리하도록 함으로써 파이프라이닝(pipelining) 효과를 최대화한다. 효율적인 데이터 구조와 캐시(caching) 기법을 적용하면 실시간 신호 처리 분야에서도 유의미한 성능을 확보할 수 있다.
이론적으로는 2진 계단식(dyadic) 다운샘플링만이 아니라, 다른 비율의 다운샘플링이나 확장된 필터뱅크 구조도 가능하지만, 다중 해상도 분석과 직교성을 유지하려면 대부분 2진 기반의 구조가 일반적으로 쓰인다.
간단한 Python 예시
Python 환경에서 이산 웨이블릿 변환을 학습용으로 시도할 때는 PyWavelets(pywt) 라이브러리를 활용할 수 있다. 아래는 1차원 신호에 대해 다베시 4 웨이블릿을 사용해 한 단계 분해 후 계수를 출력하는 간단 예시다.
위 코드에서 $cA$ 계수는 저역통과 필터(스케일링 함수)에 대응하는 계수들이며, $cD$ 계수는 고역통과 필터(웨이블릿 함수)에 해당하는 계수들이다. 필터 길이가 길어질수록(또는 소멸 모멘트가 높아질수록) 경계에서 발생하는 패딩 패턴이나 계수 길이 차이가 눈에 띌 수 있다.
파이썬 외에도 C/C++, MATLAB, R 등 대부분의 프로그래밍 언어 및 수치 해석 환경에서 이산 웨이블릿 변환 함수나 라이브러리가 제공된다. 구현 시에는 필터 계수의 대칭성, 경계 처리 방식, 다운샘플링 스킴(scheme) 등을 세부적으로 조정할 수 있으므로, 목표 애플리케이션에 따라 세밀하게 설정을 바꾸어야 한다.
Last updated