Линейный код - Linear code
В теория кодирования, а линейный код является код исправления ошибок для чего любой линейная комбинация из кодовые слова также является кодовым словом. Линейные коды традиционно делятся на блочные коды и сверточные коды, несмотря на то что турбокоды можно рассматривать как гибрид этих двух типов.[1] Линейные коды позволяют использовать более эффективные алгоритмы кодирования и декодирования, чем другие коды (см. расшифровка синдрома ).[нужна цитата ]
Линейные коды используются в прямое исправление ошибок и применяются в методах передачи символов (например, биты ) на канал связи так что, если возникают ошибки в связи, некоторые ошибки могут быть исправлены или обнаружены получателем блока сообщения. Кодовые слова в линейном блочном коде - это блоки символов, которые закодированы с использованием большего количества символов, чем исходное значение, которое должно быть отправлено.[2] Линейный код длины п передает блоки, содержащие п символы. Например, [7,4,3] Код Хэмминга линейный бинарный код который представляет 4-битные сообщения с использованием 7-битных кодовых слов. Два отдельных кодовых слова отличаются по крайней мере тремя битами. Как следствие, может быть обнаружено до двух ошибок на одно кодовое слово, а одна ошибка может быть исправлена.[3] Этот код содержит 24= 16 кодовых слов.
Определение и параметры
А линейный код длины п и ранг k это линейное подпространство C с измерение k из векторное пространство куда это конечное поле с q элементы. Такой код называется q-арный код. Если q = 2 или q = 3, код описывается как бинарный код, или троичный код соответственно. Векторы в C называются кодовые слова. В размер кода - это количество кодовых слов и равно qk.
В масса кодового слова - это количество его элементов, отличных от нуля, а расстояние между двумя кодовыми словами - это Расстояние Хэмминга между ними, то есть количеством элементов, по которым они различаются. Расстояние d линейного кода - это минимальный вес его ненулевых кодовых слов или, что эквивалентно, минимальное расстояние между различными кодовыми словами. Линейный код длины п, измерение k, и расстояние d называется [п,k,d] код.
Мы хотим дать стандартная основа, поскольку каждая координата представляет собой «бит», который передается по «зашумленному каналу» с некоторой небольшой вероятностью ошибки передачи ( двоичный симметричный канал ). Если используется какой-то другой базис, то эту модель использовать нельзя, а метрика Хэмминга не измеряет количество ошибок при передаче, как мы этого хотим.
Генераторные и проверочные матрицы
Как линейное подпространство из , весь код C (который может быть очень большим) может быть представлен как охватывать набора кодовые слова (известные как основа в линейная алгебра ). Эти базовые кодовые слова часто сопоставляются в строках матрицы G, известной как порождающая матрица для кода C. Когда G имеет вид блочной матрицы , куда обозначает единичная матрица, а P - некоторая матрица, то мы говорим, что G находится в стандартная форма.
Матрица ЧАС представляющий линейную функцию чей ядро является C называется проверить матрицу из C (или иногда матрица проверки на четность). Эквивалентно, ЧАС матрица, у которой пустое пространство является C. Если C код с порождающей матрицей грамм в стандартной форме, , тогда является проверочной матрицей для C. Код, сгенерированный ЧАС называется двойной код точки C. Можно проверить, что G является матрица, а H - матрица.
Линейность гарантирует, что минимум Расстояние Хэмминга d между кодовым словом c0 и любые другие кодовые слова c ≠ c0 не зависит от c0. Это следует из того свойства, что разница c − c0 двух кодовых слов в C также является кодовым словом (т.е. элемент подпространства C), а свойство d(c, c0) = d(c − c0, 0). Из этих свойств следует, что
Другими словами, чтобы определить минимальное расстояние между кодовыми словами линейного кода, нужно только посмотреть на ненулевые кодовые слова. Ненулевое кодовое слово с наименьшим весом тогда имеет минимальное расстояние до нулевого кодового слова и, следовательно, определяет минимальное расстояние кода.
Расстояние d линейного кода C также равно минимальному количеству линейно зависимых столбцов проверочной матрицы ЧАС.
Доказательство: Потому что , что эквивалентно , куда это столбец . Удалите эти элементы с помощью , те с линейно зависимы. Следовательно, - не менее минимального количества линейно зависимых столбцов. С другой стороны, рассмотрим минимальный набор линейно зависимых столбцов. куда - набор индексов столбца. . Теперь рассмотрим вектор такой, что если . Примечание потому что . Следовательно, мы имеем , которое представляет собой минимальное количество линейно зависимых столбцов в . Таким образом, заявленное имущество доказано.
Пример: коды Хэмминга
Как первый класс линейных кодов, разработанный для исправления ошибок, Коды Хэмминга широко используются в цифровых системах связи. Для любого положительного целого числа , существует Код Хэмминга. С , этот код Хэмминга может исправить 1-битную ошибку.
Пример : Линейный блочный код со следующей образующей матрицей и матрицей проверки на четность является Код Хэмминга.
Пример: коды Адамара
Код Адамара это линейный код и способен исправлять многие ошибки. Код Адамара может быть построен столбец за столбцом: столбец - это биты двоичного представления целого числа , как показано в следующем примере. Код Адамара имеет минимальное расстояние и поэтому может исправить ошибки.
Пример: Код линейного блока со следующей образующей матрицей представляет собой Код Адамара:.
Код Адамара это частный случай Код Рида – Мюллера. Если мы возьмем первый столбец (столбец со всеми нулями) из , мы получили симплексный код, какой двойной код кода Хэмминга.
Алгоритм ближайшего соседа
Параметр d тесно связан со способностью кода исправлять ошибки. Следующая конструкция / алгоритм иллюстрирует это (так называемый алгоритм декодирования ближайшего соседа):
Ввод: A получил вектор v в .
Выход: кодовое слово в ближайший к , если есть.
- Начиная с , повторите следующие два шага.
- Перечислим элементы шара радиуса (Хэмминга) вокруг полученного слова , обозначенный .
- Для каждого в , проверить, если в . Если да, верните как решение.
- Инкремент . Ошибка только тогда, когда так что перечисление завершено и решение не найдено.
Мы говорим, что линейный является -исправление ошибок, если есть не более одного кодового слова в , для каждого в .
Популярные обозначения
Коды вообще часто обозначаются буквой C, и код длины п и из классифицировать k (т.е. имея k кодовые слова в его основе и k ряды в его порождающая матрица) обычно обозначается как (п, k) код. Линейные блочные коды часто обозначаются как [п, k, d] коды, где d относится к минимальному расстоянию Хэмминга кода между любыми двумя кодовыми словами.
([п, k, d] обозначение не следует путать с (п, M, d) обозначение, используемое для обозначения нелинейный код длины п, размер M (т.е. имея M кодовые слова) и минимальное расстояние Хэмминга d.)
Граница синглтона
Лемма (Граница синглтона ): Каждый линейный [n, k, d] код C удовлетворяет .
Код C, параметры которого удовлетворяют k + d = n + 1, называется максимальное разделяемое расстояние или же MDS. Такие коды, если они существуют, в некотором смысле являются наилучшими из возможных.
Если C1 и C2 два кода длины n, и если есть перестановка p в симметричная группа Sп для которого (c1, ..., cп) в C1 тогда и только тогда, когда (cп (1), ..., cп (п)) в C2, то говорим C1 и C2 находятся эквивалент перестановки. В более общем смысле, если есть мономиальная матрица который отправляет C1 изоморфно C2 тогда мы говорим C1 и C2 находятся эквивалент.
Лемма: Любой линейный код эквивалентен перестановке коду в стандартной форме.
Теорема Бонисоли
Код определяется как равноудаленный тогда и только тогда, когда существует некоторая константа d такое, что расстояние между любыми двумя различными кодовыми словами кода равно d.[4] В 1984 году Арриго Бонисоли определил структуру линейных одновесовых кодов над конечными полями и доказал, что каждый эквидистантный линейный код является последовательностью двойной Коды Хэмминга.[5]
Примеры
Некоторые примеры линейных кодов включают:
- Коды повторения
- Коды четности
- Циклические коды
- Коды Хэмминга
- Код Голея, как двоичный и тройной версии
- Полиномиальные коды, из которых Коды BCH являются примером
- Коды Рида – Соломона
- Коды Рида – Маллера
- Коды гоппы
- Коды с низкой плотностью проверки четности
- Коды расширителей
- Многомерные коды проверки на четность
- Торические коды
- Турбо коды
Обобщение
Пространства Хэмминга над неполевыми алфавитами, особенно над конечные кольца (особенно более Z4 ) вызывая модули вместо векторных пространств и кольцевые линейные коды (идентифицировано с подмодули ) вместо линейных кодов. Типичная метрика, используемая в этом случае, Расстояние Ли. Есть Серая изометрия между (т.е. GF (22м)) с расстоянием Хэмминга и (также обозначается как GR (4, м)) с расстоянием Ли; его главная привлекательность состоит в том, что он устанавливает соответствие между некоторыми «хорошими» кодами, которые не являются линейными по как образы кольцевых кодов из .[6][7][8]
В последнее время,[когда? ] некоторые авторы называют такие коды над кольцами просто линейными кодами.[9]
Смотрите также
Рекомендации
- ^ Уильям Э. Райан и Шу Линь (2009). Коды каналов: классический и современный. Издательство Кембриджского университета. п.4. ISBN 978-0-521-84868-8.
- ^ Маккей, Дэвид, Дж. (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 ].
- ^ Бонисоли, А. (1984). «Каждый эквидистантный линейный код представляет собой последовательность дуальных кодов Хэмминга». Ars Combinatoria. 18: 181–186.
- ^ Маркус Греферат (2009). «Введение в теорию линейного кодирования». В Массимилиано Сала; Тео Мора; Людовик Перре; Сёдзиро Саката; Карло Траверсо (ред.). Основы Грёбнера, кодирование и криптография. Springer Science & Business Media. ISBN 978-3-540-93806-4.
- ^ «Энциклопедия математики». www.encyclopediaofmath.org.
- ^ J.H. ван Линт (1999). Введение в теорию кодирования (3-е изд.). Springer. Глава 8: Коды закончились ℤ4. ISBN 978-3-540-64133-9.
- ^ S.T. Догерти; Ж.-Л. Ким; П. Соле (2015). «Открытые проблемы теории кодирования». В Стивене Догерти; Альберто Факкини; Андре Жерар Лерой; Эдмунд Пучиловски; Патрик Соул (ред.). Некоммутативные кольца и их приложения.. American Mathematical Soc. п. 80. ISBN 978-1-4704-1032-2.
Библиография
- Дж. Ф. Хамфрис; М. Ю. Перст (2004). Номера, группы и коды (2-е изд.). Издательство Кембриджского университета. ISBN 978-0-511-19420-7. Глава 5 содержит более мягкое введение (чем эта статья) в предмет линейных кодов.
внешняя ссылка
- qпрограмма-генератор кода
- Таблицы кодов: границы параметров различных типов кодов, IAKS, Fakultät für Informatik, Universität Karlsruhe (TH)]. Обновленная онлайн-таблица оптимальных двоичных кодов включает недвоичные коды.
- База данных кодов Z4 Онлайн, актуальная база данных оптимальных кодов Z4.