Открыть сервис

Помехоустойчивое кодирование

Помехоустойчивое кодирование — это раздел теории информации и техники связи, посвящённый методам представления данных, обеспечивающим их достоверную передачу, хранение или восстановление при наличии искажений (помех) в канале связи или на носителе информации. Основная цель помехоустойчивого кодирования — обнаруживать и (или) исправлять ошибки, возникающие в процессе передачи, за счёт введения в исходное сообщение избыточности по строго определённым алгоритмам.

Основные принципы

В основе помехоустойчивого кодирования лежит идея преобразования исходной последовательности информационных символов (бит, байт) в кодовое слово большей длины. Это достигается добавлением к информационной части проверочных (избыточных) символов, которые вычисляются по заданному правилу. Полученная последовательность символов называется кодовым словом или кодовой комбинацией. Совокупность всех допустимых кодовых слов образует код.

Ключевым понятием является кодовое расстояние (расстояние Хэмминга) — минимальное количество позиций, в которых различаются любые два различных кодовых слова. Чем больше кодовое расстояние, тем больше ошибок способен обнаружить или исправить код. Способность кода к исправлению ошибок определяется его минимальным расстоянием \( d \). Если \( d = 2t + 1 \), код гарантированно исправляет \( t \) ошибок в одном кодовом слове. Если \( d = t + 1 \), код гарантированно обнаруживает \( t \) ошибок.

Классификация

Помехоустойчивые коды делятся на несколько основных категорий по различным признакам.

По способу обработки информации

По характеру избыточности

По типу исправляемых ошибок

История развития

Первые теоретические основы помехоустойчивого кодирования были заложены Клодом Шенноном в его работе «Математическая теория связи» (1948). Шеннон доказал, что при скорости передачи, меньшей пропускной способности канала, существует код, позволяющий сделать вероятность ошибки сколь угодно малой. Однако он не указал, как построить такой код.

В 1950 году Ричард Хэмминг предложил первый практический код, исправляющий одиночные ошибки (код Хэмминга). В 1954 году Марсель Голе описал совершенный код (код Голея), исправляющий три ошибки. В 1959–1960 годах были разработаны коды БЧХ, обобщающие коды Хэмминга на случай исправления нескольких ошибок. В 1960 году Ирвинг Рид и Густав Соломон предложили коды Рида — Соломона, ставшие одними из самых популярных для исправления пакетов ошибок.

В 1955 году Питер Элайес ввёл понятие свёрточных кодов, а в 1967 году Эндрю Витерби разработал эффективный алгоритм их декодирования. В 1970-х годах началось активное применение помехоустойчивого кодирования в космической связи (программа «Вояджер» использовала каскадный код из свёрточного и кода Рида — Соломона).

Современный этап (с 1993 года) связан с открытием турбокодов (Клод Берру) и кодов с низкой плотностью проверок на чётность (LDPC), впервые предложенных Робертом Галлагером в 1963 году, но забытых на несколько десятилетий. Эти коды позволяют приблизиться к пределу Шеннона с высокой вычислительной эффективностью.

Применение

Помехоустойчивое кодирование является неотъемлемой частью практически всех современных цифровых систем передачи и хранения данных.

Цифровая связь

Хранение данных

Вычислительная техника

Критерии эффективности

Выбор конкретного помехоустойчивого кода определяется компромиссом между несколькими параметрами:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →