해밍 코드는 무엇입니까 : 역사, 작동 및 응용

문제를 제거하기 위해 도구를 사용해보십시오





디지털 시스템에서 전송 된 데이터는 통신 외부 소음 및 기타 물리적 오류로 인해 손상 될 수 있습니다. 전송 된 데이터가 주어진 입력 데이터와 일치하지 않는 경우이를 '오류'라고합니다. 데이터 오류는 디지털 시스템의 중요한 데이터를 삭제할 수 있습니다. 데이터 전송은 디지털 시스템에서 비트 (0 및 1)의 형태로 이루어집니다. 비트 중 하나라도 변경되면 전체 시스템의 성능이 영향을받을 수 있습니다. 비트 '1'이 비트 '0'으로 변경되거나 그 반대로 변경되면 비트 오류라고합니다. 다르다 오류 유형 단일 비트 오류, 다중 오류 및 버스트 오류와 같은. 이 기사에서는 오류 수정 및 감지, 해밍 코드에 대해 설명합니다.

오류 감지 및 수정이란 무엇입니까?

디지털 통신에서 한 시스템 / 네트워크에서 다른 시스템 / 네트워크로 정보를 전송하는 데 오류가 있으면 데이터가 손실됩니다. 따라서 오류를 찾아서 수정하는 것이 중요합니다. 약간의 오류 발각 효과적인 커뮤니케이션을 위해 오류를 감지하고 수정하기 위해 수정 방법이 사용됩니다. 이러한 방법을 사용하면 더 높은 정확도로 데이터를 전송할 수 있습니다.




오류 감지는 디지털 시스템에서 송신기 / 송신자에서 수신기로 전송되는 오류를 감지하는 데 사용되는 방법으로 정의됩니다. 오류를 찾기 위해 전송 중에 데이터에 중복 코드가 추가됩니다. 이를 오류 감지 코드라고합니다.

오류 수정은 송신기에서 수신기로 전송 된 데이터를 수정하는 것입니다. 오류 수정은 두 가지 유형으로 수행 할 수 있습니다.



역방향 오류 수정

이러한 유형의 오류 수정에서 수신자는 수신자가 오류를 감지하면 데이터를 재전송하도록 발신자에게 다시 요청합니다.

순방향 오류 수정

수신자가 수신 한 데이터가 오류를 발견하면 오류 수정 코드를 실행하여 데이터를 자동으로 수정하고 복구합니다.


데이터 비트 수가‘m’이고 중복 비트 수가‘r’이면 정보 조합은 2r이됩니다.

2r> = m + r + 1

오류 감지 코드 유형

수신 된 데이터의 오류는 3 가지 유형의 오류 감지 코드를 사용하여 감지 할 수 있습니다. 패리티 검사, CRC (Cyclic Redundancy Check) 및 종 방향 중복 검사입니다.

패리티 검사

짝수 패리티 또는 홀수 패리티의 경우 비트 수를 짝수 또는 홀수로 만들기 위해 패리티 비트라는 중복 비트가 추가됩니다. 수신기는 패리티 비트를 추가하기 위해 프레임의 비트 수 (1)를 계산합니다. 이것을 패리티 검사라고합니다. 프레임의 1 개가 짝수이면 비트 '1'에 0 값을 더하여 짝수 패리티를 사용합니다. 마찬가지로 1 번의 숫자가 홀수이면 값이 '1'인 비트를 추가하여 홀수 패리티를 사용합니다.

오류 감지

오류 감지

따라서 수신자가 소스에서 수신 한 프레임 / 날짜가 손상되지 않았는지 확인하는 데 사용됩니다. 이러한 유형의 오류 감지에서 1 개의 숫자는 수신 된 프레임에서 균등해야합니다. 모든 유형의 오류 감지 중에서 비용이 매우 저렴합니다.

LRC (Longitudinal Redundancy Check)

비트 세트 / 블록이 구성되면 LRC 방법을 사용하여 모든 프레임에서 패리티 비트를 확인할 수 있습니다. 원래 데이터와 함께 패리티 비트 세트를 전송하고 중복성을 확인하는 데 도움이됩니다.

순환 중복 검사

그의 유형은 소스에서 수신 된 데이터 / 프레임이 유효한지 여부를 감지하는 데 사용됩니다. 전송해야하는 데이터의 이진 분할과 관련이 있으며 (제수를 생성하기 위해) 다항식을 사용합니다. 전에 전송 , 나머지를 계산하기 위해 송신자가 데이터 / 비트 / 프레임에 대해 나누기 연산을 수행합니다.

순환 중복 검사

순환 중복 검사

발신자로부터 실제 데이터를 전송하는 동안 실제 데이터 끝에 나머지를 추가합니다. 실제 데이터와 나머지 데이터의 조합을 코드 워드라고합니다. 데이터는 코드 워드의 형태로 전송됩니다. 이 프로세스에서 데이터가 손상되면 수신자가 데이터를 거부하고 그렇지 않으면 데이터를 수락합니다.

해밍 코드는 무엇입니까?

해밍 코드는 최대 2 개의 중간 오류까지 오류 감지 프로세스에 사용되는 선형 코드로 정의됩니다. 또한 단일 비트 오류를 ​​감지 할 수 있습니다. 이 방법에서는 데이터를 인코딩하기 위해 송신자가 데이터 / 메시지에 중복 비트를 추가합니다. 오류 감지 및 수정을 수행하기 위해 이러한 중복 비트가 오류 수정 프로세스를 위해 특정 위치에 추가됩니다.

해밍 코드

해밍 코드

해밍 코드의 역사

1950 년 Richard W. hamming은 데이터의 오류를 감지하고 수정하는 해밍 코드를 발명했습니다. 신뢰성이 더 높은 컴퓨터가 진화 한 후 그는 1- 오류 정정 코드에 대한 해밍 코드를 도입했으며 나중에는 최대 2- 오류 감지 코드까지 확장했습니다. 패리티 검사는 데이터의 오류를 감지하고 수정할 수 없기 때문에 해밍 코드가 생성됩니다. 해밍 코드는 실제 데이터와 중복 비트 사이의 데이터 블록 길이에 삽입됩니다. 그는 오류 수정 방법의 문제를 해결하기 위해 일련의 알고리즘을 개발했으며 이러한 코드는 ECC 메모리에서 널리 사용됩니다.

해밍 코드를 사용하여 메시지를 인코딩하는 과정

발신자가 해밍 코드를 사용하여 메시지를 인코딩하는 과정은 3 단계로 구성됩니다.

1 단계: 첫 번째 단계는 메시지의 중복 비트 수를 계산하는 것입니다.

  • 예를 들어 메시지에 'n'비트 수가 포함되어 있고 'p'중복 비트 수가 메시지에 추가되면 'np'는 (n + p + 1) 다른 상태를 나타냅니다.
  • 여기서 (n + p)는 모든 비트 위치에서 오류의 위치를 ​​나타냅니다.
  • 1 (추가 상태)은 오류가 없음을 나타냅니다.
  • ‘p’는 2 ^ p (2p) 상태를 나타내므로 (n + p + 1) 상태와 같습니다.

2 단계: 중복 비트를 정확한 / 올바른 위치에 배치

'p'비트는 1, 2, 4, 8, 16 등과 같이 2의 거듭 제곱 인 비트 위치에 삽입됩니다. 이러한 비트 위치는 p1 (위치 1), p2 (위치 2), p3 (위치 4) 등

3 단계 : 중복 비트 값 계산

  • 여기서 패리티 비트는 중복 비트의 값을 계산하는 데 사용됩니다.
  • 패리티 비트는 메시지에서 1 개를 짝수 또는 홀수로 만들 수 있습니다.
  • 메시지의 총 1 개가 짝수이면 짝수 패리티가 사용됩니다.
  • 메시지의 총 1 개가 홀수이면 홀수 패리티가 사용됩니다.

해밍 코드에서 메시지를 해독하는 프로세스

해밍 코드를 이용하여 수신자가 발신자로부터받은 메시지를 복호화하는 과정은 다음과 같다. 이 프로세스는 메시지의 오류를 감지하고 수정하기위한 재 계산에 불과합니다.

1 단계: 중복 비트 수 계산

중복 비트를 사용하여 메시지를 인코딩하는 공식은 다음과 같습니다.

2p≥ n + p + 1

2 단계: 모든 중복 비트의 위치 수정

중복 비트의 'p'번호는 1,2,4,8,16,32 등과 같이 2 승의 비트 위치에 배치됩니다.

Step3 : 패리티 검사 (홀수 패리티 및 심지어 패리티)

패리티 비트는 데이터 비트 및 중복 비트에서 1의 수를 기준으로 계산됩니다.

예를 들어

p1의 패리티는 1, 3, 5, 7, 9, 11,…

p2의 패리티는 2, 3, 6, 7, 10, 11,…

p3의 패리티는 4-7, 12-15, 20-23,…

해밍 코드의 장점

해밍 코드 사용의 주요 이점은 데이터 스트림에 단일 비트 오류가 포함 된 경우 비용 효율적입니다.

  • 오류 감지를 제공 할 수 있으며 수정을 위해 오류가 포함 된 비트를 표시 할 수도 있습니다.
  • 해밍 코드는 컴퓨터 메모리 및 단일 비트 오류 수정 및 감지에서 사용하기가 매우 쉽고 가장 좋습니다.

해밍 코드의 단점

  • 단일 비트 오류 수정 및 감지에만 가장 적합합니다. 다중 비트 오류가 발생하면 전체가 손상 될 수 있습니다.
  • 해밍 코드 알고리즘은 단일 비트 오류 만 해결할 수 있습니다.

해밍 코드의 응용

해밍 코드는 다음에서 사용됩니다.

  • 컴퓨팅
  • 통신
  • 데이터 압축
  • 퍼즐과 터보 코드 풀기
  • 위성
  • 플라즈마 CAM
  • 차폐 전선
  • 모뎀
  • 컴퓨터 메모리
  • 개방형 커넥터
  • 임베디드 시스템 및 프로세서

자주 묻는 질문

1). 해밍 코드가 2 비트 오류를 ​​감지 할 수 있습니까?

해밍 코드는 데이터 스트림에서 최대 2 비트 오류를 ​​감지하고 수정할 수 있습니다.

2). 해밍 코드를 어떻게 수정합니까?

해밍 코드는 실제 데이터와 중복 비트 사이의 데이터 길이에 배치됩니다. 이 코드는 최소 거리가 3 비트 인 장소입니다.

삼). 패리티 코드는 무엇입니까?

패리티 코드 또는 패리티 비트는 수신 된 프레임 (데이터에 1과 0 포함)에 비트를 추가하여 총 비트 수 (1)를 짝수 또는 홀수로 만듭니다.

4). 데이터 사이의 해밍 거리는 얼마입니까?

길이가 같은 두 개의 서로 다른 데이터 스트림 사이의 해밍 거리는 1 번입니다.

길이가 같은 두 데이터 문자열 간의 해밍 거리는 XOR 연산을 사용하여 계산할 수 있습니다.

예 : a = 11011001

b = 10011101

해밍 거리는 다음과 같이 계산할 수 있습니다.

11011001 ⊕ 10011101 = 01000100 (1 비트 수는 2)

해밍 거리는 결과 데이터 스트림에서 1의 수를 나타냅니다.

따라서 d (11011001, 10011101) = 2

마찬가지로 010 ⊕ 011 = 001, d (010, 011) = 1입니다.

5). 해밍 코드는 주기적입니까?

예, 해밍 코드는 오류 감지 코드로 사용할 수있는 순환 코드와 동일합니다.

따라서 이것은 오류 수정 및 감지, 오류 감지 유형, 해밍 코드 , 해밍 코드를 사용하여 메시지를 암호화 및 복호화하는 과정, 해밍 코드의 적용, 해밍 코드의 장단점. 여기에 '오류 감지 및 수정의 응용 프로그램은 무엇입니까?'라는 질문이 있습니다.