ИНФОРМАЦИОННЫЕ КОМПЛЕКСЫ И СИСТЕМЫ
УДК 621.372 (075)
Особенности помехозащиты троичного кода
И. М. Белюченко, д.т.н., профессор Российского государственного университета туризма и сервиса (РГУТиС) г. Москва e-mail: [email protected]
Рассмотрены особенности применения троичного кода при передаче цифровой информации; показана возможность применения для помехозащиты троичного кода методов, разработанных для двоичного кода, в частности методов кодирования на основе порождающей матрицы и порождающих полиномов.
Application aspects of ternary code in digital data transmission are shown; possibility of using binary codes noise immunity methods (generation matrix and code seed) in ternary codes is shown.
Ключевые слова: цифровая информация, помехозащита, троичный код, методы кодирования, порождающая матрица, кодирующая матрица.
Key words: digital information, noise immunity, ternary code, coding methods, generating matrix, encoding matrix.
В информатике и цифровой технике вполне заслуженно доминирует двоичный счет. Это объяснимо и понятно с научной и технической точек зрения. Одним из основоположников применения двоичного счета в цифровой связи считается К. Шеннон, который в качестве элементной базы ориентировался на реле и мультивибраторы [1]. Современная цифровая радиоэлектроника также ориентирована на двоичный код и его многопозиционные модификации с основанием 2т.
В то же время можно привести примеры успешного применения троичного счета или решений, основанных на троичной альтернативе. Например, в технической диагностике и автоматике могут быть оценки «норма», «не норма сверху», «не норма снизу». В известной древней задаче о поиске фальшивой монеты, отличающейся весом от нормальных, ее искали в денежном ящике путем взвешивания на весах без гирь. Минимальное число взвешиваний обеспечивалось методом трихотомии, при котором множество монет разделялось на три подмножества, и после сравнительного взвешивания двух из них делался вывод о дальнейших взвешиваниях. Если на весах было равновесие, то фальшивая монета оказывалась в третьем подмножестве, если нет — то искомое в одном из взвешиваемых подмножеств. В электротехнике при генерации и передаче электроэнергии большой
мощности применяется трехфазное напряжение, что объясняется оптимальным (минимальным) использованием материалов при технической реализации генерирования и канализации электрической энергии.
Результат минимизации числа взвешиваний в приведенном выше примере коррелирован с результатом оценки компактности представления больших чисел с помощью позиционного счета.
Обозначим основание счета К. Большое число Н>>К представляется в виде полиномиальной суммы
N = ^аК, аі =0,1,..„(# -1).
і=0
Отображение самого числа представляется строкой коэффициентов ^ ап_ь... ,аьа0.
Позиция коэффициента определяет его вес при суммировании. Для отображения этих чисел, например на цифровом табло, потребуется п ячеек, в каждой из которых могут быть отображены числа от 0 до (К-1).
Таким образом, для отображения чисел, максимальное из которых N потребуется KlogKN элементарных чисел.
Ниже на рисунке в качестве примера приведен график функции KlogKN при N= 106 и К=2.. .10. График построен на основе табл. 1 и показывает, что самое компактное представление больших чисел
Таблица 1. Компактное представление больших чисел
Основание счета K 2 3 4 5 6 7 8 9 1О
flog^6) 4О 37,7 4О 42,9 46,3 49,7 53,3 56,6 6О
KlosK^6) є1п(1О6) 1,О67 1,ОО5 1,О67 1,144 1,235 1,325 1,421 1,5О9 1,6ОО
2log2 flog*^6) - - - - - 42,6 4О 5О,9 48
В данной статье изложены особенности применения помехоустойчивых кодов, основанных на порождающих матрицах и порождающих полиномах, хорошо зарекомендовавших себя для двоичного кода.
Представим поле GF-3, которое содержит три элемента - 0, 1, 2. Рассмотрим следующие операции над этим полем: сложение, вычитание и умножение (далее будем называть их таблицами сложения (mod 3), вычитания (mod 3) и умножения (mod 3)).
Таблица сложения (mod3)
График функции К^К^Ю6)
достигается при троичном счете. Минимум функции К1о^^ достигается при К=е и в рассмотренном примере е^е(10б)~37,5, что превосходит результат троичного счета на 0,005 (0,5%), а двоичного на
0,067 (6,7%). Для больших оснований счета (7 < К) некоторое уменьшение этой функции обеспечивается при применении отображения вида ТХо^Ко^Ы, т.е. при применении двоичного счета для отображения основания счета К.
Но общая тенденция проигрыша в компактном представлении больших чисел по сравнению с троичным и двоичным кодами сохраняется.
Выигрыш троичного кода в компактности представления чисел по сравнению с двоичным кодом на 6% является в большей мере моральным преимуществом, чем материальным. В то же время можно отметить, что в алгоритмах сжатия 1РБО и МРБО, использующих двоичный код при передаче значений коэффициентов ДКП, применяется кодирование по Хаффману, которое обеспечивает сжатие приблизительно на 10%. Переход на троичный код в принципе может увеличить сжатие еще на 6%.
В свете изложенного представляется целесообразным рассмотрение, по крайней мере в теоретическом плане, возможностей применения троичного кода в цифровой связи.
О 1 2
О О 1 2
1 1 2 О
2 2 О 1
вычит ания О (mod3 1 ) 2
О О 1 2
1 2 О 1
2 1 2 О
Таблица умножения (mod3)
О 1 2
О О О О
1 О 1 2
2 О 2 1
Для создания помехозащищенного кода на поле ОБ-3 можно воспользоваться порождающей матрицей поля ОБ-2 [3].
Рассмотрим вначале пример для кода (п, т) = =(7,4). Порождающая матрица генератора имеет вид
G=
k
1 О О О 1 1 О t
О 1 О О 1 1 1
О О 1 О О 1 1 m і
О О О 1 1 О 1
(1)
Трансформированная проверочная матрица приемлема:
n
—— к ——
1 1 0
1 1 1
0 1 1
101
1 0 0 010 0 0 1
(2)
Для троичного кода единицы в порождающей и проверочной матрицах означают наличие в этой позиции ненулевых символов (1 или 2).
При двоичном коде каждая строка порождающей матрицы С принадлежит генерируемому коду. При троичном коде появляются свои особенности.
Проверочная матрица Нт состоит из двух подматриц. Одна (к х т) — повторение подматрицы порождающей матрицы, генерирующей проверочные символы Рц2,3). Вторая подматрица единичная (к х к). При приеме производят умножение принятого кода (т0, т1, т2, т3, Р1, Р2, Р3) на каждый из столбцов матрицы Нт Для двоичного кода (поле ОБ-2) умножение матрицы (т0, т1, т2, т3) на столбцы матрицы (к х т) дает вектор (Рь Р2, Р3) — повторение операции при генерации. Умножение вектора (Р1; Р2, Р3) на единичную матрицу (к х к) дает этот же вектор. Для получения синдрома ^ складывают поэлементно эти векторы: 5'=(^1, S2, ^3)= (Р1+Р1, Р2+Р2, Р3 +Р3). При безошибочном приеме двоичного кода это дает нулевой синдром S=(0, 0, 0).
Для троичного кода (поле ОБ-3) эти операции получаются несколько сложнее. Обозначим результат умножения вектора строки |т| на столбец проверочной подматрицы (к х т) как Sг■.
Этот же результат получается при приеме, кода умножение принятого кода производится на матрицу Нт. Умножение проверочных символов на единичную подматрицу (к х к) дает вектор (Р1, Р2, Р3). Таким образом, составляющие вектора синдрома S определяются как (S1+P1, S2+P2, S3 +Р3). У правильно принятого кода условиями нулевого синдрома являются следующие соотношения: ^+Л=0; S2+P2=0; Sз+Pз=0. (3)
Для троичного кода проверочные символы Р, должны определяться из системы вышеотмечен-ных равенств (3). Например, для двоичного кода
(7,4) последняя строка порождающей матрицы сама является кодом т=0001101, где т0=0, т1=0, т2=0, т3=1, Р1=1, Р 2=0, Р3=1 (Р=101).
Для троичного кода у сообщения т=0001 проверочные символы должны определяться из системы равенств (3) 5г+Рг=0: ^1=1, Р1=2; 52=0, Р2=0; 53=1, Р3=2. Вектор проверочных символов Р3=202, а само сообщение т=0001.202. Умножение этого кода (строки) на проверочную матрицу дает нулевой синдром. Аналогично для сообщения т=0010 справедливы соотношения 51=0, Р1=0; 52=1, Р2=2; 53=1, Р3=2. Закодированное сообщение «=0010.022. Синдром 5]=(0, 0, 0).
В троичном коде сохраняется свойство линейности. Например, сумма двух рассмотренных кодов принадлежит также к подмножеству генерируемых кодов и при умножении на матрицу Нт дает нулевой синдром 5=(0, 0, 0). Нулевой синдром получается при умножении на матрицу Нт суммы любых двух генерируемых кодов:
0 0 0 1. 2 0 2
0 0 1 0. 0 2 2
0 0 1 0. 2 2 1
Имеется определенная специфика локализации ошибок передачи при применении троичных кодов, поскольку необходимо определить не только разряд, но и само значение правильного символа в этом разряде.
На примере кода (7,4) покажем связь между кодами синдрома £=(£ь 52, 53) и одиночными ошибками при приеме.
Принятое сообщение представляет собой векторную сумму переданного сообщения и ошибки. В троичном коде одиночная ошибка определяется позицией (разрядом кода) и двумя возможными искажениями символа в этом разряде. Таким образом, векторы ошибок имеют следующий вид:
Вектор ошибки
Синдром
1 0 0 0 0 0 0 ^1
0 1 0 0 0 0 0 £>12
0 0 0 0 0 1 0 йб
0 0 0 0 0 0 1 <^17
2 0 0 0 0 0 0 *^21
0 2 0 0 0 0 0 S22
0 0 0 0 0 0 2 <^27
(4)
где в / — индекс ошибки; ] — разряд ошибки.
При умножении на трансформированную проверочную матрицу Нт ненулевой синдром определяется только вектором ошибки. В качестве примера в табл.2 приведен синдром ошибки кода (7,4).
Таблица 2. Синдромы ошибок кода (7,4)
Синдромы ошибок «1» Синдромы ошибок «2»
S11 S12 S13 S14 S15 S16 S17 S21 S22 S23 S24 S25 S26 S27
110 111 011 101 100 010 001 220 222 022 202 200 020 002
Отметим особенность кодов синдромов Sy+ S2j=0 (mod3). Код синдрома показывает не только позицию ошибки в коде, но и трансформацию значения разряда.
Сложение вектора кода и вектора ошибки «1» (табл.3) дает искаженное значение разряда (см. таблицу сложения (mod 3)).
Таблица 3. Искажение разряда
Значение Значение Искаженное
разряда ошибки значение разряда
0 1 1
1 1 2
2 1 0
0 2 2
1 2 0
2 2 1
Искаженное Значение Восстановленное
значение разряда ошибки значение разряда
0 1 2
1 1 0
2 1 1
0 2 1
1 2 2
2 2 0
Работа кодера при передаче. Определяем помехозащитные разряды Рь Р2, Р3:
Б = 21+1-0+2-1+00 = 1 51+ Р\ = 0^ Р1 = 2;
Б = 2-0+1-1+2-1+01 = 0 52+ Р2 = 0^ Р 2 = 0;
Б3 = 2-1+1-1+2-0+1-0 = 0 Б3+ Р3 = 0^ Р3 = 0.
Закодированное сообщение для передачи: т0, т1, т2, т3, Р1, Р2, Р3 ^2120200
Проверка правильности кодирования:
| т0, ть т2, т3, Р1, Р2, Р3|* НТ,
101
S = |2120200|>
011
110
111
100
010
001
(2 •l +1- 0 + 2 •l +1- 0 + 2 •l + 0 • 0 + 0 • 0 = 0),
= (2 • 0 +14 + 2 •l + 1 0 + 2 • 0 + 1 0 + 0 • 0 = 0), (2 •l +14 + 0 • 2 + 1 0 + 2 • 0 + 0 • 0 + 0 • 0 = 0) =
= (0,0,0)
Восстановление истинного значения разряда (табл. 4) должно производиться согласно таблице вычитания (mod 3).
Например, искажения кода 0011221 ошибкой вида «1» (0100000, 0001000 и др.) в разных разрядах приводят к разным изменениям значений самого разряда: 1011221, 0021221, 0011021. Аналогично ошибки вида «2» (0200000, 0002000 и др.) приводят к значениям: 2011221, 0001221, 0011121 (жирным шрифтом помечены позиции ошибки). Таблица 4. Восстановление разряда
Подводя итог изложенного, покажем пример работы кодека троичного кода (7,4), реализующего помехозащиту (канальное кодирование) на основе порождающей матрицы:
1 0 0 0 1 0 1
С= 0100011,
0 0 10 110
0 0 0 1 1 1 1
т=т0, т1, т2, т3^2120.
Работа декодера при исправлении одиночных ошибок. Определяем синдромы ошибок.
Ошибки вида «1»: <1=101; <2=011; 53=110; <4=111; £5=100; <6=010; <7=001.
Ошибки вида «2»: <8=202; <9=022; 510=220; <11=222; <12=200; <13=020; <14=002.
Сделаем ошибку вида «1» в третьем разряде кода и ошибку вида «2» в пятом разряде (помечены звездочкой):
2120 2* 00 21 2* 0200
0 0 0 0 2 0 0 0 0 1 0 0 0 0
2 1 2 0 1 0 0 2 1 0 0 2 0 0
Полученные сообщения умножаем на матрицу Нт:
101 011 110 111 100 010 001 101 011 110 < 111 100 010 001
S = |2100200
= (1,1,0)
- синдром ошибки вида «1» в третьем разряде - S3;
S = |2120100|;
= (2,0,0) _
синдром ошибки вида «2» в пятом разряде _ S12.
Исправление ошибки вида «1» в третьем разряде принятого сообщения и ошибки вида «2» в пятом разряде:
_2 1 0 0 2 0 0
0 0 1 0 0 0 0
2 1 2 0 2 0 0
Рассмотрим помехоустойчивое кодирование на основе порождающего полинома. Начнем с примера для того же кода (7,4). Порождающий полином £(х)=г3+х+1. Процедуры деления выполняются с помощью операций поля ОБ-3. Информационное сообщение вида га(х)=азх3+а2х2+аіх1+а0х0, где коэффициенты а принадлежат множеству (0,1,2), умножается на х3. Затем производится деление многочлена а3хб+а2х5+аіх4+а0х3 на примитивный (неприводимый) многочлен g(x). Информационное сообщение имеет вид т(х)=1-х3+2-х2+2-х1+1.
1221000
1011
2100
2022
1011
1211
1110
1011
1020
1011
Проверка правильности кодирования по синдрому 5:
1221.021
1011
1011
1211
2100
2022
1112
1011
1011
1011
000 - синдром 5.
Для каждого порождающего полинома получаем синдромы ошибок вида «1» и «2». Для кода
(7,4) и полинома q(x) = 1011 в табл. 5 приведены 14 значений синдромов ошибок.
Таблица 5. Синдромы ошибок для троичного полинома 1011
0 +1 •х + 2 - остаток Я.
По аналогии со способом кодирования с помощью порождающей матрицы получаем проверочные символы для равенства Я + Р = 0, где Я — остаток деления, Р - вектор проверочных символов, Я = (012), Р = (021). Получаем код сообщения:
Ц/(х)= хб+2-х5+2-х4+х3+2-х+1.
Операции деления проще выполнять, представив коды в виде коэффициентов в соответствующих позициях разрядов т = (а3, а2, а1, а0). Из примера получим т(х) = 1221. После операции умножения на х3 (сдвиг влево на три разряда) т(х)- х3 = 1221000. Порождающий полином q(x) = 1011. При процессе деления проверочные разряды получаются из условия Я + Р = 0 (Р = 021):
Ошибки «1» Ошибки «2»
511=121 521=212
512=211 522=122
513=220 523=110
514=022 524=011
515=100 525=200
516=010 526=020
517=001 527=002
012 - остаток Я.
Следует обратить внимание на то, что синдромы ошибок в одном разряде обратны по (шо<!3) , т.е.
5У+52/=0.
Исправляющая способность кода при основании 3 существенно выше, чем при основании 2.
Например, для кода (7,4) двоичный код исправляет 7 одиночных ошибок, при этом множе-
2п-т ^3
=2 используется полностью. Аналогичные оценки для троичного кода показывают, что исправляются 14 одиночных ошибок. При этом множество кодов синдромов 2п-т=з3 используется частично, и 12 (12=27—15) кодов синдромов могут быть использованы для исправления некоторых двойных ошибок.
С увеличением размера блока кода (п, т) помехозащитные свойства троичного кода по сравнению с двоичным возрастают в геометрической последовательности.
Свойства качественного роста помехозащиты кодов с большим основанием (2й, где й = 2, 3, 4,...) реализуются в кодах Рида-Соломона [3].
Разработка аналогов кода Рида-Соломона для оснований 3й дает еще более впечатляющий эффект.
х + 2 • х + 2 • х + х + 0 • х + 0 • х + 0
х + 0 • х + х + 1
х + 2 • х + х + 1
х + 0 • х + 1 • х + 1 • х
2 • х5 + 1 • х4 + 0 • х3 + 0 • х2
2 • х + 0 • х + 2 • х + 2 • х
х + 1 • х + 1 • х + 0 • х
х + 0 • х + 1 • х + 1 • х
1 • х + 0 • х + 2 • х + 0
1 • х + 0 • х + 1 • х + 1
1. Троичный код является наиболее компактным видом представления больших чисел и приблизительно на 6% превосходит по этому показателю двоичный код.
2. Для помехозащиты передачи троичным кодом могут применяться методы помехозащиты двоичного кода, в частности методы, основанные на применении порождающих матриц и порождающих полиномов. Спецификой для троичного кода является изменение алгоритма формирования помехозащиты разрядов. Для канального декодирования троичного кода применимы методы синдромного декодирования.
3. Исправляющая способность троичного кода в канальных кодеках качественно выше, чем у двоичного при одинаковых блоках (п, т).
ЛИТЕРАТУРА
1. Шеннон К. Математическая теория связи. Работы по теории информации и кибернетики. — М.: ИЛ, 1963.
2. Хэмминг Р.В. Теория кодирования и теория информации. — М.: Радио и связь, 1983.
3. Скляр Б. Цифровая связь. Теоретические основы и практическое применение. — М., СПб, Киев: Вильямс, 2003.
Поступила 20.04.2009 г.
ВНИМАНИЕ!
Издательский центр «Академия» предлагает вашему вниманию учебник для вузов Радиоэлектронные средства бытового назначения
Авторы: О. И. Шелухин, К. Е. Румянцев Под ред. К.Е. Румянцева
Рассмотрены классификация, назначение, принципы построения и основные характеристики радиоэлектронных средств бытового назначения, в том числе системы подвижной радиосвязи, включая сотовые сети связи, спутниковые системы связи и Интернет, системы персонального радиовызова и беспроводной телефонии, волоконно-оптические системы передачи информации, средства документальной электросвязи и спутниковые радионавигационные системы. Освещены основные положения теории сжатия информации, кодирования речевых сообщений, алгоритмы и стандарты кодирования видеоизображений, принципы многоканальной связи и разделения информации, радиодоступа к информационным системам и тенденции развития систем подвижной радиосвязи.
Для студентов высших учебных заведений.
По всем вопросам, связанным с приобретением книги, обращайтесь в издательский центр «Академия»
Тел./факс: (495) 648-05-06 (многоканальный), 616-00-22 (многоканальный),
616-00-29, 616-00-23 (магазин «Издательского центра «Академия»)