회전하는 여러 설비들 중에는 정속으로 회전하는 설비들도 있지만, 속도가 변하는 설비들도 많습니다. 예를 들어 산업용 로봇의 경우 6개의 축에 있는 각 서보모터들이 순간적으로 가속되었다가 감속되면서 제어됩니다. 즉, non-stationary한 상태로 가동됩니다.
회전설비의 진단을 위해 고장으로 인한 특성 주파수를 추출이 필요합니다. 그런데 이런 가변 속도 설비들의 경우 고장의 특성을 추출하기 위해서는 시간에 따라 주파수 특성이 변하기 때문에 그 변화를 포착할 수 있어야 합니다. 그렇기 때문에 Onepredict에서는 산업용 로봇의 고장 특성을 보기 위해 CWT(Continuous Wavelet Transform, 연속 웨이블릿 변환)을 사용해 전처리 과정을 갖습니다.
이번 글에서는 CWT의 원리에 대해 더 자세히 살펴보고, 직접 코드로 구현해보도록 하겠습니다.
웨이블릿 변환(Wavelet Transform)은 임의의 신호를 웨이블릿(Wavelet)으로 정의되는 함수들로 분해하는 방법입니다. 푸리에 변환(Fourier Transform)이 무한히 진동하는 sine, cos 함수를 기저함수로 사용해 신호를 분해나는 것과는 달리 웨이블릿 변환은 진동하는 시간이 제한되는 함수를 기저함수로 사용해 시간 당 포함되는 주파수 성분의 크기를 보게 됩니다.
그 원리도 어렵지 않은데요. 원리를 요약하자면 특정한 규칙에 따라 모델링 된 웨이블릿 함수의 시간 스케일을 바꿔가며 원본 신호와의 상관 계수를 계산해 변환할 수 있습니다. 그 과정을 한 번 차근차근 살펴보겠습니다.
웨이블릿(Wavelet)
웨이블릿에 대한 정의는 분야마다 조금씩 차이를 보이지만 기본적으로 정해진 시간 안에서 증가와 감소를 반복하며 진동하는, 평균이 0인 진동으로 표현됩니다. 대부분의 웨이블릿 함수는 불규칙적이고 비대칭적이며, 처음 0에서 시작해 진폭이 점점 커지다가 다시 작아지며 0으로 수렴하는 모습을 보입니다. 이러한 특징만 충족시키면 되기 때문에 종류가 무한하며, 대표적으로 Morlet, Coiflet, Symlets, Mexican Hat 등이 있습니다(그림 1).
그림 1. Wavelet의 종류
Scaling and Shifting