Участник:Terraqottik — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Создание заготовки статьи по теме "Линейные коды")
 
(Добавлено определение и информация о порождающей матрице)
Строка 11: Строка 11:
 
{{Определение
 
{{Определение
 
|id=def1_formal
 
|id=def1_formal
|definition='''Линейный код''' длины ''n'' и ранга ''k'' является линейным подпространством ''C'' размерности ''k'' векторного пространства <tex>\mathbb{F}_q^n</tex>, где <tex>\mathbb{F}_q</tex> {{---}} конечное поле (поле Галуа) из ''q'' элементов. Такой код с параметром q называется q-арным кодом (напр. если ''q'' = 5 — то это 5-арный код). Если ''q'' = 2 или ''q'' = 3, то код представляет собой '''двоичный код''', или '''тернарный''' соответственно.}}
+
|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>, то код представляет собой '''двоичный код''', или '''тернарный''' соответственно.}}
  
Векторы в ''C'' называют '''кодовыми словами'''. Размер кода {{---}} это количество кодовых слов, т.е. <tex>\mathbb{q}^k</tex>.  
+
Векторы в <tex>C</tex> называют '''кодовыми словами'''. Размер кода {{---}} это количество кодовых слов, т.е. <tex>\mathbb{q}^k</tex>.  
  
'''Весом''' кодового слова называют число его ненулевых элементов. '''Расстояние''' между двумя кодовыми словами {{---}} это [[Расстояние Хэмминга | расстояние Хэмминга]]. Расстояние ''d'' линейного кода {{---}} это минимальный вес его ненулевых кодовых слов или равным образом минимальное расстояние между всеми парами различных кодовых слов. Линейный код длины ''n'', ранга ''k'' и расстоянием ''d'' называют [n,k,d] кодом (англ. ''[n,k,d] code'').  
+
'''Весом''' кодового слова называют число его ненулевых элементов. '''Расстояние''' между двумя кодовыми словами {{---}} это [[Расстояние Хэмминга | расстояние Хэмминга]]. Расстояние <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]

По сравнению с другими кодами, линейные коды позволяют реализовывать более эффективные алгоритмы кодирования и декодирования информации (см. синдромы ошибок).

Формальное определение

Определение:
Линейный код длины [math]n[/math] и ранга [math]k[/math] является линейным подпространством [math]C[/math] размерности [math]k[/math] векторного пространства [math]\mathbb{F}_q^n[/math], где [math]\mathbb{F}_q[/math] — конечное поле (поле Галуа) из [math]q[/math] элементов. Такой код с параметром [math]q[/math] называется [math]q[/math]-арным кодом (напр. если [math]q = 5[/math] — то это 5-арный код). Если [math]q = 2[/math] или [math]q = 3[/math], то код представляет собой двоичный код, или тернарный соответственно.


Векторы в [math]C[/math] называют кодовыми словами. Размер кода — это количество кодовых слов, т.е. [math]\mathbb{q}^k[/math].

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

Порождающая матрица

Так как линейный код является линейным подпространством [math]\mathbb{F}_q^n[/math], целиком код [math]C[/math] (может быть очень большим) может быть представлен как линейная оболочка набора из [math]k[/math] кодовых слов (т.е. базис). Этот базис часто объединяют в столбцы матрицы [math]G[/math] и называют такую матрицу порождающей матрицей кода [math]C[/math].

В случае, если [math]\boldsymbol{G} = [I_k | P][/math], где [math]I_k[/math] — это единичная матрица размера [math]k[/math], а [math]P[/math] — это матрица размера [math]k \times (n - k)[/math] говорят, что матрица [math]G[/math] находится в каноническом виде.

Имея матрицу [math]G[/math] можно получить из некоторого входного вектора [math]s[/math] кодовое слово [math]w[/math] линейного кода [math]C[/math]

[math]w=sG[/math],

где [math]w[/math] и [math]s[/math] — векторы-строки. Порождающая матрица линейного [math][n, k, d]_q[/math]-кода имеет вид [math]k \times n[/math]. Число избыточных бит тогда определяется как [math]r = n - k[/math].

Расстояние кода

Количество ошибок

Прочее

Примечания

Источники информации