Системы, сети и устройства телекоммуникаций
УДК 621.396
РАЗРАБОТКА АЛГОРИТМОВ ДИАГНОСТИКИ СВЕРТОЧНЫХ КОДОВ
Корнеева Наталья Николаевна
старший преподаватель кафедры радиотехники и радиосистем. ФГБОУ ВО «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых».
E-mail: [email protected]. Никитин Олег Рафаилович доктор технических наук, профессор, заведующий кафедрой радиотехники и радиосистем.
ФГБОУ ВО «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых».
E-mail: [email protected]. Полушин Петр Алексеевич доктор технических наук, профессор кафедры радиотехники и радиосистем.
ФГБОУ ВО «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых».
E-mail: [email protected]. Адрес: 600000, г. Владимир, ул. Горького, 87.
Аннотация: Рассмотрены и исследованы алгоритмы диагностики сверточных кодов. Определены их достоинства и недостатки. Рассмотрены пути практической реализации каждого из алгоритмов. На основе проведенного анализа выбран лучший алгоритм диагностирования сверточных кодов. Ключевые слова: сверточное кодирование, помехоустойчивость передачи информации, «поисковые» полиномы, порождающие полиномы.
Постановка задачи
В настоящее время при передаче цифровых сигналов широко используется помехоустойчивое кодирование ^ЕС), которое дает возможность исправлять значительное число ошибок, возникающих в каналах передачи сигналов. Это возможно при внесении избыточных символов, определенным образом связанных с передаваемыми информационными символами. Закон, по которому формируются избыточные символы, и определяет используемый метод кодирования.
Применяется множество различных методов кодирования и их модификаций, однако почти все они относятся к одному из двух классов - к сверточному кодированию и к блоковому кодированию ([1-5]). Для успешного декодирования и исправления ошибок на при-
емной стороне должны быть известны параметры кодера, например, вид порождающего полинома, порождающей матрицы, и т.п. Однако возможны ситуации, когда структура кодера неизвестна, например, в результате утери соответствующей информации, ее частичном повреждении, либо при недостаточно оперативном оповещении приемной стороны о смене передающей стороной параметров кодера.
При этом возможны две ситуации. Если используется систематический код, то, хотя возможно выделение информационной последовательности, однако исправление ошибок невозможно, что значительно снижает помехоустойчивость передачи, как правило, значительно ниже допустимых норм. Если же используется несистематический код, то выделение информационной последовательности и исправление
ошибок принципиально невозможно. При этом наступает полный срыв связи.
Однако, обеспечить требуемую помехоустойчивость возможно за счет того, что принимаемые кодовые символы обладают определенными внутренними связями. После соответствующей процедуры диагностики информация о структуре кодера восстанавливается, и помехоустойчивость обеспечивается. Данная статья посвящена возможностям и путям построения диагностических процедур для свер-точных кодов.
Теоретическая часть
Рассмотрим некоторые алгоритмы диагностики сверточных кодов и оценим особенности возможной их реализации. Будем считать, что перфорация кодовой последовательности не производится.
Все алгоритмы диагностики построены по единому принципу. Будем рассматривать основную сгенерированную кодовую последовательность и0 как совокупность q частных кодовых последовательностей: u1^uq=g1m^gqm, где g1^gq порождающие полиномы; т полином исходной информационной последовательности двоичных символов
т(Х)=т0+т ^Х+т2Х2+т3Х3+_+т1Х'+_, где символы т; принимают значения, равные либо 1, либо 0 в зависимости от передаваемой информации; Х - оператор, описывающий задержку по времени на интервал Т длительности одного символа (Х2 означает задержку по времени на 2Т, Х означает задержку на 3Т, и т.д.).
Используют некоторые «поисковые» полиномы ^ вид которых в процессе диагностики изменяется. Преобразования различающихся исходных частных последовательностей символов и1 ^ ид в результате должны формировать одинаковую выходную последовательность т. Если это достигнуто, то задача диагностики решена. По достижению вышеизложенной цели эти полиномы отождествляются с искомыми порождающими полиномами g1 и gq.
Рассмотрим кодовую скорость ^=1/2 (кодер генерирует две частные кодовые последова-
тельности: и^Х^^Х^т^У) и и2(Х^2(Х)т(Х)), из которых составляется общая кодовая последовательность. Диагностика возможна с помощью различный алгоримов.
Алгоритм 1. При осуществлении операций этого алгоритма осуществляется двоичное деление частных кодовых последовательностей и1(Х) и и2(Х) на некоторые «поисковые» полиномы ^(Х) ^(Х), в результате получаются последовательности:
У1(Х)=и1(Х)^1(Х)=ЫХ)^1(Х)]т(Х), у2(Х)=и2(да2(Х)=ЫХ)^2(Х)] т(Х). (1) При осущебствлении алгоритма вид полиномов ^(Х) и ^(Х) независимо изменяется, и, естественно, при этом меняются и последовательности у1 и у2. Когда при этом символы последовательностей у1(Х) и у2(Х) станут совпадать, то при условии одинакового значения порядков «поисковых» и искомых полиномов, будет совпадать вид «поисковых» полиномов ^(Х), h2(X) и вид искомых порождающих полиномов g1(X), g2(X), т.е.: h1(X)=g1(X) и h2(X)=g2(X).
Алгоритм 2. При осуществлении операций этого алгоритма обрабатывается одна из частных кодовых последовательностей. (Номер последовательности принципиального значения не имеет, будем рассматривать первую последовательность u1(X)). Другая последовательность при этом не изменяется.
Первая последовательность подвергается операции h2(X)/h1(X), т.е., двоичному умножению на полином ^(А') и двоичному делению на полином (порядок осуществления этих
операций также значения не имеет). Фактически, умножение на полином является повторным сверточным кодированием последовательности в соответствии с порождающим полиномом h2(X).
В результате формируется последовательность символов:
Уl(X)=[h2(X)/hl(X)]ul(X)= =[h2(X)/hl(X)]gl(X)m(X ). (2) Она сравнивается с неизмененной второй последовательностью y2(X)=g2(X)m(X). Случай их совпадения соответствует соблюдению ра-
венства: что при зара-
нее известном кодовом ограничении определяет соблюдение равенств: ^(Х^^Х); h2(X)=g2(X).
Алгоритм 3. При осуществлении операций этого алгоритма каждая из частных кодовых последовательностей щ(Х) и ^(Х) домножает-ся на «поисковые» полимомы ^(Х) и ^(Х), то есть осуществляется повторное сверточное кодирование в соответствии с этими порождающими полиномами.
При этом формируются последовательности символов: у^Х^^и^Х^С^ХМХ), и У2(X)=h2(X)u2(X)=h2(X)g2(X)m(X). Производится поиск вида полиномов ^(Х) и ^(Х) до тех пор, пока символы последовательностей у1(Х) и у2(Х) не станут совпадать. Такое возможно, если выполняется условие:
Ь(^1(Х)^2(^2(Х), или и
h2(X)=gl(X). При этом yl(X)=g2(X)gl(X)m(X), и У2(Х^1(Х^2(Х)т(Х). Поскольку
g1(X)g2(X)=g2(X)g1(X), то независимо от значения символов последовательности т(Х) будет выполняться равенство у1(Х)=у2(Х).
При внешнем сходстве рассмотренные алгоритмы имеют существенные различия в практическом осуществлении, определяющем их достоинства и недостатки. Алгоритмы 1 и 2 включают операцию двоичного деления. Ее стандартная реализация осуществляется несколько сложнее, чем сверточное кодирование (поразрядное умножение по модулю 2). Алгоритм 2 требует двух последовательных операций (умножение и деление), что затрудняет параллелизацию вычислений. В этих условиях алгоритм 3 обладает преимуществами.
Рассмотрим применение вышеописанных алгоритмов. При этом, в соответствии с алгоритмом 1, вид поисковых полиномов будет совпадать с видом искомых порождающих полиномов, если выполняются равенства, аналогичные (1):
иА1=и2^2=...=иД9, (3)
т.е. все символы с одинаковыми номерами из новых последовательностей у^у^ которые образованы двоичным делением частных ко-
довых последовательностей ^^^ на соответствующие полиномы должны совпадать.
Могут быть предложены различные пути практического осуществления алгоритма. Один из них состоит в том, что все q частных кодовых последовательностей разбиваются на пары, и для всех пар по отдельности определяется вид «поисковых» полиномов в соответствии с алгоритмом для кодовой скорости Д=1/2.
Другой путь заключается в том, что выбирается одна из частных кодовых последовательностей (скажем, последовательность щ), и пары составляются поочередным включением в них этой выбранной кодовой последовательности и остальных q-1 частных кодовых последовательностей ^^^ .
Представляет интерес более быстрый путь поиска вида порождающих полиномов. Первоначально на основе анализа какой-либо пары частных кодовых последовательностей (скажем, ^ и определяются «поисковые» полиномы ^ и Далее учитывается тот факт, что любое из q равенств m(X)=u1(X)/g1(X), /=1^ можно переписать в виде: g1(X)=u1(X)/m(X). После определения вида порождающих полиномов gl=hl и g2=h2 «автоматически» оказывается определенным и вид исходной информационной последовательности m. Поэтому уже эту полученную последовательность можно использовать для непосредственного простого вычисления всех остальных порождающих полиномов, минуя длительную процедуру поиска их вида.
При сравнении свойств изложенных путей реализации алгоритмов можно прийти к следующим выводам. Первый путь представляется более привлекательным, чем второй. Во втором пути при неудачном выборе частной кодовой последовательности, которая включается во все пары или ошибки при нахождении вида g1, могут возникнуть ошибки при определении вида и остальных порождающих полиномов g2^gq.
Однако время решения диагностической задачи по второму пути значительно короче.
Действительно, если длина кодового ограничения равна К, то для каждой пары по первому пути возможно 2Кх2К=22К вариантов сочетаний различных поисковых полиномов. С учетом того, что нужно перебрать q/2 пар, общее число исследуемых вариантов полиномов будет составлять N1=(q22K)/2.
А по второму пути число вариантов сочетаний первой пары равно 22К. При поиске вида остальных порождающих полиномов исследуется только один полином в паре (т.к. вид другого полинома уже известен). Количество вариантов в этом случае будет равно 2К. Таким образом, общее число исследуемых вариантов будет равно Н2=22К+(д-2)2К. Нетрудно убедиться, что N2«^.
При использовании третьего пути время анализа сокращается в еще большей степени. Вначале на основе двух последовательностей (пусть ^ и определяется вид двух «поисковых» полиномов ^ и h2 последовательности m. Затем производится деление оставшихся последовательностей на m. Поскольку раньше сравнение получаемых последовательностей у1^уд происходило также после деления соответствующих полиномов, то число операций по рассматриваемому третьему пути будет равно: Nз=22K+(q-2), очевидно, что N^<N2.
Платой за ускорение операции анализа по второму и третьему пути будет увеличение возможности ошибочной диагностики. При неправильном определении хотя бы одной составляющей «поискового» полинома ^ по последовательности щ частично неправильными будут и все остальные «поисковые» полиномы,
Поступила 11 августа 2015 г.
определенные на его основе. При использовании третьего пути вероятность неправильной диагностики будет еще выше, так как сюда добавляется возможность неправильного восстановления последовательности т.
Выводы
1. Рассмотрены возможности диагностики сверточных кодов, основанные на определении совпадающих полиномов в частных последовательностях общей кодовой последовательности.
2. Предложены различные алгоритмы обработки кодовых сигналов, основанные на этом принципе.
3. Проанализированы сравнительные возможности предложенных алгоритмов.
Литература
1. Скляр Б. Цифровая связь. Теоретические основы и практическое применение/ пер. с англ. - М.: Изд. дом "Вильямс", 2003. - 1104с.
2. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. - М.: Техносфера, 2006. - 320 с.
3. Полушин П.А., Самойлов А.Г. Избыточность сигналов в радиосвязи. - М.: Радиотехника, 2007. -256 с.
4. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки. - М.: Мир, 1976. - 593 с.
5. Никитин О.Р., Полушин П.А., Белов А.Д., Бессмертный М.Ю. О возможности определения параметров кодера по принимаемому цифровому сигналу / Материалы МНТК «Радиоэлектронные устройства и системы для инфокоммуникационных технологий - РЭУС-2015» (REDS-2015), Москва, 2015. - С. 61-63.
English
Algorithm development of convolutional codes diagnosis
Natalya Nikolaevna Korneeva - Senior Teacher Radio Engineering&Radio Systems Department Vladimir State University named after Alexader and Nickolay Stoletovs.. E-mail: [email protected].
Oleg Rafailovich Nikitin - Doctor of Engineering, Professor Department Head Radio Engineering and Radio Systems Department Vladimir State University named after Alexader and Nickolay Stoletovs.
E-mail: [email protected].
Pyotr Alekseevich Polushin - Doctor of Engineering, Professor Radio Engineering and Radio Systems Department Vladimir State University named after Alexader and Nickolay Stoletovs.
E-mail: [email protected].
Address: 600000, Vladimir, Gorkiy str., 87.
Abstract: Nowadays problems of decoding and error correction remain actual, despite a large number of existing codes. One of the most widespread codes is convolutional coding. It is known that it is necessary to know coder parameters for successful signal recovery in receiving end. In case when these data are missing original signal recovery is not possible. Diagnosis enables to recover coded digital signals even in case of missing or loss of parameters coder information and to decode a signal with error correction that significantly increases information transfer noise stability. Three algorithms for convolutional codes diagnosis are proposed and investigated. Algorithms are examined for different code rates and especially for code rate R=1/2.
All algorithms are based on defining matching polynoms in separate sequences of general code sequence. The first algorithm of diagnosis consists in implementation of binary division of private code sequences into search polynoms. When examining the second algorithm processed separate code sequence (any) is exposed to binary division into "its search" polynom and into binary multiplication by polynom of other separate code sequence. The third algorithm implies that each of separate code sequences is multiplied then by "search" polynoms (that is, convolutional coding is repeated according to these generating polynoms). Various ways of practical application of proposed algorithms for convolutional codes diagnosis are examined.
One of the ways involves splitting all separate code sequences into pairs and defining pairs type of "search" polynoms. The other way implies that one of separate code sequences is selected and pairs are formed through successive engagement of this selected code sequence in them. Any separate code sequences pair is analyzed and their "search" polynoms are defined when we consider the third way. Type of partial original information sequence is defined "automatically" after generating polynoms type is defined. Therefore already obtained sequence can be used for direct calculation of all other generating polynoms without long procedure for searching their type.
Key words: convolutional coding, noiseproof information transmission, "search" polynoms, generating polynoms.
References
1. Sklar B. Digital Communications: Fundamentals and Applications. - transl. from English - M.: Publ. house "Williams", 2003. - 1104p.
2. Morelos-Zaragoza R. The Art of Error Correcting Coding. Methods, algorithms, application. - M.: Tekhnosfere, 2006. - 320 p.
3. Polushin P. A., Samoylov A. G. Signals redundancy in radio communication. - M.: Radiotekhnika, 2007. - 256 p.
4. Peterson W., Weldon E. Error-correcting codes. - M.: Mir, 1976. - 593 p.
5. Nikitin O. R., Polushin P. A., Belov A.D., Beesmrtny M. Yu. On possibility to define coder parameters by received digital signal. - Materials ISTC "Radio-electronic devices and systems for information communication technologies - REUS-2015" (REDS-2015), Moscow, 2015. - P. 61-63.