Main Content

월시-아다마르 변환(Walsh-Hadamard Transform)

월시-아다마르 변환은 신호를 일련의 기저 함수로 분해하는 비정현파 직교 변환 기법입니다. 기저 함수는 진폭이 +1 또는 –1 값인 사각파 또는 구형파인 월시 함수입니다. 월시-아다마르 변환은 아다마르 변환(MATLAB의 hadamard 함수 참조), 월시 변환 또는 월시-푸리에 변환이라고도 합니다.

처음 8개의 월시 함수는 다음과 같은 값을 갖습니다.

인덱스월시 함수 값
01 1 1 1 1 1 1 1
11 1 1 1 -1 -1 -1 -1
21 1 -1 -1 -1 -1 1 1
31 1 -1 -1 1 1 -1 -1
41 -1 -1 1 1 -1 -1 1
51 -1 -1 1 -1 1 1 -1
61 -1 1 -1 -1 1 -1 1
71 -1 1 -1 1 -1 1 -1

월시-아다마르 변환은 시퀀시 값을 반환합니다. 시퀀시는 주파수의 보다 일반화된 개념으로, 단위 시간 간격당 평균 영점교차 개수의 절반으로 정의됩니다. 각 월시 함수마다 고유한 시퀀시 값이 있습니다. 반환된 시퀀시 값을 사용하여 원래 신호의 신호 주파수를 추정할 수 있습니다.

월시 함수를 저장할 때는 시퀀시, 아다마르, 이항의 세 가지 정렬 방식이 사용됩니다. 시퀀시 정렬은 위 표에 나와 있는 순서에 따라 월시 함수를 정렬하며, 신호 처리 응용에서 사용됩니다. 아다마르 정렬은 월시 함수를 0, 4, 6, 2, 3, 7, 5, 1로 정렬하며, 제어 응용에서 사용됩니다. 이항 또는 그레이 코드 정렬은 월시 함수를 0, 1, 3, 2, 6, 7, 5, 4로 정렬하며, 수학에서 사용됩니다.

월시-아다마르 변환은 영상 처리, 음성 처리, 필터링, 파워 스펙트럼 분석과 같은 다양한 분야에서 사용됩니다. 대역폭 저장 요구 사항을 줄일 때와 확산 스펙트럼 분석에서 무척 유용합니다. FFT와 마찬가지로 월시-아다마르 변환에도 고속 버전이 있습니다. 바로 고속 월시-아다마르 변환(fwht)입니다. FWHT는 FFT보다 저장 공간이 적게 필요하며 계산 속도가 더 빠릅니다. 덧셈과 뺄셈을 할 때 FFT는 복소수 값이 필요한 반면 FWHT는 실수만 사용하기 때문입니다. FWHT는 급격한 불연속을 갖는 신호를 FFT보다 더 적은 계수를 사용해서 표현할 수 있습니다. FWHT와 역 FWHT(ifwht)는 모두 대칭이므로 동일한 계산 방법을 사용합니다. 길이가 N인 신호 x(t)에 대해 FWHT와 IFWHT는 다음과 같이 정의됩니다.

yn=1Ni=0N1xiWAL(n,i),xi=i=0N1ynWAL(n,i),

여기서 i = 0,1, …, N – 1WAL(n,i)는 월시 함수입니다. FFT에 대한 쿨리-튜키(Cooley-Tukey) 알고리즘과 비슷하게, N개의 요소가 N/2개의 요소로 구성된 2개의 세트로 분해된 후 나비 구조로 결합되어 FWHT를 형성합니다. 입력값이 보통 2차원 신호인 영상의 경우, FWHT 계수는 먼저 행을 따라 실행한 다음 열을 따라 실행하여 계산됩니다.

다음과 같은 간단한 신호에 대해 FWHT를 실행한 결과를 보면 x가 시퀀시 값 0, 1, 3, 6인 월시 함수를 사용하여 생성되었음을 알 수 있습니다. 0, 1, 3, 6은 변환된 x에서 0이 아닌 요소의 인덱스입니다. 역 FWHT는 원래 신호를 다시 생성합니다.

x = [4 2 2 0 0 2 -2 0]
y = fwht(x)
x =

     4     2     2     0     0     2    -2     0

y =

     1     1     0     1     0     0     1     0
x1 = ifwht(y)
x1 =

     4     2     2     0     0     2    -2     0

참고 항목

|

관련 항목