Краткие теоретические сведения о циклических кодах. Изучение принципов кодирования и декодирования циклических кодов, страница 6

Принцип работы устройства основан на проверке основного свойства кодограммы циклического кода - делимости на образующий многочлен. Принимаемая кодограмма поступает на вход схемы деления и одновременно записывается в буферный регистр (БР). Когда вся кодограмма запишется в буферный регистр, в схеме деления образуется остаток от деления кодограммы на образующий многочлен, называемый синдромом  

Рисунок 4

Если ошибки отсутствуют, то регистр схемы деления содержит одни нули  (нулевой синдром, т.е. ). Анализатор синдрома вырабатывает сигнал 'Подтверждение', по которому разрешает выдачу кодограммы потребителю. В противном случае вырабатывается сигнал "Запрос",  который стирает содержимое буферного регистра.

Более сложно реализуются декодеры циклических кодов с исправлением ошибок. Существует несколько способов функционирования таких устройств. Для определения номеров элементов, в которых произошла ошибка, существует несколько методов.  Один из них основан на свойстве, что остаток, полученной при делении принятого с ошибками многочлена  на образующий многочлен g(x )называемый синдромом, равен остатку, полученному  при делении на g(x)  соответствующего многочлена ошибок =  где исходный многочлен циклического кода, т.е. для данного кода (n,k) синдром зависит только от номера ошибочного разряда и не зависит от вида передаваемой комбинации.

Наиболее очевидный алгоритм исправления ошибок основан на связи между содержимым синдрома и номером позиции, где имеет место ошибка.  Структура декодера показана на рис.5.

Рисунок 5.

Процесс декодирования разбивается на два этапа. На первом этапе -принимаемая кодограмма записывается в БP, а схема деления вычисляет синдром.

На втором этапе символы принятой кодограммы последовательно покидают БР, в схема деления (на ее входе теперь действуют только нули) производит операции над синдромом. Если синдром отличен от нуля, то на n тактах второго этапа содержимое регистра схемы деления есть разные двоичные числа разрядностью n-k. Результат работы схемы деления на очередном i-м такте  второго  этапа   фактически является     продуктом деления принятого многочлена, сдвинутого влево    на  j    разрядов,    на образующий многочлен.  Комбинаторно-логическая схема (КЛС) строится с таким расчетом, чтобы реагировать на те двоичные числа, которые появляются в момент, когда ошибочные символы покидают БР.

ложность КЛС зависит от числа исправляемых ошибок. Простейшие схемы получаются при реализации кодов, рассчитанных на исправление однократных ошибок. 

Двоичное число (опознаватель), на которое должна реагировать КЛС, легко определить, заметив, что это число генерируется схемой деления за один такт работы из синдрома, соответствующего ошибке в старшем разряде (поскольку старший разряд расположен в выходной ячейке БР). Так как кодограммы циклического кода делятся на g(х) без остатка, то очевидно, что опознаватель есть остаток от деления   на g(x) (с учётом того, что всю кодовую комбинацию необходимо при этом сдвинуть в сторону старших разрядов на один разряд).

Рассмотрим пример, иллюстрирующий принцип построения КЛС, исправляющей ошибки в комбинациях циклического (7,4) кода с образующим многочленом . Опознаватель найдем, разделив  на g(х). Он равен  (001). Схема деления, вычисляющая синдром, построенная по правилам разд.2.6, приведена на рис. 1.  Пусть на вход этой схемы поступает кодограмма циклического кода  (1101001), в которой имеет место ошибка в 3-м разряде. С учетом этого многочлен, описывающий принятую диаграмму, имеет вид:   (1101101).

Разделив а'(х) на g(х), устанавливаем синдром  , на вычисление которого потребуется 7 тактов работы делительного устройства.

Рассмотрим содержимое регистра схемы деления на последующих тактах работы при условии, что на ее вход поступают только нули. В исходном состоянии регистр схемы деления содержит синдром (“1” в ячейке 3).

Состояния регистра  на дополнительных тактах работы отражены в таблице 2  (колонки 1,2,3).

Таблица 2