PE Notes · 네트워크
섀넌 정리
소스 코딩이 엔트로피 아래로 못 내려가는 한계, 채널 용량 C=B log2(1+SNR), 용량 이하에서 오류를 0에 가깝게 하는 잡음 채널 코딩을 나이퀴스트 표본화와 짝으로 정리합니다.
1948년 섀넌은 통신이 얼마나 짧게 줄일 수 있는지, 얼마나 빨리 실을 수 있는지, 잡음 속에서 얼마나 믿을 수 있는지의 상한을 수식으로 못 박았습니다. 압축·이동망·는 이 선에 얼마나 가까운지로 기술을 잽니다.
제1정리 — 소스 코딩
정보량 I(x) = −log₂ P(x)입니다. 드문 사건일수록 비트 수가 큽니다. H(X) = −Σ P(xᵢ) log₂ P(xᵢ)는 심볼당 평균 정보량입니다. 앞뒤가 같은 동전은 1비트, 한쪽으로 기울면 0.47비트처럼 줄어듭니다. 확실한 사건은 0입니다.
는 손실 없이 심볼당 평균 길이를 H보다 짧게 만드는 일이 불가능하다고 합니다. 허프만은 이 선에 근접하고, 산술 부호화는 더 붙습니다. ZIP·gzip이 영어 텍스트를 1비트/문자 아래로 꾸준히 줄이지 못하는 이유가 여기입니다.
| 분포 | H의 느낌 | 압축 |
|---|---|---|
| 균등 | 최대 | 이득 작음 |
| 편향 | 낮음 | 짧은 코드가 이득 |
| P=1 | 0 | 이미 알고 있음 |
가 실리는 양은 이 소스 비트와, 아래 채널이 받는 용량의 사이입니다.
제2정리 — 채널 용량
잡음 있는 대역 B 헤르츠에서 오류 없이 갈 수 있는 상한은
C = B log₂(1 + SNR) [bit/s]
입니다. SNR은 선형비입니다. dB면 10^(SNR_dB/10)로 바꿉니다. 전화 대역 4 kHz, SNR 30 dB(선형 1000)이면 C ≈ 4e3 × log₂(1001) ≈ 40 kbps입니다. 이 선을 넘는 무오류 전송은 없습니다.
아래에서 적절한 부호화가 있으면 오류를 임의로 작게 할 수 있고, 위에서는 불가능합니다. 5G가 mmWave로 B를 키우고 MIMO로 실효 SNR을 나누는 이유가 이 공식입니다. ·폴라 코드는 이 벽에 붙이려고 만든 FEC입니다.
| 손잡이 | C에 미치는 영향 |
|---|---|
| B ↑ | 거의 비례 |
| SNR ↑ | log라 둔하다 |
| 실제 시스템 | 오버헤드·간섭으로 C 미만 |
오류제어 토픽의 해밍·CRC는 검출·정정 수단이고, 여기서는 그 수단이 넘지 못하는 속도 천장을 적습니다.
제3정리 — 잡음 채널 코딩
정리는 제2정리의 확장입니다. 전송률이 C보다 작으면, 블록을 충분히 길게 하는 코드가 있어 오류 확률을 0에 가깝게 만들 수 있습니다. “완벽한 코드는 존재한다. 다만 길이가 무한에 가까워야 한다”가 문장입니다. 현실 코드는 유한이라 벽에 근접할 뿐 닿지는 못합니다.
표본화는 다른 축입니다. 최고 주파수 f_max를 잃지 않으려면 fs ≥ 2 f_max입니다. 8 kHz 전화, 44.1 kHz CD가 이 선 위에 있습니다. fs가 모자라면 고주파가 저주파로 접혀 앨리어싱이 납니다. 나이퀴스트의 무잡음 심볼률 2B log₂ M과 섀넌의 C = B log₂(1+SNR)을 구별합니다. 전자는 레벨 수, 후자는 잡음입니다.
답안 계산은 단위를 먼저 맞춥니다. B는 Hz, SNR은 선형, C는 bit/s입니다. 해밍 코드는 짧은 블록의 한 비트 정정이고, 섀넌 한계에 붙는 긴 코드는 LDPC·폴라 쪽입니다.