Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Линейные коды используются при прямом исправлении ошибок и применяются в способах передачи символов (например, битов ) по каналу связи, так что, если при передаче возникают ошибки, некоторые ошибки могут быть исправлены или обнаружены получателем блока сообщения. Кодовые слова в линейном блочном коде - это блоки символов, которые закодированы с использованием большего количества символов, чем исходное значение, которое должно быть отправлено. [2] Линейный код длины n передает блоки, содержащие n символов. Например, код Хэмминга [7,4,3] представляет собой линейный двоичный код.который представляет 4-битные сообщения с использованием 7-битных кодовых слов. Два отдельных кодовых слова отличаются по крайней мере тремя битами. Как следствие, может быть обнаружено до двух ошибок на кодовое слово, в то время как одна ошибка может быть исправлена. [3] Этот код содержит 2 4 = 16 кодовых слов.

Определение и параметры [ править ]

Линейный код длины п и ранг к является линейным подпространством С с размерностью к части векторного пространства , где является конечным полем с ц элементами. Такой код называется q- мерным кодом. Если q  = 2 или q  = 3, код описывается как двоичный код или троичный код соответственно. Векторы в C называются кодовыми словами . Размер кода этого число кодовых слов и равен дk .

Вес кодового слова является количество его элементов, которые отличны от нуля , а расстояние между двумя кодовыми словами представляет собой расстояние Хэмминга между ними, то есть, количество элементов , в которых они отличаются. Расстояние d линейного кода - это минимальный вес его ненулевых кодовых слов или, что эквивалентно, минимальное расстояние между различными кодовыми словами. Линейный код длины n , размерности k и расстояния d называется кодом [ n , k , d ].

Мы хотим дать стандартную основу, потому что каждая координата представляет собой «бит», который передается по «зашумленному каналу» с некоторой небольшой вероятностью ошибки передачи ( двоичный симметричный канал ). Если используется какой-то другой базис, то эту модель использовать нельзя, а метрика Хэмминга не измеряет количество ошибок при передаче, как мы этого хотим.

Генератор и проверка матриц [ править ]

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

Матрица Н , представляющий собой линейную функцию , чье ядро является С , называется матрица проверки на C (или иногда матрицы проверки на четность). Эквивалентно, Н является матрицей, нуль - пространство является С . Если C - код с порождающей матрицей G в стандартной форме, то является проверочной матрицей для C. Код, генерируемый H , называется двойным кодом C. Можно проверить, что G - матрица, а H - матрица. матрица.

Линейность гарантирует, что минимальное расстояние Хэмминга d между кодовым словом c 0 и любым другим кодовым словом c  ≠  c 0 не зависит от c 0 . Это следует из того свойства, что разность c  -  c 0 двух кодовых слов в C также является кодовым словом (т. Е. Элементом подпространства C ), и того свойства, что d ( c , c 0 ) =  d ( c  -  c 0 , 0). Эти свойства означают, что

Другими словами, чтобы определить минимальное расстояние между кодовыми словами линейного кода, нужно только посмотреть на ненулевые кодовые слова. Ненулевое кодовое слово с наименьшим весом тогда имеет минимальное расстояние до нулевого кодового слова и, следовательно, определяет минимальное расстояние кода.

Расстояние d линейного кода C также равно минимальное количество линейно зависимых столбцов проверочной матрицы H .

Доказательство: Потому что , что эквивалентно , где - столбец . Удалите те элементы с , те, у которых есть линейно зависимые. Следовательно, это как минимум минимальное количество линейно зависимых столбцов. С другой стороны, рассмотрим минимальный набор линейно зависимых столбцов, где - набор индексов столбца. . Теперь рассмотрим такой вектор , что если . Обратите внимание, потому что . Следовательно, у нас есть минимальное количество линейно зависимых столбцов в . Таким образом, заявленное имущество доказано.

Пример: коды Хэмминга [ править ]

В качестве первого класса линейных кодов, разработанных для исправления ошибок, коды Хэмминга широко используются в цифровых системах связи. Для любого натурального числа существует код Хэмминга. Поскольку этот код Хэмминга может исправить 1-битную ошибку.

Пример: линейный блочный код со следующей образующей матрицей и матрицей проверки на четность является кодом Хэмминга.

Пример: коды Адамара [ править ]

Код Адамара является линейным кодом и способен исправлять многие ошибки. Код Адамара может быть построен столбец за столбцом: столбец - это биты двоичного представления целого числа , как показано в следующем примере. Код Адамара имеет минимальное расстояние и, следовательно, может исправлять ошибки.

Пример: Линейный блок код с матрицей следующего генератора является кодом Адамар: .

Код Адамара - это частный случай кода Рида – Маллера . Если мы возьмем первый столбец (столбец с нулевыми значениями) , мы получим симплексный код , который является двойным кодом кода Хэмминга.

Алгоритм ближайшего соседа [ править ]

Параметр d тесно связан со способностью кода исправлять ошибки. Следующая конструкция / алгоритм иллюстрирует это (так называемый алгоритм декодирования ближайшего соседа):

Вход: полученный вектор v в .

Выход: кодового слова в ближайший к , если таковые имеются.

  • Начиная с , повторите следующие два шага.
  • Пронумеруем элементы шара радиуса (Хэмминга) вокруг полученного слова , обозначенного .
    • Для каждого дюйма , проверьте в . Если да, вернитесь в качестве решения.
  • Приращение . Ошибка возникает только тогда, когда перечисление завершено и решение не найдено.

Будем говорить , что линейный является -ошибка коррекции , если есть более одного кодового слова в , для каждого в .

Популярные обозначения [ править ]

Коды в общем случае часто обозначаются буквой C , а код длины n и ранга k (т. Е. Имеющий k кодовых слов в своей основе и k строк в своей порождающей матрице ) обычно называют ( nk ) код. Линейные блочные коды часто обозначаются как коды [ nkd ], где d означает минимальное расстояние Хэмминга кода между любыми двумя кодовыми словами.

( Обозначение [ nkd ] не следует путать с обозначением ( nMd ), используемым для обозначения нелинейного кода длины n , размера M (т.е. имеющего M кодовых слов) и минимального кода Хэмминга расстояние d .)

Граница синглтона [ править ]

Лемма ( оценка Синглтона ): любой линейный [n, k, d] код C удовлетворяет .

Код C, параметры которого удовлетворяют условию k + d = n + 1, называется максимальным разделимым расстоянием или MDS . Такие коды, если они существуют, в некотором смысле являются наилучшими из возможных.

Если C 1 и C 2 - два кода длины n и если существует перестановка p в симметрической группе S n, для которой (c 1 , ..., c n ) в C 1 тогда и только тогда, когда (c p (1 ) , ..., с р (п) ) в C 2 , то мы говорим , C 1 и C 2 являются перестановки эквивалентны . В более общем, если есть мономиальная матрица , которая отправляет С 1 изоморфно C 2 , то мы говорим , С 1 и С 2 являются эквивалентны .

Лемма : Любой линейный код является перестановочно эквивалентным коду в стандартной форме.

Теорема Бонисоли [ править ]

Код определяется как эквидистантный тогда и только тогда, когда существует некоторая константа d такая, что расстояние между любыми двумя различными кодовыми словами кода равно d . [4] В 1984 году Арриго Бонисоли определил структуру линейных одновесовых кодов над конечными полями и доказал, что каждый эквидистантный линейный код является последовательностью двойственных кодов Хэмминга . [5]

Примеры [ править ]

Некоторые примеры линейных кодов включают:

  • Коды повторения
  • Коды четности
  • Циклические коды
  • Коды Хэмминга
  • Код Голея , двоичная и троичная версии
  • Полиномиальные коды , примером которых являются коды БЧХ
  • Коды Рида – Соломона
  • Коды Рида – Маллера
  • Коды гоппы
  • Коды с низкой плотностью проверки четности
  • Коды расширителей
  • Многомерные коды проверки на четность
  • Торические коды
  • Турбо коды

Обобщение [ править ]

Также были рассмотрены пространства Хэмминга над неполевыми алфавитами, особенно над конечными кольцами (особенно над Z 4 ), дающими начало модулям вместо векторных пространств и кольцевым линейным кодам (отождествленным с подмодулями ) вместо линейных кодов. Типичная метрика, используемая в этом случае, - расстояние Ли . Существует изометрия Грея между (т.е. GF (2 2m )) с расстоянием Хэмминга и (также обозначаемым как GR (4, m)) с расстоянием Ли; его главная привлекательность состоит в том, что он устанавливает соответствие между некоторыми "хорошими" кодами, которые не являются линейными покак образы кольцевых линейных кодов из . [6] [7] [8]

Совсем недавно [ когда? ] некоторые авторы также называют такие коды над кольцами просто линейными кодами. [9]

См. Также [ править ]

  • Методы декодирования

Ссылки [ править ]

  1. ^ Уильям Э. Райан и Шу Линь (2009). Коды каналов: классический и современный . Издательство Кембриджского университета. п. 4 . ISBN 978-0-521-84868-8.
  2. ^ Маккей, Дэвид, JC (2003). Теория информации, выводы и алгоритмы обучения (PDF) . Издательство Кембриджского университета . п. 9. Bibcode : 2003itil.book ..... M . ISBN  9780521642989. В линейном блочном коде дополнительные биты являются линейными функциями исходных битов; эти дополнительные биты называются битами проверки четности
  3. Томас М. Кавер и Джой А. Томас (1991). Элементы теории информации . John Wiley & Sons, Inc., стр.  210–211 . ISBN 978-0-471-06259-2.
  4. ^ Эцион, Туви; Равив, Нетанел (2013). «Эквидистантные коды в грассманиане». arXiv : 1308.6231 [ math.CO ].
  5. ^ Bonisoli, A. (1984). «Каждый эквидистантный линейный код представляет собой последовательность дуальных кодов Хэмминга». Ars Combinatoria . 18 : 181–186.
  6. ^ Маркус Греферат (2009). «Введение в теорию линейного кодирования». В Массимилиано Сала; Тео Мора; Людовик Перре; Сёдзиро Саката; Карло Траверсо (ред.). Основы Грёбнера, кодирование и криптография . Springer Science & Business Media. ISBN 978-3-540-93806-4.
  7. ^ "Энциклопедия математики" . www.encyclopediaofmath.org .
  8. ^ JH ван Линт (1999). Введение в теорию кодирования (3-е изд.). Springer. Глава 8: Коды 4 . ISBN 978-3-540-64133-9.
  9. ^ ST Догерти; Ж.-Л. Ким; П. Соле (2015). «Открытые проблемы теории кодирования» . В Стивене Догерти; Альберто Факкини; Андре Жерар Лерой; Эдмунд Пучиловски; Патрик Соул (ред.). Некоммутативные кольца и их приложения . American Mathematical Soc. п. 80. ISBN 978-1-4704-1032-2.

Библиография [ править ]

  • Дж. Ф. Хамфрис; MY Perst (2004). Числа, группы и коды (2-е изд.). Издательство Кембриджского университета. ISBN 978-0-511-19420-7. Глава 5 содержит более мягкое введение (чем в этой статье) в предмет линейных кодов.

Внешние ссылки [ править ]

  • программа-генератор q -арного кода
  • Таблицы кодов: границы параметров различных типов кодов , IAKS, Fakultät für Informatik, Universität Karlsruhe (TH)] . Обновленная онлайн-таблица оптимальных двоичных кодов включает недвоичные коды.
  • База данных кодов Z4 Online, актуальная база данных оптимальных кодов Z4.