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

Минимальное кодовое расстояние

Минимальное кодовое расстояние — это фундаментальный параметр блочного корректирующего кода, равный наименьшему числу позиций, в которых различаются любые две различные кодовые комбинации (кодовые слова) данного кода. В теории кодирования минимальное кодовое расстояние обозначается обычно как \(d_{\min}\) и определяет способность кода обнаруживать и исправлять ошибки, возникающие при передаче или хранении данных. Чем больше минимальное кодовое расстояние, тем выше помехоустойчивость кода, но при этом, как правило, ниже его скорость (избыточность).

Определение и формализация

Для двоичного блочного кода, состоящего из \(M\) кодовых слов длины \(n\) (бит), расстояние Хэмминга \(d(x, y)\) между двумя словами \(x\) и \(y\) — это количество позиций, в которых их символы различаются. Минимальное кодовое расстояние определяется как:

\[ d_{\min} = \min_{x, y \in C, x \neq y} d(x, y), \]

где \(C\) — множество всех кодовых слов. Для недвоичных кодов (например, кодов Рида — Соломона) расстояние вычисляется аналогично, но по символам, а не по битам.

Связь с корректирующей способностью

Минимальное кодовое расстояние напрямую определяет, сколько ошибок код может гарантированно обнаружить и исправить.

Обнаружение ошибок

Код может гарантированно обнаружить любую комбинацию из \(t\) ошибок, если выполняется условие:

\[ d_{\min} \geq t + 1. \]

Иными словами, если искажённое кодовое слово не совпадает ни с одним другим истинным кодовым словом, ошибка будет обнаружена. При \(d_{\min} = 3\) код обнаруживает до 2 ошибок.

Исправление ошибок

Код может гарантированно исправить любую комбинацию из \(s\) ошибок, если выполняется условие:

\[ d_{\min} \geq 2s + 1. \]

Это объясняется тем, что вокруг каждого кодового слова можно построить сферу радиуса \(s\) (в метрике Хэмминга). Если сферы не пересекаются, принятое слово однозначно декодируется в ближайшее кодовое слово. При \(d_{\min} = 3\) код исправляет 1 ошибку.

Одновременное обнаружение и исправление

Если требуется одновременно исправлять \(s\) ошибок и обнаруживать \(t\) ошибок (\(t > s\)), условие имеет вид:

\[ d_{\min} \geq s + t + 1. \]

Классификация кодов по минимальному расстоянию

Коды делятся на классы в зависимости от значения \(d_{\min}\):

  • Коды с \(d_{\min} = 1\) — не имеют корректирующей способности (например, простой код без избыточности).
  • Коды с \(d_{\min} = 2\) — позволяют обнаружить одну ошибку (код с проверкой на чётность).
  • Коды с \(d_{\min} = 3\) — исправляют одну ошибку (код Хэмминга).
  • Коды с \(d_{\min} \geq 4\) — исправляют одну и обнаруживают две ошибки (расширенный код Хэмминга), либо исправляют две и более ошибок (коды БЧХ, Рида — Соломона, свёрточные коды).

Примеры

Код с проверкой на чётность

Для кода длины \(n = 3\) с одним битом чётности кодовые слова: 000, 011, 101, 110. Расстояния между парами: \(d(000,011)=2\), \(d(000,101)=2\), \(d(000,110)=2\), \(d(011,101)=2\), \(d(011,110)=2\), \(d(101,110)=2\). Минимальное расстояние \(d_{\min}=2\). Код обнаруживает одну ошибку.

Код Хэмминга (7,4)

Классический код Хэмминга с длиной 7 бит и 4 информационными битами имеет \(d_{\min}=3\). Он исправляет одну ошибку и обнаруживает две. Например, кодовые слова: 0000000, 0001011, 0010111, 0100110 и т. д. Минимальное расстояние между любыми двумя различными словами равно 3.

Код Рида — Соломона (255, 239)

Этот недвоичный код, используемый в системах хранения данных (CD, DVD, QR-коды) и спутниковой связи, имеет минимальное кодовое расстояние \(d_{\min}=17\) (по символам). Он исправляет до 8 символьных ошибок.

Связь с другими параметрами кода

Минимальное кодовое расстояние связано с другими характеристиками кода:

  • Скорость кода \(R = k/n\), где \(k\) — число информационных символов. Для заданной длины \(n\) увеличение \(d_{\min}\) обычно требует снижения скорости.
  • Граница Синглтона — теоретический предел: \(d_{\min} \leq n - k + 1\). Коды, достигающие этого равенства, называются кодами с максимальным расстоянием (MDS-коды), например, коды Рида — Соломона.
  • Граница Хэмминга (или граница сферической упаковки) — для кода, исправляющего \(s\) ошибок, выполняется неравенство: \(2^n \geq \sum_{i=0}^{s} \binom{n}{i} \cdot M\), где \(M = 2^k\) — число кодовых слов. Коды, достигающие этой границы, называются совершенными (например, коды Хэмминга).

Применение

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

  • Цифровая связь (Wi-Fi, LTE, спутниковая связь) — используются коды с \(d_{\min}\) от 3 до 10 и более (свёрточные, турбокоды, LDPC).
  • Хранение данных (жёсткие диски, флеш-память, RAID-массивы) — применяются коды Рида — Соломона с большим \(d_{\min}\) для исправления пакетов ошибок.
  • Космическая связь — коды с \(d_{\min}\) до 32 и выше (например, код Голея, коды БЧХ).
  • Криптография — в кодах Мак-Элиса минимальное расстояние используется для оценки стойкости.

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

  • Понятие минимального кодового расстояния ввёл Ричард Хэмминг в 1950 году в работе «Error detecting and error correcting codes».
  • Для кода с \(d_{\min}=3\) вероятность ошибочного декодирования при однократной ошибке равна нулю, если ошибка кратна одному биту.
  • В теории кодирования существует понятие «вес Хэмминга» — число ненулевых символов в кодовом слове. Для линейных кодов минимальное расстояние равно минимальному весу ненулевого кодового слова.

Источники

  • Хэмминг Р. В. «Теория кодирования и теория информации». — М.: Радио и связь, 1983.
  • Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. «Теория кодов, исправляющих ошибки». — М.: Связь, 1979.
  • Питерсон У., Уэлдон Э. «Коды, исправляющие ошибки». — М.: Мир, 1976.
  • Блейхут Р. «Теория и практика кодов, контролирующих ошибки». — М.: Мир, 1986.

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

На главную BFOmetr →