- •1. Циклические коды (цк)
- •1.1 Циклические корректирующие коды
- •1.2 Построение цк
- •1.3 Определение параметров цк(цск) по m,s,r
- •1.4 Определение параметров цк, обеспечивающих заданную вероятность передачи по каналу с шумом
- •1.5 Кодеры цск
- •1.5.1 Кодирование с помощью полинома h(X)
- •1.5.2 Кодирование с помощью полинома g(X)
- •1.6 Декодеры цск
- •1.6.1 Декодеры Меггита
- •1.6.1.1 Режим исправления и обнаружения ошибок
- •1.6.1.2 Режим обнаружения ошибок
- •1.7 Примеры
- •1.7.1 Пример 1
- •1.7.2 Пример 2
- •1.7.3 Пример 3
- •1.7.4 Пример 4
- •1.7.5 Пример 5
- •1.7.7 Пример 7
- •1.7.8 Пример 8
- •1.7.9 Пример 9
- •1.7.10 Пример 10
- •1.7.11 Пример 11
- •1.8 Справочные материалы
- •1.8.1 Теоремы бчх
- •1.8.2 Таблица неприводимых многочленов
1.6 Декодеры цск
Существует две разновидности алгоритмов декодирования:
Алгебраические:
Синдромное декодирование
Мажоритарное декодирование
Пороговое декодирование
Неалгебраические:
Алгоритм Питерсона
Алгоритм Берлекемпа с процедурой Чень.
К наиболее простым способам декодирования относятся синдромное и мажоритарное.
1.6.1 Декодеры Меггита
Декодеры Меггита реализуют алгоритм синдромного декодирования. Декодирование с целью обнаружения и исправления ошибок состоит в делении на g`(x) полинома, соответствующего принятому сообщению. При отсутствии ошибок деление будет выполнено без остатка; в противном случае наличие ненулевого остатка укажет на то, что произошли ошибки. Для обеспечения возможности исправления ошибки каждому виду ошибки должен соответствовать свой, отличный от других, остаток, по которому селектор (декомбинатор -kвходовой конъюнктор) ошибки мог бы выработать необходимые сигналы исправления. Нарис.3приведена обобщенная схема декодера Меггита. Сложность при реализации данного способа декодирования заключается в правильной настройке селектора.
Рис.3. Обобщенная структурная схема декодера Меггита
Обработка циклического кода в декодирующем устройстве рис.3, осуществляется в два этапа:
В течении первых nтактов производиться деление принятой кодовой комбинации наg(x)(формируется синдром в генераторе синдрома) и одновременно эта комбинация записывается в приемный регистр.
В течении следующих nтактов осуществляется исправление ошибок.
На n+1-ом такте открывается селектор и начинает выталкиваться код из буферного регистра. При появлении ошибки селектор вырабатывает истинное значение ошибочного символа с помощью сумматора поmod 2:, т.к. мы внесли коррекцию в вектор, то должны внести в генератор синдрома единицу (осуществляется с помощью обратной связи, нарис.3обозначена пунктирной стрелкой).
Использование многотактовой коррекции позволяет сократить объем
декомбинатора ошибок, но увеличивается время обработки сигнала в два раза по сравнению с ГСК. Отметим, что регистр с логическими обратными связями в составе корректора ( генератор синдрома), выполняющий делена на g(x), полностью аналогичен регистру с обратными связями в составе кодирующего устройства (см.рис.2).
1.6.1.1 Режим исправления и обнаружения ошибок
Существует два алгоритма решения.
Частный алгоритм.
Данный алгоритм имеет место только для модифицированного кода Хэмминга. В основе лежит деление полинома, соответствующего принятому сообщению на каждый сомножитель полиномаg`(x).
Проанализируем синдром:
синдром, r0…rk-1 |
общая проверка на четность, rk |
кратность ошибки |
действия |
0 |
0 |
0 |
правильная передача |
|
1 |
1 |
исправление |
|
0 |
2 |
стирание (n+1 такт) |
Частный алгоритм выделяется, т.к. дает возможность выработать сигнал стирания на n+1 такте, т.е. обладает минимальной задержкой при стирании сообщения. Нарис.4 приведена обобщенная структурная схема декодера Меггита длямодифицированного кода Хэмминга, построенная по частному алгоритму.
Рис.4 Обобщенная структурная схема декодера Меггита
для кода Хэмминга в режиме исправления и
обнаружения ошибок ( частный случай)
Работа. В течении первых nтактов производиться деление принятой кодовой комбинации наg`(x)(формируется синдром в генераторе синдрома), одновременно принятая кодовая комбинация записывается в приемный буферный регистр, а также формируется значение в ячейке памятиDk( на элементахm2иDkреализован счетчик поmod2 – осуществляет общую проверку на четность прямой комбинации).
На n+1-ом такте открывается ключK2, если хоть один разряд селектора равен 1 и наDk ноль, то в соответствии с 3-ей строкойтаблицы анализа синдромасрабатывает сигнал сброса буферного регистраRБР, т.е. происходит стирание информации из него и на выход сигнал не поступает. В остальных случаяхRБР не срабатывает. Наn+1-ом такте открывается селектор (через ключK1) и начинает выталкивать код из буферного регистра. При появлении ошибки селектор вырабатывает истинное значение ошибочного символа с помощью сумматора поmod2:, т.к. мы внесли коррекцию в вектор, то должны внести в генератор синдрома единицу (осуществляется с помощью обратной связи, нарис.4 обозначена пунктирной стрелкой, направленной влево).
Пример 10
2.Общий алгоритм
В основе общего алгоритма лежит деление полинома, соответствующего принятому сообщению на единый полином g`(x). На рис.5 приведена обобщенная структурная схема декодера Меггита, построенная по общему алгоритму.
рис.5 Обобщенная структурная схема декодера Меггита
в режиме исправления и обнаружения ошибок (общий случай)
Работа. В течении первых n тактов производится деление принятой кодовой комбинации наg(x) (формируется синдром в генераторе синдрома) и одновременно эта кодовая комбинация записывается в приемный регистр. Наn +1 такте открывается селектор (через ключ К1 ) и начинает выталкивать код из буферного регистра. При появлении ошибки селектор вырабатывает истинное значение ошибочного символа с помощью сумматора поmod2:, т.к. мы внесли коррекцию в вектор, то должны внести в генератор синдрома единицу (осуществляется с помощью обратной связи, нарис.5обозначена пунктирной стрелкой). Если на 2nтакте синдром не обнулился, то на 2n+1 такте (через элемент «ИЛИ» и открывшийся ключ К2) произойдет стирание сообщения.
Пример 11