Коды коррекции ошибок: надёжная связь по зашумлённым каналам
Формула
\text{Hamming}(7,4): \text{syndrome} = H \cdot r^TR = \frac{k}{n} = \frac{4}{7} \approx 0.571P_{\text{block error}} = 1 - (1-p)^n - n \cdot p \cdot (1-p)^{n-1}d_{\min} = 3 \implies \text{corrects } \lfloor(3-1)/2\rfloor = 1 \text{ error} Частые вопросы
Что такое код Хэмминга?
Код Хэмминга — линейный код коррекции ошибок, изобретённый Ричардом Хэммингом в 1950 году. Наиболее распространённый вариант, Хэмминг(7,4), кодирует 4 бита данных в 7 битов кода, добавляя 3 бита чётности в позициях 1, 2 и 4. Каждый бит чётности покрывает определённое подмножество битов данных. Синдром — вычисленный путём проверки всех уравнений чётности — определяет позицию одиночной ошибки, позволяя исправить её без повторной передачи.
Как коррекция ошибок связана с теоремой Шеннона о канальном кодировании?
Теорема Шеннона о канальном кодировании (1948) доказывает, что для любого канала с пропускной способностью C надёжная связь возможна на любой скорости ниже C при использовании достаточно длинных кодов. Коды Хэмминга — короткие, простые коды, исправляющие одиночные ошибки. Современные коды вроде турбокодов и LDPC приближаются к пределу Шеннона гораздо точнее за счёт большей длины блока и итеративного декодирования.
Чем обнаружение ошибок отличается от коррекции ошибок?
Обнаружение ошибок определяет, что ошибка произошла, но не указывает где. Простой бит чётности обнаруживает любую одиночную ошибку. Коррекция ошибок и обнаруживает, и локализует ошибку, позволяя приёмнику её исправить. Хэмминг(7,4) может исправить любую одиночную ошибку и обнаружить (но не исправить) любую двойную ошибку. Коррекция требует большей избыточности, чем обнаружение.
Где на практике применяются коды коррекции ошибок?
Коды коррекции ошибок повсеместны: ECC-память использует коды Хэмминга для исправления битовых сбоев; QR-коды используют коды Рида–Соломона для устойчивости к повреждениям; жёсткие диски, SSD и оптические диски используют LDPC и коды Рида–Соломона; сети 5G используют полярные коды и LDPC; связь с дальним космосом использует свёрточные и турбокоды для поддержания контакта на расстоянии миллиардов километров.
Источники
- [object Object]
- [object Object]
- [object Object]