웨이블릿(Wavelet) 변환(Transform) 상세 설명(그림 참조)
본문 바로가기

대학 과목/빔 포밍(Beam Forming)

웨이블릿(Wavelet) 변환(Transform) 상세 설명(그림 참조)

반응형

 이전 강의에서 웨이블릿 변환의 개념 및 왜 사용해야 하는지에 대한 이유를 알아보았습니다. 이번 강의에서는 조금 더 상세하게 시뮬레이션 등을 통해 웨이블릿 변환에 대하여 알아보겠습니다.

 

1. 웨이블릿 변환의 개념 복습

 FT(퓨리에 변환)는 시간적으로 신호가 변화하지 않는 환경에서 sine, cos 함수를 기저함수로 사용해 신호를 분리하는 것이었으며, WT(웨이블릿 변환)의 경우는 시간적으로 신호가 변화하는 환경에서 상당히 짧은 시간에 다양한 기저함수를 사용하여 주파수 성분을 확인하는 기법입니다.

 즉, 웨이블릿 기저함수의 크기를 바꿔가며 신호와의 상관계수를 확인하는 것인데, 기저함수의 크기를 이렇게도, 저렇게도 바꾸니 계산량이 상당히 많이 있겠지요.

 

반응형

 

2. 웨이블릿(Wavelet) 원리

 웨이블릿의 경우 sine, cos과 같이 일단 평균이 0이되어야0이 되어야 합니다. 평균이 0이 되어야 내적 시 같은 것은 1 이상의 값을 가지고 다른 것은 0의 값을 가지기 때문이지요. 물론 평균이 0이라고 해서 다 같은 모양은 아니고 아래와 같이 불규칙적이고 비대칭적이며, 처음 0에서 시작해 진폭이 점점 커지다가 다시 작아지며 0으로 수렴하는 모습등을 보입니다. 대표적으로 Morlet, Coiflet, Symles, Mexican Hat 등이 있는데 각자 쓰임이 있습니다. 그렇더라도 기본적의 개념의 변화는 없습니다.

웨이블릿의 종류
웨이블릿의 종류

이러한 웨이블릿을 가지고 우리는 크기를 변경해가며 시간적으로 이동시켜 임의의 신호와 비슷한지 또는 다른지를 확인하게 됩니다. 아래 그림은 시간에 따라  웨이블릿 크기를 변경시킨 Morelt Wavelet을 나타낸 것입니다.

스케일에 따른 Morlet 웨이블릿
스케일에 따른 Morlet 웨이블릿

   딱 보더라도 웨이블릿의 스케일 factor가 커지면 저주파수와 가까워지고 factor가 작으면 고주파에 가까워집니다. 시간축에서 폭이 좁으면 좁을수록 우리는 고주파수라고 부르고 반대로 폭이 넓으면 저주파라고 부릅니다. 그 이유는 아래에서 더 자세히 알아보도록 하겠으며, 웨이블릿 변환을 수식적으로 표현하면 아래와 같습니다.

 

 

 

웨이블릿 수학식
웨이블릿 수학식

 위 수학식에서 ψ(Psi)는 웨이블릿 함수를 의미하여 *는 conjugate입니다. conjugate는 복소수의 부호를 바꿀 때 사용됩니다. 그리고 a, b에서 a는 웨이블릿의 크기를 변화하는 함수이고 b는 시간영역에서 shift시키는 함수이지요. 즉, 웨이블릿 함수 ψ에 a를 이용하여 크기를 계속 변화시키면서 b를 이용해 신호를 shift시키는 연산을 가리킵니다. 이렇게 하면 원 신호에다가 웨이블릿 함수가 비슷한지 또는 비슷하지 않은지 판단이 되겠지요. 이를 상관계수라고 표현합니다.

 아래는 a를 이용해 웨이블릿 함수의 크기를 변화시킨 것입니다. 빨간색, 파란색, 검은색 3개가 나오죠.

웨이블릿 함수의 크기변환
웨이블릿 함수의 크기변환

 

 3 Hz의 임의의 신호를 만들고 a에따라 sacle 다른 웨이블릿 함수를 겹쳐 보았습니다. 뭐가 가장 비슷한가요? 맞습니다. 파란색이 가장 비슷하죠. 파란색이 바로 3 Hz에 대응하는 웨이블릿 함수입니다. 이렇게 다양한 웨이블릿 함수를 만들어 비슷한지 또는 비슷하지 않은지 찾으면 되는 것입니다. 참 쉽죠?

웨이블릿 함수와 신호의 상관관계
웨이블릿 함수와 신호의 상관관계

 자 여기서 우리는 중요한 개념을 하나 잡고 갑시다. 

 우선 임의의 신호의 스펙은 아래와 같습니다.

 (1) fs = 100

 (2) fc = 10

 그리고 1Hz, 5 Hz, 10Hz 에서 a의 크기를 변경시킨 웨이블릿 함수입니다. 크기는 50, 100, 200 입니다.

 

 

1 Hz5 Hz10 Hz
1, 5, 10 Hz

 5 Hz에서 100의 크기와 10 Hz에서 200의 크기가 임의의 신호와 완전히 겹쳐지는 것을 알 수 있습니다. 그렇더라도 겹쳐지는 넓이가 10 Hz 200의 크기가 더 크기 때문에 10 Hz 200에서 더 큰 상관관계 갑이 나오겠지요? 물론 20 Hz에 400의 상관관계가 10 Hz 200보다 더 클 것입니다.

 어찌 되었든 우리가 scale의 크기를 100으로 한정했을 때 5 Hz에서 가장 큰 상관관계가 나올 것이고 여기에 여기에 2를 곱하게 되면 원래 신호의 주파수를 알 수 있게 됩니다.

 

3. 상관성 판단을 위한 convolution

 상관관계를 알기 위한 cross correlation이나 covolution은 한 끝 차이입니다. 신호를 뒤집어서 넣느냐 또는 그냥 넣느냐의 차이인데 지금 우리가 입력하는 웨이블릿 함수는 뒤집으나 그냥 넣으나 똑같기 때문에 convolution을 이용해 상관관계를 확인하셔도 됩니다.

 압서 말씀드렸다시피 웨이블릿 함수와 그냥 신호 간 convolution을 하게 된다면, 웨이블릿 함수 자체가 평균이 0이므로 비슷하지 않으면 0이 됩니다. 따라서 임의의 신호와 웨이블릿 함수간 convolution을 아래와 같은 수식으로 수행을 합니다.

convolution
convolution

 임의의 신호 f에 대하여 f보다 더 짧은 웨이블릿 함수 g를 시간영역에 대하여 t만큼 shift 시키면서 곱, 합을 반복 즉, 내적을 하는 것이죠. 이를 시간영역에서 하셔도 되고 주파수 영역에서 하셔도 됩니다. 어차피 fft 후 ifft를 하면 convolution과 똑같습니다. 이는 다음에 수식적으로 증명을 한번 드리지요. 이걸 증명하는 사람들이 잘 없더라고요. 아니 전무합니다. 귀찮은지 이해를 못 한 건지 모르겠지만 다음에 한 번 포스팅하겠습니다.

 자 그럼 위에서 만들어진 웨이블릿 함수와 임의의 신호 간 상관관계 결과를 확인해 보겠습니다. 아래의 왼쪽 그림은 5 Hz에서 스케일 50, 100, 200의 웨이블릿 함수이고 오른쪽은 10 Hz 신호에 각 웨이블릿 함수를 convolution한 결과입니다. 오른쪽 그림에서 빨간색은 빨간색 웨이블릿 함수와 임의의 신호간 컨볼루션, 파란색은 파란색 웨이블릿 함수와 임의의 신호간 컨볼루션, 검은색은 임의의 신호입니다.  확연히 파란색의 상관성이 빨간색보다 훨씬 높다는 것을 알 수 있죠? 이는 길이가 50인 웨이블릿의 주파수 성분은 거의 포함되지 않았지만 길이가 100인 웨이블릿 주파수 성문은 매우 많이 담고 있다고 해석할 수 있습니다. 이렇게 웨이블릿 파장을 바꿔가며 convolution을 취해 해당 신호에서 어떤 주파수 성분이 얼마나 담겨있는지를 알 수 있습니다.

 자 여기까지가 WT의 모든 설명이었습니다. 다음 포스팅에서는 WT 설명의 마지막 CWT(Continuous Wavelet Transform)을 말씀드리겠습니다. WT에서는 스켈과 시간축에서 신호의 결과가 어떻게 나오는지 확인해 볼 것입니다.

반응형

.link_tit