Теория кодирования
МФТИ, осень 2013
Александр Дайняк
www.dainiak.com
Циклический код
Циклический код — это линейный код, такой, что для любого
кодового слова 𝑎0, 𝑎1 … , 𝑎 𝑛−1
слово 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 также является кодовым.
Т.е. циклический сдвиг кодового слова также является кодовым
словом.
Циклический код
Например, 7,4,3 -код Хемминга эквивалентен циклическому коду
с проверочной матрицей
1 1 1 0 1 0 0
0 1 1 1 0 1 0
0 0 1 1 1 0 1
Алгебраическое определение циклических
кодов
Сопоставим слову
𝑎0, … , 𝑎 𝑛−1 ∈ 𝔽 𝑞
𝑛
многочлен
𝑓 ≔ 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥2 + ⋯ + 𝑎 𝑛−1 𝑥 𝑛−1 ∈ 𝔽 𝑞 𝑥
Тогда слову 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 отвечает многочлен
𝑎 𝑛−1 + 𝑎0 𝑥 + 𝑎1 𝑥2 + ⋯ + 𝑎 𝑛−2 𝑥 𝑛−1 = 𝑥 ⋅ 𝑓 − 𝑎 𝑛−1 𝑥 𝑛 − 1
Алгебраическое определение циклических
кодов
Перейдём в кольцо 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 .
Слову 𝑎0, … , 𝑎 𝑛−1 отвечает элемент кольца
𝑓 = 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥2 + ⋯ + 𝑎 𝑛−1 𝑥 𝑛−1,
а слову 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 отвечает элемент
𝑥 ⋅ 𝑓 − 𝑎 𝑛−1 𝑥 𝑛 − 1 =
в кольце
𝑥 ⋅ 𝑓
Вывод: циклический сдвиг слова эквивалентен умножению
соответствующего многочлена на 𝑥 в кольце 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 .
Алгебраическое определение циклических
кодов
Циклический код — это подмножество 𝐶 кольца 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 ,
такое, что
• 𝑓1, 𝑓2 ∈ 𝐶 ⇒ ∀𝛼, 𝛽 ∈ 𝔽 𝑞 𝛼𝑓1 + 𝛽𝑓2 ∈ 𝐶
• 𝑓 ∈ 𝐶 ⇒ 𝑥 ⋅ 𝑓 ∈ 𝐶
Циклический код — идеал кольца
Утверждение.
Для любого ц.к. 𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛
− 1 выполнено
𝑓 ∈ 𝐶 ⇒ ∀𝑔 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 𝑓 ⋅ 𝑔 ∈ 𝐶
Доказательство: утверждение непосредственно следует из
алгебраического определения ц.к.
Циклический код — идеал кольца
Утверждение.
Любой циклический код 𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛
− 1 может быть
представлен в виде
𝑓 ⋅ 𝑔 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛
− 1
для некоторого фиксированного многочлена 𝑔.
Циклический код — идеал кольца
Доказательство:
Пусть 𝐶 — ц.к. Рассмотрим 𝑔0 ∈ 𝐶, такой, что
deg 𝑔0 = min
𝑔∈𝐶
𝑔≢0
deg 𝑔
Тогда любой многочлен 𝑓 ∈ 𝐶 кратен 𝑔0. Действительно, поделим
𝑓 на 𝑔0 c остатком:
𝑓 𝑥 = 𝑔0 𝑥 ⋅ 𝑓 𝑥 + 𝑟 𝑥
где deg 𝑟 < deg 𝑔0.
Но 𝑟 = 𝑓 − 𝑓 ⋅ 𝑔0 ∈ 𝐶, а значит 𝑟 ≡ 0.
Единственность
порождающего многочлена
Нормированный многочлен — это многочлен с коэффициентом 1
при мономе старшей степени.
Утверждение.
В любом ц.к. ненулевой нормированный многочлен минимальной
степени единственен.
Этот многочлен называется порождающим многочленом
циклического кода.
Единственность
порождающего многочлена
Доказательство:
Допустим, что в коде 𝐶 нашлись два разных нормногочлена
минимальной степени:
𝑔1 𝑥 = 𝑥 𝑙 + ⋯
𝑔2 𝑥 = 𝑥 𝑙 + ⋯
Но тогда 𝑔1 − 𝑔2 ∈ 𝐶 и deg 𝑔1 − 𝑔2 < 𝑙 — это противоречит
минимальности 𝑙.
Критерий существования циклического
кода
Теорема.
Нормногочлен 𝑔 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 может быть порождающим
многочленом циклического кода т. и т.т., когда он является
делителем многочлена 𝑥 𝑛 − 1 в кольце 𝔽 𝑥 .
Критерий существования циклического
кода: достаточность
Доказательство 𝑔| 𝑥 𝑛 − 1 ⇒ ∃ц. к.
Пусть 𝑔 𝑥 ∣ 𝑥 𝑛 − 1 .
Положим
𝐶 ≔ 𝑓𝑔, где 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1
Очевидно, 𝐶 — циклический код.
Осталось доказать, что 𝑔 — порождающий многочлен кода 𝐶, то
есть что в 𝐶 любой ненулевой многочлен имеет степень > deg 𝑔,
либо равен const ⋅ 𝑔.
Критерий существования циклического
кода: достаточность
Рассмотрим произвольный многочлен 𝑔 ∈ 𝐶.
Имеем 𝑔 = 𝑓𝑔 для некоторого 𝔽 𝑥 𝑥 𝑛
− 1 .
Тогда в кольце 𝔽 𝑥 для тех же самых 𝑓 и 𝑔 и некоторого 𝑠
выполнено равенство
𝑔 = 𝑓 ⋅ 𝑔 + 𝑠 ⋅ 𝑥 𝑛
− 1
По условию, 𝑥 𝑛 − 1 = 𝑟 ⋅ 𝑔 для некоторого 𝑟 ∈ 𝔽 𝑥 ,
следовательно
𝑔 = 𝑓 ⋅ 𝑔 + 𝑠𝑟 ⋅ 𝑔 = 𝑓 + 𝑠𝑟 ⋅ 𝑔
Критерий существования циклического
кода: достаточность
Итак, в кольце 𝔽 𝑥 для некоторых 𝑓, 𝑟, 𝑠 имеем
𝑔 = 𝑓 + 𝑠𝑟 ⋅ 𝑔
Возможны случаи:
• 𝑓 + 𝑠𝑟 ≡ 0 — тогда 𝑔 ≡ 0
• 𝑓 + 𝑠𝑟 ≡ const ≠ 0 — тогда 𝑔 = const ⋅ 𝑔
• deg 𝑓 + 𝑠𝑟 ≥ 1 — тогда deg 𝑔 > deg 𝑔
Критерий существования циклического
кода: необходимость
Доказательство ∃ц. к. ⇒ 𝑔| 𝑥 𝑛 − 1
Пусть 𝐶 — циклический код в 𝔽 𝑥 𝑥 𝑛
− 1 с порождающим
многочленом 𝑔.
Поделим в кольце 𝔽 𝑥 с остатком 𝑥 𝑛
− 1 на 𝑔:
𝑥 𝑛
− 1 = 𝑓 ⋅ 𝑔 + 𝑟
где deg 𝑟 < deg 𝑔.
Тогда в кольце 𝔽 𝑥 𝑥 𝑛 − 1 имеем
𝑟 = −𝑓 ⋅ 𝑔 ∈ 𝐶
Отсюда 𝑟 ≡ 0, то есть 𝑔| 𝑥 𝑛 − 1 .
Размерность и порождающая матрица
циклического кода
Утверждение.
Пусть порождающий многочлен циклического кода
𝐶 ⊆ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 имеет вид
𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝛼−1 𝑥 𝛼−1 + 𝑥 𝛼
Тогда, если рассматривать 𝐶 как подпространство 𝔽 𝑞
𝑛, то dim 𝐶 =
𝑛 − 𝛼 и порождающая матрица кода имеет вид
𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … … 0
0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … 0
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮
0 … … 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1
Размерность и порождающая матрица
циклического кода
Доказательство:
Очевидно, что строки матрицы
𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … … 0
0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … 0
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮
0 … … 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1
линейно независимы и её ранг равен 𝑛 − 𝛼 .
Остаётся доказать равенство dim 𝐶 = 𝑛 − 𝛼.
Размерность и порождающая матрица
циклического кода
Для произвольного 𝑓 ∈ 𝔽 𝑞 𝑥 𝑥 𝑛
− 1 положим
𝐶𝑓 ≔ 𝑓 + ℎ ∣ ℎ ∈ 𝐶 .
Докажем, что если 𝑓1 ≠ 𝑓2 и deg 𝑓𝑖 < 𝛼, то
𝐶𝑓1
∩ 𝐶𝑓2
= ∅
Допустим, что 𝐶𝑓1
∩ 𝐶𝑓2
≠ ∅. Это означает, что 𝑓1 + ℎ1 = 𝑓2 + ℎ2
для некоторых ℎ1, ℎ2 ∈ 𝐶.
Тогда 𝑓1 − 𝑓2 = ℎ2 − ℎ1 ∈ 𝐶.
Но тогда из условия deg 𝑓1 − 𝑓2 < 𝛼 вытекает, что 𝑓1 − 𝑓2 ≡ 0 —
противоречие.
Размерность и порождающая матрица
циклического кода
Пусть
𝑓1, … , 𝑓 𝑞 𝛼 ∈ 𝔽 𝑞 𝑥 𝑥 𝑛
− 1
— всевозможные многочлены степени < 𝛼.
Так как 𝐶𝑓 𝑖
∩ 𝐶𝑓 𝑗
= ∅ при 𝑖 ≠ 𝑗, то
𝐶𝑓1
+ ⋯ + 𝐶𝑓 𝑞 𝛼 ≤ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 = 𝑞 𝑛
Очевидно, 𝐶𝑓 𝑖
= 𝐶 для каждого 𝑖, а значит
𝐶 ≤ 𝑞 𝑛
𝑞 𝛼 = 𝑞 𝑛−𝛼
Следовательно, dim 𝐶 ≤ 𝑛 − 𝛼.
Размерность и порождающая матрица
циклического кода
Доказанное утверждение:
Если код 𝐶 имеет порождающий многочлен
𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝛼−1 𝑥 𝛼−1
+ 𝑥 𝛼
то порождающая матрица кода 𝐶 имеет вид
𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … … 0
0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … 0
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮
0 … … 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1
Следствие.
Код 𝐶 можно представить в виде
𝑓 ⋅ 𝑔 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛
− 1 , deg 𝑓 < 𝑛 − 𝛼
Систематическое кодирование
циклических кодов
Утверждение.
У любого циклического кода существует порождающая матрица
канонического вида.
(Т.е. любой ц.к. допускает систематическое кодирование.)
Замечание.
Важно, что сам код допускает систематическое кодирование.
Не нужно переходить к эквивалентному коду.
Систематическое кодирование
циклических кодов
Доказательство:
Пусть 𝑔 — порождающий многочлен, deg 𝑔 = 𝛼.
Поделим многочлены 𝑥 𝛼
, 𝑥 𝛼+1
, … , 𝑥 𝑛−1
с остатком на 𝑔:
𝑥 𝛼 = ℎ0 ⋅ 𝑔 + 𝑟0
⋮
𝑥 𝑛−1
= ℎ 𝑛−𝛼−1 ⋅ 𝑔 + 𝑟𝑛−𝛼−1
Перепишем:
ℎ0 ⋅ 𝑔 = 𝑥 𝛼 − 𝑟0
⋮
ℎ 𝑛−𝛼−1 ⋅ 𝑔 = 𝑥 𝑛−1
− 𝑟𝑛−𝛼−1
Систематическое кодирование
циклических кодов
Имеем
ℎ0 ⋅ 𝑔 = 𝑥 𝛼 − 𝑟0
⋮
ℎ 𝑛−𝛼−1 ⋅ 𝑔 = 𝑥 𝑛−1 − 𝑟𝑛−𝛼−1
Каждый из многочленов ℎ𝑖 ⋅ 𝑔 принадлежит 𝐶 и имеет вид
𝑥 𝛼+𝑖
+ 𝑐𝑖,𝛼−1 𝑥 𝛼−1
+ 𝑐𝑖,𝛼−2 𝑥 𝛼−2
+ ⋯ + 𝑐𝑖,0
где 𝑐𝑖,𝑗 — некоторые коэффициенты.
Систематическое кодирование
циклических кодов
Многочлены ℎ𝑖 ⋅ 𝑔 принадлежат 𝐶 и имеют вид
𝑥 𝛼+𝑖 + 𝑐𝑖,𝛼−1 𝑥 𝛼−1 + 𝑐𝑖,𝛼−2 𝑥 𝛼−2 + ⋯ + 𝑐𝑖,0.
Составим из их коэффициентов порождающую матрицу кода 𝐶,
она будет иметь вид
𝑐0,0 … 𝑐0,𝛼−1 1 0 … 0
𝑐1,0 … 𝑐1,𝛼−1 0 1 … 0
⋮ ⋮ ⋮ ⋱
𝑐 𝑛−𝛼−1,0 … 𝑐 𝑛−𝛼−1,𝛼−1 0 0 … 1
Систематическое кодирование
циклических кодов
Итак, у кода 𝐶 есть порождающая матрица вида
𝑐0,0 … 𝑐0,𝛼−1 1 0 … 0
𝑐1,0 … 𝑐1,𝛼−1 0 1 … 0
⋮ ⋮ ⋮ ⋱
𝑐 𝑛−𝛼−1,0 … 𝑐 𝑛−𝛼−1,𝛼−1 0 0 … 1
Т.к. код 𝐶 циклический, то можно циклически переставить столбцы
в этой матрице, и получится искомая матрица вида 𝐼| 𝐺 ,
где 𝐼 — единичная матрица порядка 𝑛 − 𝛼 .
Проверочный многочлен
Пусть 𝑔 — порождающий многочлен кода 𝐶.
Так как 𝑔| 𝑥 𝑛 − 1 , то в кольце 𝔽 𝑥 имеем
𝑥 𝑛 − 1 = 𝑔 ⋅ ℎ
для некоторого ℎ ∈ 𝔽 𝑥 .
Многочлен ℎ 𝑥 называется проверочным многочленом кода 𝐶.
Для любого 𝑓 ∈ 𝐶 в кольце 𝔽 𝑥 𝑥 𝑛 − 1 выполнено равенство
𝑓 ⋅ ℎ = 0.
Проверочная матрица
циклического кода
Утверждение.
Пусть проверочный многочлен циклического кода
𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛 − 1 имеет вид
ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−𝛼 𝑥 𝑛−𝛼
Тогда, если рассматривать 𝐶 как обычный линейный код, то его
проверочная матрица будет иметь вид
ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … … 0
0 ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … 0
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮
0 … … 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0
Проверочная матрица
циклического кода
Доказательство:
Пусть проверочный многочлен циклического кода
𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛 − 1 имеет вид
ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−𝛼 𝑥 𝑛−𝛼
Для любого многочлена
𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1
∈ 𝐶
в кольце 𝔽 𝑥 𝑥 𝑛 − 1 выполнено равенство
𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1
⋅ ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−𝛼 𝑥 𝑛−𝛼
= 0
Проверочная матрица
циклического кода
Для удобства формально введём ℎ 𝑛−𝛼+1 = ℎ 𝑛−𝛼+2 = ⋯ = 0.
В кольце 𝔽 𝑥 𝑥 𝑛
− 1 выполнено равенство
0 = 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1
⋅ ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−1 𝑥 𝑛−1
=
𝑚=0
2𝑛−2
𝑥 𝑚
𝑖=0
𝑚
𝑐𝑖ℎ 𝑚−𝑖
В 𝔽 𝑥 𝑥 𝑛 − 1 выполнено 𝑥 𝑛+𝑡 = 𝑥 𝑡, отсюда
𝑚=0
2𝑛−2
𝑥 𝑚
𝑖=0
𝑚
𝑐𝑖ℎ 𝑚−𝑖 =
𝑚=0
𝑛−1
𝑥 𝑚
𝑖=0
𝑚
𝑐𝑖ℎ 𝑚−𝑖 +
𝑚=0
𝑛−1
𝑥 𝑚
𝑖=𝑚+1
𝑛−1
𝑐𝑖ℎ 𝑚+𝑛−𝑖
Проверочная матрица
циклического кода
В кольце 𝔽 𝑥 𝑥 𝑛 − 1 выполнены равенства
0 =
𝑚=0
𝑛−1
𝑥 𝑚
𝑖=0
𝑚
𝑐𝑖ℎ 𝑚−𝑖 +
𝑚=0
𝑛−1
𝑥 𝑚
𝑖=𝑚+1
𝑛−1
𝑐𝑖ℎ 𝑚+𝑛−𝑖
Отсюда при каждом 𝑚 ∈ 0, … , 𝑛 − 1 должно быть выполнено
𝑖=0
𝑚
𝑐𝑖ℎ 𝑚−𝑖 +
𝑖=𝑚+1
𝑛−1
𝑐𝑖ℎ 𝑚+𝑛−𝑖 = 0
Проверочная матрица
циклического кода
При каждом 𝑚 ∈ 0, … , 𝑛 − 1 должно быть выполнено
𝑖=0
𝑚
𝑐𝑖ℎ 𝑚−𝑖 +
𝑖=𝑚+1
𝑛−1
𝑐𝑖ℎ 𝑚+𝑛−𝑖 =
𝑖=0
𝑛−1
𝑐𝑖ℎ 𝑚−𝑖 mod 𝑛 = 0
При 𝑚 ∈ 𝑛 − 𝛼, … , 𝑛 − 1 уравнения
𝑖=0
𝑛−1
𝑐𝑖ℎ 𝑚−𝑖 mod 𝑛 = 0
как раз и задаются матрицей
ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … … 0
0 ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … 0
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮
0 … … 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0
Проверочная матрица
циклического кода
Доказали, что кодовые слова удовлетворяют системе, задаваемой
матрицей
ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … … 0
0 ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … 0
⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮
0 … … 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0
То, что эта матрица проверочная (т.е. никакие «лишние» слова не
удовлетворяют системе), следует из того, что её ранг равен 𝛼,
а размерность кода равна 𝑛 − 𝛼 .
Лемма Вандермонда (A.—T. Vandermonde)
Имеет место формула Вандермонда:
1 1 ⋯ 1
𝜆1 𝜆2 ⋯ 𝜆 𝑟
⋮ ⋮ ⋮ ⋮
𝜆1
𝑟−1
𝜆2
𝑟−1
⋯ 𝜆 𝑟
𝑟−1
=
1≤𝑖<𝑗≤𝑟
𝜆𝑗 − 𝜆𝑖
Из неё следует, что матрица невырождена при 𝜆𝑗 ≠ 𝜆𝑖.
Доказательство индукцией по 𝑟.
База: 𝑟 = 1. Очевидно:
1 1
𝜆1 𝜆2
= 𝜆2 − 𝜆1.
Лемма Вандермонда
Индуктивный переход:
1 1 ⋯ 1
𝜆1 𝜆2 ⋯ 𝜆 𝑟
⋮ ⋮ ⋯ ⋮
𝜆1
𝑟−1
𝜆2
𝑟−1
⋯ 𝜆 𝑟
𝑟−1
=
1 0 ⋯ 0
𝜆1 𝜆2 − 𝜆1 ⋯ 𝜆 𝑟 − 𝜆1
⋮ ⋮ ⋯ ⋮
𝜆1
𝑟−1
𝜆2
𝑟−1
− 𝜆1
𝑟−1
⋯ 𝜆 𝑟
𝑟−1
− 𝜆1
𝑟−1
=
=
𝜆2 − 𝜆1 ⋯ 𝜆 𝑟 − 𝜆1
𝜆2
2
− 𝜆1
2
⋯ 𝜆 𝑟
2
− 𝜆1
2
⋮ ⋯ ⋮
𝜆2
𝑟−2
− 𝜆1
𝑟−2
⋯ 𝜆 𝑟
𝑟−2 − 𝜆1
𝑟−2
𝜆2
𝑟−1
− 𝜆1
𝑟−1
⋯ 𝜆 𝑟
𝑟−1
− 𝜆1
𝑟−1
=
𝜆2 − 𝜆1 ⋯ 𝜆 𝑟 − 𝜆1
𝜆2
2
− 𝜆1 𝜆2 ⋯ 𝜆 𝑟
2
− 𝜆1 𝜆 𝑟
⋮ ⋯ ⋮
𝜆2
𝑟−2
− 𝜆1 𝜆2
𝑟−3
⋯ 𝜆 𝑟
𝑟−2 − 𝜆1 𝜆 𝑟
𝑟−3
𝜆2
𝑟−1
− 𝜆1 𝜆2
𝑟−2
⋯ 𝜆 𝑟
𝑟−1
− 𝜆1 𝜆 𝑟
𝑟−2
=
=
𝑖=2
𝑟
𝜆𝑖 − 𝜆1 ⋅ det
1 1 ⋯ 1
𝜆2 𝜆3 ⋯ 𝜆 𝑟
⋮ ⋮ ⋯ ⋮
𝜆2
𝑟−2
𝜆3
𝑟−2
⋯ 𝜆 𝑟
𝑟−2
=
1≤𝑖<𝑗≤𝑟
𝜆𝑗 − 𝜆𝑖
Примитивный элемент
Рассмотрим поле 𝔽 𝑞, где 𝑞 = 𝑝 𝑚
, 𝑝 простое.
Известно, что множество 𝔽 𝑞 ∖ 0 образует циклическую группу по
умножению.
Каждый образующий элемент этой группы (порядок которого
равен 𝑞 − 1 ) называется примитивным элементом поля.
Иными словами, примитивный элемент — это такой 𝜆 ∈ 𝔽 𝑞, что
1, 𝜆, 𝜆2
, … , 𝜆 𝑞−2
= 𝔽 𝑞 ∖ 0 .
Граница Боуза—Чоудхури—Хоквингема
Теорема. (A.Hocquenghem’1959,
R.C. Bose and D.K. Ray-Chaudhuri’1960)
Пусть 𝜆 — примитивный элемент 𝔽 𝑞, и 𝛿 ≤ 𝑞.
Пусть порождающий многочлен 𝑔 кода 𝐶 ⊆ 𝔽 𝑞
𝑛
таков, что в 𝔽 𝑞
среди его корней есть числа
𝜆 𝑏, 𝜆 𝑏+1, … , 𝜆 𝑏+𝛿−2
Тогда 𝑑 𝐶 ≥ 𝛿.
Граница Боуза—Чоудхури—Хоквингема
Доказательство:
Рассмотрим произвольный 𝑓 𝑥 ∈ 𝐶.
Найдётся многочлен 𝑠 𝑥 ∈ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 , такой, что
deg 𝑠 < 𝑛 − deg 𝑔 и в кольце 𝔽 𝑞 𝑥 𝑥 𝑛
− 1 выполнено равенство
𝑓 𝑥 = 𝑠 𝑥 ⋅ 𝑔 𝑥
Так как deg 𝑠 + deg 𝑔 < 𝑛, то это равенство выполнено и в кольце
𝔽 𝑞 𝑥 .
Граница Боуза—Чоудхури—Хоквингема
В кольце 𝔽 𝑞 𝑥 справедливо равенство
𝑓 𝑥 = 𝑠 𝑥 ⋅ 𝑔 𝑥
Пусть 𝜆 𝑏, … , 𝜆 𝑏+𝛿−2 — различные корни 𝑔 𝑥 .
Они же будут корнями 𝑓.
Пусть 𝑓 = 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1.
Вектор 𝑐0, … , 𝑐 𝑛−1 удовлетворяет системе линейных уравнений с матрицей
1 𝜆 𝑏
⋯ 𝜆 𝑏 𝑛−1
1 𝜆 𝑏+1
⋯ 𝜆 𝑏+1 𝑛−1
⋮ ⋮ ⋮ ⋮
1 𝜆 𝑏+𝛿−2
⋯ 𝜆 𝑏+𝛿−2 𝑛−1
Граница Боуза—Чоудхури—Хоквингема
Любой кодовый вектор удовлетворяет системе с матрицей
𝐻 =
1 𝜆 𝑏 ⋯ 𝜆 𝑏 𝑛−1
1 𝜆 𝑏+1 ⋯ 𝜆 𝑏+1 𝑛−1
⋮ ⋮ ⋮ ⋮
1 𝜆 𝑏+𝛿−2 ⋯ 𝜆 𝑏+𝛿−2 𝑛−1
(Это не обязательно проверочная матрица кода, но её можно
дополнить до проверочной.)
Достаточно доказать, что любые 𝛿 − 1 столбцов матрицы 𝐻
линейно независимы.
Граница Боуза—Чоудхури—Хоквингема
𝐻 =
1 𝜆 𝑏
⋯ 𝜆 𝑏 𝑛−1
1 𝜆 𝑏+1 ⋯ 𝜆 𝑏+1 𝑛−1
⋮ ⋮ ⋮ ⋮
1 𝜆 𝑏+𝛿−2 ⋯ 𝜆 𝑏+𝛿−2 𝑛−1
Выберем в 𝐻 произвольные столбцы 𝑖1, … , 𝑖 𝛿−1. Получим матрицу
𝜆 𝑏⋅𝑖1 𝜆 𝑏⋅𝑖2 ⋯ 𝜆 𝑏⋅𝑖 𝛿−1
𝜆 𝑏+1 ⋅𝑖1 𝜆 𝑏+1 ⋅𝑖2 ⋯ 𝜆 𝑏+1 ⋅𝑖 𝛿−1
⋮ ⋮ ⋮ ⋮
𝜆 𝑏+𝛿−2 ⋅𝑖1 𝜆 𝑏+𝛿−2 ⋅𝑖2 ⋯ 𝜆 𝑏+𝛿−2 ⋅𝑖 𝛿−1
Граница Боуза—Чоудхури—Хоквингема
Докажем, что матрица 𝐻𝑖1,…,𝑖 𝛿−1
невырождена. Имеем
𝜆 𝑏⋅𝑖1 𝜆 𝑏⋅𝑖2 ⋯ 𝜆 𝑏⋅𝑖 𝛿−1
𝜆 𝑏+1 ⋅𝑖1 𝜆 𝑏+1 ⋅𝑖2 ⋯ 𝜆 𝑏+1 ⋅𝑖 𝛿−1
⋮ ⋮ ⋮ ⋮
𝜆 𝑏+𝛿−2 ⋅𝑖1 𝜆 𝑏+𝛿−2 ⋅𝑖2 ⋯ 𝜆 𝑏+𝛿−2 ⋅𝑖 𝛿−1
=
= 𝜆 𝑏⋅ 𝑖1+⋯+𝑖 𝛿−1
1 1 ⋯ 1
𝜆𝑖1 𝜆𝑖2 ⋯ 𝜆𝑖 𝛿−1
⋮ ⋮ ⋮ ⋮
𝜆 𝛿−2 ⋅𝑖1 𝜆 𝑏−2 ⋅𝑖2 ⋯ 𝜆 𝛿−2 ⋅𝑖 𝛿−1
По лемме Вандермонда, определитель последней матрицы не равен
нулю.

Циклические коды. Граница БЧХ

  • 1.
    Теория кодирования МФТИ, осень2013 Александр Дайняк www.dainiak.com
  • 2.
    Циклический код Циклический код— это линейный код, такой, что для любого кодового слова 𝑎0, 𝑎1 … , 𝑎 𝑛−1 слово 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 также является кодовым. Т.е. циклический сдвиг кодового слова также является кодовым словом.
  • 3.
    Циклический код Например, 7,4,3-код Хемминга эквивалентен циклическому коду с проверочной матрицей 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1
  • 4.
    Алгебраическое определение циклических кодов Сопоставимслову 𝑎0, … , 𝑎 𝑛−1 ∈ 𝔽 𝑞 𝑛 многочлен 𝑓 ≔ 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥2 + ⋯ + 𝑎 𝑛−1 𝑥 𝑛−1 ∈ 𝔽 𝑞 𝑥 Тогда слову 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 отвечает многочлен 𝑎 𝑛−1 + 𝑎0 𝑥 + 𝑎1 𝑥2 + ⋯ + 𝑎 𝑛−2 𝑥 𝑛−1 = 𝑥 ⋅ 𝑓 − 𝑎 𝑛−1 𝑥 𝑛 − 1
  • 5.
    Алгебраическое определение циклических кодов Перейдёмв кольцо 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 . Слову 𝑎0, … , 𝑎 𝑛−1 отвечает элемент кольца 𝑓 = 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥2 + ⋯ + 𝑎 𝑛−1 𝑥 𝑛−1, а слову 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 отвечает элемент 𝑥 ⋅ 𝑓 − 𝑎 𝑛−1 𝑥 𝑛 − 1 = в кольце 𝑥 ⋅ 𝑓 Вывод: циклический сдвиг слова эквивалентен умножению соответствующего многочлена на 𝑥 в кольце 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 .
  • 6.
    Алгебраическое определение циклических кодов Циклическийкод — это подмножество 𝐶 кольца 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 , такое, что • 𝑓1, 𝑓2 ∈ 𝐶 ⇒ ∀𝛼, 𝛽 ∈ 𝔽 𝑞 𝛼𝑓1 + 𝛽𝑓2 ∈ 𝐶 • 𝑓 ∈ 𝐶 ⇒ 𝑥 ⋅ 𝑓 ∈ 𝐶
  • 7.
    Циклический код —идеал кольца Утверждение. Для любого ц.к. 𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛 − 1 выполнено 𝑓 ∈ 𝐶 ⇒ ∀𝑔 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 𝑓 ⋅ 𝑔 ∈ 𝐶 Доказательство: утверждение непосредственно следует из алгебраического определения ц.к.
  • 8.
    Циклический код —идеал кольца Утверждение. Любой циклический код 𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛 − 1 может быть представлен в виде 𝑓 ⋅ 𝑔 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 для некоторого фиксированного многочлена 𝑔.
  • 9.
    Циклический код —идеал кольца Доказательство: Пусть 𝐶 — ц.к. Рассмотрим 𝑔0 ∈ 𝐶, такой, что deg 𝑔0 = min 𝑔∈𝐶 𝑔≢0 deg 𝑔 Тогда любой многочлен 𝑓 ∈ 𝐶 кратен 𝑔0. Действительно, поделим 𝑓 на 𝑔0 c остатком: 𝑓 𝑥 = 𝑔0 𝑥 ⋅ 𝑓 𝑥 + 𝑟 𝑥 где deg 𝑟 < deg 𝑔0. Но 𝑟 = 𝑓 − 𝑓 ⋅ 𝑔0 ∈ 𝐶, а значит 𝑟 ≡ 0.
  • 10.
    Единственность порождающего многочлена Нормированный многочлен— это многочлен с коэффициентом 1 при мономе старшей степени. Утверждение. В любом ц.к. ненулевой нормированный многочлен минимальной степени единственен. Этот многочлен называется порождающим многочленом циклического кода.
  • 11.
    Единственность порождающего многочлена Доказательство: Допустим, чтов коде 𝐶 нашлись два разных нормногочлена минимальной степени: 𝑔1 𝑥 = 𝑥 𝑙 + ⋯ 𝑔2 𝑥 = 𝑥 𝑙 + ⋯ Но тогда 𝑔1 − 𝑔2 ∈ 𝐶 и deg 𝑔1 − 𝑔2 < 𝑙 — это противоречит минимальности 𝑙.
  • 12.
    Критерий существования циклического кода Теорема. Нормногочлен𝑔 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 может быть порождающим многочленом циклического кода т. и т.т., когда он является делителем многочлена 𝑥 𝑛 − 1 в кольце 𝔽 𝑥 .
  • 13.
    Критерий существования циклического кода:достаточность Доказательство 𝑔| 𝑥 𝑛 − 1 ⇒ ∃ц. к. Пусть 𝑔 𝑥 ∣ 𝑥 𝑛 − 1 . Положим 𝐶 ≔ 𝑓𝑔, где 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 Очевидно, 𝐶 — циклический код. Осталось доказать, что 𝑔 — порождающий многочлен кода 𝐶, то есть что в 𝐶 любой ненулевой многочлен имеет степень > deg 𝑔, либо равен const ⋅ 𝑔.
  • 14.
    Критерий существования циклического кода:достаточность Рассмотрим произвольный многочлен 𝑔 ∈ 𝐶. Имеем 𝑔 = 𝑓𝑔 для некоторого 𝔽 𝑥 𝑥 𝑛 − 1 . Тогда в кольце 𝔽 𝑥 для тех же самых 𝑓 и 𝑔 и некоторого 𝑠 выполнено равенство 𝑔 = 𝑓 ⋅ 𝑔 + 𝑠 ⋅ 𝑥 𝑛 − 1 По условию, 𝑥 𝑛 − 1 = 𝑟 ⋅ 𝑔 для некоторого 𝑟 ∈ 𝔽 𝑥 , следовательно 𝑔 = 𝑓 ⋅ 𝑔 + 𝑠𝑟 ⋅ 𝑔 = 𝑓 + 𝑠𝑟 ⋅ 𝑔
  • 15.
    Критерий существования циклического кода:достаточность Итак, в кольце 𝔽 𝑥 для некоторых 𝑓, 𝑟, 𝑠 имеем 𝑔 = 𝑓 + 𝑠𝑟 ⋅ 𝑔 Возможны случаи: • 𝑓 + 𝑠𝑟 ≡ 0 — тогда 𝑔 ≡ 0 • 𝑓 + 𝑠𝑟 ≡ const ≠ 0 — тогда 𝑔 = const ⋅ 𝑔 • deg 𝑓 + 𝑠𝑟 ≥ 1 — тогда deg 𝑔 > deg 𝑔
  • 16.
    Критерий существования циклического кода:необходимость Доказательство ∃ц. к. ⇒ 𝑔| 𝑥 𝑛 − 1 Пусть 𝐶 — циклический код в 𝔽 𝑥 𝑥 𝑛 − 1 с порождающим многочленом 𝑔. Поделим в кольце 𝔽 𝑥 с остатком 𝑥 𝑛 − 1 на 𝑔: 𝑥 𝑛 − 1 = 𝑓 ⋅ 𝑔 + 𝑟 где deg 𝑟 < deg 𝑔. Тогда в кольце 𝔽 𝑥 𝑥 𝑛 − 1 имеем 𝑟 = −𝑓 ⋅ 𝑔 ∈ 𝐶 Отсюда 𝑟 ≡ 0, то есть 𝑔| 𝑥 𝑛 − 1 .
  • 17.
    Размерность и порождающаяматрица циклического кода Утверждение. Пусть порождающий многочлен циклического кода 𝐶 ⊆ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 имеет вид 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝛼−1 𝑥 𝛼−1 + 𝑥 𝛼 Тогда, если рассматривать 𝐶 как подпространство 𝔽 𝑞 𝑛, то dim 𝐶 = 𝑛 − 𝛼 и порождающая матрица кода имеет вид 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … … 0 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … 0 ⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮ 0 … … 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1
  • 18.
    Размерность и порождающаяматрица циклического кода Доказательство: Очевидно, что строки матрицы 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … … 0 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … 0 ⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮ 0 … … 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 линейно независимы и её ранг равен 𝑛 − 𝛼 . Остаётся доказать равенство dim 𝐶 = 𝑛 − 𝛼.
  • 19.
    Размерность и порождающаяматрица циклического кода Для произвольного 𝑓 ∈ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 положим 𝐶𝑓 ≔ 𝑓 + ℎ ∣ ℎ ∈ 𝐶 . Докажем, что если 𝑓1 ≠ 𝑓2 и deg 𝑓𝑖 < 𝛼, то 𝐶𝑓1 ∩ 𝐶𝑓2 = ∅ Допустим, что 𝐶𝑓1 ∩ 𝐶𝑓2 ≠ ∅. Это означает, что 𝑓1 + ℎ1 = 𝑓2 + ℎ2 для некоторых ℎ1, ℎ2 ∈ 𝐶. Тогда 𝑓1 − 𝑓2 = ℎ2 − ℎ1 ∈ 𝐶. Но тогда из условия deg 𝑓1 − 𝑓2 < 𝛼 вытекает, что 𝑓1 − 𝑓2 ≡ 0 — противоречие.
  • 20.
    Размерность и порождающаяматрица циклического кода Пусть 𝑓1, … , 𝑓 𝑞 𝛼 ∈ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 — всевозможные многочлены степени < 𝛼. Так как 𝐶𝑓 𝑖 ∩ 𝐶𝑓 𝑗 = ∅ при 𝑖 ≠ 𝑗, то 𝐶𝑓1 + ⋯ + 𝐶𝑓 𝑞 𝛼 ≤ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 = 𝑞 𝑛 Очевидно, 𝐶𝑓 𝑖 = 𝐶 для каждого 𝑖, а значит 𝐶 ≤ 𝑞 𝑛 𝑞 𝛼 = 𝑞 𝑛−𝛼 Следовательно, dim 𝐶 ≤ 𝑛 − 𝛼.
  • 21.
    Размерность и порождающаяматрица циклического кода Доказанное утверждение: Если код 𝐶 имеет порождающий многочлен 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝛼−1 𝑥 𝛼−1 + 𝑥 𝛼 то порождающая матрица кода 𝐶 имеет вид 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … … 0 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 0 … 0 ⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮ 0 … … 0 𝑐0 𝑐1 … 𝑐 𝛼−1 1 Следствие. Код 𝐶 можно представить в виде 𝑓 ⋅ 𝑔 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 , deg 𝑓 < 𝑛 − 𝛼
  • 22.
    Систематическое кодирование циклических кодов Утверждение. Улюбого циклического кода существует порождающая матрица канонического вида. (Т.е. любой ц.к. допускает систематическое кодирование.) Замечание. Важно, что сам код допускает систематическое кодирование. Не нужно переходить к эквивалентному коду.
  • 23.
    Систематическое кодирование циклических кодов Доказательство: Пусть𝑔 — порождающий многочлен, deg 𝑔 = 𝛼. Поделим многочлены 𝑥 𝛼 , 𝑥 𝛼+1 , … , 𝑥 𝑛−1 с остатком на 𝑔: 𝑥 𝛼 = ℎ0 ⋅ 𝑔 + 𝑟0 ⋮ 𝑥 𝑛−1 = ℎ 𝑛−𝛼−1 ⋅ 𝑔 + 𝑟𝑛−𝛼−1 Перепишем: ℎ0 ⋅ 𝑔 = 𝑥 𝛼 − 𝑟0 ⋮ ℎ 𝑛−𝛼−1 ⋅ 𝑔 = 𝑥 𝑛−1 − 𝑟𝑛−𝛼−1
  • 24.
    Систематическое кодирование циклических кодов Имеем ℎ0⋅ 𝑔 = 𝑥 𝛼 − 𝑟0 ⋮ ℎ 𝑛−𝛼−1 ⋅ 𝑔 = 𝑥 𝑛−1 − 𝑟𝑛−𝛼−1 Каждый из многочленов ℎ𝑖 ⋅ 𝑔 принадлежит 𝐶 и имеет вид 𝑥 𝛼+𝑖 + 𝑐𝑖,𝛼−1 𝑥 𝛼−1 + 𝑐𝑖,𝛼−2 𝑥 𝛼−2 + ⋯ + 𝑐𝑖,0 где 𝑐𝑖,𝑗 — некоторые коэффициенты.
  • 25.
    Систематическое кодирование циклических кодов Многочленыℎ𝑖 ⋅ 𝑔 принадлежат 𝐶 и имеют вид 𝑥 𝛼+𝑖 + 𝑐𝑖,𝛼−1 𝑥 𝛼−1 + 𝑐𝑖,𝛼−2 𝑥 𝛼−2 + ⋯ + 𝑐𝑖,0. Составим из их коэффициентов порождающую матрицу кода 𝐶, она будет иметь вид 𝑐0,0 … 𝑐0,𝛼−1 1 0 … 0 𝑐1,0 … 𝑐1,𝛼−1 0 1 … 0 ⋮ ⋮ ⋮ ⋱ 𝑐 𝑛−𝛼−1,0 … 𝑐 𝑛−𝛼−1,𝛼−1 0 0 … 1
  • 26.
    Систематическое кодирование циклических кодов Итак,у кода 𝐶 есть порождающая матрица вида 𝑐0,0 … 𝑐0,𝛼−1 1 0 … 0 𝑐1,0 … 𝑐1,𝛼−1 0 1 … 0 ⋮ ⋮ ⋮ ⋱ 𝑐 𝑛−𝛼−1,0 … 𝑐 𝑛−𝛼−1,𝛼−1 0 0 … 1 Т.к. код 𝐶 циклический, то можно циклически переставить столбцы в этой матрице, и получится искомая матрица вида 𝐼| 𝐺 , где 𝐼 — единичная матрица порядка 𝑛 − 𝛼 .
  • 27.
    Проверочный многочлен Пусть 𝑔— порождающий многочлен кода 𝐶. Так как 𝑔| 𝑥 𝑛 − 1 , то в кольце 𝔽 𝑥 имеем 𝑥 𝑛 − 1 = 𝑔 ⋅ ℎ для некоторого ℎ ∈ 𝔽 𝑥 . Многочлен ℎ 𝑥 называется проверочным многочленом кода 𝐶. Для любого 𝑓 ∈ 𝐶 в кольце 𝔽 𝑥 𝑥 𝑛 − 1 выполнено равенство 𝑓 ⋅ ℎ = 0.
  • 28.
    Проверочная матрица циклического кода Утверждение. Пустьпроверочный многочлен циклического кода 𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛 − 1 имеет вид ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−𝛼 𝑥 𝑛−𝛼 Тогда, если рассматривать 𝐶 как обычный линейный код, то его проверочная матрица будет иметь вид ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … … 0 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … 0 ⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮ 0 … … 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0
  • 29.
    Проверочная матрица циклического кода Доказательство: Пустьпроверочный многочлен циклического кода 𝐶 ⊆ 𝔽 𝑥 𝑥 𝑛 − 1 имеет вид ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−𝛼 𝑥 𝑛−𝛼 Для любого многочлена 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1 ∈ 𝐶 в кольце 𝔽 𝑥 𝑥 𝑛 − 1 выполнено равенство 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1 ⋅ ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−𝛼 𝑥 𝑛−𝛼 = 0
  • 30.
    Проверочная матрица циклического кода Дляудобства формально введём ℎ 𝑛−𝛼+1 = ℎ 𝑛−𝛼+2 = ⋯ = 0. В кольце 𝔽 𝑥 𝑥 𝑛 − 1 выполнено равенство 0 = 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1 ⋅ ℎ0 + ℎ1 𝑥 + ⋯ + ℎ 𝑛−1 𝑥 𝑛−1 = 𝑚=0 2𝑛−2 𝑥 𝑚 𝑖=0 𝑚 𝑐𝑖ℎ 𝑚−𝑖 В 𝔽 𝑥 𝑥 𝑛 − 1 выполнено 𝑥 𝑛+𝑡 = 𝑥 𝑡, отсюда 𝑚=0 2𝑛−2 𝑥 𝑚 𝑖=0 𝑚 𝑐𝑖ℎ 𝑚−𝑖 = 𝑚=0 𝑛−1 𝑥 𝑚 𝑖=0 𝑚 𝑐𝑖ℎ 𝑚−𝑖 + 𝑚=0 𝑛−1 𝑥 𝑚 𝑖=𝑚+1 𝑛−1 𝑐𝑖ℎ 𝑚+𝑛−𝑖
  • 31.
    Проверочная матрица циклического кода Вкольце 𝔽 𝑥 𝑥 𝑛 − 1 выполнены равенства 0 = 𝑚=0 𝑛−1 𝑥 𝑚 𝑖=0 𝑚 𝑐𝑖ℎ 𝑚−𝑖 + 𝑚=0 𝑛−1 𝑥 𝑚 𝑖=𝑚+1 𝑛−1 𝑐𝑖ℎ 𝑚+𝑛−𝑖 Отсюда при каждом 𝑚 ∈ 0, … , 𝑛 − 1 должно быть выполнено 𝑖=0 𝑚 𝑐𝑖ℎ 𝑚−𝑖 + 𝑖=𝑚+1 𝑛−1 𝑐𝑖ℎ 𝑚+𝑛−𝑖 = 0
  • 32.
    Проверочная матрица циклического кода Прикаждом 𝑚 ∈ 0, … , 𝑛 − 1 должно быть выполнено 𝑖=0 𝑚 𝑐𝑖ℎ 𝑚−𝑖 + 𝑖=𝑚+1 𝑛−1 𝑐𝑖ℎ 𝑚+𝑛−𝑖 = 𝑖=0 𝑛−1 𝑐𝑖ℎ 𝑚−𝑖 mod 𝑛 = 0 При 𝑚 ∈ 𝑛 − 𝛼, … , 𝑛 − 1 уравнения 𝑖=0 𝑛−1 𝑐𝑖ℎ 𝑚−𝑖 mod 𝑛 = 0 как раз и задаются матрицей ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … … 0 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … 0 ⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮ 0 … … 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0
  • 33.
    Проверочная матрица циклического кода Доказали,что кодовые слова удовлетворяют системе, задаваемой матрицей ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … … 0 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0 0 … 0 ⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋮ 0 … … 0 ℎ 𝑛−𝛼 … ℎ1 ℎ0 То, что эта матрица проверочная (т.е. никакие «лишние» слова не удовлетворяют системе), следует из того, что её ранг равен 𝛼, а размерность кода равна 𝑛 − 𝛼 .
  • 34.
    Лемма Вандермонда (A.—T.Vandermonde) Имеет место формула Вандермонда: 1 1 ⋯ 1 𝜆1 𝜆2 ⋯ 𝜆 𝑟 ⋮ ⋮ ⋮ ⋮ 𝜆1 𝑟−1 𝜆2 𝑟−1 ⋯ 𝜆 𝑟 𝑟−1 = 1≤𝑖<𝑗≤𝑟 𝜆𝑗 − 𝜆𝑖 Из неё следует, что матрица невырождена при 𝜆𝑗 ≠ 𝜆𝑖. Доказательство индукцией по 𝑟. База: 𝑟 = 1. Очевидно: 1 1 𝜆1 𝜆2 = 𝜆2 − 𝜆1.
  • 35.
    Лемма Вандермонда Индуктивный переход: 11 ⋯ 1 𝜆1 𝜆2 ⋯ 𝜆 𝑟 ⋮ ⋮ ⋯ ⋮ 𝜆1 𝑟−1 𝜆2 𝑟−1 ⋯ 𝜆 𝑟 𝑟−1 = 1 0 ⋯ 0 𝜆1 𝜆2 − 𝜆1 ⋯ 𝜆 𝑟 − 𝜆1 ⋮ ⋮ ⋯ ⋮ 𝜆1 𝑟−1 𝜆2 𝑟−1 − 𝜆1 𝑟−1 ⋯ 𝜆 𝑟 𝑟−1 − 𝜆1 𝑟−1 = = 𝜆2 − 𝜆1 ⋯ 𝜆 𝑟 − 𝜆1 𝜆2 2 − 𝜆1 2 ⋯ 𝜆 𝑟 2 − 𝜆1 2 ⋮ ⋯ ⋮ 𝜆2 𝑟−2 − 𝜆1 𝑟−2 ⋯ 𝜆 𝑟 𝑟−2 − 𝜆1 𝑟−2 𝜆2 𝑟−1 − 𝜆1 𝑟−1 ⋯ 𝜆 𝑟 𝑟−1 − 𝜆1 𝑟−1 = 𝜆2 − 𝜆1 ⋯ 𝜆 𝑟 − 𝜆1 𝜆2 2 − 𝜆1 𝜆2 ⋯ 𝜆 𝑟 2 − 𝜆1 𝜆 𝑟 ⋮ ⋯ ⋮ 𝜆2 𝑟−2 − 𝜆1 𝜆2 𝑟−3 ⋯ 𝜆 𝑟 𝑟−2 − 𝜆1 𝜆 𝑟 𝑟−3 𝜆2 𝑟−1 − 𝜆1 𝜆2 𝑟−2 ⋯ 𝜆 𝑟 𝑟−1 − 𝜆1 𝜆 𝑟 𝑟−2 = = 𝑖=2 𝑟 𝜆𝑖 − 𝜆1 ⋅ det 1 1 ⋯ 1 𝜆2 𝜆3 ⋯ 𝜆 𝑟 ⋮ ⋮ ⋯ ⋮ 𝜆2 𝑟−2 𝜆3 𝑟−2 ⋯ 𝜆 𝑟 𝑟−2 = 1≤𝑖<𝑗≤𝑟 𝜆𝑗 − 𝜆𝑖
  • 36.
    Примитивный элемент Рассмотрим поле𝔽 𝑞, где 𝑞 = 𝑝 𝑚 , 𝑝 простое. Известно, что множество 𝔽 𝑞 ∖ 0 образует циклическую группу по умножению. Каждый образующий элемент этой группы (порядок которого равен 𝑞 − 1 ) называется примитивным элементом поля. Иными словами, примитивный элемент — это такой 𝜆 ∈ 𝔽 𝑞, что 1, 𝜆, 𝜆2 , … , 𝜆 𝑞−2 = 𝔽 𝑞 ∖ 0 .
  • 37.
    Граница Боуза—Чоудхури—Хоквингема Теорема. (A.Hocquenghem’1959, R.C.Bose and D.K. Ray-Chaudhuri’1960) Пусть 𝜆 — примитивный элемент 𝔽 𝑞, и 𝛿 ≤ 𝑞. Пусть порождающий многочлен 𝑔 кода 𝐶 ⊆ 𝔽 𝑞 𝑛 таков, что в 𝔽 𝑞 среди его корней есть числа 𝜆 𝑏, 𝜆 𝑏+1, … , 𝜆 𝑏+𝛿−2 Тогда 𝑑 𝐶 ≥ 𝛿.
  • 38.
    Граница Боуза—Чоудхури—Хоквингема Доказательство: Рассмотрим произвольный𝑓 𝑥 ∈ 𝐶. Найдётся многочлен 𝑠 𝑥 ∈ 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 , такой, что deg 𝑠 < 𝑛 − deg 𝑔 и в кольце 𝔽 𝑞 𝑥 𝑥 𝑛 − 1 выполнено равенство 𝑓 𝑥 = 𝑠 𝑥 ⋅ 𝑔 𝑥 Так как deg 𝑠 + deg 𝑔 < 𝑛, то это равенство выполнено и в кольце 𝔽 𝑞 𝑥 .
  • 39.
    Граница Боуза—Чоудхури—Хоквингема В кольце𝔽 𝑞 𝑥 справедливо равенство 𝑓 𝑥 = 𝑠 𝑥 ⋅ 𝑔 𝑥 Пусть 𝜆 𝑏, … , 𝜆 𝑏+𝛿−2 — различные корни 𝑔 𝑥 . Они же будут корнями 𝑓. Пусть 𝑓 = 𝑐0 + 𝑐1 𝑥 + ⋯ + 𝑐 𝑛−1 𝑥 𝑛−1. Вектор 𝑐0, … , 𝑐 𝑛−1 удовлетворяет системе линейных уравнений с матрицей 1 𝜆 𝑏 ⋯ 𝜆 𝑏 𝑛−1 1 𝜆 𝑏+1 ⋯ 𝜆 𝑏+1 𝑛−1 ⋮ ⋮ ⋮ ⋮ 1 𝜆 𝑏+𝛿−2 ⋯ 𝜆 𝑏+𝛿−2 𝑛−1
  • 40.
    Граница Боуза—Чоудхури—Хоквингема Любой кодовыйвектор удовлетворяет системе с матрицей 𝐻 = 1 𝜆 𝑏 ⋯ 𝜆 𝑏 𝑛−1 1 𝜆 𝑏+1 ⋯ 𝜆 𝑏+1 𝑛−1 ⋮ ⋮ ⋮ ⋮ 1 𝜆 𝑏+𝛿−2 ⋯ 𝜆 𝑏+𝛿−2 𝑛−1 (Это не обязательно проверочная матрица кода, но её можно дополнить до проверочной.) Достаточно доказать, что любые 𝛿 − 1 столбцов матрицы 𝐻 линейно независимы.
  • 41.
    Граница Боуза—Чоудхури—Хоквингема 𝐻 = 1𝜆 𝑏 ⋯ 𝜆 𝑏 𝑛−1 1 𝜆 𝑏+1 ⋯ 𝜆 𝑏+1 𝑛−1 ⋮ ⋮ ⋮ ⋮ 1 𝜆 𝑏+𝛿−2 ⋯ 𝜆 𝑏+𝛿−2 𝑛−1 Выберем в 𝐻 произвольные столбцы 𝑖1, … , 𝑖 𝛿−1. Получим матрицу 𝜆 𝑏⋅𝑖1 𝜆 𝑏⋅𝑖2 ⋯ 𝜆 𝑏⋅𝑖 𝛿−1 𝜆 𝑏+1 ⋅𝑖1 𝜆 𝑏+1 ⋅𝑖2 ⋯ 𝜆 𝑏+1 ⋅𝑖 𝛿−1 ⋮ ⋮ ⋮ ⋮ 𝜆 𝑏+𝛿−2 ⋅𝑖1 𝜆 𝑏+𝛿−2 ⋅𝑖2 ⋯ 𝜆 𝑏+𝛿−2 ⋅𝑖 𝛿−1
  • 42.
    Граница Боуза—Чоудхури—Хоквингема Докажем, чтоматрица 𝐻𝑖1,…,𝑖 𝛿−1 невырождена. Имеем 𝜆 𝑏⋅𝑖1 𝜆 𝑏⋅𝑖2 ⋯ 𝜆 𝑏⋅𝑖 𝛿−1 𝜆 𝑏+1 ⋅𝑖1 𝜆 𝑏+1 ⋅𝑖2 ⋯ 𝜆 𝑏+1 ⋅𝑖 𝛿−1 ⋮ ⋮ ⋮ ⋮ 𝜆 𝑏+𝛿−2 ⋅𝑖1 𝜆 𝑏+𝛿−2 ⋅𝑖2 ⋯ 𝜆 𝑏+𝛿−2 ⋅𝑖 𝛿−1 = = 𝜆 𝑏⋅ 𝑖1+⋯+𝑖 𝛿−1 1 1 ⋯ 1 𝜆𝑖1 𝜆𝑖2 ⋯ 𝜆𝑖 𝛿−1 ⋮ ⋮ ⋮ ⋮ 𝜆 𝛿−2 ⋅𝑖1 𝜆 𝑏−2 ⋅𝑖2 ⋯ 𝜆 𝛿−2 ⋅𝑖 𝛿−1 По лемме Вандермонда, определитель последней матрицы не равен нулю.