УДК 621.3721075
Канальные кодеки троичного кода
Игорь Михайлович Белюченко, д.т.н., проф., e-mail: bill [email protected] ФГБОУ ВПО «Российский государственный университет туризма и сервиса», Москва
Рассмотрены особенности применения схемных решений канальных кодеков двоичного кода при разработке канальных кодеков троичного кода; показана возможность создания двух подмножеств помехозащитных кодов при использовании кодов (n,m) на основе одного порождающего полинома; приведены примеры обнаружения и исправления ошибок схемным методом.
The article considers specific characteristics of using of circuitries of binary code channels codecs for designing ternary code channel codecs. The authors show the possibility of two subsets of protective codes when using codes (n, m) based on a single generator polynomial and give examples of identifying and correcting errors by circuit method.
Ключевые слова: двоичный код, троичный код, кодек, регистр сдвига.
Keywords: binary code, ternary code, codec, shift register.
При использовании троичного кода (ТК) актуален вопрос применения наработанных алгоритмов и схем двоичного кода с определенной модернизацией. В частности, в канальных кодеках ТК возможно использование алгоритмов помехозащитного двоичного кодирования (ДК) [1].
Целью настоящей статьи является оценка возможности применения схем кодеков ДК.
Схемы кодирования и декодирования на основе порождающих матриц на обобщенном уровне могут применяться практически без изменений, тогда как для аналогичных схем в ТК потребуются новые элементы. Регистр должен состоять из ячеек с тремя устойчивыми состояниями 0, 1, 2. Сумматор и вычитающее устройство должны быть построены на основе матриц сложения и вычитания по mod 3 (рис. 1) и выполнять соответствующие операции, например 2 © 2 = 1mod3 .
Для конкретизации рассмотрения матричного кодека используем код Хэмминга (7,4), где порождающая матрица G и проверочная матрица H имеют следующий вид:
G =
H
Сі) 0 1 2 О 0 1 2
0 0 ] 2 0 0 1 2
1 1 2 0 1 2 0 1
2 2 0 I 2 1 2 0
а) б)
На входы сумматоров по mod 3 II подаются сигналы с четырех ячеек регистра, преобразованные в соответствии с кодирующей матрицей. В регистр III записываются результаты Рис. 1 Сложение (а) и вычи-суммирования (rh r2, r3). тание (б) элементов по mod 3 Вычитающие устройства по mod 3 IV предназначены для формирования помехозащитных разрядов (p1t p2, p3), которые записываются в регистр V . Согласно правилу получения помехозащитных разрядов должно выполняться равенство r, + pj = 0. Поэтому вычитателя-
Схема кодера матричного кодирования приведена на рис. 2.
Информационные разряды т = т3, т2 ,ть т0 записываются в регистр I.
Рис. 2. Матричный кодер ТК: I - входной регистр (m); II - сумматоры (mod 3); III - регистр результатов суммирования; IV - вычитающее устройство (mod 3); V - регистр помехозащитных разрядов (Р)
ми IV обеспечивается выполнение следующих соотношений:
р, = 0 при Гг = 0;
Р] = 2 при Гг = 1;
Р] = 1 при Гг = 2.
Ключ К1 за четыре такта коммутирует на выходе четыре информационных разряда. После этого ключ переключается и за три такта коммутирует выход регистра V с тремя помехозащитными разрядами: и = тз, т2 ,т 1, то,р 1,Р2,рз.
Декодер, изображенный на рис. 3, содержит входной регистр I, в который записывается принятый блок. На сумматоры II подается сигнал, сформированный в соответствии с проверочной матрицей Н, которая имеет вид 1 0 1 1 1 0
0
Н
1
1
0
1
0
Сумматоры IV предназначены для исправления обнаруженной ошибки по правилу иі + Є = ші, где и і = ші + е - принятое значение разряда с ошибкой е; Є - исправляющий сигнал от декодера синдромов 5”.
Например, обнаружена ошибка в і-м разряде вида «2». Тогда с декодера синдромов III на і-й выход подается сигнал е = 1. Соответственно при обнаружении ошибки вида «1» подается сигнал е = 2. Таким образом, в разряде с ошибкой восстанавливается переданное значение разряда. В случае нулевого синдрома 5 0 (0,0,0) подается разрешающий сигнал на выдачу четырех информационных разрядов. Аналогичный разрешающий сигнал подается после исправления ошибки (на схеме декодера не показано).
Сложность синдромных кодеков ТК сопоставима со сложностью аналогичных кодеков ДК.
При реализации полиномного кодирования в ТК появляются принципиальные особенности, на которых необходимо остановиться.
Деление на порождающие полиномы в ДК реализуются в регистрах сдвига с обратными связями. При этом остатки от деления в ДК (помехозащитные разряды) совпадают с остатками алгебраического деления (полиномы на полином).
Синдромы ошибок, которые используются для локализации искаженного помехами разряда, также могут быть определены алгебраически или схемно.
При применении ТК имеется расхождение между синдромами ошибок, определяемых алгебраически или схемно. При этом определять и исправлять ошибки можно и тем и другим методом. Возможность исправлять ошибки алгебраическими методами была показана в [1].
Покажем обнаружение и исправление ошибок схемным методом. Воспользуемся для примера кодом Хэмминга (7,4). Схема кодирующего устройства кодера ДК, основанного на полиноме g (х) = х3 + х +1 (1011), приведена на рж. 4.
Рис. 3. Матричный декодер
С выходов сумматоров сигналы подаются на декодер синдромов 5 III, который представляет собой схему преобразования входного кода в позиционные выходы согласно таблице синдромов.
На каждый позиционный выход декодера 5, соответствующий номеру позиции разряда, по двум отдельным проводникам подаются сигналы вида обнаруженной ошибки е - «1» или «2», в зависимости от данных таблицы синдромов.
Рис. 4. Кодер полиномного кодирования
Воспользуемся этой схемой при кодировании в ТК. Для этого применяем регистр из ячеек ТК и
сумматор по mod 3. Закодируем блок m = 1220. Ключ К1 первые четыре такта находится в положении «1». Ключ К2 замкнут, и содержимое четырех информационных разрядов поступает на выход, а также на регистр с обратными связями. Сумматоры производят суммирование по mod 3. С пятого по седьмой такты ключ К1 переходит в положение «2», ключ К2 разомкнут. За эти такты содержимое трех разрядов регистра подается на выход. Эти операции иллюстрируются табл. 1. Остаточные разряды подаются на выход в виде r = 200.
Таблица 1
Таблица 3
Вход Pl P 2 P3
1 1 1 0
2 2 0 1
2 0 2 0
0 0 0 2
Вход Pl P2 P 3
1 1 1 0
2 2 0 1
2 0 2 0
0 0 0 2
1 0 0 0
0 0 0 0
0 0 0 0
Получен синдром Б = 0,0,0.
Для определения синдромов одиночных ошибок необходимо схемно поделить код конкретной ошибки. Всего надо определить по 7 синдромов ошибок вида «1» и «2». Принятые сообщения с
*
одиночной ошибкой имеют вид и = и + е, где е -семиразрядный код ошибки.
Поскольку схемное деление (прием) сообщения и дает нулевой синдром, то ненулевой синдром БУ (где і - индекс вида ошибки (1, 2); у - позиция искаженного разряда сообщения и*) при приеме определяется только прохождением конкретного кода ошибки через регистр. В табл. 3 приведена схема получения синдрома при коде ошибки е = 0,2,0,0,0,0,0.
Вход Pl P 2 P3
0 0 0 0
2 2 2 0
0 0 2 2
0 2 2 2
0 2 1 2
0 2 1 1
0 1 0 1
Получен 52 =101.
В табл. 4 приведены коды синдромов ошибок сообщений в ТК.
Таблица 4
Как отмечалось, при алгебраическом делении помехозащитные разряды в ТК формируются таким образом, чтобы при декодировании получился нулевой синдром 5 0 = 0,0,0. Для этого помехозащитные разряды определяются поразрядным вычитанием Р = 50 - г [1].
В конкретном примере Р = 100 и закодированный блок для передачи и = тр = 1220100.
При декодировании для получения синдрома применяется такой же регистр. Получение синдрома при приеме иллюстрируется в табл. 2.
Таблица 2
Sj s; s2 S3 si S5 S6 S7
s; 210 202 122 121 111 011 110
s 2 120 101 211 212 222 022 220
После определения позиции и вида ошибки исправление принятого сообщения происходит по вышеописанному правилу: при ошибке е = «2» подается направляющий сигнал е = «1», при ошибке Є = «1» подается сигнал е = «2».
Более детальные схемы кодера и декодера ТК приведены на рис. 5 и 6.
Рис. 5. Кодер полиномного кодирования ТК
Рис. 6. Декодер ТК
Декодер работает следующим образом. В исходном состоянии ключ К1 замкнут, К2 разомкнут. Принятый семиразрядный блок (у = 7) записывает-
ся в выходной регистр и параллельно проходит кодирующий регистр синдромов. После семи тактов в регистре синдромов формируется синдром принятого блока, а в выходной регистр записывается принятый блок. Алюч К1 размыкается, ключ К2 замыкается, и синдром принятого блока попадает в декодер синдрома для определения позиции и вида ошибки. В случае нулевого синдрома разрешается выдача информационных разрядов т (т3, т2, ть т0). При ненулевом синдроме определяется позиция ] и вид ошибки (1, 2). В зависимости от вида ошибки активируется шина «1» или «2», а по позиции ] активируется схема исправления ошибки в соответствующем ]-м разряде по правилу и 1 + ё = т,. После исправления ошибки разрешается выдача информационных разрядов. Декодирование принятого блока происходит практически без задержки. В случае обнаружения ошибки задержка составляет один такт на исправление значения конкретного разряда.
Таким образом, в статье показано, что в канальных кодеках ТК существует принципиальная возможность использования наработанных алгоритмов формирования помехозащитных ДК на основе по-
рождающих матриц и порождающих полиномов, а также использование схем технической реализации канальных кодеков ТК, аналогичных канальным кодекам ДК, которые реализуют названные выше помехозащитные алгоритмы.
Также имеется дополнительная возможность получения помехозащитного троичного кода (n, m) на основе одного порождающего полинома схемой на регистре сдвига с обратными связями (помимо
3 m s*n\
из множества 3 ), определяемого алгебраическим методом [2].
Кроме того, при использовании канальных кодеков ТК потери информации при передаче уменьшаются на несколько порядков по сравнению с двоичным кодом.
ЛИТЕРАТУРА
1. Белюченко И.М. Особенности помехозащиты троичного кода // Электротехнические и информационные комплексы и системы. 2009. Т. 5. № 4. С. 17 - 23.
2. Белюченко И. М. Разновидности троичного кода // Электротехнические и информационные комплексы и системы. 2011. Т. 7. №3. С. 17 - 20.
3. Скляр Б. Цифровая связь. М.: Вильямс. 2003.
4. Хэмминг Р.В. Теория кодирования и теория информации. М.: Радио и связь. 1983.
5. Харкевич А.А. Борьба с помехами. М.: Наука. 1965.
Поступила 05.04.2012 г.