웨이블릿 변환 (Wavelet Transforms)

개요 (Introduction)

웨이블릿(wavelets)은 데이터의 노이즈 제거와 데이터 스트림(data streams) 및 영상(image) 압축에 뛰어난 신호처리도구(signal processing toolkit)이다. 양호한 계측을 위해 푸리에 변환(Fourier transforms)의 많은 장점을 극대화할 수 있는 이동평균법(moving average) 이다. 사실 , FBI는 웨이블릿 데이터 압축 기술을 데이터베이스에 지문 이미지의 파일 크기를 줄이기 위해 사용한다.

웨이블릿의 역사는 알프레드 하르(Alfred Haar)가 처음 '하르 변환(Haar transform)을 제안한 1909년으로부터 시작된다. 하지만 그 전에 1987년 인그리드 다우베치즈(Ingrid Daubechies)가 일반적인 웨이블릿 변환(general wavelet trasforms)을 제시하였고, 하르 변환은 그것의 특별한 경우이며, 사실 이것은 디지털 신호처리에 매우 유용한 것이었다. 이 시점이 웨이블릿 분석의 시작이었다.

하르 변환 (Haar Transform)

다음과 같이 계단형 신호 특성을 가진 8개 데이터 점을 생각한다.

8개의 원 데이터 값은

\[\text{Original 8 values}\ \to\ (y_1,y_2,y_3,y_4,y_5,y_6,y_7,y_8)=(5,5,5,2,2,2,7,7)\]

이제 다음을 수행한다: (i) 8개 데이터 점을 각각 2점씩 짝을 이루어 4개의 그룹으로 만들고, (ii) 각 짝을 이루는 값들의 합과 차를 아래와 같이 계산한다.

\(\begin{matrix}\rm{Sum_1}=y_1+y_2=10&\rm{Sum_2}=y_3+y_4=7&\rm{Sum_3}=y_5+y_6=4&\rm{Sum_4}=y_7+y_8=14\\\rm{Diff_1}=y_1-y_2=0&\rm{Diff_2}=y_3-y_4=3&\rm{Diff_3}=y_5-y_6=0&\rm{Diff_4}=y_7-y_8=0\end{matrix}\)

주의 - 나중에 이들을 \(\sqrt{2}\)로 나눌 것이다. 하지만 지금 당장은 개념에 집중하고 있으므로 불필요하다.

이들 합과 차를 일반적으로 다음과 같이 쓴다.

\[({\rm Sum_1,Sum_2,Sum_3,Sum_4,Diff_1,Diff_2,Diff_3,Diff_4})\]

따라서 위의 결과는 아래와 같다.

\[\text{Sums & Diffs}\ \to\ (10,7,4,14,0,3,0,0)\]

8개 값으로 출발했고, 지금도 여전히 8개이다. 곧, 4개의 합과 4개의 차. 이것은 데이터 점수가 동일하게 유지된다는 점에서 일종의 "정보의 보존(conservation of information)"이라 할 수 있다. 

데이터 압축 (Data Compression)

원 데이터의 계단형(stair-stepped) 속성으로부터 몇개의 차이 값들의 영인 것이 관찰된다. 위이블릿의 데이터 압축 능력은 이들 영인 값들은 "저장되지 않아도 된다.(not-stored)"에 있고, 따라서 파일 크기를 줄일 수 있다. 그리고 저장되지 않은 숫자들은 자동적으로 영으로 간주된다. 데이터가 계단형을 가지면 많은 영인 값들을 가질 수 있고 저장이 불필요하다.

역 변환 (Inverse Transform)

원 데이터로 원복하는 방법은 쉽다. 예를 들면, \(\rm Sum_1=10\)과 \(\rm Diff_1=0\)로부터, \(y_1=y_2=5\)를 다음식을 이용하여 쉽게 되찾을 수 있다.

\[y_1={\rm Sum_1+Diff_1\over2}\qquad\rm{and}\qquad y_2={\rm Sum_1-Diff_1\over2}\]

모든 짝을 이루는 숫자에 대하여 이렇게 함으로써 일련의 원 데이터를 다시 얻을 수 있다.

데이터 보정 (Data Smoothing)

이제 데이터 보정(data smoothing)에 대해 다루어 본다. 이를 위해 그래프 데이터에 노이즈를 도입한다.

새로운 노이즈 값들은

\[\text{8 values with noise}\ \to\ (y_1,y_2,y_3,y_4,y_5,y_6,y_7,y_8)=(5.3,4.8,5.2,1.8,2.2,2.0,7.3,6.9)\]

새로운 합과 차들은 이제 아래와 같다.

\(\small\begin{matrix}\rm{Sum_1}=y_1+y_2=10.1&\rm{Sum_2}=y_3+y_4=7.0&\rm{Sum_3}=y_5+y_6=4.2&\rm{Sum_4}=y_7+y_8=14.2\\\rm{Diff_1}=y_1-y_2=0.5&\rm{Diff_2}=y_3-y_4=3.4&\rm{Diff_3}=y_5-y_6=0.2&\rm{Diff_4}=y_7-y_8=0.4\end{matrix}\)

그리고 이들을 길게 쓰면

\[\text{Sums & Diffs of noisy data}\ \to\ (10.1,7.0,4.2,14.2,0.5,3.4,0.2,0.4)\]

마지막 4개의 차이 값들은 큰 값이거나 - 원 데이터의 적법한 절차에 상응하는 - 또는 영이어야 한다. 하지만 위의 값들은 0.5, 0.2, 또는 0.4가 되어서는 않되며, 이들은 사실 상 (다른 값들보다 상대적으로) 작은 값이나 영은 아니다. 이들 영이 아닌 작은 값들은 원 데이터에 노이즈가 존재함을 의미한다.

만약 이들 3개의 영이 아닌 작은 값들이 있어서는 안된다면 - 이들은 무엇이 되어야 하는가? 정답은 노이즈가 없다면 "0"이 되어야 한다. 따라서 영으로 처리한다. 이러한 과정을 거쳐 데이터 보정이 이루어 진다.

제로잉과 데이터 보정 (Zeroing & Data Smoothing)

여기서 제로잉은 데이터 보정 과정이며 이를 이해하는 것은 매우 중요하다. 왜냐하면 역 변환은, 작지만 영이 아닌(small-nut-nonzero) 차이값들이 아닌, 영인(zero-valued) 차이값들로부터 나오기 때문이다.

따라서 8개 값의 배열은 다음과 같이 된다.

\[\text{Zeroed out small diffs}\ \to\ (10.1,7.0,4.2,14.2,0.0,3.4,0.0,0.0)\]

그리고 역 변환(inverse transform)을 수행하면

\[\text{Transformed smoothed values}\ \to\ (5.05,5.05,5.2,1.8,2.1,2.1,7.1,7.1)\]

아래는 위의 결과 그래프이다.

영이 아닌 작은 값들을 영으로 처리함으로써 보정된 데이터를 얻을 수 있었다.

에너지 보존 (Conservation of Energy)

데이터 스트림(data stream)의 에너지는 데이터 점들의 제곱합이다. 위의, 영으로 처리되기 전의, 노이즈를 포함한 예시의 에너지는 아래와 같다.

\[5.3^2+4.8^2+5.2^2+1.8^2+2.2^2+2.0^2+7.3^2+6.9^2=191.15\]

비교를 위해 마찬가지로 영으로 처리되기 전의 합과 차들의 에너지는

\[10.1^2+7.0^2+4.2^2+14.2^2+0.5^2+3.4^2+0.2^2+0.4^2=382.3\]

명백히 위의 값들은 다르다. 하지만 놀라운 점은 원 y값들의 에너지의 정확히 2배라는 것이다. 그러므로 모든 합과 차를 \(\sqrt{2}\)로 나누면, 변환된 값들의 에너지는 원 에너지와 동일한 값이 된다. 다시 말해서, 위의 변환은 에너지를 보존한다는 것이다.

에너지 보존 변환 (Energy Conserving Transforms)

합과 차의 방정식에서 에너지를 보존하기 위해 \(\sqrt{2}\)로 나누기 때문에 다음식을 얻게 된다.

\[{\rm Sum_1}={y_1+y_2\over\sqrt{2}}\quad\text{and}\quad{\rm Diff_1}={y_1-y_2\over\sqrt{2}}\]

다음식에서 확인할 수 있듯이 이 변환 방정식이 에너지를 보존한다는 것은 쉽게 이해할 수 있다.

\[{\rm Sum_1^2+Diff_1^2}=y_1^2+y_2^2\]

그리고 역변환은 다음과 같다.

\[y_1={\rm Sum_1+Diff_1\over\sqrt{2}}\quad\text{and}\quad y_2={\rm Sum_1-Diff_1\over\sqrt{2}}\]

에너지 보존은 위한 방정식의 \(\sqrt{2}\)로 인해 순 및 역변환의 바람직한 대칭성이 유도된다.

다시 본 문제로 돌아온다. 합과 차들은 \(\sqrt{2}\)로 나누면 다음을 얻는다.

\[\text{Sums & Diffs divided by }\sqrt{2}\ \to\ (7.14,4.95,2.97,10.04,0.35,2.40,0.14,0.28)\]

그리고 이제 에너지를 고려하면

\[7.14^2+4.95^2+2.97^2+10.04^2+0.35^2+2.40^2+0.14^2+0.28^2=191.5=100\%\]

이 변환을 통해 에너지가 보존되었으므로 3개 값을 영으로 하여 신호로부터 제거하면 에너지의 양이 얼마인지 나타낼 수 있다. 3개의 값은 0.35, 0.14, 및 0.28 이다. 이들의 에너지는

\[0.35^2+0.14^2+0.28^2=0.225=0.12\%\]

그러므로 보정된 합과 차들의 에너지는 191.15-0.225=190.925, 여전히 원 신호의 99.88%를 차지한다. 이러한 에너지 분석은 웨이블릿 보정 과정(wavelet smoothing process)을 통해 신호의 얼마가 제어되었고 얼마가 남아있는지 정량화할 수 있는 가치있는 도구이다.

이제 미소값들이 영으로 처리된 합과 차들의 집합은

\[\text{Zeroed - out small diffs}\ \to\ (7.14,4.95,2.97,10.04,0.00,2.40,0.00,0.00)\]

그리고 이들의 에너지는

\[7.14^2+4.95^2+2.97^2+10.04^2+2.40^2=190.925=99.88\%\]

또한 역변환도 \(\sqrt{2}\) 인자가 역할을 하기 때문에 여전히 이전과 동일한 결과를 보여준다.

\[\text{Transformed values after zeroing small diffs}\ \to\ (5.05,5.05,5.2,1.8,2.1,2.1,7.1,7.1)\]

그리고 에너지는

\[5.05^2+5.05^2+5.2^2+1.8^2+2.1^2+7.1^2+7.1^2=190.925=99.88\%\]

여기서 99.88%는 앞의 보정된 합과 차들의 값과 정확히 일치한다.

이제 \(\sqrt{2}\)가 과정에 포함되어 있으므로, 이것은 온전한 1-수준, 2-점, 에너지 보존 웨이블릿 변환이라 할 수 있다. 이 단순한 초장기 사례는 1909년 알프레드 하르(Alfred Haar)에 의해서 발견되어 하르 변환(Haar Transform)이라 불리운다. 이것은 그 후 한동한 "웨이블릿"의 용어와 다른 적용 사례가 나오지 않았지만, 현재도 웨이블릿의 첫번째 적용이라고 여겨진다.

다중 변환(Multilevel Transforms)

\(\sqrt{2}\)가 포함되어 있지만, 미소값들이 영으로 처리되기 전의 변환 데이터에서 출발해 본다. 2-수준 변환 과정은 단순히 합과 차의 조작을 첫번째 합들에 대해서 반복하는 것이다. 4개 차의 항들은 건드리지 않는다.

\[\small\rm Sums:\frac{7.14+4.95}{\sqrt{2}}=8.55\quad\frac{2.97+10.04}{\sqrt{2}}=9.20\quad Diffs:\frac{7.14-4.95}{\sqrt{2}}\quad\frac{2.97-10.04}{\sqrt{2}}=-5.00\]

1번째 합들을 2개의 새로운 합과 차들로 치환하면 다음을 얻는다.

\[\text{2 - Level sums and diffs}\ \to\ ({\color{red}8.55,9.20,1.55,-5.00},0.35,2.40,0.14,0.28)\]

그리고 마지막 세번째 변환은 마지막 2개의 합들에 대해 실시하고, 이번에는 첫번째와 두번째 차들은 건드리지 않는다. 이렇게 하면 다음과 같이 된다.

\[\text{3 - Level sums and diffs}\ \to\ ({\color{red}12.55,-0.46},1.55,-5.00,0.35,2.40,0.14,0.28)\]

이것이 3-수준 2-점 웨이블릿 변환(3-level 2-point wavelet transform)이다. 첫번째 값은 합이고 다른 값들은 차이이며 모두 영으로 소거될 수 있는 후보가 된다. 더우기 모든 과정에서 에너지는 보존된다.

\[12.55^2+0.46^2+1.55^2+5.00^2+0.35^2+2.40^2+0.14^2+0.28^2=191.15=100\%\]

에너지 보존의 중요성을 이제 알 수 있는데, 왜냐하면 이는 단일 한계값(threshold)이 선정되고 그 이하의 값들은 편향의 걱정없이 첫번째, 두번째 및 세번째 차들이 영으로 처리될 수 있다는 의미이기 때문이다. 만약 이 변환이 에너지가 보존되지 않는다면, 주어진 한계값이 3개의 다른 차분(difference) 과정에서 어떤 효과를 가져올지 명확하지 않을 것이다.

데이터 점들의 수와 2의 거듭제곱 (Number of Data Points & Powers of 2)

이들 모든 변환은 데이터 점들의 수가 짝수인 것이 요구되고, 그렇지 않으면 합과 차들의 완전한 집합을 계산할 수 없게 된다. 첫번째 합과 차들의 집합조차도 데이터 점수가 홀수이면 불가능하다.

이를 극복할 수 있는 몇가지 방법이 있다. 데이터 점수가 홀수이면, 임의의 데이터 점을 짝수를 얻기위해 복사할 수 있다. 또는 대안으로, 짝수를 얻기위해 스플라인 보간법(spline interpolation)이 사용될 수 있다. 가능성은 무궁무진하다.

하지만, 통상 그러하듯이, 다중변환(multilevel transforms)이 요구된다면, 데이터 점수의 제약은 증가된다. 여기의 예시에서도 그러하듯이 요구되는 데이터 점들의 수는 고속 푸리에 변환(FFT)처럼 2의 거듭제곱(a power of two)이 되어야 한다. 이번에도 스플라인법이 원 데이터를 신규로 요구되는 데이터 수로 보간하는 최선의 방법일 수 있다.

그리고 마지막으로, 아직 분명하지 않지만, 데이터 점들은 시간 또는 위치상으로 등간격으로 균일하게 배치되어야 한다. 이 또한 FFT와 공통되는 성질이라 할 수 있다. 웨이블릿 변환과 FFT는 둘다 y-값들만 정보가 전달되고, 따라서 y-값들이 균일하게 배치되었는지 결정하기 위해, x-값(혹은 시간)을 절대 참조하지 않는다. 단지 균일하게 배치되었다고 전제하게 된다. 그렇지 않으면, 변환이 작동하더라도 그 결과는 신뢰성이 저하되게 된다.

벡터 기반 표기법 (Vector-Based Notation)

순 및 역 웨이블릿 변환(forward and inverse) 둘다 벡터 연산으로 표현이 가능하다.

먼저 다음 벡터를 정의한다.

\[\vec{\rm v}=\left({1\over\sqrt{2}},{1\over\sqrt{2}}\right)\]

그리고 "합(sum)" 변환은 다음과 같이 행해질 수 있다.

\[\begin{split}{\rm Sum_1}&=\vec{\rm v}\cdot(y_1,y_2)={1\over\sqrt{2}}y_1+{1\over\sqrt{2}}y_2\\{\rm Sum_2}&=\vec{\rm v}\cdot(y_3,y_4)={1\over\sqrt{2}}y_3+{1\over\sqrt{2}}y_4\end{split}\]

그 다음 차분 연산(difference operation)을 위해 두번째 벡터를 정의한다.

\[\vec{\rm w}=\left({1\over\sqrt{2}},-{1\over\sqrt{2}}\right)\]

차분 변환은 아래와 같이 쓸 수 있다.

\[\begin{split}{\rm Diff_1}&=\vec{\rm w}\cdot(y_1,y_2)={1\over\sqrt{2}}y_1-{1\over\sqrt{2}}y_2\\{\rm Diff_2}&=\vec{\rm w}\cdot(y_3,y_4)={1\over\sqrt{2}}y_3-{1\over\sqrt{2}}y_4\end{split}\]

이 \(\vec{\rm w}\) 벡터는 부호가 다르고 절대값이 같은 성분을 가지고 있기 때문에 "웨이블릿(wavelet)"이라 불리운다. 사실 다음식이 성립한다.

\[w_1+w_2=0\]

명백히, \(\vec{\rm v}\)와 \(\vec{\rm w}\)는 둘다 다음과 같이 단위벡터이다.

\[v_1^2+v_2^2=w_1^2+w_2^2=1\]

그리고 최종적으로, \(\vec{\rm v}\)와 \(\vec{\rm w}\)는 직교(orthogonal) 한다.

\[\vec{\rm v}\cdot\vec{\rm w}=|\vec{\rm v}||\vec{\rm w}|\cos\theta=v_1w_1+v_2w_2=\left(1\over\sqrt{2}\right)\left(1\over\sqrt{2}\right)-\left(1\over\sqrt{2}\right)\left(1\over\sqrt{2}\right)=0\]

역변환 (Inverse Transfomrs)

역변환 또한 벡터 연산으로 간단히 표현된다. 위의 1-수준 순변환(1-level forward transform)의 첫번째 결과로부터 4개의 합과 차를 얻었다고 가정하자. 다시 원 데이터를 얻기 위해서는 단지 이들 합과 차에 벡터 \(\vec{\rm v}\)와 \(\vec{\rm w}\)를 곱해만 주면 된다. 하지만 이번에는 내적은 아니다. 이 과정은 3개의 단계를 포함한다.

1. 다음과 같이 "합 벡터(sum vector)"를 생성한다.

\(\begin{split}&\text{Sum Vector}=(\rm Sum_1*\vec{v},Sum_2*\vec{v},Sum_3*\vec{v},Sum_4*\vec{v})\\&=({\rm Sum_1}*v_1,{\rm Sum_1}*v_2,{\rm Sum_2}*v_1,{\rm Sum_2}*v_2,{\rm Sum_3}*v_1,{\rm Sum_3}*v_2,{\rm Sum_4}*v_1,{\rm Sum_4}*v_2)\end{split}\)

2. 다음과 같이 "차 벡터(diff vector)"를 생성한다.

\(\begin{split}&\text{Diff Vector}=(\rm Diff_1*\vec{w},Diff_2*\vec{w},Diff_3*\vec{w},Diff_4*\vec{w})\\&=({\rm Diff_1}*w_1,{\rm Diff_1}*w_2,{\rm Diff_2}*w_1,{\rm Diff_2}*w_2,{\rm Diff_3}*w_1,{\rm Diff_3}*w_2,{\rm Diff_4}*w_1,{\rm Diff_4}*w_2)\end{split}\)

3. 합과 차 벡터를 더한다. 즉, 같은 항끼리 합하면 된다.

\((y_1,y_2,y_3,y_4,y_5,y_6,y_7,y_8)=\text{Sum Vector+Diff Vector}\)

물론 3-수준 변환을 되돌리기 위해서는, 위의 과정을 3번 반복해야 한다. 먼저 첫번째 2개 데이터 점들에 대하여 적용하고, 그 다음 첫번째 4개 데이터 점들, 마지막으로 8개 점전체에 대하여 반복한다.

다우베치즈 웨이블릿 (Daubechies Wavelets)

잉그리드 다우베치즈(Ingrid Daubechies)는 다중 웨이블릿 형식의 발견과 디지털 신호처리에 대한 유용성으로 1980년대 후반 웨이블릿의 인기에 기여하였다. 소위 다우베치즈 웨이블릿(Daubechies Wavelets)은 임의의 짝수점들을 가지는 웨이블릿 변환의 하나로 하르 변환(Haar transform)은 가장 단순화된 형태이다.

4-점 다우베치즈 웨이블릿 (4-Point Daubechies Wavelets)

변환에 사용되는 4-점 벡터는 다음과 같다.

\[\begin{split}\vec{\rm v}&=(\ \ \ 0.4829629,\ \ \ 0.8365163,0.2241439,-0.1294095)\\\vec{\rm w}&=(-0.1294095,-0.2241439,0.8365163,-0.4829629)\end{split}\]

이 4-점 웨이블릿은 2-점 하르 웨이블릿과 같은 성질을 가지고 있다.

\[\sum{v_i}=\sqrt{2}\qquad\sum{v_i^2}=1\qquad\sum{w_i}=0\qquad\sum{w_i^2}=1\]

\[\vec{\rm v}\cdot\vec{\rm w}=0\]

그리고 앞서 언급되지 않았던 하르 변환과 동일한 성질이 있다. 그것은 벡터 \(\vec{\rm v}\)와 \(\vec{\rm w}\) 성분 간 관계식이다.

\[w_1=v_4\qquad w_2=-v_3\qquad w_3=v_2\qquad w_4=-v_1\]

일반적인 관계는 다음과 같다.

\[w_1=v_N\qquad w_2=-v_{N-1}\qquad w_3=v_{N-2}\qquad w_4=-v_{N-3}\]

여기서 N은 벡터의 성분수이다: 2, 4, 6, 등

이 관계는 모든 다우베치즈 웨이블릿 변환에 차수에 관계없이 확장될 수 있으며, 또한 하르 변환에도 성립한다.

그러나! 이 4-점 웨이블릿 벡터, \(\vec{\rm w}\)는 2-점에는 없는 주목할 만한 추가적인 성질을 가지고 있다. 이것은 다음식으로 나타낼 수 있다.

\[\vec{\rm y}\cdot\vec{\rm w}=1*w_1+2*w_2+3*w_3+4*w_4=0\]

여기서 \(\vec{\rm y}=(1,2,3,4)\)는 보정할 계측 데이터이다. 실제로 위의 식은 임의의 선형 벡터에 대하여도 성립한다. 이것은 데이터 압축과 관련이 있는데, 선형 함수의 웨이블릿 변환은 저장이 불필요한 영을 반환하기 때문이다.

선형 데이터의 4-점 웨이블릿 변환 (4-Point Wavelet Transform of Linear Data)

다음 8개의 선형으로 증가되는 값들로 시작한다.

\[\text{Original 8 values}\to(1,2,3,4,5,6,7,8)\]

첫번째 수준 4-점 변환으로부터 다음을 얻는다.

\[\text{1st Sums & Diffs}\to(2.31,5.14,7.97,10.04,{\color{red}0,0,0},-2.83)\]

다음 \(\vec{\rm y}\)의 부분집합에 대한 내적, \(\vec{\rm y}\cdot\vec{\rm w}\)로부터 3개의 영의 결과가 도출되었다.

\[\vec{\rm y}=(1,2,3,4)\qquad\vec{\rm y}=(3,4,5,6)\qquad\vec{\rm y}=(5,6,7,8)\]

마지막 값, -2.83에 주목한다. 이는 \(\vec{\rm y}=(7,8,1,2)\) 일 때 내적, \(\vec{\rm y}\cdot\vec{\rm w}\)의 결과이다. 이 값들은 전도된 것으로 \(\vec{\rm y}\)가 선행벡터가 아니기 때문에 영이 아닌 것이다.

두번째 수준 변환을 수행하면

\[\text{2nd Sums & Diffs}\to({\color{red}5.60,12.10,0.37,-3.38},0,0,0,-2.83)\]

그리고 세번째 변환으로부터

\[\text{3rd Sums & Diffs}\to({\color{red}12.73,-4.38},0.37,-3.83,0,0,0,-2.83)\]

이제 8개의 값 중에서 3개 값이 영이 되었다. 이것은 데이터가 선형적으로 증가, 또는 감소할 때 저장을 요하는 데이터 양을 줄이기 위한(영인 값을 저장하지 않으므로) 4-점 웨이블릿 변환읜 본질적인 능력을 보여준다.

이제 이 4-점 웨이블릿 변환은 2-점 하르 변환의 계단형 데이터가 아닌 경사구간을 갖는 노이즈 데이터에도 적용할 수 있다.

4-점 웨이블릿 노이즈 데이터 보정 (4-Point Wavelet Smoothing of Noisy Data)

다음과 같이 노이즈를 포함한 데이터가 있다고 하자.

\[\text{8 values with noise}\to(1.47,1.77,3.24,3.79,4.96,5.20,7.16,8.62)\]

변환된 값들은

\[\text{Transformed values}\to(12.80,-4.70,-0.62,-3.82,0.29,0.37,0.02,-2.48)\]

0.4 임계값 이하는 영으로 처리한 후 다시 역변환을 하면 다음을 얻는다. (상세 계산과정은 다우베치즈 웨이블릿을 참조한다.)

\[\text{Smoothed values}\to(1.51,1.84,3.04,4.01,4.65,5.38,7.14,8.63)\]

위의 보정값들을 원 데이터와 함께 그래프로 나타내면 아래와 같다.

적색선이 완전한 직선은 아닌데, 왜냐하면 이것은 선형회귀(linear regression)가 아니기 때문이다. 매우 강력한 이동평균의 하나일 뿐이다. 다만, 원 데이터 대비 노이즈가 확실히 감소함을 알 수 있다.

고차 다우배치즈 웨이블릿 (High Order Daubechies Wavelets)

앞에서 보면 2-점 변환은 상수 함수에 적합하고, 4-점 변환은 선형 함수에 적합하다. 다음 6-점 변환은 2차 함수에 이상적인 것으로 알려져 있다. (그리고 8-점은 3차 함수가 가능 外, 기타 등등)

6-점 벡터는

\[\begin{split}\vec{\rm v}&=(0.33267055,0.80689151,\ \ \ 0.45987750,-0.13501102,-0.08544127,\ \ \ 0.03522629)\\\vec{\rm w}&=(0.03522629,0.08544127,-0.13501102,-0.45987750,\ \ \ 0.80689151,-0.33267055)\end{split}\]

6-점 웨이블릿은 다음을 포함, 2-점 및 4-점과 동일한 성질을 모두 가지고 있다.

\[1*w_1+2*w_2+3*w_3+4*w_4+5*w_5+6*w_6=0\]

이것은 단지 4점 변환과 동일한 선형 특성을 보여주는 6점 변환일 뿐이다. 하지만 6점 웨이블릿은 추가적으로 새로운 성질을 가지고 있다.

\[1^2*w_1+2^2*w_2+3^2*w_3+4^2*w_4+5^2*w_5+6^2*w_6=0\]

위의 식은 2차 함수를 영의 값을 가지는 웨이블릿 계수로 변환하는 능력을 보여준다. 따라서 처음으로 웨이블릿 변환은 데이터 압축과 보정을 위해 계단형이나 선형이 아닌, 곡률을 가지는 함수에 적용할 수 있게된다.

일반적으로 웨이블릿 차수가 N 이면 데이터 보정 함수의 지수는 N/2-1 이 된다.

출처 http://www.continuummechanics.org




--- under construction ---

댓글

이 블로그의 인기 게시물

전단응력 (Shear Stress)

엑셀 상자그림(Box Plot) 그리기

표면장력 공식