Куприянов А.И., Сахаров А.В. Теоретические основы радиоэлектронной борьбы (2007) (1186259), страница 58
Текст из файла (страница 58)
У полинома С(х)хм н коэффициенты при К старших членах совпадают с коэффициентами С(х), а коэффициенты при %- )е равны нулю, т, е. совокупность М коэффипиентов это число, равное передаваемому сообщению, увеличенное на де-)г порядков. Остаток от деления г(х) имеет степень не выше еу — й. Таким образом, коэффициенты при )е старших членах полинома С(х)хл" 9 г(х) — это информационные символы, совпадающие с символами кодируемого сообщения, а при еу-)е младших— проверочные символы. Эти свойства полиномов подсказывают схемотехнические приемы построения кодеров циклического кода. Для примера на рис. 16.3 приведена схема кодера для кода с порождающим многочленом Р(х) =х.
йехз91. Триггеры Т1, Т2 и Т3 образуют регистр сдвига. В исходном состоянии ключи К! и К2 находятся в положении!. Кодируемая последовательность С(х) подается на вход кодера и вместе с этим поступает на выход ячейки Т3 (это соответствует умножению многочлена С(х) на хз). За четыре 3(б Гппва (6. Вомехозансиоа раднососгаем передача вн4орнаини такта слвига происходит деление многочлена С(х)хз на многочлен р(х) = = хзЮх'Ю 1. В результате в регистре записывается остаток.
представляющий собой проверочные символы. Ключи К) и К2 перебрасываются в положение 2. н в течение трех следующих тактов содержащиеся в регистре символы поступают на выход колера. Вх 1 те„Выход К1 Ряс 16.3 Кодер Мнкпнвеского кода с пора,нсдаюмкн попнномом р(х) =хзгдха В! От порождаюгдего полинома р(х) зависит корректирующая способность кода. поэтому его выбор очень важен. Необходимо помнить.
что степень порожлающего многочлена должна быть равна числу проверочных символов. Обнаружение ошибок при использовании циклических кодов сводится к делению многочлена В*(х) = В(х) ч- е(х), соответствующего принятой комбинации. на р(х). Если остаток г(х) оказывается равным нулю, то считается, что ошибки нет, в противном случае фиксируется ошибка. Полином г(х) = ! В(х) + е(л)] той р(х) = е(.х) тос) р(л) (16.29) зависит только от многочлена ошибок е(х) и играет ту же роль, что и вектор-синдром. Поэтому в принципе ошибки люжно исправлять на основе таблицы соответствий между е(х) и «(х), сохраняемой в памяти лекодера, как при линейных нециклических кодах. Однако свойство цикличности позволяет существенно упростить процедуру декодирования.
Один из распространенных алгоритмов исправления ошибок использует следующие свойства синдрома циклического кода. Если имеется циклический код с кодовым расстоянием 4, исправляющий все ошибки 1 ~-~1 вплоть до кратности ~ — ~ включительно (квадратные скобки, как и 2 с( — 1 прежде. обозначают целую часть отношения ) возможны следуюьцпе 2 ситуации. Если искажены только проверочные символы, то вес синдрома ~В-(( б>дет меньше или равен ~ ~, а сам синдром булст совпадать с векто- 2 ром ошибок; если вектор ошибки искажает хотя бы один информацион- (В-Л ный символ, то вес синдрома будет больше ~ ~; если г(х) — остаток 2 3!7 76.2.
Кодирование а помехозащищенных РС!)И от деления многочлена Ь(х) на р(х), то остатком от деления полинома д(х)лг на р(х) является многочлен г(х)л' спой р(х), иначе говоря, синцром некоторого циклического сдвига леногочлена Ь(х) является соответствующим циклическим сдвигом синлрома исходного многочлена, взятого по модулю р(х). Работа алгоритма декодирования иллюстрируется схемой рис. 16.4 лля кода с порождающим полиномом р (х) =х-'Ю х" 9!.
Такой код имеет кодовое расстояние д=3. Он способен исправлять все однократные ошибки. Рис. !6.4. Декодер циклического кода с пороаедающим по ~акимом р(х) = хочгх чг! Принятая кодовая комбинация одновременно поступает в буферный регистр сдвига, служащий для ее запоминания и для циклического сдвига, а также на устройство деления на многочлен р(х) для вычисления синдрома. В исходном состоянии ю!юч находится в положении 1. После семи тактов принятая кодовая комбинация оказывается полностью загруженной в буферный регистр, а в регистре устройства деления будет вычислен синдром.
Если вес синдрома больше 1, декодер начинает производить циклические сдвиги комбинации в буферном регистре при отсутствии новой комбинации на входе и одновременно вычислять их синдромы е(х)х'гпое) р(л) в устройстве деления. Если на некотором гзм шаге вес синдрома окажется меньше 2, то ключ переходит в положение 2, обратные связи в регистре деления разрываются. При последуюших тактах ошибки исправляются путем подачи содержимого регистра деления на вход сумматора по модулю 2. включенного в буферный регистр. После семи тактов работы декодера в автономном режиме исправленная комбинация в буферном регистре возвращается в исходное положение (информационные символы будут записаны а старшие разряды).
К циклическим кодам относятся коды Хэмминга, которые являются примерами немногих известных совершенных кодов. Они имеют кодовое расстояние д= 3 и исправляют все одиночные ошибки. Длина кода выбирается из условия 2'ч к= гч', которое имеет простой смысл: число различных 3!Х раааа /о //омехозащигпа радиосисеаем передачи ииформааии ненулевых синдромов равно числу символов в кодовой последовательности. Так, существуют колы Хэмминга (2"-1, 2'- г-!), в частности коды (7, 4), (16, 1!), (31, 26), (63, 57) и другие (26!.
Ранее использованный в примерах многочлен р(х).=хзйх-чи1 является порождающим для кода Хзмминга (7, 4). Известно, что для любых целых положительных чисел ш и /< //72 существует двоичный код БЧХ длины /ч'=2 -1 с кодовым расстоянием г/> 2/-ь 1, причем число проверочных символов %-/с< ш/. Относительно более простой является процедура мажоритарного декодирования, применимая д.ш некоторого класса двоичных линейных, в том числе циклических колов. Основана эта процедура на том своЙстве этих кодов, что у них каждый информационный символ можно несколькими способами выразить через другие символы кодовой комбинации, Если для некоторого символа зти способы проверки дают неодинаковые результаты (одни дают результат О, а дру~ие — 1, что может быть только в случае ошибочного приема), то окончательное решение по каждому из информационных символов принимается по мажоритарному принципу, т.
е, по большинству. Деколеры мажоритарных кодов выполняются на регистрах сдвига. Примером кода. допускающего мажоритарное декодирование, является уже рассмотренный выше циклический код (7, 3). Мощные коды (т. е, коды с длинными блоками и большим кодовым расстоянием д) можно строить, объединяя несколько коротких кодов. Так строится, например, итеративный код из двух линейных систематических кодов (/ч/н /с,) и (Лм /сз).
Вначале сооб1цение копируется кодом первой ступени (/Уь А,). Кодированная последовательность разбивается на блоки по /сз символов. Эти символы считаются информационными для кода второй ступени. При кодировании на второй ступени к каждому блоку из Ры информационных символов приписываются /ч/з — /сз проверочных. В результате получится блок, содержащий Д1, Гчз символов, из которых /сфз являются информационными. Процесс формирования кода можно дополнить третьей итерацией, четвертой и т.
д. При декодировании обнаруживают и исправляют ошибки каждого блока — сначала первой ступени, затем— второй. При этом исправляются только те ошибки, которые не были исправлены кодом первой ступени. Минимальное кодовое расстояние для двумерного итеративного кода равно произведению минимальных кодовых расстояний лля кодов первой и второй степеней, т, е. с/= д,с/ь На итеративный код похож каскадный код. но между ними имеется существенное различие. Первая ступень кодирования в каскадном коле осуществляется так же, как в итеративном. После того как сформированы 111 блоков кола первой ступени (внутреннего), каждая последователь- (6.2. КоДирование в номехозан!военных РСПИ 3!9 ность из К, двоичных (информационных) символов внутреннего кода рассматривается как один символ недвоичного кода 2-й ступени (внешнего!.
Основание этого кода и=2, К этим симводам приписывается еще Мз-Ф, К! проверочных символов оьичного кода. также в виде строк длиной Юь К каждой из этих строк приписываются лвоичные проверочные символы в соответствии с внутренним кодом Мн Кг В процессе приема сначала декодируются (с обнаружением или исправлением ошибок) все блоки внутреннего кода, а затем декодируется блок внешнего ньичного кода (Мм (гз), причем исправляются ошибки. оставшиеся после декодирования внутреннего кода.
В качестве внешнего кода используют обычно ньичный код Рида — Соломона, обеспечивающий наибольшее возможное Н при заданных )Уз и Ь, если Фзс оь Сверточный код — это линейный рекуррентный код. В общем случае он образуется следующим образом. В каждый Ьй тактовый момент времени на вход кодируюшего устройства поступает Ко символов сообщения: сд сд ... сдв. Выходные символы Ьд Ьд ... Ь„щ формируются по рекуррентному правилу из символов сообщения, поступивших в данный и в предшествующие тактовые моменты времени.
Величина Ко называется длиной кодового ограничения. Она показывает, на какое максимальное число выходных символов влияет данный информационный символ. Эта величина играет для сверточного кода ту же роль, что и длина блочного кода. Сверточный код имеет избыточность т=! — КоУДГо. Обозначение такого кода (Корпо).
Кодер сверточного кода может быть реализован с помощью сдвигавшего регистра и сумматоров по модулю 2. Кодируюшее устройство, выполненное по схеме рис. 16.5; на каждый символ сообщения вырабатывает два символа выходной последовательности, которые по очереди подаются на выхол через коммутатор, Выходные символы формируются в результате линейного преобразования входного информационного символа и комбинации, записанной в первых двух разрядах регистра.
Связь между ячейками сдвигаюшего регистра и сумматорами по модулю 2 удобно описывать порождающими полиномами Цу(х), у'в 1: Ф. Для конкретного примера кодера рис. 16.5 О,(х) =хам 1 описывает связи верхнего сумматора и Цз(х) = х 9х но 1 описывает связи нижнего сумматора. Наличие члена х', ! = 0,1,2, ... в порождающем многочлене означает, что (1+1)-й разряд регистра сдвига соелинен с сумматором. Нумерация разрядов регистра — слева направо, Сверточный код получается систематическим, если в каждый тактовый момент Ко выходных символов совпадают с символами сообщения. На практике обычно используются несистематические сверточные коды, 320 Гааео РЬ Помехозащита радиосистем передачи илформации од Вх Рис !6.5. Кодер сеерточного кода т 1д =) з; [г [с[) = сопэг(с'), в (16.30) Сверточные коды могу~ обладать свойством прозрачности.