1. Introduction to Information Theory

1.2. Error-correcting codes for the binary symmetric channel

Hamming code에 대한 Syndrome 디코딩

(7, 4) Hamming code의 경우, 인코딩 그림인 그림 1.13을 기반으로 디코딩 문제에 대한 그림을 이용한 해결책이 있습니다.

첫 번째 예로, 전송이 t = 1000101이었고 노이즈가 두 번째 비트를 뒤집어 수신된 벡터가 r = 1000101 $\oplus$ 0100000 = 1100101이라고 가정해 보겠습니다. 그림 1.15a에 표시된 대로 수신된 벡터를 세 개의 원에 쓰고, 세 개의 원 각각을 살펴보면서 패리티가 짝수인지 확인합니다. 패리티가 짝수가 아닌 원은 그림 1.15b에서 점선으로 표시됩니다. 디코딩 작업은 패리티 규칙의 이러한 위반을 설명할 수 있는 가장 작은 뒤집힌 비트 집합을 찾는 것입니다. [패리티 검사의 위반 패턴을 syndrome이라고 하며, 이진 벡터로 작성할 수 있습니다. 예를 들어 그림 1.15b에서 syndrome은 z = (1, 1, 0)입니다. 왜냐하면 처음 두 원은 '불만족'(패리티 1)이고 세 번째 원은 '만족'(패리티 0)이기 때문입니다.]

디코딩 작업을 해결하기 위해 다음과 같은 질문을 합니다. '불만족' 원 안에는 모두 있고 '만족' 원 밖에는 모두 있는 고유한 비트를 찾을 수 있을까요? 그렇다면 해당 비트의 뒤집힘이 관찰된 syndrome을 설명할 수 있습니다. 그림 1.15b에 표시된 경우에서 비트 r2는 두 개의 불만족 원 안에 있고 만족 원 밖에 있습니다. 다른 단일 비트는 이 속성을 갖지 않으므로 r2는 syndrome을 설명할 수 있는 유일한 단일 비트입니다.

image.png

몇 가지 예를 더 살펴보겠습니다. 그림 1.15c는 패리티 비트 중 하나인 t5가 노이즈에 의해 뒤집히는 경우에 발생하는 상황을 보여줍니다. 단 하나의 검사만 위반됩니다. r5만이 이 불만족 원 안에 있고 다른 두 개의 만족 원 밖에 있으므로 r5는 syndrome을 설명할 수 있는 유일한 단일 비트로 식별됩니다.

중앙 비트 r3가 뒤집혀서 수신되면 그림 1.15d는 세 가지 검사가 모두 위반됨을 보여줍니다. r3만이 세 원 모두 안에 있으므로 r3가 의심되는 비트로 식별됩니다.

만약 당신이 일곱 비트 중 어느 하나를 flipping해보면, 각각의 경우에 서로 다른 syndrome을 얻게 될 것입니다 – 각 비트에 대해 7개의 0이 아닌 syndrome. 다른 syndrome은 all-zero syndrome 하나뿐입니다. 따라서 채널이 작은 노이즈 수준 f를 가진 binary symmetric channel인 경우, 최적의 디코더는 algorithm 1.16에서 보여주는 것처럼 syndrome에 따라 최대 한 비트를 unflip합니다. 각 syndrome은 다른 노이즈 패턴에 의해서도 발생했을 수 있지만, 동일한 syndrome을 갖는 다른 노이즈 패턴은 더 많은 수의 노이즈 이벤트를 포함하므로 덜 발생할 가능성이 높습니다.

만약 노이즈가 실제로 한 비트 이상을 flip하면 어떻게 될까요? Figure 1.15e는 두 비트, r3와 r7이 flipped되어 수신된 상황을 보여줍니다. Syndrome 110은 우리로 하여금 단일 비트 r2를 의심하게 만듭니다; 따라서 우리의 최적 디코딩 알고리즘은 이 비트를 flip하여 그림 1.15e′에서 보이는 것처럼 세 개의 오류가 있는 디코딩된 패턴을 제공합니다. 최적의 디코딩 알고리즘을 사용하면, 어떤 two-bit error pattern도 세 개의 오류를 포함하는 디코딩된 seven-bit vector로 이어질 것입니다.