Loading…

해밍코드 예제

통신에서 Hamming 코드는 선형 오류 수정 코드 제품군입니다. Hamming 코드는 수정되지 않은 오류를 감지하지 않고 최대 2비트 오류를 감지하거나 1비트 오류를 수정할 수 있습니다. 반대로 간단한 패리티 코드는 오류를 수정할 수 없으며 오류의 홀수비트만 검색할 수 있습니다. 해밍 코드는 완벽한 코드, 즉, 그들은 자신의 블록 길이와 세 최소 거리와 코드에 대한 가능한 가장 높은 속도를 달성한다. [1] 리처드 더블유 해밍은 1950년 펀칭 카드 판독기에서 도입된 오류를 자동으로 수정하는 방법으로 해밍 코드를 발명했습니다. 원래 논문에서 Hamming은 일반적인 아이디어를 정교하게 설명했지만 특히 4 비트의 데이터에 3 개의 패리티 비트를 추가하는 Hamming (7,4) 코드에 중점을 두어 자세히 설명했습니다. [2] 해밍은 또한 두 개 이상의 비트를 뒤집는 문제를 발견하고 이것을 “거리”로 묘사했습니다 (지금은 그 후 해밍 거리라고함). 패리티의 거리는 2이므로 한 비트 뒤집기는 감지할 수 있지만 수정되지 않고 두 비트 뒤집기는 보이지 않습니다. (3,1) 반복은 3의 거리를 가지며, 눈에 보이는 오류가없는 다른 코드 단어를 얻기 위해 동일한 삼중에서 세 비트를 뒤집어야합니다. 1비트 오류를 수정하거나 감지할 수 있지만 2비트 오류를 수정할 수는 없습니다. A(4,1) 반복(각 비트는 4회 반복)은 거리가 4이므로 세 비트를 뒤집는 것을 감지할 수 있지만 수정할 수는 없습니다.

같은 그룹에서 세 비트가 뒤집히면 수정을 시도하면 잘못된 코드 단어가 생성되는 상황이 발생할 수 있습니다. 일반적으로, 거리 K와 코드는 감지 할 수 있지만 K를 수정할 수 없습니다 – 1 오류. 예를 들어 이 행렬의 첫 번째 행은 체계적이지 않은 형태의 H의 두 번째 및 세 번째 행의 합계입니다. 위에서 해밍 코드에 대한 체계적인 구성을 사용하여, 매트릭스 A는 명백하고 G의 체계적인 형태는 이 예에서와 같이 쓰여지며, 이 단계는 우리에게 이진 번호 0111을 제공한다. 이는 소수점 7에 해당합니다. 따라서 비트 번호 7에 오류가 있습니다. 이 오류를 수정하려면 비트 7이 0에서 1로 반전됩니다. 다음 일반 알고리즘은 임의의 수의 비트에 대해 단일 오류 수정(SEC) 코드를 생성합니다. 주요 아이디어는 인덱스 XOR (1을 포함하는 모든 비트 위치의 XOR)가 0이되도록 오류 수정 비트를 선택하는 것입니다. 위치 1, 10, 100 등(바이너리)을 오류 수정 비트로 사용하여 전체 메시지의 인덱스 XOR이 0이 되도록 오류 수정 비트를 설정할 수 있습니다. 수신기가 인덱스 XOR 0이 있는 문자열을 수신하는 경우 손상이 없다고 결론을 내릴 수 있으며, 그렇지 않으면 인덱스 XOR은 손상된 비트의 인덱스를 나타냅니다.

• 해밍 코드에서 각 r 비트는 데이터 비트의 한 조합에 대한 VRC입니다. rl은 데이터 비트의 한 조합에 대한 VRC 비트이며, r2는 데이터 비트등의 또 다른 조합에 대한 VRC입니다. 마지막으로, 이러한 행렬은 다음 연산에 의해 동등한 비체계적인 코드로 변이될 수 있다:[4] 이진 데이터 1001101이 전송될 것이라고 가정한다.