- •«Теория кодирования»
- •Первичные коды и эффективное кодирование
- •Префиксные коды
- •Примерами префиксных кодов являются коды Шеннона-Фано и Хаффмана. Код Шеннона-Фано
- •Код Хаффмана
- •Кодирование факсимильных изображений. Коды кдс-1, кдс-2, кдс-3
- •Основные параметры помехоустойчивых кодов
- •Классификация помехоустойчивых кодов
- •Коды: общие сведения, основные свойства
- •Линейные блоковые коды
- •Условия и свойства формирования разрешенных кодовых последовательностей лбк
- •Задание линейных кодов с помощью порождающих и проверочных матриц
- •Кодирование информации линейным блоковым кодом
- •Синдромное декодирование
- •Мажоритарное декодирование
- •Циклические коды: общие сведения, определение
- •Свойства циклических кодов
- •Способ построения кодовых последовательностей с использованием порождающей матрицы
- •Назначение и способы построения проверочной матрицы циклического кода
- •Способ формирования кодовых последовательностей циклического кода с использованием образующего полинома
- •Многотактные фильтры
- •Кодирование информации циклическими кодами
- •Декодирование информации циклическими кодами
- •Синдромный метод декодирования цк
- •I Табличное синдромное декодирование
- •II Схемное синдромное декодирование
- •Многомерные коды: определение, классификация
- •Матричные коды: определение, принцип построения, свойства, параметры, достоинства и недостатки
- •Итеративные коды: определение, принцип построения, основные характеристики
- •Каскадные коды: определение, принцип построения, основные характеристики
- •Сверточные коды: определение, параметры, классификация
- •Задание систематических сверточных кодов
- •I. Задание систематических ск с помощью порождающей матрицы g(х)
- •II. Задание систематических ск с помощью проверочной матрицы h(х)
- •III. Задание систематических ск с помощью разностных треугольников
- •Кодирование информации сверточными кодами
- •Структурная схема кодера
- •Жесткое пороговое декодирование сск
- •Мягкое пороговое декодирование сск
- •Многопороговое декодирование сск
- •Структурная схема декодера
- •Список литературы
Мажоритарное декодирование
Способ мажоритарного декодирования привлекает как простотой описания, так и невысокой сложностью схемной реализации. Идея мажоритарного декодирования линейного кода базируется на системе проверочных равенств, а именно, в кодах с мажоритарным декодированием каждый символ может быть выражен через другие символы несколькими способами. Это позволяет для определения истинного значения символа воспользоваться принципом большинства (мажоритарным принципом).
Существует три способа построения систем проверочных уравнений при мажоритарном декодировании:
системы с разделенными проверками;
системы с -связанными проверками;
системы с квазиразделенными проверками.
В системах с разделенными проверкаминекоторый символ, относительно которого разделяется система уравнений, входит во все уравнения. Любой другой символ входит не более чем в одну проверку. Отсюда следует, что для коррекцииtошибок система должна состоять из (2t + 1) уравнений и иметь на столько же входов мажоритарные элементы.
Пример:Пусть имеется код (6; 3), задаваемый следующей проверочной матрицей:
а1а2а3 а4а5а6
0 1 1 1 0 0
H(x) =1 0 1 0 1 0
1 1 1 0 0 1
Запишем систему уравнений:
а
4=
a2a3
а5= a1a3
а6= a1a2a3
Из этой системы можно записать систему проверочных равенств, где равенство аi=аiназываетсяуравнением истинностиилитривиальным.
Для
a1:
a1=
a3a5
а1 = а2a3a6=а4a6
а1= a1
Для
a2:
a2=
a3a4
а2 = а1a3a6=а5a6
а2= a2
Для
a3:
a3=
a2a4
а3 = а1a5
а3= a3
Видно, что каждый из принятых символов aiвходит в данные системы один раз, и, следовательно, если он ошибочен, то ошибочным будет одно из трех уравнений системы; два остальных– правильны. По большинству правильных проверок мажоритарный элемент принимает правильное решение об оценке состояния разряда.
С ростом числа корректируемых ошибок растет число уравнений в системе и, следовательно, увеличивается сложность мажоритарного элемента.
Декодер для кода (6,3) требует шесть сумматоров по модулю два и три мажоритарных элемента.
Схема мажоритарного декодера кода (6, 3) представлена на рисунке.

Рисунок – Схема мажоритарного декодера кода (6, 3)
Достоинства мажоритарного декодирования: простота реализации, высокая скорость декодирования.
Недостатки: такие декодеры могут декодировать малый класс кодов.
Циклические коды: общие сведения, определение
Важнейшим недостатком систематических линейных блоковых кодов (СЛБК) является высокая трудоемкость их построения при длине кодовой последовательности n≥31 двоичный символ и коррекции ошибок кратностью toш≥3 двоичных символа. Поиск более простых принципов построения СЛБК привел к открытию нового широкого класса групповых линейных блоковых кодов, получивших название циклических кодов (ЦК).
Циклические коды являются подклассом в классе линейных блоковых кодов. Свое название коды получили из-за основной операции построения кодовых последовательностей (Fi (x)) – циклического сдвига (перестановки) двоичных символов разрешенных кодовых последовательностей.
Циклическим кодом называется линейный блоковый код, который представляет собой конечное множество, замкнутое относительно операции циклического сдвига кодовых последовательностей, образующих данный код.
Кодовую последовательность ЦК в общем виде можно записать так:
![]()
где х - формальная переменная,
п-1, п-2 ,..., 1, 0 — показатели степеней, в которые возводятся основания кодов, и одновременно порядковые номера, которые занимают двоичные символы (разряды) кодовой последовательности, начиная со старшего и заканчивая нулевым;
ci
-
коэффициенты формальной переменной,
которые могут принимать
значения или быть равными логической
1 (ненулевой член
Fi(x))
или
логического 0 (нулевой член Fi(x)).
Например,
![]()
Представление кодовых последовательностей в виде полиномов позволяет установить однозначное соответствие между ними и свести действия над кодовыми последовательностями к действиям над полиномами: умножение, сложение, деление и вычитание этих полиномов производится по обычным правилам алгебры, но коэффициенты С одинаковыми степенями х суммируются по модулю два.
Уточним сущность понятия циклического сдвига или циклической перестановки двоичных символов кодовой последовательности.
Пусть
то
циклический
сдвиг на один разряд дает![]()
Чтобы
степень новой кодовой последовательности
Fi(x)
не
превышала
(п-1),
член
сп-1хп
заменяется
единицей, поэтому![]()
![]()
Например,
пусть
при
n=7двоичных
символов. (Заметим, что запись кодовой
последовательности
в виде многочлена, а затем перевод ее в
двоичную форму
записи, не всегда определяет длину
кодовой последовательности
n.
Например, при п=5,
многочлен
F(x)
=
х2+1=101,
т.е. n=3,
что неверно. В таких случаях надо дописать
старшие нулевые
символы, т.е. F(x)=x2+1=00101,
что
дает
п=5 двоичным
символам).
Сдвигаем F(x) на один разряд (символ) влево, и получаем F(x) =1011100=х6+ х4+ х3+х2. Очевидно, что xl(x5+x3+x2+x)=x5+x4+x3+x2. Отсюда вытекает второе определение ЦК, а именно, циклический код – это код, для которого циклический сдвиг двоичных символов разрешенной кодовой последовательности влево или вправо на один, два,...., (k-1) символов вновь приводит к формированию разрешенной кодовой последовательности.
Таким образом, циклическую перестановку двоичных символов разрешенной кодовой последовательности можно рассматривать как умножение F(x) на х при первом сдвиге, на х2 при втором сдвиге и т. д., что можно в общем виде записать или представить так:

Таким образом, можно сделать следующие выводы:
1. ЦК - это такой линейный код, который обладает свойством цикличности кодовых последовательностей, т.е. когда каждая разрешенная кодовая последовательность содержит ее циклическую перестановку;
2. ЦК относятся к групповым линейным кодам, если они образуются путем умножения каждой последовательности равнодоступного (простого) кода, выраженных в виде многочлена Q(x) с максимальной степенью (k-1), на некоторой полином Р(х) степени l=n-k.
Информационный полином: Q(x)=ak-1xk-1+ ak-2xk-2+…+ a0x0
Порождающий (образующий) полином: P(x)=bl xl+ al-1 xl-1+…+ b0x0
Разрешенные кодовые последовательности кода Краз= 2к образуют циклическую подгруппу Кобщ= 2п, отличающуюся тем, что все элементы подгруппы имеют общее свойство делимости на полином Р(х), получивший название образующего или порождающего полинома.
В качестве образующего полинома используются полиномы, обладающие следующими свойствами:
1. образующий полином Р(х) должен быть делителем двучлена хп+1;
2. образующий полином не должен раскладываться на сомножители более низких степеней, и должен делиться без остатка на самого себя и на 1, т.е. на х°;
3. максимальная степень образующего полинома должна быть равной l=n-k, т.е. соответствовать количеству проверочных символов используемого кода.
