- •Теория информационных процессов и систем
- •Лекции читает канд.техн.наук, доцент Литвинов Владислав Леонидович
- •Циклические коды
- ••Наибольшая степень х в слагаемом с ненулевым коэффициентом называется степенью полинома. Таким образом,
- ••Следовательно, если в качестве исходного взять некоторый полином g(x), то процесс получения разрешенных
- ••Основные свойства циклических кодов:
- ••Кодирование с использованием циклических кодов
- ••Второй:
- ••Кодирование циклических кодов с помощью сдвиговых схем
- ••Вычисление синдрома и исправление ошибок в циклических кодах
- ••Покажем, что синдромный многочлен,S(x) однозначно связан с многочленом ошибки e(x), а значит, с
- •Получение порождающих полиномов для циклических кодов
- ••Дальше остатки повторяются. Получили следующие остатки: 011, 110, 111, 101, 001, 010, 100.
- ••Дальше остатки повторяются. Получили следующие остатки: 111, 001, 010, 100. Всего 4 штуки.
- ••Пример. Выбрать порождающий полином циклического кода, исправляющего однократные ошибки и позволяющего передать 2000
- •Таблица неприводимых полиномов
- ••ГОСТ 28082-89 «Методы обнаружения ошибок при последовательной передаче данных» устанавливает в качестве основного
- •Непрерывные коды
- ••При этом кодирование кадра информационных символов в кадр кодового слова производится с учетом
- ••Сверточный (цепной) алгоритм непрерывного кодирования
- ••Таким образом, каждый символ входной последовательности ak участвует в формировании двух проверочных символов:
- ••На приеме информационные и проверочные символы разделяются и регистрируются независимо друг от друга.
- ••Непрерывное кодирование с помощью импульсной переходной характеристики
Теория информационных процессов и систем
Кафедра информационных управляющих систем
Лекции читает канд.техн.наук, доцент Литвинов Владислав Леонидович
Циклические коды
•Название кодов произошло от их свойства, заключающегося в том, что каждая кодовая комбинация может быть получена путем циклической перестановки символов комбинации, принадлежащей этому же коду.
•Это значит, что если, например, комбинация a0 a1 a2 … an-1 является разрешенной, то комбинация an-1a0 a1 a2 … an-2 также является разрешенной.
•Циклические коды обычно имеют полиномиальное представление,
означающее, что бинарные элементы кодового слова a0 a1 a2 … an-1 интерпретируются как коэффициенты полинома от некоторой фиктивной переменной х: f(x)=an-1xn-1 + an-2xn-2 +…+ a2x2+a1x + a0
•Например, кодовое слово 11010 представляется в виде полинома x4+x3+x
•Наибольшая степень х в слагаемом с ненулевым коэффициентом называется степенью полинома. Таким образом, в полиноме степени n-1 старший коэффициент an-1 равен 1.
•Действия над кодовыми комбинациями сводятся к действиям над полиномами. Причем операция сложения производится по модулю 2. Множество таких полиномов и действий над ними образуют т.н.
•поле Галуа порядка 2 (обозначается GF(2)).
•Циклический сдвиг коэффициентов полинома получается умножением полинома на x с одновременным сложением с двучленом xn+1. Действительно, пусть
•f(x)=1•xn-1+an-2xn-2+…+a2x2+a1x+a0.
•Тогда
•f(x)•x + (xn+1) = xn+an-2xn-1+ … +a2x3+a1x2+a0x + xn+1 =
•= an-2xn-1+ … +a2x3+a1x2+a0x +1
•Следовательно, если в качестве исходного взять некоторый полином g(x), то процесс получения разрешенных кодовых комбинаций можно представить в следующем виде:
•u1(x) = g(x)
•u2(x) = g(x)∙x + (xn+1)
•u3(x) = u2(x)∙x + (xn+1) = g(x)∙x2 + (xn+1)(x+1)
•…
•un(x) = g(x)∙xn-1 + (xn+1)(xn-2+xn-3+…+1)
•При таком способе построения полином g(x) называется порождающим. Если потребовать, чтобы порождающий полином g(x) был делителем двучлена (xn+1), то все разрешенные комбинации приобретают свойство делимости на g(x).
•Из этого следует, что можно легко проверить, является ли комбинация разрешенной.
•Достаточно проверить ее делимость на полином g(x).
•Основные свойства циклических кодов:
•1. В циклическом (n,k)-коде каждый кодовый полином должен иметь степень не более n-1.
•2. Существует полином g(x) степени (n-k) вида
•g(x)=xn-k+gn-k-1xn-k-1+…+g2x2+g1x+1,
•называемый порождающим полиномом кода.
•3. Каждый кодовый полином u(x) является кратным g(x), то есть u(x) = m(x)•g(x).
•Кодирование с использованием циклических кодов
•Если дана k-значная входная комбинация m, то n-значное кодовое
слово u циклического кода с порождающим полиномом g(x) можно получить двумя способами.
•Первый:
•исходная k-значная комбинация, выраженная в виде полинома
•m(x) = mk-1 xk-1+…+ m1 × x + m0 степени (k – 1), умножается на порождающий полином g(x) степени (n – k):
•u(x) = m(x) × g(x).
•Полученный таким способом код теряет свойство систематичности. То есть, не возможно указать, где информационные символы, а где проверочные. Декодирование такого кода представляет определенные трудности.
•Второй:
•Используется процедура деления полиномов и вычисления остатков. В соответствии с правилами деления полиномов для каждой пары полиномов С(х) и g(x), g(x) ≠ 0 существует единственная пара полиномов q(x) — частное и ρ(х) — остаток, такие, что
•С(х) = q(x)× g(x) ρ(х) ,
•Домножим исходный полином m(x) на xn-k. Получившийся полином будет иметь степень (k – 1) + (n – k) = (n-1). Представим его в виде
•m(x)×xn-k = q(x)×g(x) ρ(х),
•где q(x) – частное от деления m(x)×xn-k на порождающий полином g(x), а ρ(х) – остаток от деления.
•Поскольку степень g(x) равна (n-k), то степень ρ(x) должна быть (n-k- 1) или меньше, а сам полином ρ(x) будет иметь вид
•ρ(x)= rn- k- 1 × xn-k-1 +...+ r2 × x2+ r1 × x +r0.
• |
С учетом правил арифметики в GF(2) выражение |
• |
m(x)×xn-k = q(x)×g(x) ρ(х) можно переписать следующим образом: |
• |
ρ(x) xn-k × m(x) = q(x)× g(x) |
• |
откуда видно, что полином ρ(x) xn-k×m(x) является кратным g(x) и |
|
имеет степень n-1 или меньшую. Следовательно, он соответствует |
|
свойствам кодовых комбинаций циклических кодов и представляет |
|
собой кодовое слово кодируемой информационной |
|
последовательности m(x). |
• |
Раскрыв последнее выражение, получим |
• |
ρ(x) m(x)×xn-k = mk-1 xn-1+…+ m1 × xn-k+1 + m0 xn-k +rn- k-1 xn-k-1 +…+r1 x +r0 , |
•что соответствует кодовому слову u = (mk-1 … m1 m0 rn- k-1 r1 ... r0).
•Таким образом, кодовое слово циклического кода состоит из неизменной информационной части m и (n-k) проверочных символов. Проверочные символы являются коэффициентами полинома r(x), то есть остатка от деления m(x)×xn-k на порождающий полином g(x).
•Пример. С использованием кода, задаваемого порождающим полиномом g(x) = x3+x+1, закодируем произвольную последовательность, например m=(1001).
•Последовательности m =(1001) соответствует полином m (x)= x3+ 1.
•Умножим m(x) на xn-k :
• |
m(x) × xn-k =m(x) × x3 =( x3+ 1) × x3 = x6 + x3. |
|||
• |
Разделим m(x) × xn-k на порождающий полином g(x) : |
|||
|
X6 |
X3 |
|
X3 X 1 g(x) |
|
|
|||
|
X6 0 X4 X3 |
|
X3 X q x |
•X4
X4 + 0 + X2 + X
•X2+ X=ρ(x).
•Таким образом, кодовый полином, соответствующий информационной
последовательности m = (1001), будет иметь следующий вид:
•U(x) = 1*X6+ 0*X5+ 0*X4 + 1*X3 + 1*X2+ 1*X1 + 0*X0,
•а соответствующее кодовое слово u = (1001110).