해밍 코드를 계산하는 방법

작가: Bill Davis
창조 날짜: 2 2 월 2021
업데이트 날짜: 21 십일월 2024
Anonim
해밍코드로 오류 검출과 수정하기 - Hamming Code Detection and Correction
동영상: 해밍코드로 오류 검출과 수정하기 - Hamming Code Detection and Correction

콘텐츠

해밍 코드는 오류 수정 정보를 데이터 스트림에 삽입하는 데 사용됩니다. 코드는 오류가 감지 될뿐만 아니라 수정되도록 설계되었습니다. 오류 수정 정보를 추가하면 데이터 양이 증가하지만 오류율이 높은 미디어를 통한 통신의 신뢰성도 높아집니다.

해밍 코딩은 구현하기가 복잡 할 수 있지만 비트 수준 산술 트릭을 사용하면 매우 빠르게 수행 할 수 있습니다. 이를 통해 임베디드 애플리케이션에서 사용할 수있는 유용한 고속 오류 수정 시스템을 만들 수 있습니다.

1 단계

데이터 단어를 만듭니다. 위치가 2의 제곱 (첫 번째, 두 번째, 네 번째 등) 인 비트는 패리티 정보 용으로 예약되어야합니다. 단어가 원래 데이터와 패리티 비트를 갖는 데 필요한만큼 사용하십시오.


예:

1 1 0 1 0 0 1 0은 _ _ 1 _ 1 0 1 _ 00010이됩니다.

원래 비트는 동일한 순서로 유지되지만 패리티 비트를 삽입하기 위해 펼쳐졌습니다.

2 단계

첫 번째 패리티 비트를 계산합니다. 첫 번째 비트부터 시작하여 비트를 읽은 다음 비트를 건너 뛰고 끝까지 절차를 반복합니다. 그 동안 발견 된 항목의 수가 계산됩니다. 패리티 비트는이 프로세스에서 계산되지 않습니다.

1의 수가 짝수이면 첫 번째 비트를 0으로 설정합니다. 그렇지 않으면 1로 설정하십시오.

예:

_ _ 1 _ 10 1 _ 0 0 1 0, _11101의 비트 1, 3, 5, 7, 9 및 11에는 4 개의 1이 포함됩니다. 이것은 짝수이므로 첫 번째 비트는 0으로 설정됩니다. 0 _ 1 _ 1 0 1 _ 0 0 1 0

3 단계

나머지 패리티 비트를 계산합니다. 두 번째 비트부터 시작하여 두 비트를 읽은 다음 두 비트를 건너 뛰고 끝까지 절차를 반복합니다. 네 번째 비트는 4 비트를 읽고 4 비트부터 시작하여 다른 4 비트를 건너 뜁니다. 모두 계산 될 때까지 동일한 패턴 뒤에 모든 패리티 비트가 이어집니다.


예:

비트 2 : 0 _ 1 _ 10 1 _ 000 1 0은 3 개의 1을 포함하는 _1, 01, 01을 확인하므로 비트 2는 1로 설정됩니다. 비트 4 : _ 0 1 1 1 0 1 _ 0 0 1 0은 2 개의 1을 포함하는 _101, 0을 확인하므로 비트 4는 0으로 설정됩니다. 비트 8 : 010 1 0 0 1 0은 하나만 포함 된 _0010을 확인하므로 비트 8은 1로 설정됩니다.

따라서이 단어는 011010110010으로 코딩됩니다.

4 단계

단어를 확인하십시오. 단어가 손상되면 패리티 비트가 예상과 일치하지 않습니다. 단어가 손상되지 않았는지 확인하려면 2 단계와 3 단계를 사용하여 패리티 비트를 계산하십시오. 비트가 동일하지 않으면 해당 위치를 기록하십시오.

5 단계

잘못된 비트를 수정하십시오. 잘못된 패리티 비트를 찾으면 비트 위치를 추가하기 만하면됩니다. 합계 값은 잘못된 비트의 위치입니다. 이 위치에서 비트 값을 변경하십시오.

예를 들어 잘못된 패리티 비트가 1과 4 인 경우 다섯 번째 비트의 값을 변경하면 오류가 수정됩니다.