도구스학업·수학

하르 웨이블릿 변환 계산기

신호를 평균과 차로 되풀이해 나눠 다중해상도로 분해합니다. 정규화에 따라 에너지가 보존되는지 보여 주고, 계수를 버려 압축했을 때의 오차까지 냅니다.

쉼표·공백·줄바꿈으로 구분 — 지금 16개

단계

0이면 갈 수 있는 데까지 갑니다

%

큰 것부터 남기고 나머지는 0으로 둡니다

4단계로 분해

계수 16개

에너지 보존됨 · 되돌린 오차 3.55e-15

원 신호의 에너지 (제곱합)2,302
계수의 에너지2,302
에너지 보존보존됨 (파스발)
되돌렸을 때의 최대 오차3.553e-15
단계근사 (평균 쪽)상세 (차이 쪽)
원 신호4, 6, 10, 12, 8, 6, 5, 5, 20, 22, 21, 19, 7, 6, 6, 7
1단계7.07, 15.56, 9.9, 7.07, 29.7, 28.28, 9.19, 9.19-1.41, -1.41, 1.41, 0, -1.41, 1.41, 0.71, -0.71
2단계16, 12, 41, 13-6, 2, 1, 0
3단계19.8, 38.182.83, 19.8
4단계41-13
남긴 계수 / 버린 계수8 / 8
남긴 에너지의 비율99.6525%
압축 뒤 최대 오차1.5
압축 뒤 RMSE0.70711
n원 신호50% 남기고 되돌림차이
044-0
166-0
21010-0
31212-0
4871
567-1
6550
7550
82020.5-0.5
92220.51.5
102120.50.5
111920.5-1.5
1276.50.5
1366.5-0.5
1466.5-0.5
1576.50.5
푸리에는 «어떤 주파수»를 주고 하르는 «어디서»를 남깁니다. 신호 한가운데서 값이 한 번 튀면 그 정보가 모든 주파수에 얇게 퍼져, 스펙트럼만 보고는 어디서 튀었는지 알 수 없습니다. 하르는 반대로 상세 계수 하나하나가 «특정 자리의 특정 크기 변화»를 가리킵니다. 한 자리에서만 튄 신호는 그 자리 근처의 계수 몇 개만 0이 아니게 됩니다. 위 표에서 1단계 상세를 보면 값이 크게 바뀐 자리가 그대로 보입니다.
지금 √2로 나누고 있어 에너지가 보존됩니다. 계수 제곱합이 2,302, 신호 제곱합이 2,302입니다. 2로 나누면 근사가 말 그대로 «평균»이라 읽기 쉽지만 에너지가 줄어듭니다. √2로 나누면 둘이 정확히 같아집니다(파스발). 압축에서 「어느 계수를 버려야 손실이 가장 적은가」를 따지려면 √2 쪽이어야 합니다 — 계수의 크기가 곧 기여하는 에너지이기 때문입니다. 구현마다 이 선택이 달라 값이 안 맞는 일이 흔합니다.
압축은 작은 계수를 버리는 일입니다. 계수 16개 중 큰 것부터 8개를 남기고 8개를 0으로 두었더니 에너지의 99.652%가 남고 RMSE가 0.7071입니다. 매끄러운 신호는 상세가 대부분 0에 가까워 몇 %만 남겨도 거의 그대로 돌아옵니다. 버리는 것이 없으면 완전히 되돌아옵니다.
정수 신호는 완전히 되돌아옵니다. 하르는 평균과 차로 나누기만 하므로 버리는 계수가 없으면 반올림 오차 말고는 잃는 것이 없습니다. 위의 「되돌렸을 때의 최대 오차」가 그것을 보여 줍니다.

계산 방법

  1. 1신호를 시간 순서대로 넣습니다.
  2. 2정규화를 고릅니다. 압축을 따질 거라면 √2 쪽이어야 합니다.
  3. 3단계별 근사와 상세를 봅니다. 상세가 큰 자리가 값이 크게 바뀐 자리입니다.
  4. 4남길 계수의 비율을 줄여 가며 신호가 얼마나 망가지는지 봅니다.

자주 묻는 질문

신호를 이웃 두 개씩 묶어 평균(근사)과 차(상세)로 나누고, 평균만 남겨 다시 그렇게 하기를 되풀이합니다. 길이가 절반씩 줄어 로그 번 만에 끝납니다. 마지막 근사 하나와 단계별 상세들을 모으면 원래 신호와 같은 개수의 계수가 됩니다.

푸리에는 어떤 주파수가 얼마나 들어 있는지를 주지만 언제 그랬는지는 잃습니다. 신호 한가운데서 값이 한 번 튀면 그 정보가 모든 주파수에 얇게 퍼져 스펙트럼만 보고는 어디서 튀었는지 알 수 없습니다. 하르는 상세 계수 하나하나가 특정 자리의 특정 크기 변화를 가리켜서, 한 자리에서만 튄 신호는 그 자리 근처의 계수 몇 개만 0이 아니게 됩니다.

압축이나 계수 크기를 따질 거라면 √2입니다. 그때만 계수 제곱합이 원 신호의 제곱합과 정확히 같아져(파스발) 계수의 크기가 곧 기여하는 에너지가 됩니다. 2로 나누면 근사가 말 그대로 평균이라 읽기 쉽지만 에너지가 줄어듭니다. 구현마다 이 선택이 달라 값이 안 맞는 일이 흔합니다.

절댓값이 작은 상세 계수부터 0으로 두고 되돌립니다. 매끄러운 신호는 상세가 대부분 0에 가까워 몇 %만 남겨도 거의 그대로 돌아옵니다. 이 계산기는 남긴 에너지의 비율과 되돌린 뒤의 오차를 함께 내므로 어디까지 버려도 되는지 볼 수 있습니다.

계수를 버리지 않으면 반올림 오차 말고는 잃는 것이 없습니다. 하르는 평균과 차로 나누기만 하기 때문입니다. 이 계산기는 되돌렸을 때의 최대 오차를 함께 보여 줍니다.

짝을 지을 수 없으므로 채웁니다. 0으로 채우면 끝에서 없던 절벽이 생겨 그 자리에 큰 상세 계수가 뜨고, 마지막 값을 되풀이해 채우면 그 절벽이 생기지 않습니다. 이 계산기는 둘을 고를 수 있게 하고 몇 개를 채웠는지 알려 줍니다. 어느 쪽을 썼는지 밝히지 않으면 끝부분 계수를 해석할 수 없습니다.

값이 갑자기 바뀐 자리를 찾는 데 흔히 씁니다. 상세 계수가 큰 자리가 곧 그 자리이기 때문입니다. 신호나 이미지 압축, 잡음 제거에도 쓰이며, 하르는 웨이블릿 중 가장 단순한 것이라 원리를 이해하는 출발점으로 좋습니다.

전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 이웃 둘을 평균과 차로 나누기를 되풀이합니다. 길이가 절반씩 줄어듭니다.
  • √2로 나눌 때만 에너지가 보존됩니다(파스발). 2로 나누면 근사가 평균이지만 보존되지 않습니다.
  • 계수를 버리지 않으면 완전히 되돌아옵니다.
  • 길이가 2의 거듭제곱이 아니면 채웁니다. 0으로 채우면 끝에 없던 절벽이 생깁니다.
  • 압축은 절댓값이 작은 계수부터 버립니다. 남긴 에너지의 비율을 함께 냅니다.
  • 하르는 가장 단순한 웨이블릿입니다. 부드러운 신호에는 더 긴 필터가 유리합니다.
  • 값은 1024개까지 다룹니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.