Циклический несистематический (7, 4) код Хемминга
Процедура кодирования в полиномиальной интерпретации сводится к умножению многочлена-сообщения на подходящий неприводимый в поле GF (2) многочлен, называемый порождающим многочленом данного кода. Тогда полученный код будет иметь длину n = 7, число проверочных символов (степень порождающего полинома) r = 3, число информационных символов k = 4, минимальное расстояние d = 3. Лемма 1. Многочлен g (x… Читать ещё >
Циклический несистематический (7, 4) код Хемминга (реферат, курсовая, диплом, контрольная)
Рассмотрим частный вид линейных кодов — циклический код.
Линейный код называют циклическим, если для любого кодового слова [xn, x0, x1… xn-1] циклическая перестановка символов [x0 x1… xn-1 xn] также дает кодовое слово.
Циклический несистематический (7,4) код Хемминга — двоичный циклический код, позволяющий исправлять одну ошибку и находить две.
Процедура построения таких кодов гораздо более управляемая. Однако, нам потребуется перейти от векторного описания кодов к полиномиальному. Последовательность символов основного алфавита (биты в простейшем случае), составляющие сообщения и кодовые слова мы будем интерпретировать как коэффициенты полиномов. Например, считая, что коэффициенты записаны в порядке возрастания степени, сообщение [1010] запишем в виде многочлена 1 + x2. Кодирование сообщения в более «длинное» кодовое слово будет проводится умножением этого многочлена на другой, что дает в результате многочлен более высокой степени.
Введем необходимые операции в кольце Z2.
Деление. Деление в Z2 происходит, как и в обычной арифметике. Для примера рассмотрим:
(1 + x + x2 + x5) / (1 + x2).
x5 + x2 + x + 1.
x5 + x3 | x2 + 1 / x3 + x2 + x + 1.
x3 + x / x2 + 1.
x2 + 1 / 0.
Также необходимо отметить, что в кольце Z2 x + x = 0.
Замечательным свойством полиномиального представления кодов является возможность осуществить циклический сдвиг на одну позицию вправо простым умножением кодового многочлена степени n — 1 на многочлен «x» и нахождения остатка от деления на 1 + xn.
Процедура кодирования в полиномиальной интерпретации сводится к умножению многочлена-сообщения на подходящий неприводимый в поле GF (2) многочлен, называемый порождающим многочленом данного кода.
Умножение. Умножение в Z2 происходит, как и в обычной арифметике. Для примера рассмотрим:
(1 + x + x3) * (x2 + x3) = x2 + x4 + x5 + x6
Лемма 1. Многочлен g (x) является порождающим многочленом линейного циклического кода длины n тогда и только тогда, когда g (x) делит 1 + xn.
Из леммы 1 следует, что для получения порождающего многочлена g (x) нам необходимо разложить на неприводимые множители 1 + xn и выделить многочлен такой степени, который равен n — k. Длина кодового слова n и длина сообщения k связаны соотношением,.
k = n — deg (g (x)),.
где deg (g (x)) обозначает степень g (x).
В качестве делителя 1 + x7 выберем порождающий полином третьей степени: код хемминг программный логика.
g (x) = 1 + x + x3,.
тогда полученный код будет иметь длину n = 7, число проверочных символов (степень порождающего полинома) r = 3, число информационных символов k = 4, минимальное расстояние d = 3.