Участник:Terraqottik — различия между версиями
(Создание заготовки статьи по теме "Линейные коды") |
(Добавлено определение и информация о порождающей матрице) |
||
Строка 11: | Строка 11: | ||
{{Определение | {{Определение | ||
|id=def1_formal | |id=def1_formal | ||
− | |definition='''Линейный код''' длины | + | |definition='''Линейный код''' длины <tex>n</tex> и ранга <tex>k</tex> является линейным подпространством <tex>C</tex> размерности <tex>k</tex> векторного пространства <tex>\mathbb{F}_q^n</tex>, где <tex>\mathbb{F}_q</tex> {{---}} конечное поле (поле Галуа) из <tex>q</tex> элементов. Такой код с параметром <tex>q</tex> называется <tex>q</tex>-арным кодом (напр. если <tex>q = 5</tex> — то это 5-арный код). Если <tex>q = 2</tex> или <tex>q = 3</tex>, то код представляет собой '''двоичный код''', или '''тернарный''' соответственно.}} |
− | Векторы в | + | Векторы в <tex>C</tex> называют '''кодовыми словами'''. Размер кода {{---}} это количество кодовых слов, т.е. <tex>\mathbb{q}^k</tex>. |
− | '''Весом''' кодового слова называют число его ненулевых элементов. '''Расстояние''' между двумя кодовыми словами {{---}} это [[Расстояние Хэмминга | расстояние Хэмминга]]. Расстояние | + | '''Весом''' кодового слова называют число его ненулевых элементов. '''Расстояние''' между двумя кодовыми словами {{---}} это [[Расстояние Хэмминга | расстояние Хэмминга]]. Расстояние <tex>d</tex> линейного кода {{---}} это минимальный вес его ненулевых кодовых слов или равным образом минимальное расстояние между всеми парами различных кодовых слов. Линейный код длины <tex>n</tex>, ранга <tex>k</tex> и с расстоянием <tex>d</tex> называют <tex>[n,k,d]_q</tex>-кодом (англ. ''[n,k,d] code''). |
== Порождающая матрица == | == Порождающая матрица == | ||
+ | |||
+ | Так как линейный код является линейным подпространством <tex>\mathbb{F}_q^n</tex>, целиком код <tex>C</tex> (может быть очень большим) может быть представлен как линейная оболочка набора из <tex>k</tex> кодовых слов (т.е. базис). Этот базис часто объединяют в столбцы матрицы <tex>G</tex> и называют такую матрицу '''порождающей матрицей''' кода <tex>C</tex>. | ||
+ | |||
+ | В случае, если <tex>\boldsymbol{G} = [I_k | P]</tex>, где <tex>I_k</tex> {{---}} это единичная матрица размера <tex>k</tex>, а <tex>P</tex> {{---}} это матрица размера <tex>k \times (n - k)</tex> говорят, что матрица <tex>G</tex> находится в '''каноническом виде'''. | ||
+ | |||
+ | Имея матрицу <tex>G</tex> можно получить из некоторого входного вектора <tex>s</tex> кодовое слово <tex>w</tex> линейного кода <tex>C</tex> | ||
+ | |||
+ | : <tex>w=sG</tex>, | ||
+ | |||
+ | где <tex>w</tex> и <tex>s</tex> {{---}} векторы-строки. Порождающая матрица линейного <tex>[n, k, d]_q</tex>-кода имеет вид <tex>k \times n</tex>. Число избыточных бит тогда определяется как <tex>r = n - k</tex>. | ||
== Расстояние кода == | == Расстояние кода == |
Версия 08:48, 18 февраля 2021
Определение: |
Линейный код (англ. Linear code) — код фиксированной длины, исправляющий ошибки, для которого любая линейная комбинация кодовых слов также является кодовым словом. |
Линейные коды обычно делят на блочные коды и свёрточные коды. Также можно рассматривать турбо-коды, как гибрид двух предыдущих.[1]
По сравнению с другими кодами, линейные коды позволяют реализовывать более эффективные алгоритмы кодирования и декодирования информации (см. синдромы ошибок).
Содержание
Формальное определение
Определение: |
Линейный код длины | и ранга является линейным подпространством размерности векторного пространства , где — конечное поле (поле Галуа) из элементов. Такой код с параметром называется -арным кодом (напр. если — то это 5-арный код). Если или , то код представляет собой двоичный код, или тернарный соответственно.
Векторы в называют кодовыми словами. Размер кода — это количество кодовых слов, т.е. .
Весом кодового слова называют число его ненулевых элементов. Расстояние между двумя кодовыми словами — это расстояние Хэмминга. Расстояние линейного кода — это минимальный вес его ненулевых кодовых слов или равным образом минимальное расстояние между всеми парами различных кодовых слов. Линейный код длины , ранга и с расстоянием называют -кодом (англ. [n,k,d] code).
Порождающая матрица
Так как линейный код является линейным подпространством
, целиком код (может быть очень большим) может быть представлен как линейная оболочка набора из кодовых слов (т.е. базис). Этот базис часто объединяют в столбцы матрицы и называют такую матрицу порождающей матрицей кода .В случае, если
, где — это единичная матрица размера , а — это матрица размера говорят, что матрица находится в каноническом виде.Имея матрицу
можно получить из некоторого входного вектора кодовое слово линейного кода- ,
где
и — векторы-строки. Порождающая матрица линейного -кода имеет вид . Число избыточных бит тогда определяется как .Расстояние кода
Количество ошибок
Прочее
Примечания
Источники информации
- wikipedia.org — Линейный код
- wikipedia.org — Linear code
- Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. Теория кодов, исправляющих ошибки: Пер. с англ. — М: Связь, 1979. — 744 с., стр. 12-33
- Ф.И. Соловьева — Введение в теорию кодирования
- В. А. Липницкий, Н. В. Чесалин — Линейные коды и кодовые последовательности: учеб.-метод. пособие для студентов мех.-мат. фак. БГУ. Минск: БГУ, 2008. — 41 с.