아다마르 변환
아다마르 변환(Hadamard transform)은 푸리에 변환의 일반화된 형태로, 크기가 2의 거듭제곱인 입력 벡터를 받아 동일한 크기의 출력 벡터로 변환하는 직교 변환입니다. 이 변환은 신호 처리, 이미지 압축, 양자 컴퓨팅 등 다양한 분야에서 활용됩니다. 아다마르 변환은 주로 아다마르 행렬을 사용하여 구현됩니다.
정의 및 특징:
아다마르 변환은 크기가 N = 2n인 입력 벡터 x에 대해 다음과 같이 정의됩니다.
Hn x
여기서 Hn은 크기가 N × N인 아다마르 행렬입니다. 아다마르 행렬은 재귀적으로 정의될 수 있으며, 가장 기본적인 형태는 다음과 같습니다.
H0 = [1]
Hn = (1/√2) * [ Hn-1 Hn-1 Hn-1 -Hn-1 ]
예를 들어, H1과 H2는 다음과 같습니다.
H1 = (1/√2) * [ 1 1 1 -1 ]
H2 = (1/2) * [ 1 1 1 1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 1 ]
아다마르 변환은 다음과 같은 특징을 가집니다.
- 직교성: 아다마르 행렬의 행들은 서로 직교합니다. 즉, 임의의 두 행의 내적은 0입니다.
- 실수 값: 아다마르 행렬의 모든 원소는 실수 값(1 또는 -1)입니다.
- 대칭성: 아다마르 행렬은 대칭 행렬입니다.
- 고속 계산: 아다마르 변환은 고속 푸리에 변환(FFT)과 유사한 방식으로 효율적으로 계산될 수 있습니다.
응용 분야:
- 신호 처리: 신호의 특징 추출, 잡음 제거 등에 사용됩니다.
- 이미지 압축: 이미지 데이터를 압축하는 데 사용됩니다.
- 양자 컴퓨팅: 양자 알고리즘에서 중요한 역할을 합니다. 예를 들어, 양자 중첩 상태를 생성하는 데 사용됩니다.
- 통신: 코드 분할 다중 접속(CDMA) 시스템에서 확산 코드로 사용됩니다.
- 오류 정정 부호: 아다마르 코드는 오류 정정 부호의 한 종류입니다.