CS 공부
패리티 비트 & 해밍 코드 본문
1) 패리티 비트
정보전달 과정에서 오류 발생여부를 검사하기 위해 추가된 비트를 말한다.
1의 개수가 홀수인지 짝수인지 체크하기 위해 추가되는 비트. 1Bit로 오류 검출 가능. 그러나 여러 비트에서 동시에 오류가 발생하면 검출 불가능
패리티 비트는 홀수(odd) 패리티 비트와 짝수(even) 패리티 비트로 분류한다.
- 전달하고자 하는 DATA의 1의 개수로 홀수와 짝수를 구분합니다.
- 짝수패리티의 경우 0을 붙여주고, 홀수 패리티인 경우 1을 붙여줍니다.
2) 해밍 코드
해밍 코드란 자기 정정 부호의 하나
2bit의 오류 검출해서 1bit 오류를 수정할 수 있는 오류 검출 및 수정 부호
즉 데이터비트에 여러 개의 패리티비트를 추가하여 오류를 검출하고 정정할 수 있는 코드.
오류의 검출은 물론 스스로 수정까지 하므로 자기 정정 부호라고도 지칭
단 두 개 이상의 비트에 오류가 발생하면 검출하기 어렵다.
해밍 코드를 이용하여 전체 데이터 비트의 어느 지점에서 오류가 발생했는지 검출할 수 있다.
패리티 비트의 위치 결정과 비트 수 결정
패리티 비트와 해밍 코드는 분리된 개념이 아니라 함께 활용하는 것으로 전송하는 비트 중 2ⁿ 번째 자리를 패리티 비트로 사용한다.
예를 들어, 전송되는 데이터의 크기가 12일 경우, 패리티 비트는 아래 색칠된 부분 2ⁿ자리에 총 4번 들어가게 된다.
패리티 비트 구하기
홀수 패리티면 1의 개수가 홀수 개인지 확인하면 된다.
오류 판별법
앞에서 패리티비트는 1부터 2^n자리마다 배치가 된다고 했는데 만약 수신한 코드가 오류가 없는 코드였다면 페리티 체크 비트를 확인해보면 모두 다 0 이어야 한다. 하지만 지금 P3이 1 인 것을 알 수 있다.
1 2 4 8 의 위치 중 P3의 값은 4이므로 4번째 비트가 오류라는 것을 알 수 있다.
정상코드 1 1 1 0 1 1 1 0 1 1 1 1
오류코드 1 1 1 0 1 1 1 0 0 1 1 1
참고
https://gusdnd852.tistory.com/80
https://milkye.tistory.com/130