해밍 코드: 예제를 통한 오류 감지 및 수정
오류란 무엇입니까?
전송된 데이터는 통신 중에 손상될 수 있습니다. 외부 소음이나 기타 물리적인 장애로 인해 영향을 받을 가능성이 높습니다. 이러한 상황에서는 입력 데이터가 출력 데이터와 동일할 수 없습니다. 이러한 불일치를 "오류"라고 합니다.
데이터 오류로 인해 중요하거나 안전한 데이터가 손실될 수 있습니다. 디지털 시스템에서 대부분의 데이터 전송은 '비트 전송'의 형태로 이루어질 것입니다. 아주 작은 변화라도 전체 시스템의 성능에 영향을 미칠 수 있습니다. 데이터 시퀀스에서 1이 0으로 변경되거나 0이 1로 변경되는 경우를 "비트 오류"라고 합니다.
오류 유형
송신자에서 수신자로 데이터를 전송할 때 발생하는 비트 오류에는 주로 세 가지 유형이 있습니다.
- 단일 비트 오류
- 다중 비트 오류
- 버스트 오류
단일 비트 오류
전체 데이터 시퀀스에서 한 비트에서 발생한 변경은 "단일 비트 오류"로 알려져 있습니다. 그러나 단일 비트 오류의 발생은 그렇게 흔하지 않습니다. 게다가 이 오류는 데이터가 단일 라인에서 비트 단위로 전송되기 때문에 병렬 통신 시스템에서만 발생합니다. 따라서 단일 라인이 노이즈가 있을 가능성이 더 큽니다.
다중 비트 오류
데이터 시퀀스에서 송신기에서 수신기로의 데이터 시퀀스에서 XNUMX비트 이상의 변경이 있는 경우 이를 "다중 비트 오류"라고 합니다.
이러한 유형의 오류는 직렬 및 병렬 유형의 데이터 통신 네트워크에서 주로 발생합니다.
버스트 오류
데이터 시퀀스의 비트 세트 변경을 "버스트 오류"라고 합니다. 이러한 유형의 데이터 오류는 첫 번째 비트 변경부터 마지막 비트 변경까지 계산됩니다.
오류 감지 및 오류 수정이란 무엇입니까?
디지털 통신 시스템에서는 오류가 한 통신 시스템에서 다른 통신 시스템으로 전달됩니다. 이러한 오류를 감지하고 수정하지 않으면 데이터가 손실됩니다. 효과적인 통신을 위해서는 시스템 데이터가 높은 정확도로 전송되어야 합니다. 이는 먼저 오류를 식별하고 이를 수정함으로써 수행됩니다.
오류 검출이란 데이터 통신 시스템에서 송신기에서 수신기로 전송되는 데이터에 존재하는 오류를 검출하는 방법이다.
여기서 중복 코드를 사용하면 소스에서 전송될 때 데이터에 추가하여 이러한 오류를 찾을 수 있습니다. 이러한 코드를 "오류 감지 코드"라고 합니다.
세 가지 유형의 오류 감지 코드는 다음과 같습니다.
- 패리티 검사
- CRC (Cyclic Redundancy Check)
- 종방향 중복 검사(LRC)
패리티 검사
- 패리티 검사라고도 합니다.
- 오류 감지를 위한 비용 효율적인 메커니즘이 있습니다.
- 이 기술에서는 중복 비트를 패리티 비트라고 합니다. 모든 데이터 단위에 대해 추가됩니다. 단위에 있는 1의 총 개수는 짝수가 되어야 하며, 이를 패리티 비트라고 합니다.
종방향 중복 검사
이 오류 감지 기술에서는 비트 블록이 표 형식으로 구성됩니다. LRC 방법은 모든 열의 패리티 비트를 계산하는 데 도움이 됩니다. 이 패리티 세트도 원본 데이터와 함께 전송됩니다. 패리티 블록은 중복성을 확인하는 데 도움이 됩니다.
순환 중복 검사
순환 중복 검사는 장치 끝에 추가해야 하는 중복 시퀀스입니다. 그렇기 때문에 결과 데이터 단위는 미리 결정된 두 번째 이진수로 나눌 수 있어야 합니다.
목적지에서 들어오는 데이터는 같은 숫자로 나누어야 합니다. 나머지가 없는 경우, 데이터 단위는 올바른 것으로 간주되어 수락됩니다. 그렇지 않으면, 데이터 단위가 전송 중에 손상되었음을 나타내므로 거부해야 합니다.
해밍 코드란 무엇입니까?
해밍 코드는 최대 XNUMX개의 즉각적인 비트 오류를 감지하는 데 유용한 라이너 코드입니다. 단일 비트 오류가 발생할 수 있습니다.
Hamming 코드에서 소스는 메시지에 중복 비트를 추가하여 메시지를 인코딩합니다. 이러한 중복 비트는 대부분 오류 감지 및 정정 프로세스를 수행하기 위해 메시지의 특정 위치에 삽입되고 생성됩니다.
해밍 코드의 역사
- Hamming 코드는 RWHamming이 오류를 감지하기 위해 구축한 기술입니다.
- 해밍 코드는 모든 길이의 데이터 단위에 적용되어야 하며 데이터와 중복 비트 간의 관계를 사용합니다.
- 그는 오류 정정 방법에 관한 문제에 관해 연구하였고 해밍 코드라고 불리는 점점 더 강력한 알고리즘을 개발했습니다.
- 1950년에 그는 오늘날 ECC 메모리와 같은 응용 분야에서 널리 사용되는 해밍 코드(Hamming Code)를 출판했습니다.
해밍 코드 적용
Hamming 코드를 사용하는 몇 가지 일반적인 응용 프로그램은 다음과 같습니다.
- 위성
- 컴퓨터 메모리
- 모뎀
- 플라즈마캠
- 커넥터 열기
- 차폐선
- 임베디드 프로세서
해밍 코드의 장점
- 해밍 코드 방법은 단일 비트 오류에 대해 데이터 스트림이 제공되는 네트워크에서 효과적입니다.
- 해밍 코드는 비트 오류 감지 기능을 제공할 뿐만 아니라 오류가 포함된 비트를 들여쓰기하여 수정할 수 있도록 도와줍니다.
- 해밍 코드는 사용하기 쉽기 때문에 컴퓨터 메모리 및 단일 오류 수정에 사용하기에 가장 적합합니다.
해밍 코드의 단점
- 단일 비트 오류 감지 및 수정 코드입니다. 그러나 여러 비트에 오류가 있는 경우 결과적으로 수정되어야 하는 다른 비트가 변경될 수 있습니다. 이로 인해 데이터에 추가 오류가 발생할 수 있습니다.
- 해밍 코드 알고리즘은 단일 비트 문제만 해결할 수 있습니다.
해밍 코드로 메시지를 인코딩하는 방법
보낸 사람이 메시지를 인코딩하는 데 사용하는 프로세스는 다음의 세 단계로 구성됩니다.
- 중복 비트의 총 개수 계산.
- 중복 비트의 위치를 확인합니다.
- 마지막으로 이러한 중복 비트의 값을 계산합니다.
위의 중복 비트가 메시지에 포함되면 사용자에게 전송됩니다.
단계 1) 중복 비트의 총 수를 계산합니다.
메시지에 다음이 포함되어 있다고 가정합니다.
- n– 데이터 비트 수
- p – np가 적어도 (n + p + 1)개의 다른 상태를 나타낼 수 있도록 추가되는 중복 비트 수입니다.
여기서 (n + p)는 (n + p)개의 비트 위치 각각에서 오류가 발생한 위치를 나타내며, 하나의 추가 상태는 오류가 없음을 나타냅니다. p 비트는 2를 나타낼 수 있으므로p 주, 2p 최소한 (n + p + 1)과 같아야 합니다.
단계 2) 중복 비트를 올바른 위치에 배치합니다.
p 중복 비트는 2의 거듭제곱의 비트 위치에 배치되어야 합니다. 예를 들어 1, 2, 4, 8, 16 등입니다. 이를 p라고 합니다.1 (위치 1에서), p2 (위치 2에서), p3 (위치 4에서) 등
단계 3) 중복 비트 값 계산.
중복 비트는 패리티 비트여야 하며 1의 수를 짝수 또는 홀수로 만듭니다.
패리티의 두 가지 유형은 무엇입니까?
- 메시지의 총 비트 수가 짝수로 되는 것을 짝수 패리티라고 합니다.
- 메시지의 총 비트 수를 홀수로 만드는 것을 홀수 패리티라고 합니다.
여기서 모든 중복 비트 p1은 패리티로 계산되어야 합니다. 이는 이진 표현이 p1 위치를 제외한 첫 번째 위치에 1을 포함해야 하는 모든 비트 위치를 포괄해야 합니다.
P1은 이진 표현에 1 Like(1, 3, 5, 7, ....)를 포함하지 않고 덜 중요한 위치에 9이 포함된 위치의 모든 데이터 비트에 대한 패리티 비트입니다.
P2는 이진 표현이 오른쪽에서 1번째 위치에 2을 포함하고 2 Like(3, 6, 7, 10, 11,…)를 포함하지 않는 위치의 모든 데이터 비트에 대한 패리티 비트입니다.
P3은 이진 표현이 오른쪽부터 1번째 위치에 3을 포함하고 4를 포함하지 않는 위치(5-7, 12-15,…)의 모든 비트에 대한 패리티 비트입니다.
해밍 코드로 메시지 복호화
수신자는 오류를 찾아 수정하기 위해 재계산을 수행해야 하는 수신 메시지를 받습니다.
재계산 과정은 다음 단계로 진행됩니다.
- 중복 비트 수를 계산합니다.
- 모든 중복 비트를 올바르게 배치합니다.
- 패리티 검사
단계 1) 중복 비트 수 계산
인코딩에도 동일한 공식을 사용하여 중복 비트 수를 계산할 수 있습니다.
2p ? n + p + 1
여기서, 데이터 비트 수, p는 중복 비트 수이다.
단계 2) 모든 중복 비트를 올바르게 배치
여기서 p는 2의 거듭제곱, 예를 들어 1, 2, 4, 8 등의 비트 위치에 위치한 중복 비트이다.
단계 3) 패리티 검사
패리티 비트는 데이터 비트와 중복 비트를 기반으로 계산되어야 합니다.
p1 = 패리티(1, 3, 5, 7, 9, 11…)
p2 = 패리티(2, 3, 6, 7, 10, 11… )
p3 = 패리티(4-7, 12-15, 20-23… )
요약
- 전송된 데이터는 통신 중에 손상될 수 있습니다.
- 비트 오류의 세 가지 유형은 1) 단일 비트 오류 2) 다중 비트 오류 3) 버스트 비트 오류입니다.
- 전체 데이터 시퀀스에서 한 비트에 발생한 변경을 "단일 비트 오류"라고 합니다.
- 데이터 시퀀스에서 송신기에서 수신기로의 데이터 시퀀스에서 XNUMX비트 이상의 변경이 있는 경우 이를 "다중 비트 오류"라고 합니다.
- 데이터 시퀀스의 비트 세트 변경을 "버스트 오류"라고 합니다.
- 오류 검출은 데이터 통신 시스템에서 송신기에서 수신기로 전송되는 데이터에 존재하는 오류를 검출하는 방법이다.
- 오류 감지 코드에는 세 가지 유형이 있습니다. 1) 패리티 검사 2) 순환 중복 검사(CRC) 3) 종단 중복 검사(LRC)
- 해밍 코드는 최대 XNUMX개의 즉각적인 비트 오류를 감지하는 데 유용한 라이너 코드입니다. 단일 비트 오류가 발생할 수 있습니다.
- Hamming 코드는 RWHamming이 오류를 감지하기 위해 구축한 기술입니다.
- 해밍 코드를 사용하는 일반적인 응용 프로그램은 위성 컴퓨터 메모리, 모뎀, 내장 프로세서 등입니다.
- 해밍 코드 방법의 가장 큰 이점은 단일 비트 오류에 대해 데이터 스트림이 제공되는 네트워크에서 효과적입니다.
- 해밍 코드 방법의 가장 큰 단점은 단일 비트 문제만 해결할 수 있다는 것입니다.
- 해밍 코드를 사용하여 메시지를 암호화하고 디코딩하는 프로세스를 수행할 수 있습니다.