해밍코드(Hamming Code) 생성 과정 정리

🧩 해밍코드란?

 

해밍코드(Hamming Code)는 전송 중 발생할 수 있는 1비트 오류를 검출하고 수정할 수 있는 오류 정정 코드입니다.

송신 측에서는 데이터 비트패리티 비트를 함께 전송하고,

수신 측에서는 이 패리티 비트를 이용해 오류가 난 비트를 찾아내죠.

 

💡 핵심 포인트

 

  • 1비트 오류는 위치까지 탐지 및 자동 수정 가능
  • 2비트 오류는 검출만 가능

 

 

⚙️ 해밍코드의 기본 구조

 

해밍코드는 2의 거듭제곱 위치(1, 2, 4, 8, …)패리티 비트(P) 를 삽입하고,

나머지 위치에는 데이터 비트(D) 를 채워 넣습니다.

 

예를 들어 4비트의 데이터를 전송할 경우,

총 7비트의 해밍코드가 만들어집니다.

 

위치 1 2 3 4 5 6 7
비트종류 P1 P2 D1 P3 D2 D3 D4

 

 

 

🧮 예시: 정보 비트 1011

 

4비트 정보 1011을 해밍코드로 만들어볼게요.

 

위치 1 2 3 4 5 6 7
종류 P1 P2 D1 P3 D2 D3 D4
데이터 ? ? 1 ? 0 1 1

 

 

 

🧠 패리티 비트 계산 (홀수 패리티 기준)

 

홀수 패리티(odd parity)는

 

1의 개수가 홀수가 되도록 패리티 비트를 설정하는 방식입니다.

 

 

✅ P1 비트

 

  • 검사 위치: 1, 3, 5, 7
  • 해당 비트: P1, D1=1, D2=0, D4=1
  • 1의 개수 = 2 (짝수) → 홀수로 만들기 위해 P1 = 1

 

 

✅ P2 비트

 

  • 검사 위치: 2, 3, 6, 7
  • 해당 비트: P2, D1=1, D3=1, D4=1
  • 1의 개수 = 3 (홀수) → 이미 홀수 → P2 = 0

 

 

✅ P3 비트

 

  • 검사 위치: 4, 5, 6, 7
  • 해당 비트: P3, D2=0, D3=1, D4=1
  • 1의 개수 = 2 (짝수) → 홀수로 만들기 위해 P3 = 1

 

 

✨ 최종 해밍 코드

 

위치 1 2 3 4 5 6 7
종류 P1 P2 D1 P3 D2 D3 D4
1 0 1 1 0 1 1

 

홀수 패리티 해밍 코드: 1011011

 

 

🔍 검산으로 확인하기

 

각 패리티 그룹에서 1의 개수가 홀수가 되는지 확인해봅시다!

 

패리티 검사 위치 1의 개수 홀수 여부
P1 1, 3, 5, 7 → 1,1,0,1 3
P2 2, 3, 6, 7 → 0,1,1,1 3
P3 4, 5, 6, 7 → 1,0,1,1 3

 

모두 홀수네요 ☺︎

 

 

 

 

🧾 정리

 

정보 비트 1011
패리티 비트 위치 1, 2, 4
패리티 방식 홀수 패리티(odd)
최종 해밍 코드 1011011
오류 정정 가능 여부 1비트 오류 검출 및 수정 가능

 

 

 

 

 

 

 

'Computer' 카테고리의 다른 글

리눅스에 대한 전반적인 것  (0) 2023.03.05