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