Куприянов А.И., Сахаров А.В. Радиоэлектронные системы в информационном конфликте (2003) (1186258), страница 75
Текст из файла (страница 75)
Кодируемая последовательность С(х) подается на вход кодера и вместе с этим поступает на выход ячейки Тз (это соответствует умножению многочлена С(х) на хт). За четыре такта сдвига происходит деление многочлена С(х)хз на многочлен р(х) = х~йх~Ю1. В результате в регистре записывается остаток, ™д 1 представляюший собой провероч- Т Т ы Т Выход 2 з ные символы.
Ключи К! и К2 пеК2 1 2 К1 ребрасываются в положение 2, и в течение трех следуюших тактов содержашиеся в регистре симво- Рпс. 19.3. КодеР Нп«лопес«ого «ода л ы поступают на выход кодера. с порог«да«пцам полппомом р(х) = хзшхгш1 От порождавшего полинома р(т) зависит корректируюшая способность кода, поэтому его выбор очень важен. Необходимо помнить, что степень порождаюшего многочлена должна быть равна числу проверочных символов. Обнаружение ошибок при использовании циклических кодов сводится к делению многочлена В *(х) = В(х) ч- е(х), соответствуюшего принятой комбинации, на р(х).
Если остаток г(х) оказывается равным нулю, то считается, что ошибки нет, в противном случае фиксируется ошибка. Полипом г(х) = [В(х)че(х)]пзод р(х) = е(х) глод р(х) (19. 29) зависит только от многочлена ошибок е(х) и играет ту же роль, что и вектор-синдром. Поэтому в принципе ошибки можно исправлять на Глава !9.
Помехозащита ралноснстеч передачи ннфорчаинн основе таблицы соответствий между е(х) и г(х), сохраняемой в памяти декодера, как при линейных нециклических колах. Однако свойство цикличности позволяет сушественно упростить процедуру деколирования. Один из распространенных алгоритмов исправления ошибок использует следуюшие свойства синдрома циклического кола. Если имеется циклический код с кодовым расстоянием И, исправляюший все ошибки вплоть до кратности ~ — ~ включительно (квадратные скоб- 2 и' — ! ки. как и прежде, обозначают целую часть отношения —, возмож- 2 ны следуюшие ситуации. Если искажены только провероч ые симво- (~ — 1 лы, то вес синдрома будет меньше или равен ~ —, а сам синдром 2 будет совпадать с вектором ошибок; если вектор оши ки искажает хотя бы один информационный символ, то вес синдрома будет больше с е( — 1) — ~; если г(х) — остаток от леления многочлена Ь(х) на р(х), то остатком от деления полинома Ь(х)х' на р(х) является многочлен г(х)х' глод р(х), иначе говоря, синлром некоторого циклического сдвига многочлена Ь(х) является соответствуюшим циклическим сдвигом синдрома исходного многочлена, взятого по модулю р(х), Работа алгоритма декодирования иллюстрируется схемой рис.
19.4 для кода с порождаюшим полиномом р(х) = хзшх~Ж!. Такой код имеет кодовое расстояние с(= 3. Он способен исправлять все олнократные ошибки. Рис. (9.4. Декодер циклического кода с иороисдииицим иолииомом р(х) = хзЮх~91 Принятая кодовая комбинация одновременно поступает в буферный регистр сдвига, служаший для ее запоминания и лля циклического сдвига, а также на устройство леления на чногочлен р(.х) для вычисления синлрома. В исходном состоянии ключ находится в положении 1. Пос- 19.2. Кодирование в помехозашншсннмх системах передачи информации 467 ле семи тактов принятая коловая комбинация оказывается полностью загруженной в буферный регистр, а в регистре устройства деления будет вычислен синдром.
Если вес синдрома больше 1, деколер начинает производить циклические сдвиги комбинации в буферном регистре при отсутствии новой комбинации на входе и олновременно вычислять их синдромы г(х)х' (тод р(х)) в устройстве деления. Если на некотором йм шаге вес синдрома окажется меньше 2, то ключ перехолит в положение 2, обратные связи в регистре деления разрываются. При последующих тактах ошибки исправляются путем подачи содержимого регистра деления на вход сумматора по модулю 2, включенного в буферный регистр.
После семи тактов работы декодера в автономном режиме исправленная комбинация в буферном регистре возвращается в исходное положение (информационные символы будут записаны в старшие разряды). К циклическим кодам относятся коды Хэмминга, которые являются примерами немногих известных совершенных кодов. При коловом расстоянии с(= 3 код исправляет все олиночные ошибки. Длина кода выбирается из условия 2" "=п, которое имеет простой смысл: число различных ненулевых синдромов равно числу символов в кодовой последовательности.
Так, существуют коды Хэмминга (2г — 1, 2г — г — !), в частности коды (7,4), (15,11), (31,26), (63,57) и лругие (20!. Ранее использованный в примерах многочлен р(х) =хзО~хзш! является порождающим для кода Хэмминга (7, 4). Для любых целых положительных чисел т и! < л/2 существует двоичный код БЧХ длины н = 2т — 1 с кодовым расстоянием с(> 2)ч-1, причем число проверочных символов и- 1)< и!. Относительно более простой является процедура мажоритарного декодирования, применимая для некоторого класса двоичных линейных, в том числе циклических колов.
Основана эта процедура на том свойстве этих кодаов, что у них каждый информационный символ можно несколькими способами вырази~ь через другие символы кодовой комбинации. Если для некоторого символа эти способы проверки дают неодинаковые результаты (одни дают результат О, а другие 1, что может быть только в случае ошибочного приема), то окончательное решение по каждому из информационных символов принимается по мажоритарному принципу, т.е. по большинству.
Декодеры мажоритарных колов выполняются на регистрах сдвига. Примером кода, допускающего мажоритарное декодирование, является уже рассмотренный выше циклический код (7,3). Мощные колы (т.с. коды с длинными блоками и большим кодовым расстоянием с() можно строить, объединяя несколько коротких 468 Глава !9. Помехозащита радиосистем передачи информации колов. Так строится, например, итеративный код из двух линейных систематических кодов (ггн ггг) и (л,, ггг).
Вначале сообщение кодируется кодом первой ступени (ло хг). Кодированная последовательность разбивается на блоки по кг символов. Эти символы считаются информационными для кода второй ступени. При кодировании на второй ступени к каждому блоку из ггг информационных символов приписываются лз — ггз проверочных. В результате получится блок, содержащий л,иг символов, из которых гггггг являются информационными.
Процесс формирования кода можно пополнить третьей итерацией, четвертой и т.л. При деколировании обнаруживают и исправляют ошибки кажлого блока. Сначала первой ступени, затем — второй и т.л. При этом исправляются только те ошибки, которые не были исправлены кодом первой ступени. Минимальное кодовое расстояние лля лвумерного итеративного кода равно произведению минимальных кодовых расстояний для кодов первой и второй степеней, т.е. гг'=аггггг. На итеративный код похож каскадный код. но между ними имеется существенное различие. Первая ступень кодирования в каскадном коде осуществляется так же, как в итеративном. После того, как сформированы Ь, блоков кода первой ступени (внугреннего), каждая последовательность из ггг двоичных (информационных) символов внутреннего кола рассматривается как один символ нелвоичного кола 2-й ступени (внешнего).
Основание этого кода и= 2'г К этим символам приписывается х еше лг — йг проверочных символов иг-ичного кола, также в виде строк ллиной ль К кажлой из этих строк приписываются двоичные проверочные символы в соответствии с внутренним кодом лг, ггг. В процессе приема сначала декодируются (с обнаружением или исправлением ошибок) все блоки внутреннего кода, а затем декодируется блок внешнего лг-ичного кола (ль ггг), причем исправляются ошибки, оставшиеся после декодирования внутреннего кода. В качестве внешнего кола используют обычно лг-ичный код Рида — Соломона, обеспечивающий наибольшее возможное гг' при заданных лз и хг, если лг< иг. Сверточный код — это линейный рекуррентный код. В общем случае он образуется следующим образом.
В кажлый гзй тактовый момент времени на вход кодирующего устройства поступает гга символов сообщения: слсш..сь . Выходные символы Ь,гЬл..,Ь» формируются по рема 'о куррентному правилу из символов сообщения, поступивших в данный и в предшествующие тактовые моменты времени. Величина А называется длиной кодового ограничения. Она показывает, на какое максимальное число выходных символов влияет ланный информационный 19.2.
Кодирование в помехозащншенных системах передачи информации 469 символ. Эта величина играет для сверточного кода ту же роль, что и ллина блочного кода. Сверточный код имеет избыточность у = 1 — /го/ла. Обозначение такого кола (/ге/ло). Кодер сверточного кода может быть реализован с помощью слвигаюшего регистра и сумматоров по модулю 2. Кодируюшее устройство, выполненное по схеме рис.
19.5, на кажлый символ сообщения вырабатывает два символа выходной последовательности, которые по очереди подаются на выход через коммутатор. Выходные символы формируются в результате линейного преобразования входного ин- и д в формационного символа и ком- с т, т, т, бинации, записанной в первых е двух разрядах регистра.