seegongsik
CM · 잡음과 정보

오류 부호화

샤논은 용량 아래에서라면 오류를 0에 가깝게 줄일 수 있다고 약속했지만, 방법까지 알려 주지는 않았다. 데이터에 규칙대로 계산한 여분의 비트를 덧붙이면 잡음이 뒤집은 비트를 알아챌 수 있고, 나아가 어느 비트가 틀렸는지 짚어 바로잡을 수도 있다는 것을 이 유닛에서 익혀요.

뒤집힌 비트, 세 부호의 대응

파란 칸은 받은 데이터 비트, 금색 칸은 덧붙인 검사 비트이고, 빨간 테두리 칸이 잡음에 뒤집힌 비트다. 보호 없음 · 패리티 · 해밍을 차례로 누르면 같은 한 비트 오류를 세 부호가 어떻게 다루는지 나란히 비교된다. 데이터만 보내면 오류가 났는지도 모르고, 패리티 한 비트는 오류가 있다는 것까지만 알아채며, 해밍은 어느 비트인지 짚어 바로잡아요.

부호의 비트 수와 최소 거리
n = 4, k = 4 · d_min = 1
보호 없음

잡음은 비트를 뒤집는다

잡음은 수신기에서 이따금 0을 1로, 1을 0으로 뒤집는다. 그림의 원래 데이터는 1011인데 둘째 비트가 뒤집혀 1111로 도착했어요. 그런데 데이터 비트만 보냈다면 1111도 멀쩡한 4비트 데이터라, 수신기로서는 오류가 났는지조차 알 길이 없다. 모든 비트 패턴이 똑같이 그럴듯한 데이터이기 때문이다.

여분의 비트가 파수꾼

데이터에서 규칙대로 계산한 검사 비트를 덧붙이면 사정이 달라진다. 가장 단순한 패리티 비트는 데이터 비트를 모두 XOR한 값이라, 1의 개수를 언제나 짝수로 맞춘다. 원래 데이터 1011에는 1이 세 개라 패리티가 1이 되는데, 둘째 비트가 뒤집히면 1이 다섯 개로 홀수가 되어 검사가 어긋나요. 수신기는 이것으로 오류가 났다는 것을 알지만, 패리티 하나로는 어느 비트가 틀렸는지까지 짚지 못한다.

관찰p = d₁ ⊕ d₂ ⊕ d₃ ⊕ d₄
패리티는 데이터 비트의 XOR.
고르기detect 1: dmin ?
한 비트 오류를 검출하려면 최소 거리 2면 된다.

거리가 정정을 낳는다

부호어를 점으로 보면, 좋은 부호는 유효한 점들을 서로 멀찍이 떼어 놓는다. 두 부호어에서 값이 다른 비트 자리의 수를 해밍 거리라 하는데, 유효한 부호어 사이의 최소 거리가 2면 한 비트 오류를 검출할 수 있고 3이면 정정까지 할 수 있어요. 한 비트가 틀린 말도 여전히 원래 부호어에 가장 가깝기 때문이다. 해밍(7,4)은 검사 비트 3개로 7비트 가운데 어느 한 비트의 오류든 짚어 낸다. 세 검사 비트가 저마다 다른 데이터 비트 묶음을 지키고 있어서, 어느 검사가 어긋났는지의 조합이 뒤집힌 자리를 하나로 가리키는 것이다. 그 대가는 부호율 R = k/n = 4/7이니, 정보 4비트를 보내려고 3비트의 여분을 치르는 셈이에요.

빈칸correct 1: dmin ≥ ?
한 비트 오류를 정정하려면 최소 거리 3이 필요하다.
스스로R = kn = ?
부호율은 데이터 비트 수를 전체 비트 수로 나눈 값이다.

첫 화면으로 돌아가서

보호가 없을 때 뒤집힌 비트는 멀쩡한 데이터처럼 보여 빨강이었다. 패리티 한 비트를 더하자 무언가 어긋났다는 신호는 떴지만 어느 비트인지 몰라 주황이었고, 해밍의 검사 비트들이 어긋난 곳을 모아 그 비트를 정확히 짚어 되돌리자 금색이 됐어요. 기억할 것은 하나다. 여분의 비트로 유효한 말들을 서로 멀리 떼어 두면, 잡음에 한 걸음 밀려난 말도 가장 가까운 본래 말로 돌아온다. 샤논이 약속한 용량 아래의 신뢰성은 이렇게 지켜져요.

오류 부호화는 데이터에서 규칙대로 계산한 여분의 검사 비트를 덧붙여 잡음이 뒤집은 비트를 검출하고 정정한다. 패리티 한 비트(최소 거리 2)는 한 비트 오류를 검출하고, 최소 해밍 거리가 3 이상인 부호(예: 해밍(7,4))는 한 비트 오류를 짚어 정정한다. 유효한 부호어를 멀리 떼어 놓을수록 강해지지만, 그 대가로 부호율 R = k/n 이 1보다 작아진다. 이것이 샤논 용량 정리를 실제로 구현하는 쪽의 얼굴이다.

통신 트랙을 마치며

왜 변조하는가에서 시작해 메시지 하나가 지나는 길을 끝까지 따라왔다. 기저대역의 작은 흔들림을 반송파에 실어 주파수 축 위로 올렸고(AM·FM), 숫자로 바꿨으며(표본화·PCM), 그 비트로 반송파를 흔들었다(ASK·FSK·PSK). 이어 대역폭의 천장을 만나고, 잡음과 SNR을 재고, 무작위를 확률로 다스리고, 샤논의 절대 한계를 본 뒤, 마침내 그 한계 아래에서 오류를 부호로 되돌렸어요. 통신이란 결국 잡음이 가득한 세상에서 메시지를 잃지 않고 건네는 기술이다.