Книга
Книга
THRESHOLD DECODING
JAMES L. MASSEY
THRESHOLD DECODING
JAMES L. MASSEY
БИБЛИОТЕКА СБОРНИКА „МАТЕМАТИКА*
Дж. МЕССИ
ПОРОГОВОЕ
ДЕКОДИРОВАНИЕ
Перевод с английскогоЮ. Л. САГАЛОВИЧА
Под редакцией
э. л. блоха
ИЗДАТЕЛЬСТВО <МИР»Москва 1966
УДК 621.391.015
Книга посвящена практически важному методу декодирования, основанному на выборе ортогональных проверок. Большая ее часть отведена исследованию применимости метода порогового декодирования к сверточным кодам. Далее исследуется применение порогового декодирования к блочным кодам и описываются различные схемы декодирования. Приводятся численные результаты исследования кодов, декодируемых с помощью порогового алгоритма.
Книга представляет интерес для научных работников и инженеров, занимающихся теорией кодирования и теорией связи, для математиков, интересующихся приложениями своей науки, и военных специалистов. Она вполне доступна также аспирантам и студентам старших курсов университетов, энергетических институтов и институтов связи.
Редакция литературы по математическим наукам
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
Основным препятствием на пути широкого практического применения кодов, исправляющих любые сочетания ошибок кратности /4 t на интервале заданной длины гц является сложность декодирования при больших значениях п и т.
В ряде случаев эта сложность связана с тем, что число операций (или, что одно и то же, объем памяти), которое требуется выполнить при декодировании, экспоненциально увеличивается с ростом п. Этот недостаток характерен для метода декодирования любых случайных кодов (в том числе и групповых). Другие методы декодирования требуют выполнения весьма сложных, с трудом поддающихся автоматизации вычислений, последовательность которых определяется громоздкой логической схемой. Этим недостатком обладает алгоритм Питерсона для декодирования кодов Боуза — Чоудхури.
Именно поэтому в последнее время внимание многих исследователей обращено на разработку методов декодирования, допускающих автоматизацию с помощью реально осуществимого (по объему и быстродействию) оборудования. Таким образом, задача построения оптимальных и близких к ним кодов вытесняется задачей построения кодов с простым алгоритмом декодирования, обеспечивающих вместе с тем достаточно хорошее использование избыточности.
Одним из наиболее перспективных в этом отношении является весьма интенсивно развиваемое направление, известное в литературе по теории кодирования как последовательное декодирование.
Разработанное впервые Возенкрафтом и Рейффе- ном 9 и усовершенствованное в дальнейшем другими авторами последовательное декодирование является асимптотически оптимальным (в смысле Шеннона), причем число операций, необходимое в среднем для декодирования одного символа, пропорционально величине п. Однако алгоритм последовательного декодирования (а значит, и требуемая для его реализации аппаратура) все еще остается довольно сложным. Это заставляет искать новые, более простые методы декодирования. Исследованию одного из таких методов, по-видимому, предельно простого, посвящается предлагаемая читателю книга Месси. В ней описываются коды (главным образом непрерывные), для которых существуют так называемые разделенные или ортогональные проверки.
Ортогональные проверки и идея их использования состоят в следующем. Предположим, что для каждого символа at кодовой последовательности можно составить s проверочных соотношений типа
at = Fy (а a jy^ ..., а(1)
V ;1;2Зкх)
при условии, что
а равенство ^ = ]г^ имеет место только тогда, когда v = ц и р = г. Это значит, что любой символ a‘w*al входит не более чем в одно из соотноше- Jp
ний (1), называемых разделенными или ортогональными проверками, а символ at не входит в правую часть ни одной из этих проверок.
Добавим к разделенным проверкам (1) тривиальное соотношение
а( = at(2)
и при декодировании будем определять символ at из s + 1 уравнений (1) и (2), в правую часть которых
9 Возенкрафт Дж., Рейф фен Б., Последовательное декодирование, ИЛ, М., 1963.'
подставляются принятые кодовые символы (некоторые из них искажены помехами). Из свойств ортогональных проверок следует, что искажение t кодовых символов может привести к искажению результатов jie более чем / проверок.
Таким образом, при наличии t ошибок среди п символов, участвующих в декодировании символа а^ символ щ будет правильно определен не менее чем в s — / + 1 случаях. Последнее соображение позволяет при декодировании символа at применить мажоритарный принцип, т. е. определять at «по большинству голосов». Это обеспечивает правильное декодирование символа at во всех случаях, когда 2/^s.
Для линейных кодов соотношения (1) являются линейными [над полем GF(q^ и техническое осуществление мажоритарного декодирования выполняется предельно просто. Схема, реализующая мажоритарное декодирование символа а^ содержит мажоритарный элемент (т. е. устройство, осуществляющее выбор at «по большинству голосов»), сумматоры и устройства умножения элементов поля GF(q), причем для двоичных кодов устройства умножения ненужны.
Впервые мажоритарное декодирование было использовано для декодирования кодов Рида—Малле- ра. Однако этот метод не нашел широкого практического применения, поскольку для каждого символа кода необходимо реализовать свою систему ортогональных проверок.
Широкие перспективы перед мажоритарным декодированием открылись только тогда, когда была показана возможность его применения к некоторым классам блоковых циклических и сверточных непрерывных кодов. Для этих кодов при сдвиге (в случае блоковых кодов — циклическом) система ортогональных проверок для символа at переходит в систему ортогональных проверок для символа а^. Поэтому схема мажоритарного декодирования для одного символа может быть использована для последовательного декодирования (один за другим) всех символов кода.
Существенным достоинством мажоритарного декодирования является также и то, что, кроме всех ошибок кратности ^^[у] ’ исправляется и некоторая часть ошибок более высокой кратности.
Кроме того, при незначительном изменении мажоритарного устройства можно часть корректирующей способности кода использовать для обнаружения (а не только для исправления) ошибок или наряду с ошибками исправлять также и стирания кодовых символов.
Вместе с тем необходимо отметить, что все известные коды, допускающие мажоритарное декодирование (как блоковые циклические, так и сверточные непрерывные), не являются асимптотически оптимальными, т. е. при фиксированной скорости передачи вероятность ошибки не может быть сделана сколь угодно малой (за счет увеличения п).
Однако при сравнительно большом п (д « 100— 500) некоторые из этих кодов еще близки к оптимальным. При таких значениях п коды, исправляющие ошибки, являются достаточно эффективными. Поэтому можно утверждать, что уже полученные результаты, относящиеся к мажоритарному декодированию, представляют большой практический интерес.
Большая часть книги Месси посвящена подробному описанию, построению и исследованию сверточных непрерывных кодов, допускающих мажоритарное декодирование. В ней приводятся оценки, характеризующие качество таких кодов, и рассматриваются различные методы их построения.
Одним из главных недостатков многих методов декодирования непрерывных кодов является эффект так называемого «размножения» ошибок. Автор уделяет ему достаточно внимания и указывает некоторые меры борьбы с этим недостатком.
Весьма важным и интересным является предложенное автором обобщение мажоритарного декодирования, при котором символ at определяется не простым «голосованием», а «голосованием» с весом, при-
чем весовые множители зависят от статистики ошибок.
Применение вероятностных критериев, достаточно просто реализуемых при использовании ортогональных проверок, позволяет более полно использовать статистические свойства канала. Последнее особенно важно для каналов с переменными параметрами.
Для двоичного кода реализация указанного метода, равно как и мажоритарного декодирования, сводится к использованию некоторого порогового устройства. Поэтому автор использовал общее название порогового декодирования как для обоих этих методов, так и для всей книги.
Две главы книги Месси посвящены описанию мажоритарного (или порогового) декодирования применительно к блоковым кодам. В отличие от непрерывных кодов, исследование которых отличается исключительной полнотой и содержит много интересных и важных результатов, блоковые коды исследованы в книге Месси значительно менее подробно. Однако и для блоковых кодов автор получил важные результаты.
Во-первых, ему удалось показать возможность построения систем мажоритарных проверок, полностью реализующих кодовое расстояние, не для отдельных конкретных кодов, а для целого класса — кодов максимальной длины.
Во-вторых, введенный автором процесс ортогонализации в L шагов представляет принципиальное обобщение метода мажоритарного декодирования применительно к блоковым кодам. Этот вопрос не нашел сколько-нибудь полного разрешения в книге Месси, но можно ожидать, что дальнейшие исследования в этом направлении существенно расширят класс блоковых кодов, к которым можно будет применить методы мажоритарного декодирования.
Месси не рассматривал методов построения блоковых кодов, допускающих мажоритарное декодирование. Единственные результаты в этом направлении получены в Советском Союзе В. Д. Колесником и Е. Т. Мирончиковым. Они изложены в диссертациях
авторов in их совместной статье «Некоторые циклические коды и схема декодирования по большинству проверок» 1).
Предложенные достаточно общие методы построения блоковых циклических кодов, допускающих мажоритарное декодирование, использованы для построения большого числа конкретных кодов. Системы разделенных проверок для сумм некоторых символов, являющиеся основой ортогонализации в.Ь шагов, также рассмотрены Мирончиковым и Колесником при совершенно ином подходе к решению задачи. Авторы указали некоторые способы построения кодов, для которых существуют такие системы проверок. Наконец, введенные ими «связанные» проверки совершенно не рассмотрены Месси.
Таким образом, книга Месси и работы Колесника и Мирончикова чрезвычайно удачно дополняют друг друга и в ‘ совокупности позволяют составить достаточно полное представление о современном состоянии и основной проблематике теории мажоритарного декодирования.
Учитывая незавершенность теории мажоритарного декодирования и важность дальнейших исследований в этой области, можно с полным основанием утверждать, что книга Месси, знакомящая читателей с основными идеями этой теории, несомненно, будет полезной инженерам, аспирантам и научным работникам, занимающимся кодами, исправляющими ошибки.
Э. Л. Блох
!) Проблемы передачи информации, 1 (1965), вып. 2, 3—17.
Специалисты по теории информации чувствуют все большую ответственность за то, что их наука, несомненно интересная и важная, пока еще внесла столь незначительные изменения в существующие методы передачи сообщений. Действительно, после пятнадцати лет бурной исследовательской деятельности было бы вполне естественно ожидать какого-нибудь практического приложения метода исправления ошибок. Инженерам-связистам, которые заинтересованы в ликвидации разрыва между теорией и практикой кодирования, главным образом и адресована эта монография.
Пороговое декодирование представляет собой метод исправления ошибок, особенно удобный для технической реализации. Для того чтобы подчеркнуть техническую точку зрения, мы уделяем значительное внимание вопросам создания простых логических схем, осуществляющих исправление ошибок. Мы надеемся, что эта книга будет стимулировать развитие других практических методов декодирования, обязательной чертой которых явится невысокая стоимость оборудования, на передающем и приемном концах. (С удовлетворением отмечаем, что корпорация «Кодекс» уже изготовила кодирующее и декодирующее устройство, основанное на принципах порогового декодирования.)
' Расположение материала позволяет облегчить переход от теории к практике. Идеи порогового декодирования сформулированы главным образом в гл. I. В гл. II описываются сверточные коды, а три следую-
щие главы посвящены специальным сверточным кодам для порогового декодирования, схемам декодирования и характеристикам декодирования. Гл. VI и VII посвящены приложению порогового декодирования к блоковым кодам.
От читателя не требуется никакой специальной подготовки: предполагается лишь общее знакомство с теорией вероятностей. Там, где используются алгебраические сведения (а их в книге немного), они всюду поясняются. Вообще, алгебраический подход используется только там, где он углубляет понимание рассматриваемых понятий; там же, где можно обойтись без алгебраических методов, используются другие средства: например, линейные коды трактуются на основе теории линейных уравнений, а не теории групп. Считается, что книга Питерсона «Коды, исправляющие ошибки» должна быть знакома любому серьезному работнику в области методов кодирования. К этой книге мы отсылаем читателя всякий раз, когда это оказывается полезным. Для дальнейшего чтения автор предложил бы книгу Фано «Передача информации», которая во всей полноте излагает развитие основ теории информации, и важную монографию Возенкрафта и Рейффена «Последовательное декодирование», в которой сверточные коды рассматриваются с иной точки зрения, чем принятая в нашей книге.
Основой этой монографии является докторская диссертация автора, написанная под руководством профессора Массачусетского технологического института Дж. М. Возенкрафта. Вполне понятна моя большая благодарность профессору Возенкрафту. Далее я обязан профессорам Массачусетского технологического института П. Элайесу, Р. Г. Галлагеру и К. Э. Шеннону за их щедрую помощь новичку в теории информации.
Это исследование оказалось возможным благодаря частичной поддержке исследовательской лаборатории электроники Массачусетского технологического института, которая в свою очередь финансируется ар-
мией США, научно-исследовательским отделом ВВС и исследовательским отделом ВМФ.
Я также хочу выразить признательность за помощь, оказанную издательством и вычислительным центром Массачусетского технологического института и Ассоциацией национального научного фонда США (1959—1962).
Я не называю многих имен тех, кто так или ина* че способствовал написанию этой монографии, однако я не могу не назвать моей жены Кэтрин Крампер Месси.
Нотр-Дам, Индиана, 27 апреля 1963 г.Нотр-Дам, Индиана, 27 апреля 1963 г.Джеймс Л. МессиДжеймс Л. Месси
Нотр-Дам, Индиана, 27 апреля 1963 г.
Нотр-Дам, Индиана, 27 апреля 1963 г.
Джеймс Л. Месси
Джеймс Л. Месси
Глава I
ПРИНЦИП ПОРОГОВОГО декодирования
В 1948 году Шеннон [23] впервые показал, что при передаче информации по каналу с шумами ошибки могут быть сведены к любому желаемому уровню без ущерба для скорости передачи. Его «теорема кодирования для канала ^^нумами» устанавливает, что такой канал характе^^гауется величиной С, называемой пропускной способностью канала, и при соответствующем кодировании и декодировании вероятность ошибки на приемном конце можно сделать произвольно малой тогда и только тогда, когда R — скорость передачи — будет меньше, чем С. Получив в его работах четкое определение целей и возможностей передачи информации, инженеры-связисты сосредоточили значительные усилия, часто приводившие к остроумным результатам, на проблеме наиболее полного применения теоремы Шеннона к решению двух взаимосвязанных задач:
построение хороших легко реализуемых кодов,
создание для таких кодов простой и эффективной аппаратуры декодирования.
Первая из этих задач сама по себе не связана с реальными трудностями. Для удобства ограничимся пока двоичными кодами и передачей по двоичному симметричному каналу без памяти. Математическая модель такого канала показана на рис. 1. Если по такому каналу передаются символы 0 или 1, то они правильно принимаются с вероятностью ^0 и неправильно — с вероятностью Ро = 1 — 9о- Можно показать, что пропускная способность канала равна
— Н(ро) двоичных единиц на передаваемый символ, где функция
Н (х) = — х log2x — (1 — х) log2(l — *) представляет собой энтропию [23]. Каждое сообщение, подлежащее передаче по этому каналу, кодируется блоком из п двоичных символов. Число возможных сообщений равно 2пП, где R — скорость передачи информации, измеряемая числом двоичных единиц на
Рис. 1. Двоичный симметричный канал.
передаваемый символ, если все входные сообщения равновероятны.
В доказательстве своей «теоремы кодирования для канала с шумами» в случае двоичного симметричного канала Шеннон показал, что при R < С вероятность ошибки, средняя по ансамблю двоичных блоковых кодов, стремится к нулю с ростом щ если каждая из 2пД передаваемых последовательностей случайно и с равной вероятностью выбрана из множества 2П двоичных последовательностей длины п.
Поскольку код, выбранный случайно из такого ансамбля, с вероятностью, меньшей 1/2V, имеет в N раз большую вероятность ошибки, чем средняя по ансамблю, вполне можно случайным выбором получить хороший код. Понадобится, однако, недопустимо сложная кодирующая аппаратура, так как нужно запомнить каждое из 2пД кодовых слов длины п.
Элайес [24] показал, что значительно более узкий ансамбль скользящих кодов с проверками на четность
обладает той же средней вероятностью ошибки, что и ансамбль кодов, каждое слово в которых выбрано случайно, и, более того, эта вероятность ошибки убывает экспоненциально вместе с ростом длины блока п; при этом экспонента оптимальна для скоростей, близких к С1). Фано [16] показал, что кодирующим устройством для скользящих кодов с проверкой на четность может служить линейная последовательная цепь, содержащая всего лишь п — 1 ячеек регистра сдвига. Недавно Возенкрафт (частное сообщение) нашел еще более узкий ансамбль кодов — назовем их кодами со случайными сдвигами, — которые обладают такой же средней (по ансамблю) вероятностью ошибки, что и другие случайные коды. Кодирование для кодов Возенкрафта можно выполнить линейной последовательной цепью, содержащей шах [/?п(1—R)nA ячеек регистра сдвига (ср. § 2.5). "
Таким образом, из ансамбля скользящих кодов с проверками на четность или ансамбля кодов со случайными сдвигами вполне возможно случайным образом выбрать хороший и легко реализуемый код. Однако в настоящее время не известен ни один способ решения второй задачи для этих ансамблей, т. е. задачи построения простого и эффективного декодера. (Сложность общей проблемы декодирования будет обсуждаться ниже.)
В высшей степени эффективные методы декодирования были найдены для некоторых ансамблей случайно выбранных кодов. Для ансамбля сверточных кодов Возенкрафт [3] разработал метод последовательного декодирования. Возенкрафт и Рейффен [4] показали, что, действуя этим методом, можно добиться экспоненциального убывания вероятности ошибки с помощью декодера, сложность которого и среднее число выполняемых операций растут пропорциональ-
!) Это значит, что коэффициент при п в показателе степени, определяющий асимптотику вероятности ошибки в случае R, близких к С, таков же, как и для кодов, обеспечивающих наименьшую теоретически достижимую вероятность ошибки. — Прим. ред.
но небольшой степени длины кода !). Галлагер [6] получил аналогичный результат, относящийся к его итеративному методу декодирования кодов с проверкой на четность, построенных таким образом, что проверочная матрица имеет малую плотность единиц.
В обоих случаях сложность декодирования невелика лишь тогда, когда скорость передачи информации меньше некоторой «вычислительной скорости», которая в свою очередь меньше пропускной способности канала. Два эти метода декодирования (и модификации метода последовательного декодирования, предложенные Зивом [7] и Фано [неопубликованные сообщения на двух семинарах, проведенных в течение весеннего семестра 1962 г. в Массачусетском технологическом институте]) являются единственными известными достаточно общими решениями описанных выше двух сторон проблемы кодирования.
Недостатки обоих методов заключаются в том, что объем вычислений на один декодированный символ является случайной величиной и что в случае коротких кодов декодеры оказываются сложнее, чем те, которые можно было бы построить для некоторых специальных кодов при использовании иных методов.
Другой подход к проблеме декодирования резко отличается от вероятностного подхода Возенкрафта и Галлагера. Основываясь на первых работах Хеммин- га [21] и Слепяна [15], алгебраисты берут в качестве отправной точки формальную математическую структуру, обеспечивающую нужные для целей кодирования метрические свойства. Часто методы декодирования находят только через некоторое время после того, как найдены коды; наиболее ярко это иллюстрируется алгоритмом Рида [14] для кодов Маллера [9] и алгоритмом Питерсона [11] для кодов Боуза — Чоудхури [2]. Благодаря систематической структуре кодов, по-
!) В статье «О сложности декодирования» (Проблемы передачи информации, 1 (1965), вып. 1) М. С. Пинскер показал, что при любых скоростях R<C существуют код и метод декодирования, обеспечивающие экспоненциальное убывание ошибки при среднем числе операций (на символ), ограниченном постоянной, не зависящей от длины кода п. — Прим, ред.
лученных алгебраическим путем, метод декодирования обычно требует фиксированного числа операций. Весьма вероятно, что по той же причине коды любого из известных типов всегда становятся плохими, если их длина возрастает, а скорость передачи остается постоянной (единственным исключением из этого правила являются итеративные коды Элайеса [25], которые с ростом длины блока обеспечивают стремление вероятности ошибки к нулю, правда, более медленное, чем оптимальное, и только для скоростей, существенно меньших, чем пропускная способность канала).
§ 1.1. Пороговое декодирование линейных кодов
Опираясь на вышеизложенное, можно описать, в каком отношении к уже известным подходам к проблеме декодирования находится идея порогового декодирования, предлагаемая в этой работе. Как и в случае вероятностных методов, мы начнем с алгоритма декодирования, а не с конкретных кодов. Однако наш алгоритм будет в основном алгебраическим и потребует фиксированного количества вычислений на один декодируемый символ. Вследствие того что этот алгоритм требует от кода специальной алгебраической структуры, он не может быть применен ко всем ансамблям кодов; точнее говоря, должны быть построены специальные коды, к которым он применим. Наконец, — и это самое важное — в качестве нашего алгоритма мы выбираем такой, который допускает простую реализацию на вычислительной машине.
Перед тем как обрисовать метод декодирования, мы сделаем некоторые предварительные замечания относительно линейных или групповых1) кодов.
!) Понятия «линейный код» и «групповой код» совпадают тогда, когда кодовыми символами являются элементы из GP(p). Если же символами кода являются элементы из GF(pm), то эти понятия не совпадают. Действительно, линейный код суть подпространство, но не всякая подгруппа группы, являющейся пространством, сама является подпространством. — Прим, перев.
Линейные коды и проблема декодирования [8]
Нас будут интересовать в основном линейные коды в систематической форме. Множество кодовых слов такого кода есть подмножество множества всех последовательностей длины п вида
Л, (1)
где каждое ti— элемент поля GF^q), конечного поля из q элементов (см. приложение А). Символы 1^ t^ ..., tk выбираются в качестве информационных символов. Остальные п — к символов называются проверочными и находятся по информационным символам из системы линейных уравнений
tj = ^cHtb ; = ^+1, А + 2, п, (2)
/де множество коэффициентов с^ являющихся элементами поля GF^q), полностью определяется данным кодом. (Все операции над этими символами, если не сделано специальных оговорок, выполняются в поле GF^q).)
Предположим теперь, что после передачи по некоторому каналу полученная последовательность (гь г2, • • • , ^п) отличается от переданной (/ь /2, .. ♦ ,.., /п) «шумовой последовательностью» (еь е^ ... ..., еп), т. е., что
ri = tiA-eb /=1, 2, ..., п. ^
где г, и вг также принадлежат полю GF(q) и все операции выполняются в этом поле. Тогда из (3) следует, что для определения переданной последовательности достаточно знать принятую и шумовую последовательности.
Нетрудно показать, что множество передаваемых кодовых слов образует аддитивную абелеву группу порядка qk (см. приложение А). Существует qk кодовых слов, так как каждый информационный символ может принимать любые из q значений.
Пусть (6, /2, • •, tn) и (/*, /2, •О —Два кодовых слова; тогда, согласно (2), их сумма предста-
вляет собой последовательность (б + б, /2+^2, • ••
• •<п+^)- где
к
tjA-h = ^cnkti-Vti^ /==^Н-1, £+2, ..., тц (4)
и совпадает с последовательностью, которая получится, если в качестве информационных символов выбрать /; + //, /—1, 2, ..., к. Таким образом, первая групповая аксиома удовлетворена; легко проверить, что удовлетворяются и другие аксиомы.
Для линейного систематического кода, описываемого системой (2), мы всегда будем пользоваться обозначением (п, к)-код.
Систему (2) можно переписать в виде
к
Id с^ — tj==O, j = ky-l, А+ 2, ..., п; (5)
при этом говорят, что каждое из этих п — к уравнений определяет для кода проверку на четность (всюду ниже — просто проверка), т. е. некоторую взвешенную сумму кодовых символов, которая для всех кодовых слов равна нулю.
Мы назовем проверкой на четность сумму в (5), образованную на приемном конце, т. е.
к
Sj=^cjlrl — rh у = £+L ^ + 2, ..., /г.(6)
Используя (3) и (5), проверки можно переписать в виде к
Sj —^^jiCi — Cj, j — к-УУ ^ + 2, ..., п, (7)
откуда видно, что (sj) составляет систему п — к линейных уравнений относительно неизвестных {ej (символ {аг-} мы будем использовать для обозначения множества объектов а^ где I пробегает все значения,
для которых определены а^. Общее решение системы (7) может быть сразу записано в виде
к
ej='2icjlel — Sy, / = ^4-1, £4-2, ..., п. (8)
Это общее решение включает к произвольных постоянных, именно значения еь е2, ..., ек. Каждая из
источникшума
чч
ч
ч
Сумматорпо mod 2
Рис. 2. Модель источника шума для двоичного симметричногоканала.
этих произвольных постоянных может принимать любые из q значений; таким образом, существует qk различных решений системы (7).
Мы еще не рассмотрели механизма, посредством которого порождаются шумовые символы {ej. Эти символы можно рассматривать как некоторую реализацию случайного процесса, параметры которого определяются каналом связи. Например, легко видеть, что двоичный симметричный канал, изображенный на рис. 1, вполне эквивалентен модели на рис. 2, в которой источником шума является источник независимых символов, выдающий 1 с вероятностью р0 и О с вероятностью q0. В этом случае шумовая последовательность длины п, содержащая w единиц, встречается с вероятностью p™q"~w\ последняя является монотонно убывающей функцией от w, числа ошибок в принятой последовательности длины п (предполагается, что ро < V2) ).
Основная проблема декодирования для линейных кодов состоит в том, чтобы найти наиболее вероятное решение системы (7) для данного канала. Например, при передаче двоичной информации по двоичному симметричному каналу задача состоит в нахождении такого решения системы (7), которое содержит наименьшее число единиц. На практике из-за большого числа возможностей обычно не удается найти наиболее вероятное решение системы (7) для произвольного сочетания значений проверок {sj. Эффективное решение проблемы декодирования зависит от возможности нахождения простого метода определения наиболее вероятного решения системы (7) лишь для некоторого высоковероятного подмножества всех возможных сочетаний значений проверок).
Ортогональные проверки
Теперь мы рассмотрим прием, с помощью которого проверки {st}) системы (6) могут быть преобразованы в другую систему величин, которые для целей декодирования оказываются более удобными.
Начнем с исследования линейных комбинаций проверок (sj. Определим составную проверку Аг- как линейную комбинацию проверок {s,}. А именно At зададим равенствами
п At= 2 bljSj,(9)
;=»+i J J
где коэффициенты b^ суть элементы поля GF^qy Из (7) и (9) имеем
п
At= 2 Ьиj=k+l
что можно переписать в виде
(H)(12)(H)(12)^/ — 2 ^/j^р
(H)
(12)
(H)
(12)
где - ’ n
n 2 b^c^jt Z — 1, 2, ..ks
— Л = Л + 1
। Ьц^ i = k -]— 1, k —p 2,
Теперь удобно дать следующее определение: систему / составных проверок {Дг} будем называть ортогональной относительно ет, если в формулах (11)
aZ/n=l, Z=l,2, ....У(13)
и
а^ = 0 для всех Z, за исключением, быть может, одного при любом фиксированном /, отличном от т.(14)
Другими словами, система / составных проверок называется ортогональной !) относительно ет, если ет контролируется каждой проверкой системы, но никакой другой «шумовой» символ не контролируется более чем одной проверкой системы. Таким образом, ет воздействует на все уравнения системы, но никакой другой «шумовой» символ не воздействует более чем на одно уравнение системы.
Мажоритарное декодирование
Сейчас мы дадим первый из двух алгоритмов, который можно использовать для определения ет из системы I проверок {Л^}, ортогональной относительно ет. Будем использовать символы [У] и [УJ для обозначения наибольшего целого числа, не превосходящего /, и наименьшего целого числа, не меньшего 7, соответственно и будем говорить, что шумовой сим-
*) Ниже, не оговаривая этого специально, автор называет ортогональными и сами проверки, принадлежащие системе, ортогональной относительно ет. — Прим, перев.
вол контролируется некоторой проверкой тогда и только тогда, когда он входит в эту проверку с коэффициентом, отличным от нуля. у
Теорема 1. Пусть отличны от нуля не болев [ У/2 ] ошибок в совокупности (ej), контролируемых системой J составных проверок {Я^ ортогональных относительно ет (т. е. имеется не более J/2 ошибок в соответствующих принятых символах). Тогда истинное значение ошибки ет есть значение, принимаемое большинством составных проверок {Яг}. (В случае когда ни одно значение из GF(q) не принимается абсолютным большинством составных проверок {Лг} и одно из наиболее часто встречающихся значений есть 0, полагаем ет = 0^
Доказательство. Положим em=V и допустим сначала, что все другие контролируемые е^ имеют значение 0. Тогда из (11) и (13) следует, что
A^V, /=1, 2, (15)
Пусть теперь V = 0 и выполняются условия теоремы. 1У/2 ] ненулевых шумовых символов могут изменить не более чем такое же число равенств в (15), и потому не менее чем [ У/2 ] составных проверок Ai все еще равны нулю. Таким образом, нуль является либо наиболее часто встречающимся, либо одним из двух одинаково часто встречающихся значений в {Дг}; в обоих случаях правило декодирования, указанное в теореме, дает правильное значение шумового символа вт«
Наоборот, положим V=£0. Тогда из того, что ^m=V=#0, следует, что отлично от нуля менее [ У/2 | других шумовых символов, контролируемых проверками {dj, и отсюда, что более чем [ J/2 ] равенств в (15) все еще правильно указывают значение ет. Таким образом, правило декодирования, указанное в теореме, снова остается верным, и теорема доказана.
Если / = 2Т, т. е. четно, то из теоремы 1 следует, что ет может быть правильно определено вовсехслу-
чаях, когда среди принятых символов искажено не более Т. Аналогично, если /=2Г+1, т. е. нечетно, то ет снова может быть найдено во всех случаях, когда произошло не более Т ошибок; могут быть обнаружены дополнительно Т+1 ошибок, если условиться, что произошла ошибка, когда значение, принятое большинством проверок {AJ, оказывается отличным от нуля и встречается в точности Т+1 раз. Эти соображения означают, что любые два кодовых слова с различными значениями символа tm должны находиться друг от друга на расстоянии не менее чем /+1. (Мы будем использовать всегда расстояние Хемминга, т. е. число символов, в которых кодовые слова различны.) Таким образом, мы приходим к следствию из теоремы 1.
Следствие. Если линейный код допускает образование системы J проверок, ортогональных относительно ет, то расстояние Хемминга между любыми двумя кодовыми словами с различными значениями символа tm не менее / +1.
Декодирование, выполняемое согласно алгоритму теоремы 1, будем называть мажоритарным декодированием ддя случая ортогональных проверок. Из предыдущих рассуждений должно быть ясно, что мажоритарное декодирование есть не что иное, как форма декодирования по минимальному расстоянию; в самом деле, мажоритарное декодирование приписывает символу ет такое значение, которое он принимает в шумовой последовательности минимального веса, удовлетворяющей системе (11). Важно отметить, что эта шумовая последовательность, вообще говоря, не совпадает с шумовой последовательностью минимального веса, удовлетворяющей системе (7), так как соответствие между (Sj) и (AJ не обязательно должно быть взаимно однозначным t).
!) Это объясняется тем, что число разделенных проверок {Л,} как правило меньше числа всех линейно независимых проверок {$+ — Прим. ред.
Декодирование по апостериорной вероятности1)
Мажоритарное декодирование неэффективно в том смысле, что оно не учитывает статистических особенностей канала, т. е. распределения вероятности помех. Дадим теперь алгоритм декодирования, который при принятии решения о значении ет дает наилучшую возможность использования информации, содержащейся в системе / проверок, ортогональной относительно ет.
Предположим, что шумовая последовательность аддитивна, символы в ней независимы и никаких других ограничений нет. Это означает, что канал должен удовлетворять модели, представленной на рис. 2, где источник помех является источником независимых символов, а сумматор работает в поле GF^q).
Выбрав критерием качества среднюю вероятность ошибки, мы попытаемся отыскать алгоритм декодирования, который будет приписывать символу ет такое значение V, для которого условная вероятность рг(ет=у|иа)(16)
максимальна. Используя формулу Байеса, имеем
Pr <em = V\ ма) =. (17)
Из ортогональности относительно ет и независимости символов в шумовой последовательности следует, что
рг(иа1^=ю=Црг(ЛРт=ю. (is)
Подставляя равенства (17) и (18) в выражение (16) и логарифмируя, приходим к правилу: для ет следует выбрать такое значение V, при котором величина^
log[Pr(em = V)]+ f log[Pr(A|^ = V)J (19)
*) Автор имеет в виду то, что в литературе на русском языке обычно называют декодированием по максимуму апостериорной вероятности. — Прим, перев, ’
максимальна. Для большей четкости сформулируем этот результат в виде теоремы.
Теорема 2. Если дана система (Аг) проверок, ортогональная относительно ет, шумовая последовательность аддитивна и символы в ней независимы, то правило декодирования, основанное на системе {Аг}, которое определяет ет с минимальной средней вероятностью ошибки, состоит в следующем: в качестве ет следует выбрать такое V^GF(q), чтобы величина
log |РГ (6>m = ю] + f log [Pr ^ I em - V)]
была максимальной.
Декодирование, выполняемое согласно алгоритму теоремы 2, будем называть декодированием по апостериорной вероятности, или, короче, АВ-декодирова- нием.
Пороговое декодирование
Рассмотрим особенности алгоритмов мажоритарного и АВ-декодирования для случая двоичного кода. Пусть ро=1—^о представляет собой вероятность того, что ет есть ошибка, т. е.
Рг(ет=1)=р0.(20)
Если Рг = 1 —Яг означает вероятность нечетного числа единиц среди шумовых символов, кроме ет, которые контролируются проверкой А^ т. е. t-й проверкой, ортогональной относительно ет, то
Рг(А> = 0|ет=1)=Рг(Аг = 1|^^(21)
Рг(Аг=1 |ет=1) =Рг(Дг = 0|егп=0) = qb (22)
Так как ет может принимать только два возможных значения, 0 или 1, алгоритм АВ-декодирования упро-
щается: следует выбирать ет=1 тогда и только тогда, когда
log МАт 5 log [Pr (At I em = 1)] >
> log (ft) + f log [Pr (Ai I em = 0)]. (23)
Используя (21) и (22), приведем (23) к виду
5 (2Дг — 1) log (q^p^ > log (qM (24)
ИЛИ
2 Ai [2 log (qdp^ > 2 log (qJPiY (25) /=1z=o
где {Лг} трактуются как действительные числа. Изложим зди результаты в следующей теореме.
Теорема 3. Для двоичного канала без памяти с аддитивным шумом алгоритм Хй-декодирования формулируется так: выбирать ет=1 тогда и только тогда, когда сумма всех А^ принадлежащих системе [Лг} из / проверок, ортогональных относительно ет и трактуемых как действительные числа, умноженных на 2 log (Дг!р?Ь превосходит пороговое значение
j
2 log (qdPt\ z=o
где Pq= 1 — ^o = Pr(em= 1) и Pi = i—qt— вероятность того, что среди ошибок, исключая ет, контролируемых l-й ортогональной проверкой, имеется нечетное число единиц.
Подобным же образом теорема 1 в случае двоичного кода сводится к следующей теореме.
Теорема 4. Если {Лг} — система / проверок, ортогональных относительно ет, то алгоритм мажоритарного декодирования таков: выбирать ет=\ то-
гда и только тогда, когда сумма всех А< (трактуемых как действительные числа) превосходит пороговое значение [7/2].
Поскольку правила декодирования в теоремах 3 и 4 аналогичны и могут быть реализованы одним и тем же пороговым логическим элементом, мы будем пользоваться для описания мажоритарного декодирования или АВ-декодирования для случая ортогональных проверок общим термином — пороговое декодирование. Для удобства будем применять эту же терминологию и в случае недвоичного кода.
Заключение
При рассмотрении только ортогональных проверок, а не всего множества обычных проверок общая проблема декодирования, описанная в п. 1.1а, может быть сведена к выполнению простых правил, выраженных в теоремах 1—4. Причины упрощения следующие: в общем случае между величинами Sj в (6) и соответствующей наиболее вероятной шумовой последовательностью 5j, t=l, 2, ..., п, существуют очень сложные соотношения. Однако, если Sj линейными преобразованиями сведены к системе проверок, ортогональных относительно ет, то между системой (Яг) ортогональных проверок и ет существует очень простое соотношение: проверки А^ зависящие от ет, представляют собой систему независимых случайных переменных. Таким образом, можно осуществить разложение (18), и это позволяет в процессе подсчета наиболее вероятного значения символа ет выполнять каждую ортогональную проверку отдельно.
Остается показать, что существуют коды, для которых отображение обычных проверок на систему ортогональных проверок может быть осуществлено эффективным способом. Это значит, что наиболее вероятное значение вт, полученное с помощью одного из алгоритмов порогового декодирования, совпадает С наиболее вероятным значением ет, полученным на
основании всей системы обычных проверок для подсистемы возможных значений обычных проверок, обладающей высокой вероятностью. Все дальнейшее изложение будет посвящено этой задаче.
Вводя понятие порогового декодирования, мы не ограничивали выбора конечного поля значений кодовых символов. В дальнейшем мы ограничимся почти исключительно двоичным полем в силу двух причин: случай двоичного кода представляет практический интерес и, как будет показано ниже, эффективное применение метода порогового декодирования к недвоичным кодам связано с серьезными трудностями.
Глава II
СВЕРТОЧНОЕ КОДИРОВАНИЕ И ВЫЧИСЛЕНИЕПРОВЕРОК
Перейдем к рассмотрению сверточного кодирования, включив в круг обсуждения алгебраические свойства кодов, оценки их качества и схемы для кодирования и вычисления проверок. Эта глава задумана главным образом как подготовительная к следующим, но некоторая часть материала является в ней новой. Так, § 2.2, 2.4 и 2.7 содержат оригинальные результаты. Граница, основанная на случайном выборе кода § 2.5, впервые была получена Элайе- сом [24] (одновременно он ввел сверточное кодирование); мы лишь приводим иной метод доказательства. Возенкрафт [4, стр. 75—77] показал, что оценка Гилберта, приведенная в § 2.3, достигается в двоичных сверточных кодах при скорости 1/п0. Мы даем доказательство, применимое и для недвоичных кодов, и для кодов с произвольной скоростью передачи.
Схема кодирования в п. 2.6а была впервые описана Возенкрафтом и Рейффеном [4, стр. 77—79], схема же в п. 2.66 приведена впервые.
Сверточное кодирование
В общем виде сверточное кодирующее устройство показано на рис. 3. В каждый момент времени на каждый из к0 входов поступает информационный символ и с каждого из п0 (n0 ^ й0) выходов считывается кодированный символ. Символами могут быть элементы конечного поля GF(qy и тогда информация передается со скоростью ^= (fe0/n0) log2 9 двоичных единиц на один выходной символ. Здесь и далее, если не оговорено противное, предполагается, что все операции выполняются в поле GF^qy
Используя оператор задержки, или D-обозначение, введенный Хаффменом [18], к0 входных последовательностей можно представить совокупностью полиномов
fn ф)=^+^d+i^dfn ф)=^+^d+i^d7=1, 2, .... Ао,(26)7=1, 2, .... Ао,(26)
fn ф)=^+^d+i^d
fn ф)=^+^d+i^d
7=1, 2, .... Ао,
(26)
7=1, 2, .... Ао,
(26)
/ о—►2 о—*/ о—►2 о—*где iu — информационный си-мвол, поступающий на /-й вход кодирующего устройства в момент вре-
/ о—►
2 о—*
/ о—►
2 о—*
Линейная последовательная ' схема
Рис. 3. Общий вид сверточного кодера.
мени и. Аналогично, п0 выходных последовательностей обозначают полиномами
Т^ (D) = ^ + tV\D) + #* Ф) + • • •,
/=1, 2, ..., п0,(27)
где tT— символ, считываемый на /-м выходе в момент времени и.
Без ограничения общности предположим, что код систематический, т. е. первые к0 выходных последовательностей совпадают с входными последовательностями. В D-обозначениях это свойство выражается так:
Глф) — 1иЧО\ /=1, 2, .... ^0.(28)
Определяющее свойство сверточного кода состоит в том, что остальные п0 — к0 выходных последовательностей, или проверочных последовательностей,
лов в начальном кодовом слове будем пользоваться обозначением
7^ (О) = #> + t^D + ... + №\ / = 1, 2, ..., л0.
.(31)
Аналогично этому для представления символов, переданных 9 за тот же промежуток времени, будем пользоваться обозначением
7^(2)) = /^+//^ + ... -H^D", j=\, 2, .... Ао.
(32)
Согласно этому определению, множество начальных кодовых слов сверточного кода образует систематический линейный код, или (/г, й)-код, как он назван в § 1.1. Длина кода п соответствует кодовому ограничению пА, а количество информационных символов к — величине RnA= ^m-V\^kQ. Другими словами, в начальном кодовом слове имеется пА символов, из которых RnA являются информационными.
Эти идеи лучше всего пояснить примером. Рассмотрим двоичный сверточный код при R = xk, порождающим полиномом которого является
G<2\D) = 14-D-\-Da.(33)
Для произвольной информационной последовательности /^(D^ проверочная последовательность, согласно (29), дается выражением
Т® (D) = (1 + D + D3) ^ (D),(34)
из которого видно, что любой передаваемый проверочный символ является суммой информационных символов, поступивших в данный момент, на один момент ранее и на три момента ранее. Отсюда, если входная последовательность была
/(1)(D) = 1 + D2 + D6+ ....(35)
*) То есть символов, поступивших на входы кодирующего устройства. — Прим, персе.
то выходная последовательность такова:
T(2,(£))=l + D + £>2 + D5 + D64-....(36)
Способ, которым образуются проверочные символы, можно понять из рис. 4. Когда информационные символы продвигаются через четырехразрядный регистр
♦о. .. 1000101-О . . . 1100111♦о. .. 1000101-О . . . 1100111Рис. 4. Пример кодера.Рис. 4. Пример кодера.
♦о. .. 1000101
-О . . . 1100111
♦о. .. 1000101
-О . . . 1100111
Рис. 4. Пример кодера.
Рис. 4. Пример кодера.
сдвига, фиксированные связи с сумматором обеспечивают, чтобы каждый образованный проверочный символ был суммой текущего1) информационного символа и информационных символов, поступивших на один и три момента ранее и находящихся во втором и четвертом разрядах регистра сдвига.
Так как в этом примере степень порождающего полинома т = 3, начальное кодовое слово определяется полиномами
^ = ^ = 14-О2
и(37)
T^ = \-t-D4-D\
Из предыдущего примера должно быть ясно, что начальное кодовое слово, определенное равенством (31), может быть получено из выражений (28) и (29) простым отбрасыванием всех членов, в которые D входит с показателем, большим, чем т. Отсюда мы можем написать
^(D)»/^^, / = 1, 2, .... Ао (38) И
Тт1 (D) = {О(Л (DV^ (DH ... 4-Zw (D) I^4d)\. (39)
9 To есть последнего из поступивших. — Прим, ред.
Здесь и далее фигурные скобки, в которые заключены полиномы, означают, что все члены, содержащие D с показателем, большим, чем пг, по выполнении указанных операций должны быть опущены. (Применение соотношения (39) равносильно указанию, что полином справа есть полином минимальной степени, принадлежащий тому классу вычетов по модулю идеала, порожденного полиномом F(D) = = Dm+I, который содержит полином, заключенный в скобки. Термины, употребляемые в этом утверждении, определяются в приложении А.)
Алгебраическая структура
Проведем теперь тщательное исследование множества начальных кодовых слов сверточного кода, описываемого соотношениями (38) и (39). Наша цель состоит в том, чтобы установить некоторые свойства этих кодовых слов. Они понадобятся позже как основа при выводе границы Гилберта и границы для класса случайных сверточных кодов.
Начнем с доказательства леммы. Пока она выглядит совершенно абстрактной, но в дальнейшем ее полезность станет очевидной.
Лемма 1. Если задан произвольный полином Im^D), степень которого не превышает шив котором io не равно нулю, то, каков бы ни был любой из qm^x полиномов G(D) степени не выше т, все полиномы
{(/(Z))/^/))} '
различны и, следовательно, каждый из qm^x полиномов степени не выше пг встречается один и только один раз.
Доказательство. Допустим, что существует полином G*(D) степени не выше пг, такой, что
(О* (D) /^ М = [О (D) /^ (D)}; (40) тогда
^G^-GID^H-O. (41)
Равенство (41) устанавливает, что полином слева не может иметь ни одного члена степени не выше ш. Но если бы член степени не выше m содержался в G*(D) — G(Z)), то такой член существовал бы, так как свободный член i^ полинома /^(^) не равен нулю. Так как степени полиномов G*(D) и G(D) не превышают т, то из (41) следует, что G*(Z)) = G(D).
Таким образом, различные полиномы G^D) определяют различные V^oy^tM что и доказывает лемму.
Мы видели, что сверточный код определяется выбором (п0 — ko^ko порождающих полиномов. Так как полином степени не выше т может быть выбран любым из qm-vx способов, то существует в точности дУплАН^А-к^ различных сверточных кодов со скоростью передачи R^k^n^ и кодовым ограничением Ма=(^ + 1)^о. (Допускается любой порождающий полином степени не выше т и не требуется, чтобы хотя бы один из порождающих полиномов имел ненулевой коэффициент при D .) Значение леммы 1 состоит в том, что она позволяет точно определить, сколько может встретиться сверточных кодов, содержащих заданное начальное кодовое слово, а это в свою очередь может быть использовано как основа для доказательства, что класс сверточных кодов удовлетворяет границам Гилберта и границам, основанным на случайном выборе кода.
Удобно использовать следующую терминологию: последовательность £0 входных символов, поданных на кодирующее устройство в начальный момент, а именно to , to , ..., to , мы будем называть последовательностью первых информационных символов. Так как, согласно соотношению (28), t^ = ^ для / = 1, 2, ..., ^о, число различных кодов с одинаковым начальным кодовым словом и заданной последовательностью первых информационных символов дает следующая теорема.
Теорема 5. Если задано начальное кодовое слово Тт кР\ /=1, 2, ..., п^ в котором по крайней
мере один из символов $\ /=1, 2, ..., £0, отличен от нуля, то это начальное кодовое слово принадлежит в точности q^m+1^-k^k^ различным сверточным кодам со скоростью передачи R = ko/nQ и кодовым ограничением пА= (m+l)^).
Доказательство. Предположение, что по крайней мере один из символов to\ 7=1, 2, ..., к^ отличен от нуля, означает, что по крайней мере один из последовательности первых информационных символов отличен от нуля. Без ограничения общности можем предположить, что Zq^O.
Из соотношения (38) следует, что задание начального кодового слова фиксирует полиномы iVn (7)), 7=1, 2, ..., к0. Рассмотрим проверочные последовательности, которые задаются системой (39). Эта система может быть записана в виде
^ ф) - VHW (D) /® (D) + ... + Z№ (D) 1^ (D)} =
• =\Gvi4D>Iw<D^ (42)
для /=^о+1, &о + 2, ..., п0. Для любого фиксированного выбора полиномов Ни) ф\ .ZU\D) левая часть этого равенства является фиксированным полиномом. Тогда из леммы 1 следует, что это равенство будет удовлетворено одним и только одним выбором полинома G(J^ (D).
Так как каждый из (к0—1)(^о — ^о) полиномов Н^ (D). ..., ZU4D\ 7=:^о + 1> ^о+2, • •., ^о> будучи полиномом степени не выше т, может быть выбран q™*x способами, то отсюда следует, что заданное кодовое слово встречается в точности в q^ + ^^o-^ (п<>-ьд различных кодах, что и доказывает теорему).
Покажем теперь, как можно использовать теорему 5 при выводе границы Гилберта для сверточных кодов.
Граница Гилберта
Определим минимальное расстояние d сверточного кода как наименьшее число символов, в которых различаются два начальных кодовых слова, не имеющих одинаковых последовательностей первых информационных символов. Так как множество начальных кодовых слов образует линейный код, а значит и группу, то минимальное расстояние есть одновременно и минимальный вес (т. е. число отличных от нуля символов) начального кодового слова, которое имеет хотя бы один ненулевой первый информационный символ. (Минимальное расстояние d не означает, что существуют две бесконечно длинные передаваемые последовательности с различными множествами первых информационных символов, отстоящие друг от друга на расстоянии d; оно означает, что существуют две такие последовательности, в которых на расстоянии d находятся первые пА символов.) Найдем нижнюю границу минимального расстояния в сверточном коде. '
Теорема 6. При скорости передачи R = k0[n0 и кодовом ограничении пА = (т+1)^о существует по крайней мере один сверточный код с минимальным расстоянием d, где d—наибольшее целое число, удовлетворяющее условию
d-1
^CJnA(q-\Y<qn^. (43)
Доказательство. Сверточный код имеет минимальное расстояние d, если в нем нет начального кодового слова веса, не превышающего d—1, с некоторыми первыми информационными символами, отличными от нуля.
Таким образом, если в множестве всех кодов длины пА сосчитать общее число начальных кодовых
слов веса, не превышающего d—1, с отличными от нуля некоторыми первыми информационными символами и если это число окажется меньше числа кодов, то должен найтись хотя бы один код с минимальным расстоянием, не меньшим d.
Так как в начальном кодовом слове всего пА символов, то неравенство
' Число ненуле-вых последова-тельностей дли-ны пд, веса неболее d — 1' Число ненуле-вых последова-тельностей дли-ны пд, веса неболее d — 1Максимальное чи-сло различных ко-дов, в которыхможет встретитьсякаждое начальноекодовое словохотя бы с однимненулевым первыминформационнымсимволомМаксимальное чи-сло различных ко-дов, в которыхможет встретитьсякаждое начальноекодовое словохотя бы с однимненулевым первыминформационнымсимволомОбщеечислоразлич-ных ко-довОбщеечислоразлич-ных ко-дов(44)(44)
' Число ненуле-вых последова-тельностей дли-ны пд, веса неболее d — 1
' Число ненуле-вых последова-тельностей дли-ны пд, веса неболее d — 1
Максимальное чи-сло различных ко-дов, в которыхможет встретитьсякаждое начальноекодовое словохотя бы с однимненулевым первыминформационнымсимволом
Максимальное чи-сло различных ко-дов, в которыхможет встретитьсякаждое начальноекодовое словохотя бы с однимненулевым первыминформационнымсимволом
Общеечислоразлич-ных ко-дов
Общеечислоразлич-ных ко-дов
(44)
(44)
означает, что должен существовать хотя бы один код с минимальным расстоянием не менее d. Из того факта, что каждый из (п0 — k^kQ полиномов степени не выше т, определяющих различные сверточные коды, может быть выбран q™^1 способами, следует, что существует в точности qWW»-k№ сверточных кодов. Таким образом, используя теорему 5, можно переписать неравенство (44) в виде
d-A
(45)(45)2 (дl)^(m+1) (”o-fto) < q^-k^ M^+i) j = s
(45)
(45)
или
Sti,(v-lV<9'","”"-V =о"*И. (46) /=1 А
а это и есть результат, который утверждается теоремой. Граница, устанавливаемая теоремой 6, эквивалентна границе Гилберта для минимального расстояния в блоковом коде с теми же скоростью передачи и длиной кодовой комбинации [12, стр. 67—68].
Следствие. Существует по крайней мере один двоичный сверточный код со скоростью R, кодовым ограничением Пд и минимальным расстоянием не м^
нее d, где d — наибольшее целое число, удовлетворяющее соотношению
.H<dM<A-R,(47)
где
Н (х) =—xlog2x— (1 —x)log2(l —х)— энтропия.
Доказательство. Для q=2 неравенство (43) приводится к виду
ЗС',<2,'Н(48)
Сумма слева ограничена сверху, согласно работе [4], так:
2 С'л <;(49)
отсюда, если
^пАН (dlnA) < ^пА (1-/?),(5Q)
или, что то же,
H^dlnA^< 1— R,(51)
то неравенство (48) удовлетворяется ’) и существует хотя бы один сверточный код с минимальным расстоянием не менее d, что и требовалось доказать.
Неравенство (47) представляет собой обычную асимптотическую форму границы Гилберта и будет использовано в гл. III как мера качества конкретных сверточных кодов.
Верхняя граница минимального расстояния
Способом, аналогичным использованному Плоткиным [13] .для блоковых кодов, можно подсчитать средний вес начального кодового слова хотя бы с одним отличным от нуля первым информационным символом, а затем воспользоваться средним весом, чтобы оценить минимальное расстояние.
!) Доказательство сохраняется, если в неравенствах (50), (51) поставить знак •< [так же как и в неравенстве (47)].— Прцм. ред» , . . ,
Так как множество начальных кодовых слов сверточного кода образует линейный код, а следовательно, группу (ср. § 1.1), то каждый элемент из GF(q) встречается на данной позиции в точности в \[q части всех кодовых слов. (Мы полагаем, что для каждого / по крайней мере один из символов g^\ hV\ ..., Zo отличен от нуля. Это необходимое и достаточное условие того, что ни одна из позиций в начальном кодовом слове не будет содержать только нули во всех кодовых словах, т. е. не будет ни одной «бесполезной» позиции.) Этот факт проверяется следующим образом: сложение любого кодового слова, имеющего в данной позиции элемент —Р1), со всеми кодовыми словами должно, согласно свойству замкнутости группы, воспроизвести первоначальное множество кодовых слов в некотором порядке. Тогда нуль на данной позиции окажется в стольких словах, в скольких первоначально на этой позиции стоял элемент р. Так как р выбран произвольно, то во множестве кодовых слов все элементы поля GF(q) должны встретиться на данной позиции одинаковое число раз. Таким образом, так как в множестве начальных кодовых слов имеется всего qRnA кодовых слов, а в каждом слове пА позиций, то общее число ненулевых позиций во всем множестве начальных кодовых слов равно [(<7— 1)/<7] tiAqRnA.
Множество всех начальных кодовых слов, в которых все первые информационные символы равны нулю, образует подгруппу, так как сумма любых двух таких слов есть снова такое слово. Из равенства (39) следует, что для этих кодовых слов ^У) = 0, /=1, 2, ..., п0. По той же причине каждый элемент из GF(q) встретится на любой из оставшихся пА — Ио кодовых позициях точно в 1/^ части этого множества начальных кодовых слов. Так как эта подгруппа содержит ^/?("л"ло) членов, то найдется всего [(<7— 1)А7(”л~Ло)] qR^nA”n^ ненулевых эле-
9 А такое кодовое слово всегда найдетсяе — Прим. редк
ментов в множестве всех таких начальных кодовых слов.
Средний вес кодового слова, в котором хотя бы один из множества первых информационных символов отличен от нуля, изображается в виде
Число ненулевыхпозиций всех на-чальных кодовыхсловЧисло ненулевыхпозиций всех на-чальных кодовыхслов^ср^срЧисло ненулевых позиций всех начальных кодовых слов, в которых все первые информационные символы есть нули
Число ненулевыхпозиций всех на-чальных кодовыхслов
Число ненулевыхпозиций всех на-чальных кодовыхслов
^ср
^ср
Число начальных \ /Число начальных кодовых слов,\ кодовых слов )— в которых все первые информа- \ ционные символы есть нули /
Используя предыдущие результаты, это равенство можно переписать так:
qqd 9-1Ucp d 9-1Ucp RnA q z x К^А-п^ ^пЛ_^("Л-по)RnA q z x К^А-п^ ^пЛ_^("Л-по)(52)(52)
q
q
d 9-1
Ucp
d 9-1
Ucp
RnA q z x К^А-п^ ^пЛ_^("Л-по)
RnA q z x К^А-п^ ^пЛ_^("Л-по)
(52)
(52)
d^=a q- ^л4d^=a q- ^л4Равенство (52) можно привести к виду
d^=a q- ^л4
d^=a q- ^л4
(53)
Поскольку минимальный вес кодового слова с некоторыми ненулевыми первыми информационными символами должен быть целым числом, которое в свою очередь не должно превосходить среднего веса, мы получаем в итоге следующий результат.
Теорема 7. Минимальное расстояние d сверточного кода удовлетворяет неравенству
rf<p-T"("A-Frf<p-T"("A-F(54)(54)
rf<p-T"("A-F
rf<p-T"("A-F
(54)
(54)
Следствие. Минимальное расстояние d двоичного сверточного кода со скоростью передачи R = = 1/п0 удовлетворяет неравенству
^<[1-^а + «о)]-(55)
Доказательство следствия дается подстановкой ^=2 и /?п0=1 в неравенство (54). Неравенство (55) представляет собой ту форму верхней границы мини-
мального расстояния, которая будет использована в гл. III.
Неравенства (54) и (55) не дают хороших верхних границ минимального расстояния при произвольном пА, так как для больших пА эти границы лишь приблизительно не зависят от скорости передачи R. Для нас эти границы интересны по следующей причине. В § 3.6 мы докажем существование класса кодов с заранее заданными значениями пА и п^ для которых в (55) достигается знак равенства.
Граница, основанная на случайном выборе кода
Обратимся теперь к задаче вычисления вероятности ошибки на приемном конце, которой можно добиться, пользуясь сверточным кодом при передаче по двоичному симметричному каналу. Прежде чем непосредственно приступить к делу, выведем более общую оценку, основанную на случайном выборе кода, которая справедлива не только для ансамбля сверточных кодов, но также и для нескольких других ансамблей линейных кодов.
Сосредоточим внимание на двоичных (п,й)-кодах. В любом таком коде множество 2ft всевозможных информационных последовательностей образует группу всех двоичных последовательностей длины к. Назовем разбиением группы отображение этой группы последовательностей длины к в любую ее подгруппу и ее собственные смежные классы (ср. приложение А).
Для примера возьмем случай к = 2. Одним из возможных разбиений группы будет
Н = [00, 01],Сх = [10, И].
Здесь в качестве подгруппы Н взяты последовательности длины 2, первый символ которых есть 0; в этом случае существует единственный собственный смежный класс Ci, состоящий из всех последовательностей длины 2 с первым символом единицей.
Заметим далее, что если к информационным позициям добавить проверочные, то полученные последовательности длины п можно распределить в подгруппу группы кодовых слов и в ее собственные смежные классы так, что прежнее разбиение группы информационных последовательностей сохранится. Если мы продолжим приведенный выше пример, положим и = 4 и сделаем первый проверочный символ равным первому информационному, а второй проверочный— сумме информационных, то получим
//' = [0000, 0101],С1' = [1011, 1110].
Разбиение группы информационных последовательностей есть не что иное, как «стандартное расположение» подгруппы и ее смежных классов, введенное в теорию кодирования еще Слепяном [15]. Несколько иная терминология используется здесь по следующей причине. В стандартном расположении Слепяна подгруппой является сама группа кодовых слов, а исходной группой — группа всех последовательностей длины п. Когда же к информационным символам в разбиении группы добавляются проверочные символы, подгруппой оказывается множество кодовых слов, информационные последовательности которых образуют подгруппу в первоначальном разбиении группы, а исходной группой — группа всех кодовых слов.
Разбиение группы интересует нас по следующим причинам. Во-первых, множество расстояний между элементами собственного смежного класса совпадает с множеством весов элементов подгруппы. Это тривиальным образом следует из определения смежного класса, приведенного в приложении А. Во-вторых, множество расстояний от любого элемента одного смежного класса до каждого из элементов другого смежного класса совпадает с множеством весов элементов некоторого фиксированного собственного смежного класса и не зависит от выбора элемента из первого смежного класса. Это следует из того
факта, что элементы любого смежного класса отличаются друг от друга на элемент подгруппы. Например, в коде, использованном в приведенном выше примере, элементы смежного класса находятся друг от друга на расстоянии 2, но любой элемент из Ci находится на расстоянии 3 от любого элемента из Н', так как все кодовые слова в единственном собственном смежном классе имеют вес 3.
В приложении Б устанавливается следующая нижняя граница вероятности ошибки, которая получается при решении вопроса, к какому смежному классу разбиения группы принадлежит информационная последовательность, если кодовые слова передаются по двоичному симметричному каналу.
Теорема 8. Если заданы ансамбль равновероятных двоичных (п, к)-кодов и разбиение группы информационных последовательностей, обладающее тем свойством, что любая информационная последовательность в любом собственном смежном классе имеет одинаковую вероятность иметь в качестве проверочной последовательности любую из ^^ всевозможных последовательностей длины п — к, то при передаче по двоичному симметричному каналу с любой скоростью kin, меньшей пропускной способности С, средняя вероятность Р(е) ошибки, с которой может быть определен смежный класс, включающий в себя передаваемую информационную последовательность, удовлетворяет неравенству
Р^<К2"па> (56)
где Киа — коэффициент и показатель соответственно в обычном выражении для границы, основанной на случайном выборе кода (точные значения — в приложении Б).
Назовем первой вероятностью Р^е^ ошибки сверточного кода среднюю вероятность ошибки декодирования последовательности первых информационных символов io \ j= 1, 2, ..., k^, по первым Па
полученным символам. Это определение позволяет сформулировать следствие из теоремы 8.
Следствие 1. Средняя по ансамблю двоичных сверточных кодов вероятность ошибки Pi^ удовлетворяет неравенству (56), если в нем п заменить на пА.
Доказательство. Мы видели (§ 2.1), что множество начальных кодовых слов сверточного кода образует (и, А)-код, где п = пА и &= (т+1)&0. Рассмотрим следующее разбиение группы: в качестве подгруппы возьмем все информационные последовательности, для которых последовательность всех первых информационных символов состоит из нулей, т. е. /^ = О, / = 1, 2, ...» ^о- Эта подгруппа имеет 2^° — 1 собственных смежных классов, и каждый собственный смежный класс содержит все те информационные последовательности, которые имеют одинаковые множества не всех равных нулю первых информационных символов. Для такого разбиения группы теорема 5 означает, что по ансамблю всех сверточных кодов любая информационная последовательность в собственном смежном классе имеет одинаковую вероятность быть присоединенной к любой возможной проверочной последовательности. Таким образом, все условия теоремы 8 выполнены и (56) справедливо для ансамбля двоичных сверточных кодов.
Установлен, следовательно, факт, что в ансамбле сверточных кодов должен существовать хотя бы один код, для которого последовательность первых информационных символов может быть определена с вероятностью ошибки, удовлетворяющей неравенству (56). В § 4.1 мы покажем, что для сверточного кода декодирование может быть выполнено последовательно с помощью алгоритма, который определяет последующие множества информационных символов таким же образом, как и множество первых информационных символов. Таким образом, если все предшествующие последовательности декодированы пра- рильщо, то последующие информационные qhmhqaw
могут быть определены с вероятностью ошибки, удовлетворяющей неравенству (56).
Хотя в этой книге, вообще говоря, не исследуются другие ансамбли, мы применим теорему 8 к рассмотренному Возенкрафтом ансамблю кодов со случайными сдвигами (ср. гл. I), чтобы показать ее пригодность вообще при доказательстве границы для случайных линейных кодов.
Следствие 2. Вероятность ошибки на блок для ансамбля кодов со случайными сдвигами удовлетворяет неравенству (56).
Доказательство. Коды со случайными сдвигами могут быть описаны следующим образом. Рассмотрим Л^-разрядный регистр сдвига, где N = = шах{й, п— ку Если этот регистр содержит вначале некоторую ненулевую последовательность, то после М сдвигов в регистре будут получаться для каждого Л4=1, 2, ..., 2^—1 различные ненулевые последовательности длины N.
Кодирование для кодов со случайными сдвигами выполняется так: к информационных символов помещаются в к младших разрядов регистра сдвига, который затем сдвигается некоторое фиксированное число раз М. Содержимое п — к младших разрядов регистра тогда трактуется как проверочная последовательность. Так как кодирующая цепь линейна, то и код будет (и, fe)-кодом. В ансамбле имеется 2^ кодов, по одному для каждого выбора числа Л4 = 0, 1, ..., 2^—1. Отождествим случай Л4 = 0 со случаем, когда регистр содержит только нули. Рассмотрим такое разбиение группы информационных последовательностей: подгруппой будет нулевая последовательность, и каждый собственный смежный класс содержит единственную, отличную от других информационную последовательность. Если все М равновероятны, то ясно, что ненулевые информационные последовательности с одинаковой вероятностью могут быть присоединены к любой проверочной последовательности. Таким образом, условия теоремы 8 выполнены и поэтому переданная информационна^
4 ^- MeQcg
последовательность может быть определена с вероятностью ошибки, удовлетворяющей неравенству (56). (Этот ансамбль кодов интересен тем, что из всех ансамблей, для которых можно показать, что к ним применима граница, основанная на случайном выборе кода, он содержит меньше всего кодов.) Интересно, что для вывода границы для ансамбля сверточных кодов и для ансамбля блоковых кодов используется одна и та же основная теорема.
Теорему 8 можно использовать также для доказательства того, что ансамбль скользящих кодов и ансамбль всех систематических кодов удовлетворяют границе случайных кодов. Доказательство этого последнего факта вполне аналогично доказательству следствия 2 и потому здесь не приводится.
Схемы кодирования
В гл. I утверждалось, что первой задачей кодирования является построение хороших кодов, допускающих простую реализацию. Класс сверточных кодов удовлетворяет и границе Гилберта, и границе для случайных кодов, а потому может быть отнесен к классу «хороших» кодов. Мы покажем также, что эти коды удовлетворяют и требованию простой реализации.
Одно из главных преимуществ полиномиального подхода к сверточному кодированию, который мы приняли в этой главе, состоит в том, что этот подход естественным образом ведет к построению схем кодирования. Уравнения (28) и (29), определяющие алгоритм кодирования, уже представлены в удобной форме с помощью операторов задержки.
Кпд-разрядный кодер
Схема для выполнения операций, определяемых уравнениями (28) и (29), может быть синтезирована, как показано на рис. 5. В этой схеме каждая 113 ho информационных последовательностей IU)^D^
/=1,2, ..., kQ, подается на отдельный т-разрядный регистр сдвига и одновременно на один из выходных полюсов, а По — к0 проверочных последовательностей №(£)), / = ^о+1, &о + 2, ..., По, образуются сумматорами без применения обратной связи. Так как
Рис. 5. /^Пд-разрядный кодер.
в каждой из ко цепей регистров сдвига имеется т разрядов, то общее число разрядов регистров сдвига в этом кодирующем устройстве равно mko = R^nA— ^о) или приближенно RnA.
Выход /?пА-разрядного кодера согласуется с уравнениями (28) и (29); это можно проверить следующим образом: положим /^=1, а все остальные входные символы равными нулю. Легко проверить, что тогда на выходе / будет формироваться О^ф) при / = Л0+1, /г0 + 2, ..., «о, а это — полиномы, на которые умножается первая информационная последовательность в равенстве (29). Подобно этому, единственная единица на любом другом входе дает в качестве выходов полиномы, связанные с этой входной последовательностью в том же равенстве (29). Ли-
нейность цепи гарантирует, что для произвольных входных последовательностей выход будет правильным.
(1 — Н)пА-разрядный кодер
Другое устройство, которое выполняет операции, определяемые равенствами (28) и (29), показано на
их Сумматор Ш в поле CF(q)их Сумматор Ш в поле CF(q)□ Единичная задержка□ Единичная задержкаУмножение на постоянную величинуСУмножение на постоянную величинуС
их Сумматор Ш в поле CF(q)
их Сумматор Ш в поле CF(q)
□ Единичная задержка
□ Единичная задержка
Умножение на постоянную величину
С
Умножение на постоянную величину
С
Рис. 6. (1 — R^n-разрядный кодер.
рис. 6. Эта схема имеет m-разрядный регистр сдвига для каждой из м0 — ko проверочных последовательностей и содержит, таким образом, всего т(м0 — ^о) == = (1—К) ^А — п0) или приближенно (1—/?)пАраз^ рядов регистра сдвига. Будем называть эту схему (L — /?) поразрядным кодером. Сумматоры в этой схеме размещены между разрядами регистров сдвига и поэтому имеют не более чем по &о+1 входов. Это свойство может оказаться важным в цифровых схе-
мах с высокими скоростями, где задержки в логических элементах становятся значительными.
Выход (1—/?) Поразрядного кодера согласуется с уравнениями (28) и (29); это доказывается так же, как и для /?иА-разрядного кодера.
Преобразование выходных символов в одну последовательность
В обоих описанных кодирующих устройствах выходные символы выдаются совокупностью ПО По символов в каждую единицу времени по одному на
Выход, с которого считываются символы, преобразованные в одну общую последовательность
Рис. 7. Коммутирующая схема.
Ключи работают со скоростью, в л0 раз меньшей, чем каждый разряд регистрасдвига.
каждом из По выходов. Если нужно передавать эти символы по одному каналу связи, то они должны поступать на его вход последовательно со скоростью один символ в 1/п0 единицу времени. Это упорядочение символов можно выполнить коммутирующей схемой, показанной на рис. 7 и состоящей в основном из схемы отсчета и (п0—1)-разрядного регистра сдвига.
г. Замечания о схемах кодирования
Описанный выше /?пА-разрядный кодер по существу такой же, как и построенный Возенкрафтом и Рейффеном [4, стр. 77—79] для кодирования в канонической форме. (1—/?) Поразрядный кодер для сверточного кода не был, по-видимому, описан ранее.
Так как RnA— число информационных, а (1—R)nA—число проверочных символов в кодовом ограничении, сверточное кодирование может выполняться линейной последовательной схемой, количество запоминающих устройств (т. е. разрядов регистра сдвига) в которой равно одной из этих величин, т. е. меньшей из них. Питерсон [12, стр. 167—168] доказал этот же результат для блоковых циклических кодов. Эта аналогия интересна тем, что, как было показано в § 2.3 и 2.5, сверточные коды удовлетворяют и границе Гилберта, и границе для случайных кодов, в то время как о поведении циклических кодов большой длины известно мало.
§ 2.7. Вычисление проверок
В п. 1.1а проверкой была названа сумма
83 = ^14-^ j = k-V\, А + 2, ..., п,
и мы видели, что проверки представляют собой систему п—к уравнений относительно п шумовых переменных eb 52, ..., еп.
Прежде чем показать, каким способом можно вычислять проверки для сверточного кода, докажем сначала более общее утверждение.
Теорема 9. Проверки для (п, к)-кода могут быть получены вычитанием принятых проверочных символов tj, /=&+1, й + 2, ..., п, из проверочных символов, полученных кодированием принятых информационных символов ^-,/=1,2,..., к.
Доказательство. Согласно уравнениям (2), кодирование принятых информационных символов даст множество проверочных символов /у, где
к
^ = ^0^ /=^+1, ^ + 2, ..., п. (57) / = 1
Вычитание принятых проверочных символов даст t,j — rj=^cjiri — rj1 / = ^+1, к + 2, ...» и, (58)
а это совпадает с определением проверок посредством уравнений (4), что и доказывает теорему.
ф Сумматор в поле CF(q)
Рис. 8. Схема вычисления проверок для сверточных кодов.
Мы видели уже, что множество начальных кодовых слов сверточного кода образует (и, й)-код, а потому теорема 9 может быть применена и к нему. Из этой теоремы следует, что схема на рис. 8 может быть использована для вычисления проверок сверточного кода. Кодирующим устройством в этой схеме может быть любое из устройств, описанных в п. 2.6а, б.
Принятые последовательности R^ (D), / = 1, 2,... ..., По, могут быть записаны в терминах D-обозначений так:
^VD^rV^rVP-V-rW-V- .... /=1, 2,п0,
здесь г^— символ, поступивший на /-й вход в момент и. При помощи этих обозначений шумовая последовательность Е^ф^, /=1, 2, ..., п^ изображается в виде
£У)(/)) = 4У) + № + 4У)^2+ ...» /=1, 2, .... га0, (60)
где е^— шумовой символ, оказавшийся в момент и в /-й принятой последовательности, т. е.
R^ (D) = Tw (D) + Ew (D), у = 1, 2, ..., no. (61)
Рис. 9. Декоммутирующая схема для символов, расположенных в одну общую последовательность.
Ключи срабатывают один раз в каждую единицу времени, начиная с поступления первого принятого символа на выход RvX Каждый разряд регистра сдвига создает задержку в 1/л0.
Тогда из теоремы 9 следует, что проверочные последовательности З^ф^ / = ^0+1, fe0 + 2, ..., п0, изображаются в виде
^ (О) = [G(/) (D) Rw (D)+ ... + Zu) (D) Н^ф'Д —
-RU4DX / = А0+1, Aq+2,n0.(62)
Подставляя (29), приводим (62) к виду
^> (D) = [О,У) (D) Ew (D)+ ... + Zw (Z)) ^ (D)] — -^^4DXy = ^+l, Aq+2, nQ. (63)
В схеме вычисления проверок на рис. 8 предполагается, что принятые символы поступают совокупностями по п0 символов в каждую единицу времени. Если принятые символы передавались по одному каналу связи последовательно (ср. п. 2.6в), то нужно восстановить первоначальное параллельное поступление символов декоммутирующей схемой, показанной на рис. 9. Эта схема накапливает принимаемые символы, пока не будет принято п0 символов; за это время накопленные символы рекомбинируются для образования По одновременно принятых последовательностей. Как было в случае коммутирующей схемы, изображенной на рис. 7, эта схема для восстановления первоначального течения процесса во времени состоит в основном из схемы отсчета и п0— 1 разрядов сдвига. Интересно отметить, что регистры сдвига в кодере и декодере производят в единицу времени один сдвиг, тогда как от регистров сдвига в коммутирующей и декоммутирующей схемах требуется производить один сдвиг символа, направляемого в канал или поступившего из канала со скоростью, в По раз большей.
Глава III
СВЕРТОЧНЫЕ КОДЫ ДЛЯ ПОРОГОВОГОДЕКОДИРОВАНИЯ
Введение
Принцип порогового декодирования, сформулированный в гл. I, будет использован теперь в применении к сверточным кодам. Этому же вопросу будут посвящены гл. IV и V. Мы построим коды, к которым можно эффективно применить алгоритм порогового декодирования; для них же будут предложены декодирующие схемы и приведены данные о характеристиках кодов для нескольких каналов связи.
Проблема декодирования для сверточных кодов
Изложим характерные черты проблемы декодирования для сверточных кодов, необходимые для понимания основ построения кодов, к которым применимо пороговое декодирование.
В § 2.2 было показано, что начальные кодовые слова сверточного кода (т. с. все возможные совокупности из пА символов, передаваемых от начального момента времени 0 до момента т) образуют линейный (п, &)-код. Таким образом, замечания п. 1.2 относительно проблемы декодирования линейных кодов справедливы и для сверточных кодов. Кроме этого, декодирование сверточных кодов отличается одной характерной особенностью, состоящей в том, что по пА символам принятого начального кодового слова нужно определить только множество первых информационных символов iV\ 7=1, 2, ..., Ао.
Для определения множества первых информационных символов можно, разумеется, воспользоваться меньшим или большим, чем пА, числом принятых символов. Если используется меньшее число, то достаточно было бы более короткого кода. Если исполь-
зуется большее число, то при декодировании множества первых информационных символов может быть уменьшена вероятность ошибки Р^еУ^ однако, как указал Р. Галлагер (частное сообщение), уменьшен ние вероятности ошибки может быть достигнуто более просто использованием кода с большим пА.
Положим, что мы располагаем алгоритмом, который позволяет по пА символам принятого начального кодового слова определить множество первых информационных символов. Обозначим это множество через iV^ , подчеркивая тем самым, что эти величины могут отличаться от истинных значений. Рассмотрим измененные принятые последовательности R^* (D), заданные в виде
Rw * (В) = Rw (D) -ЙГ, У = 1, 2, ..., Ao, (64)
И
rW * (£)) = R^ (/)) — [#> *Q^ (D) + ... + t^o) *Z(n (Z))], y = A0+l, Ao4-2, .n0.(65)
Из соотношений (28) и (29) следует, что если декодирование было правильным, т. е. i(P* = i\P при /=1, 2, ..., к0, то влияние множества первых информационных символов на переданную (а потому и на принятую) последовательность устраняется. Таким образом, декодирование символа Й\ / = 1, 2, ..., #0, может быть выполнено по пА символам измененных) последовательностей R^ (D\ принятых от момента 1 до момента т+1, посредством того же алгоритма, который был использован для декодирования символа $\ у= 1, 2, . ..,&0, по пА символам первоначальных последовательностей F^^ ф\ принятых от момента 0 до момента tn. Продолжая этот процесс, декодирование можно вести последовательно, в каждый момент времени декодируя новое множество ко информационных символов.
Если при декодировании произошла ошибка, то возникает очевидная трудность. Действительно, пред-
положим, что множество первых информационных символов декодировано неверно; тогда выполнение операций равенства (65) приведет к появлению в принятых проверочных последовательностях искаженных символов, а именно:
К1-/?1-] о»'(Д)+ ... +[<Г'>-<М2'''(О),
У —^o+L ^оН~2, .м0. (66) Эти искаженные символы влияют на выполнение алгоритма декодирования примерно так же, как пачка ошибок длины пА в канале с шумами, а потому можно ожидать, что последующие множества информационных символов будут с высокой вероятностью декодированы неправильно. Это известный «эффект размножения» ошибок при декодировании сверточных кодов. Изложим два основных метода, с помощью которых эту неприятность можно обойти, а именно методы «ресинхронизации» и «подсчета ошибок».
В методе ресинхронизации произвольные информационные символы кодируются только в течение фиксированного числа N моментов времени. В течение следующих m моментов времени кодируются нули. Так как в процессе декодирования используются символы, посланные не более чем m моментов времени тому назад, декодирование производится независимо от символов, принятых в соответствующие N-V-m моментов времени; по прошествии этого времени декодирующее устройство становится свободным и процесс декодирования начинается снова по следующим принятым символам. Таким образом, любое размножение ошибок ограничивается N + m моментами времени или ^N + m)n0 принятыми символами. Применение метода ресинхронизации уменьшает скорость передачи. Новая скорость передачи равна
где Я = кй]по—номинальная скорость сверточного кода. Если N^m, то скорость снижается несущественно.
Более изящным приемом борьбы с размножением ошибок является метод «подсчета ошибок». Он пред-
ложен Возенкрафтом и Рейффеном (в несколько иной, чем здесь, форме), чтобы обратить размножение ошибок в полезное свойство двусторонней системы связи [4, стр. 96]. Короче говоря, метод заключается в следующем. Если для некоторой совокупности принятых символов используемый алгоритм декодирования «исправляет больше ошибок», чем это возможно при существующей исправляющей способности кода, то полагают, что при декодировании произошла ошибка или что интенсивность шумов в канале временно настолько возросла, что канал нельзя использовать с требуемой надежностью. В этом случае на приемном конце просят повторить передачу с того момента, когда шумы в канале резко возросли 1). Более детально этот метод рассматривается в п. 4.2в.
Основной смысл предыдущих рассуждений состоит в том, что тщательная разработка алгоритма порогового декодирования нужна только в той его части, где речь идет об определении ошибок е^\ /=1, 2, ..., . ..,&0, в множестве первых информационных символов. Остальные этапы процесса декодирования, а именно изменение принятых последовательностей для устранения влияния первых символов и контроль за размножением ошибок, могут быть выполнены обычными способами. Таким образом, проблема построения сверточного кода, допускающего пороговое декодирование, сводится к нахождению кодов, для которых эффективным способом может быть выполнен переход от обычных проверок к системе проверок, ортогональных относительно ^\ /=1, 2, ..., &0, так как только эти ошибки и должны быть определены в процессе декодирования.
Структура проверок
Из предыдущих замечаний ясно, что необходимо тщательное исследование структуры проверок свер-
!) Для применения этого метода требуется наличие не только обратной связи, но и запоминающего устройства на передающем конце. — Прим, ред.
точного кода. Из уравнений (58) видно, что проверочные последовательности записываются в виде
sm (D) = [G(y) (D) £(1) (D) + ... + Z(7) (D) ^ (D)] —
-EU\D\ / = AO+1, £o+2, ...» fl0. (68)
Следуя нашему обычному методу, представим эти последовательности в виде
S^D^s^-Vs^D-^D2^- ...;(69)
здесь s^— проверка в последовательности S-^D), вычисленная в момент и с помощью схемы, представленной на рис. 8. Из равенства (68) имеем
... +й'Ч|1+...
... +№‘4z!M«+ ... +W1-» (70)
Так как и > m при g^^O, то ни одна проверка не будет включать шумовые символы, имевшие место более чем m моментов времени тому назад.
В матричной форме равенство (70) для проверок с момента 0 до момента m может быть записано в виде
'с(^о+1)
SO
^o+1)
(71)
т .т .с<”о) — от
т .
т .
где /т(„,_»,)—единичная матрица : а Нь — следующая матрица:
go^0
g(*o+1) g^’+1)0г(Л+1)
порядка m(n0—ко)
-(^о+ПA
^0v
Q(*o+1)
8m
(fro + l)_(^о1-1)
gm-t • • • g0
(^0 i U
~(^o + 1) ^m-l • •
-tfo+l)
g^ g(^}
go
0
... z^
J"o) 2^0
0
JgY g^i
Как видно из
(72),
8o
все
~(«o)
ненулевые
An^ Zm-i . .
элементы
. ZK^
матрицы
Л/д лежат целиком внутри множества (п0 — k0)k0 тре
угольных подматриц, которые мы будем называть проверочными треугольниками. Существует По — к0 рядов проверочных треугольников и ко столбцов проверочных треугольников !).
Использование проверочных треугольников будет значительным подспорьем в построении кодов для порогового декодирования. Каждый проверочный треугольник имеет следующую общую форму:
go
gi 8о
82 818о
8з 8281 * 8о
8m 8m-l • • 81 8о*
!) Ряды проверочных треугольников не следует смешивать со строками матрицы //д, равно как столбцы проверочных треугольников — со столбцами матрицы Н^.— Прим, перев^
Иными словами, структура каждого проверочного
треугольника определяется одним из порождающих полиномов. Весь проверочный треугольник единственным образом определяется первым столбцом или последней строкой.
Уяснить структуру проверки поможет один пример. Рассмотрим двоичный сверточный код со скоростью передачи R = k^n0 = 2l3 и nA= (т+1)п0 = 9. В качестве порождающих полиномов выберем G(3)(Z)) = 1+Z) и t№(D) = lW. Тогда уравнение (71) принимает вид (в двоичном поле —1=1, так как 1 + 1=0 и 1= —1)
(73)
43)
^3)
Л-
а это матричное представление следующих уравнений:
4”=4“+#+ 4”
sf>=4"+rfl + 4a +# 4” =44 4" + #+ 4”+ 4».
(74) Сравнивая (74) и (73), легко заметить, что способ вхождения шумовых символов в проверки может быть прочитан непосредственно по матрице [77д:— /]. Каждая строка матрицы [Нд: — /] дает коэффициенты при шумовых символах в соответствующей про* верке.
Следует отметить, что Sq3) и s образуют систему проверок, ортогональных относительно го\ так как оба уравнения контролируют £о\ но никакой другой шумовой символ двумя этими уравнениями не контролируется одновременно. Аналогично можно увидеть, что ^3) и S23) образуют систему двух проверок, ортогональных относительно^- Теперь из теоремы 1 следует, что в множестве первых информационных символов !) шумовые символы ^о* и £q2) могут быть правильно определены алгоритмом мажоритарного декодирования при условии, что в первых пА = 9 принятых символах произошло не более одной ошибки. Таким образом, как мы показали, один и тот же алгоритм мажоритарного декодирования может быть использован для исправления всех ошибок в принятых последовательностях при условии, что девять символов, принятых в три последовательных момента времени, никогда не будут содержать более одной ошибки.
Покажем теперь, как можно обобщить идеи этого примера, чтобы получить интересное и полезное множество кодов. До конца этой главы мы будем заниматься только двоичными кодами.
Кодовые границы
Здесь будет удобно ввести следующие определения. Пусть {AJ — система J проверок, ортогональных относительно ^Для двоичного сверточного кода со
скоростью передачи R=Y/n0. Число шумовых символов, кроме ^о\ которые контролируются некоторой проверкой А^ будем называть размером проверки Ai и обозначать через Пг-
Общее число различных шумовых символов, контролируемых системой {Дг}, будем называть эффективным кодовым ограничением и обозначать через пЕ. Из этого определения сразу следует, что
^е=^ А-^ ^i (75) z=i .
и, разумеется, пЕ<пА. (76)
так как пА — общее число различных шумовых символов, контролируемых проверками 8ц\ линейные комбинации которых образуют систему {Д^}.
Теорема 10. Каковы бы ни были скорость передачи R=lln0 и целое число J, существует сверточный код 9, для которого система (Дг) проверок, ортогональных относительно во\ может быть построена таким образом, что эффективное кодовое ограничение удовлетворяет соотношению
«2?<ТСТу2 + Р+1 + М1-гТ=7?]> (77)
где r = J mod (n0 — 1).
Доказательство теоремы 10 дано в приложении В. Это доказательство основывается на том, что можно построить сверточный код, такой, что среди проверок s^ найдутся / проверок, контролирующих символ f^, причем таких, которые образуют систему проверок, ортогональных относительно ^о^- В этом построении размеры nt проверок определяются приведенным ниже следствием.
9 В соответствии с указанием в конце предыдущего параграфа здесь и далее рассматриваются только двоичные коды. Иногда в формулировках это отмечается, а иногда нет. — Прим, ред.
Следствие1). Каковы бы ни были скорость передачи R=\ln0 и целое число I, существует двоичный сверточный код, для которого могут быть построены! проверок, ортогональных относительно е^, так что п0 — 1 из них имеют размер j для каждого j, 1 ^ ^j^Q, а г из них имеют размер Q+1, где
J = Q(no—l)+r, О^г<по—1. (78)
Для скоростей R = kQ/no, где й0=#1, теорема 10 может быть обобщена следующим образом: эффективное кодовое ограничение пЕ определяется как максимальное по всем j из числа различных шумовых символов, которые встречаются в системе / проверок, ортогональных относительно е^ для /=1, 2, ..., к0. В соответствии с этим определением имеем следующую теорему, доказательство которой также приводится в приложении В.
Теорема 11. Каковы бы ни были скорость передачи R = kQ/nQ и целое число J, существует сверточный код, для которого J проверок, ортогональных относительно е\]\ j=\, 2, ..., ку можно построить так, что эффективное кодовое ограничение пЕ удовлетворяет соотношению
^Tl^^+lv+l+l^o-r-^]. (79)
где r = I mod (п0 — к^.
В случае й0=1 теорема 11, как и следует ожидать, приводится к теореме 10.
Оценка качества кодов, которые удовлетворяют границам, указанным в соотношении (79) или (77), может быть получена следующим образом. В соответствии с границей Гилберта [соотношение (47)] отношение d)nA минимального расстояния к кодовому ограничению можно сделать таким, чтобы удовлетворить равенству H(d/nA) = l — R. Минимальное рас-
’) На самом деле это не следствие из теоремы 10, а описание некоторых свойств проверок, способ построения которых лежит в основе доказательства теоремы 10. — Прим, перев.
стояние d означает, что всякий раз, когда на протяжении кодового ограничения пА произойдет не более [(d—1)/2] ошибок, множество первых информационных символов всегда может быть декодировано правильно. С другой стороны, мы видели, что всякий раз,
Рис. 10. Отношение числа J ортогональных проверок к удвоенному эффективному кодовому ограничению п£, вычисленному по теоремам 10 и 12, и сравнение этого отношения с асимптотической границей Гильберта.
Число около каждой точки указывает величину эффективного кодового огра-ничения.
когда на протяжении эффективного кодового ограничения пЕ произойдет не более | J^ j ошибок, символ е^ может быть правильно найден мажоритарным декодированием. Таким образом, для того чтобы пороговое декодирование было эффективным, отношение П^Пе должно быть не меньше, чем отношение (d—1)/2мд, которое дается границей Гилберта.
На рис. 10 отношение J!2nE, определенное теоремами 10 и 11, сравнивается с отношением ^d—1)/2мА, полученным из асимптотической границы Гилберта в форме (47).
(Правильней было бы сравнивать с неасимптотической границей (43), но такое сравнение трудно представимо графически. К тому же это едва ли повлияло бы на результат, так как при ^=100 величина й^пд для асимптотической и неасимптотической границ приблизительно одинакова. Например, при nA=100 и /?=1/2 первая дает 0,55, а вторая 0,60.) Для широкого диапазона скоростей передачи отношение Л^Пв не достигает нижней границы Гилберта, пока эффективное кодовое ограничение не становится величиной порядка 100—150 символов. Можно ожидать, что именно для кодов, эффективное кодовое ограничение которых не превосходит этой величины, пороговое декодирование даст хорошие результаты. Ясно, что для кодов, удовлетворяющих теореме 10 со знаком равенства, отношение ЛпЕ в конце концов становится ничтожно малым, так как / растет только как квадратный корень из пЕ, в то время как из рассмотрения границы Гилберта видно, что d можно сделать растущим линейно с ростом пА.
Мы не нашли кодов с отношением J/2nE, существенно меньшим, чем границы, определяемые теоремами 10 и 11 при скоростях 1/10 и более. С другой стороны, не удалось доказать, что такие коды отыскать невозможно, кроме частного случая /? = 1/2. В этом случае мы смогли показать, что граница, даваемая теоремой 10, является также и нижней границей величины пЕ.
Теорема 12. При скорости передачи R=\I2 и любом целом числе J можно отыскать сверточный код, для которого могут быть построены J проверок, ортогональных относительно е^ и таких, что ^^l^+^+l-(80)
Обратно, невозможно найти такой код, для которого пЕ будет меньше этой величины.
Доказательство. Доказательство, что пЕ можно сделать столь же малым, как правая часть в равенстве (80), получается простой подстановкой /?= 1/2 в соотношение (77). Доказательство того, что невозможно добиться лучшего результата, получается следующим образом.
Первый шаг доказательства состоит в том, чтобы найти нижнюю границу числа единиц, которые могут содержаться в некоторых суммах столбцов матрицы Н^. Тем же способом, что был использован при выводе формулы (71) из (68), легко показать, что при ^=1/2 проверочная последовательность T^^D) может быть представлена через информационную последовательность /тф) матричным произведением
/52)
= |^д| •
^0
,•(1)
••(81)
/2) ^т _
Jin _
Тогда проверочная последовательность, рассматриваемая как вектор, будет суммой столбцов матрицы //д, соответствующих тем информационным символам, которые равны единице. Предположим, что имеется некоторая сумма из С столбцов матрицы /Уд, включая первый столбец, которая содержит N единиц. Равенство (81) тогда означает, что существует начальное кодовое слово, которое при /о)=1 имеет С ненулевых информационных символов и N ненулевых проверочных символов. В таком случае вес этого начального кодового слова равен C+N и нс может быть меньше d, минимального расстояния кода. Отсюда N^ d — С, т. е. в любой сумме из С столбцов матрицы Н^ включая первый столбец, должно быть не менее d — С единиц.
При R =1/2*) матрица H^ состоит из единствен- ноУо проверочного треугольника
g? g^ ^
^ g^ g^(82)
аЮ М „(2)а(2) g(2)
е>щ • • • бз 8251 6Q •
На втором шаге доказательства отмечаем, что столбцы и строки матрицы Яд играют одинаковую роль. Именно, рассматривая, например, первые четыре строки, мы видим, что сумма второй и четвертой строк содержит точно такое же число единиц, как. и сумма первого и третьего столбцов, так как в обоих случаях складываются одни и те же члены. Вообще существует взаимно однозначное соответствие между суммами строк, включающими последнюю строку, и суммами столбцов, включающими первый столбец. Таким образом, из предыдущего абзаца следует, что в любой сумме из С строк матрицы //д, включающей последнюю строку, должно быть не менее d—С единиц.
Пусть теперь имеется код со скоростью передачи R = 1/2, для которого построена система проверок Дь Д2, • • •, Aj, ортогональных относительно е^. Как мы видели, коэффициенты в каждой проверке А^ соответствуют сумме выбранных строк матрицы [Нд:/]). Предположим теперь, что проверки упоря-
’) При записи R в виде 2?= 1/2 подразумевается, что &о=1, ло=2, а не ло=2&о. — Прим. ред.
дочены таким-образом, что если I < /, то самая нижняя строка, участвовавшая в построении Л^ расположена ниже самой нижней строки, участвовавшей в построении ЛР). Рассмотрим сверточный код с /?=1/2, для которого последняя строка в проверочном треугольнике есть самая нижняя строка, участвующая в построении Лг. В соответствии со следствием из теоремы 1 минимальное расстояние di этого кода должно быть не менее Z+1, так как можно построить i проверок, ортогональных относительно е^, а именно Ль Л2, ..., Av Наконец, положим, что при построении At складывалось С^ строк матрицы [//д : /]. Тогда размер nt этой проверки должен удовлетворять условию
п^^-С^-Ц+Сь(83)
в чем можно убедиться с помощью следующего рассуждения. Число информационных шумовых символов, контролируемых проверкой А^ кроме ^\ на единицу меньше числа единиц в сумме из Ct строк матрицы //д. Так как эта сумма включает последнюю строку, в ней должно быть не менее di — Ci единиц. Последний член в (83) справа объясняется тем, что сумма из Ct строк единичной матрицы / всегда содержит С< единиц, а это и есть число проверочных шумовых символов, контролируемых проверкой At.
Так как di^ i-V\, то неравенство (83) превращается в
nf > L(84)
Подставляя (84) в (75), получаем
j
nE>^i^r\ = ^A-^JA-X,(85)
Z = 1
а это и есть утверждение теоремы.
9 Следует иметь в виду, что каждая строка матрицы [77д: Z] входит не более чем в одну из проверок Av— Прим. ред.
Тот факт, что при R=\[2 теорема 10 дает наименьшее возможное значение величины пЕ, невольно приводит к предположению, что такой же результат может иметь место при других скоростях. Это предположение неверно. В следующем параграфе будет построено много кодов, для которых пЕ несколько меньше, чем верхняя граница в теореме 10 при /?¥=1/2.
Собственно ортогональные коды
Рассмотрим более детально те сверточные коды, для которых система проверок, ортогональных относительно е^\ имеет простейший вид. Назовем собственно ортогональным сверточным кодом такой код, в котором система всех проверок s^\ контролирующих символ^), /=1, 2, ..., Ао, уже сама является системой проверок, ортогональных относительно е^.
В соответствии с этим определением коды, использованные в конструктивных доказательствах теорем 10 и 11, являются собственно ортогональными. Ограничимся рассмотрением собственно ортогональных кодов со скоростью передачи R=\)2. В этом случае существует единственный проверочный треугольник (82), соответствующий единственному порождающему полиному G^)(D). Посредством приема, использованного в доказательстве теоремы 10, получается код, для которого ненулевые члены в G^^D) суть
^-i-i=1’ < = 2- (86)
В таком случае G^(D) имеет степень m = 2J-v — 1. Система J проверок, которые контролируют ^ а именно
J, (87)
является системой проверок, ортогональных относительно е^’ эффективное кодовое ограничение которой равно
Пс^у^ + уУ+к (88)
С другой стороны, фактическое кодовое ограничение пА равно
пл = п0(т+1) = 2т, (89)
из чего видно, что даже для небольших значений / ограничение пА значительно больше, чем пЕ.
Вообще говоря, большая величина отношения Па^е нежелательна по двум причинам. Во-первых, сложность кодера (ср. § 2.7) и декодера (ср. п. 4.2в) прямо пропорциональна величине пА, а не пЕ. Во- вторых, период ресинхронизации может оказаться неприемлемо большим (ср. § 3.2) и, таким образом, не может обеспечить надежной защиты от размножения ошибок декодирования. Последний факт лучше всего иллюстрировать примером. Из выражения (67) следует, что выбор N = 9m вполне разумен, если фактическая скорость передачи не должна быть существенно меньше номинальной скорости R = xls. Период ресинхронизации N+m будет тогда 10m единиц времени. При /=10мы имеем т = 2у~1—1=511 и, таким образом, период ресинхронизации равен 5110 единиц времени. С другой стороны, для этого кода пЕ=56, и если бы пЕ и пА были одинаковы (это означало бы, что т = 27), период ресинхронизации составлял бы тогда только 270 единиц времени.
Интересно, что собственно ортогональные коды могут быть построены с пА, значительно меньшим, чем в кодах, использованных для доказательства теоремы 10.
Проиллюстрируем метод построения для случая R = x/s. Он состоит в том, что, считая j возрастающим, полагают g^p = 1 тогда и только тогда, когда,
кроме е^» проверка s^ не содержит ни одного шумового символа, который бы содержался в предыдущих проверках относительное^. Так, например, проверочным треугольником кода с / = 5, построенного этим способом, будет
* 1
— 1 S
О 1 1
—i о 0 0
0 10 11
0 0 10 11
(90)(90)0 0 0 1 0 1 1
(90)
(90)
*1 0 0 OfflOЭШ
0 1 0 0 0 1 0 1 1
0 0 1 0 0 0 1 0 1 1
0 0 0 1 0 0 0 1 0 1 1
000010001011
-^ 1 о о о о CD о о о Щ о О Э
Здесь приняты следующие обозначения: нумерованные стрелки указывают ортогональную проверку и ее размер п^ а прямоугольником обводится каждый ненулевой коэффициент (кроме коэффициента при е^}) при информационном шумовом символе ортогональной проверки. Такой прием делает ортогонализацию проверок наглядной.
В табл. 1 приведен список некоторых кодов с четными значениями / до 14 включительно, которые получены с помощью описанного выше метода. Для сравнения перечислены кодовые ограничения 2У равенства (89). Из таблицы видно, что для этого второго класса собственно ортогональных кодов отношение Пд/пе существенно улучшено, но еще достаточно велико и для схем кодирования и декодирования требует намного больше запоминающих устройств, чем нужно было бы в случае, когда пА1пЕ близко к единице.
.Таблица I
Собственно ортогональные коды для скорости R = у2
R
J
ПЕ
nA
2J
код
V,
2
4
4
4
g^=g^=l
4
11
16
16
№^=^=x
6
2
42
64
W^-^ =1
8
37
90
256
(+)^=^=1
10
56
162
1024
(+)^=^=1
12
79
238
4096
(+)^=^=1
14
106
356
16384
(+)^3 = ^7=1
Знак + означает, что порождающий полином получается из полинома предыдущей строки добавлением коэффициентов данной строки.
Коды, полученные методом проб и ошибок (ПО-коды)
Тот факт, что для собственно ортогональных кодов отношение nA]nE значительно больше единицы, к счастью, не означает, что это справедливо всегда в случае других сверточных кодов. Методом проб и ошибок оказалось возможным строить коды, для которых величина пЕ совпадает с верхней границей (77) или меньше ее и для которых отношение nA[nE почти равно единице. Обширный список этих кодов для скоростей У2, Уз, Уб и Ую приведен в табл. II.
Следующий пример будет служить и руководством для чтения табл. II, и иллюстрацией идей построения кодов. Рассмотрим в табл. II код с /?=Уг и / = 6. Код записан в виде (0, 6, 7, 9, 10, II)2; это служит кратким обозначением того, что ненулевые коэффициенты порождающего полинома G^^D^ суть
g^ = ^ = g? = g^ = ^ = g$ = 1. (91)
Проверочный треугольник (82) принимает вид1)
1 —* 1
О о о о о 2 —* 1 3 — 1О 4 -— 1 5 — 1 6 —* 1О о о о о 2 —* 1 3 — 1О 4 -— 1 5 — 1 6 —* 11 О 1
О о о о о 2 —* 1 3 — 1
О 4 -— 1 5 — 1 6 —* 1
О о о о о 2 —* 1 3 — 1
О 4 -— 1 5 — 1 6 —* 1
о О 1 ООО1 :
(92)(92)00001
(92)
(92)
ОООООШ
щоооо00
1100000 0
000000000
1 0 1 00 0 0 0 0 0 J
1 10 1Ц]00000Ш
Обозначения совпадают с принятыми для треугольника (90); линии справа от треугольника указывают, какие строки следует складывать для образования ортогональных проверок. В таблице правила образования ортогональных проверок выписаны в виде О2; 62; 72; 92; 1232102; 42821 12, что является краткой формой записи выражений
А-42).
А
A=sA л=^(93)
А^^’+^’+Ф
Скорость
J
П£
пЕ (оценка (77))
пА
Код
Правила ортогонализации
Размеры
41
2
4
4
4
(0, I)2
О2, I2
1, 2
4
11
11
12
(0, 3, 4, 5)2
О2, З2, 42, 1252
1, 2, 3, 4
6
22
22
24
(0, 6, 7, 9, 10, П)2
О2, 62, 72, 92, 1232102, 4282112
1, 2, 3, 4,
5, 6
8
37
37
44
(0, 11, 13, 16, 17, 19, 20, 21)2
О2, 112, 132, 162, 172, 223262192, 42142202 125282152212
1, 2, 3, 4,
5, 6,
7,
8
10
56
56
72
(0, 18, 19, 27, 28, 29, 30, 32, 35, 38)2
О2, 182, 192, 272, 1292282, 102202292, 112302312, 132212232322, 142332342, 2232162242262352
1, 2, 3, 4,
5, 6,
7,
8,
9,
10
12
79
79
104
(0, 26, 27, 39, 40, 41, 42, 44, 45, 47, 48, 51)2
022б2, 272, 392, 12132402142282412, 152422432, 172292312442
1, 2, 3, 4,
5, 6,
7,
8,
Чз
2
3
3
3
(О)2 (О)3
182452462, 2232202322342472, 212352482492502, 242302332362382512
О2, О3
9, 10 И
1, 1
4
7
7
9
(0, 1)2(0, 2)3
О2, О3, I2, 23
1, 1, 2, 3
6
13
13
15
(0, I)2, (0, 2, 3, 4)2
О2, О3, I2, 23, 1333, 2243,
1, 1, 2, 2,
3, 3
8
20
21
24
(0, 1, 7)2,
(0, 2, 3, 4, 6)3
О2, О3, I2, 23, 1333, 2243, 72, 32526263
1, 1, 2, 2,
3, 3, 3,
4,
10
30
31
33
(0, 1, 9)2, (0, 1, 2, 3, 5, 8, 9)3
О2, О3, I2, 22, 23, 92, ЗЧ3, 325253, 13426263, 8283, 73931010
1, 1, 2, 2,
3, 3,
5
12*
40
43
54
(0, 4, 5, 6, 7,
9, 12, 13, 16)2, (0, 1, 14, 15, 16)3
0203, 121213, 42, 52, 2362, 143, 72102112113, 335392, 6383122, 33163173, 43103123162
1, 1, 2, 2,
3, 3,
4,
5,
5, 6
14*
55
57
69
(0, 4, 5, 6, 7, 9, 12, 13, 16, 19, 20, 21)2,
О2, О3, 1213, 42, 52, 2366, 72102112113,
1, 1, 2, 2,
3, 3,
4,
Скорость
J
пЕ
пЕ
(оценка (77))
пА
Код
Правила ортогонализации
Размеры
Vs
16
68
73
108
(0, 4, 20, 22)3
(0, 4, 5, 6, 7,
335392, 193, 203, 223, 6383122, 4310312Ч62, 3273133153192, 93132143182, 202212213
О2, О3, 1213, 42,
4, 4,
4, 5,
6,
7,
8
1, 1, 2, 2,
Чь
4
5
5
5(0)2
9, 12, 16, 17,
30, 31)2, (0, 1, 22,
25, 35)3
(О)3 (О)4 (О)5
52, 2362, 223, 72102112113, 32253, 335392, 6383122, 7314Ч72182183, 93162192202203, 143153353, 123213282312322, 103133193293302
О2, О3, О4, О5
3, 3,
4,
4,
5,
5,
6
7,
8,
9,
1, 1, 1, 1
6
9
9
10
(1)2(1)3
рр, рр
2, 2
8
13
13
15
(2)2 (2)4
2223, 2425
2, 2
Дж. Мессу
10
18
19
20
(3)= (3)5
З5, 3233
2, 3
13
27
29
30
(4)2 (5)» (5)5
344244, 55f 435354
3, 3, 3
14
30
33
35
(б)4
4564
3
16
37
41
45
(8)3 (7)4
83, 5253737274
3, 4
18
47
51
55
(0, 10, 2, 3, 5, 6, 8, 10)2 (0, 3, 5, 6, 8)3 (0, I)4, (0, 2, IO)3
О2, О3, О4, О5, I2, 2224, З3, 1415, 2325, 324242, 345254, 94102103, 53, 3563, 105, 1з446264, 72748292, 4355738384
1, 1, 1
2, 2, 2,
3, 3,
3, 3,
4,
5,
5
20
55
61
65
(10)4 (12)3
6595123, 104ll5124125
4.
4
22*
65
73
80
(11, 13, 14)2, (15)5
45134142143, 135144154155
4,
6
9
10
10
10
(0)2, О3 (О)4, (0)5 (0)5 (0)7, (О)8 (О)9 (О)10
О2, О3, О4,
О5, О6, О7,
О8, О9, О10
1, 1, 1,
1, 1, L
1, 1, 1
14
20
20
20
(I)6 (I)7, (П)8 (1)9(1)*«
12P, рр, 2418, 1619, I10
2, 2,
2, 2, 2
18
28
28
30
(2)2 (2)3.
(2)8 (2)9
22, 2324, 2627, 2829
2, 2,
2, 2
Продолжение табл. II
Скорость
J
пЕ
пЕ (оценка (77))
ПА
Код
Правила ортогонализации
Размеры
V10
23
39
43
40
(3)2(3)4,
(З)8 (З)9 (3)10
3233, З4, 3738, 3639, 2535310
2, 2, 2, 2, 3
26
48
52
50
(4)2 (4)8 (4)9
43410 21042
1 43444749
2, 3, 4
33
69
79
70
(б)2 (5)8, (5, 6)6 (5, 6)9, (б)10
55, 435455, 455259, 576566, 586469, 53610, 62636768
3,
3,
3, 4
38
88
101
90
(7)6 (7, 8)9, (8)7 (8)8
51076710, §7, 7275777g, 73748589, 7883848588
3, 3,
4,
4,
5
Порождающие многочлены кодов, помеченных звездочкой, содержат J+2 отличных от нуля коэффициентов; все остальные содержат минимальное количество отличных от нуля коэффициентов, а именно J.
Символы, используемые в табл. II, имеют следующее значение:
J—число проверок, ортогональных относительно ^\
ng— эффективное кодовое ограничение,
ид — действительное кодовое ограничение.
Эта система шести проверок, ортогональных относительно е^\ соответствует проверкам, построенным в (92). Размеры гц этих проверок в таблице даны числами 1, 2, 3, 4, 5, 6, которые показывают, что At имеет /21=1, А2 имеет ^2=2 и т. д. Эффективное кодовое ограничение пЕ = 22 дано в графе пЕ. Для сравнения в графе пЕ [оценка (77)] приведено значение пЕ = 22. Приведено также фактическое кодовое ограничение пА = 24.
Метод, которым был найден этот конкретный код, состоит в следующем. В силу того, что в проверочном треугольнике строки со второй по шестую начинаются нулями, шумовые символы от е^ до е^ могут иметь отличные от нуля коэффициенты только в одной строке треугольника (92). Более того, строки от второй до шестой могут быть использованы для исключения ненулевого коэффициента при каждой из переменных от ^ до ^ как это явствует из проверочного треугольника. Первая строка дает проверку относительно £(оп, не контролирующую никакого другого информационного шумового символа. Таким образом, задача сводится к такому выбору последних шести строк проверочного треугольника, чтобы из них можно было составить пять проверок, контролирующих е^ и обладающих тем свойством, что ни одна из переменных от ^ до ^ не контролируется дважды. Выбор, сделанный в (92), этим требованиям удовлетворяет. Остальные коды табл. II были построены вручную с помощью этого и многочисленных других приемов, использующих структуру проверочных треугольников. Простота идеи ортогональных проверок позволяет вручную строить коды значительной длины.
Следует сделать несколько дополнительных замечаний относительно ПО-кодов. В коде со скоростью R=ljno рассмотрим кодовое слово, единственный ненулевой информационный символ которого есть 1^. Из соотношений (28) и (29) следует, что вес этого кодового слова равен 1 плюс число отличных от нуля коэффициентов порождающих полиномов GU)(D),
j = 2, 3, ..., п0. Следовательно, таких коэффициентов должно быть не менее d—1, где d— минимальное расстояние в этом коде. С другой стороны, существование / проверок, ортогональных относительно е^Х означает, что d^/+l, и поэтому в порождающих полиномах должно быть не менее / отличных от нуля членов.
ПО-коды табл. II (за исключением нескольких помеченных звездочкой) обладают тем свойством, что число ненулевых членов в порождающих полиномах равно в точности /, т. е. минимальному возможному числу. Весьма важным следствием этого, как видно из рис. 5 и 6, является сокращение числа входов сумматоров кодирующих схем до минимально возможного. Более того, минимальное расстояние в этих кодах равно в точности /+1, так как существует кодовое слово с /о)=1» имеющее именно этот вес.
Будем говорить, что сверточный код с минимальным расстоянием d и скоростью 7?=1/п0 может быть полностью ортогонализован, если можно построить d—1 проверок, ортогональных относительно е^Х В этом случае, какая бы ни произошла комбинация ошибок веса, не превышающего \(d—1)/2], символ е^ будет найден верно мажоритарным декодированием. Другими словами, если код может быть полностью ортогонализован, то исправление комбинации ошибок по минимальному расстоянию гарантирует исправление этой же ошибки методом мажоритарного декодирования. Согласно этому определению, коды табл. II могут быть полностью ортогонализованы (кроме, быть может, кодов, помеченных звездочкой).
Равномерные сверточные коды
В противоположность кодам предыдущего параграфа рассмотрим теперь некоторые классы сверточных кодов, которые допускают удобную формулировку их свойств и полную ортогонализацию. В этом параграфе будет показано существование класса сверточных кодов, которые могут быть полностью ортогонали-
зованы и удовлетворяют теореме 7 для случая знака равенства.Для любых целых L и М рассмотрим совокупность L2M—1 двоичных последовательностей длины Л4+1, метод построения которых ний L = 2 и М = 2 9-О о 2 — 1 2 — 1О 2 — 1 2 — 1зованы и удовлетворяют теореме 7 для случая знака равенства.Для любых целых L и М рассмотрим совокупность L2M—1 двоичных последовательностей длины Л4+1, метод построения которых ний L = 2 и М = 2 9-О о 2 — 1 2 — 1О 2 — 1 2 — 1показан ниже для значе-показан ниже для значе-11о 1 о1о 1 о1(94)(94)1111
зованы и удовлетворяют теореме 7 для случая знака равенства.
Для любых целых L и М рассмотрим совокупность L2M—1 двоичных последовательностей длины Л4+1, метод построения которых ний L = 2 и М = 2 9-
О о 2 — 1 2 — 1
О 2 — 1 2 — 1
зованы и удовлетворяют теореме 7 для случая знака равенства.
Для любых целых L и М рассмотрим совокупность L2M—1 двоичных последовательностей длины Л4+1, метод построения которых ний L = 2 и М = 2 9-
О о 2 — 1 2 — 1
О 2 — 1 2 — 1
показан ниже для значе-
показан ниже для значе-
1
1
о 1 о
1
о 1 о
1
(94)
(94)
1
1
1
1
Строится L наборов строк, причем каждая строка имеет 1 в последней, или (Л4+1)-й, позиции. Каждый из первых L— 1 наборов строк содержит на первых М позициях совокупность всех 2м последовательностей длины М. Последний набор содержит на первых М позициях совокупность 2м — 1 всех ненулевых последовательностей длины М. Положим теперь, что строки в (94) суть последние строки в множестве L2M—1 проверочных треугольников. Тогда сами проверочные треугольники должны быть такими, как показано на стр. 86. Они представляют собой проверочные треугольники, соответствующие матрице //д кода со скоростью R=\(n^ где пй=Ь2м^. Определим число проверок, ортогональных относительно е^, которые могут быть построены для этого кода.
Чтобы получить L2M~X проверок размера 2, ортогональных относительно е^\ последние строки проверочных треугольников могут быть сложены, как показано в таблице (94).
Докажем, что это всегда можно сделать. Имеется L—1 наборов последних строк, каждый из которых
9 В таблицах (94) и (95) многоточие просто отделяет один набор строк от другого. — Прим, ред,
См. § 3.3, — Прим, ред.
1 О 1 О О 1 1'
1 1 О 1 1 1 О 1 1 О 1 1 1 1 1 1 1 1 1 1 О 1 1 1 О 1 1 О 1 1 1 1 1 1 1
Проверочные треугольники матрицы Н^, R=\[n6; n0 = L‘2M.
состоит из 2м строк. На последней позиции все эти строки имеют единицы, а на остальных М позициях — все 2м последовательностей длины М. В каждом таком наборе строк для каждой строки, начинающейся с единицы, найдется единственная строка, начинающаяся с нуля и совпадающая с первой во всех остальных позициях. Сумма (по модулю два) каждой такой пары строк соответствует проверке, которая контролирует ^ и не контролирует никакой другой шумовой информационный символ. Размер проверки равен двум потому, что складываются две проверки, а это и означает, что контролируются два шумовых проверочных символа. Таким образом, из каждого из L — 1
наборов последних строк может быть построено 2м- проверок размера 2, ортогональных относительно
Наконец, имеется набор последних строк с единицами на последних позициях, содержащий 2м-1 ненулевых последовательностей длины М на первых М позициях. В этом наборе проверки строятся, как и прежде, с единственным исключением: так как строки 00 ... 0 1 нет, то строка 1 0... 0 1 должна быть использована сама по себе. Она соответствует проверке относительно ^1} и ^. Таким образом, из этого набора последних строк дополнительно может быть построена система 2м-1 проверок, ортогональных относительно е^\ Всего, используя только последние строки проверочных треугольников, можно построить LM-X проверок, ортогональных относительно ^(1^ и, кроме ^ будет контролироваться еще только один информационный шумовой символ ^.
Этот же процесс можно затем повторить для предпоследних строк проверочных треугольников. Если последние строки таковы, как в таблице (94), то предпоследними будут
0 11 1
О
1
О
1
1
!(95)
1
1
1
и это уже другое множество строк такого же типа, как и в таблице (94) с L'^L и М' = М — 1. Поэтому
*) При суммировании одинаковых строк разных наборов не будет получено совпадающих проверок, так как суммируются строки не матрицы Н^, а матрицы [Яд :/].— Прим, ред,
из предпоследних строк проверочных треугольников можно построить еще одну систему из L'2M'~X == L2M~X проверок размера 2, ортогональных относительно е^. Объединение этой системы с системой, построенной из последних строк, даст систему 2L2M-X проверок, ортогональных относительно ^^ так как единственный информационный шумовой символ ^,, контролируемый этой системой, отличен от единственного информационного шумового символа ^, контролируемого рассмотренной ранее системой.
Такой же процесс можно повторить и для третьих снизу и для четвертых снизу и т. д. строк проверочных треугольников, до тех пор пока не достигнем первых строк. Всего он может быть выполнен М раз и даст в общей сложности ML2M-X проверок размера два. Каждая из первых строк соответствует проверке, контролирующей ^ и не контролирующей никакой другой информационный шумовой символ. Следовательно, из этих строк можно построить дополнительно L2M—1 проверок размера 1, ортогональных относительно ^ т).
Общее число проверок, ортогональных относительно ^j которые могут быть построены из проверочных треугольников, составляет
J=ML2M"X-V(L2M — 1)=Л(М + 2)2М-1— 1. (96)
Из уравнения (75) находим, что эффективное кодовое ограничение должно быть
nE=\^2ML2M-4 (L2M — 1) =Л(М +1)2М. (97)
Для этого кода т=М и n0 = L2M, откуда
пА = (m+l)n0 = L(M+ Х)2м = пЕ.(98)
Согласно следствию из теоремы 1, минимальное расстояние d не меньше, чем 7+1, или в нашем случае
9 Точнее, эти строки без какого-либо изменения определяют такие проверки. — Прим. ред.
не меньше, чем L(M + 2)2M-1. С другой стороны, из соотношения (53) находим, что
^ср = ^ (пА + ПО) = L (Л4 + 2) 2 м"1.(99)
Таким образом, минимальное расстояние в точности равно L(M-b2)2M""\ и оно не может превосходить среднего расстояния. Сформулируем эти результаты в виде теоремы.
Теорема 13. Для любых целых чисел L и М существует сверточный код с R=MnOl n0 = L2M, пА = пЕ = = L(Af+l)2M, минимальным расстоянием
а=^=ЦМ-да-1
и такой, что он может быть полностью ортогонали- зован.
Назовем сверточный код с d = dc^ равномерным кодом. Представляется вероятным, что не существует двоичных равномерных сверточных кодов с /?=1/п0, отличных от кодов, указанных в теореме 13. В табл. III перечислены коды с L = 1 и 1 ^ М 6.
Таблица III
Некоторые равномерные сверточные коды
м
R
"а
d
1
хк
4
3
2
7»
12
8
3
78
32
20
4
7,6
80
48
5
7з2
192
112
6
7б4
448
256
Аналог кодов Рида — Маллера
Опишем еще один класс сверточных кодов, допускающих полную ортогонализацию. Метод их построения лучше всего можно пояснить на примере.
Рассмотрим
таблицу
V2V3 vlv3
vlv2 v3 v2vlvo
4 —11
00
01
00
4—10
00
00
1111 1 -n
1011 1 -
0°J2t} 5a°°)
01101-1
00101-1
oioo Щ-*
Она получена следующим образом: столбцы vb и2, v3 взяты так, что образованные ими строки из трех символов суть все возможные ненулевые последовательности из трех элементов. Затем к ним приписан справа вектор-столбец из одних единиц, а слева — векторы-столбцы, представляющие собой всевозможные попарные произведенияJ) векторов vb v2l v3. Снова положим, что строки таблицы суть последние строки из системы п0 — 1 проверочных треугольников. Тогда, как показано выше), мы можем сложить эти строки, чтобы образовать набор из 23-2 = 2 проверок, ортогональных относительно ^^ размера Пг = = 22 = 4 каждая. Кроме е^\ контролируется еще только один информационный шумовой символ ^. Этот процесс может быть повторен на уровне предпоследних и третьих снизу строк проверочных треугольников. Оставшиеся строки проверочных треугольников такие же, как и строки для равномерного кода с L=X и Л4 = 3 в § 3.7. Таким образом, для этого _з • 2 проверок раз
мера 22 плюс С| • 23-1 проверок размера 21 плюс Сз • 23—1 проверок размера 2°, ортогональных относительно е^.
9 Под произведением векторов-столбцов уь и2, у3 понимается вектор-столбец, каждый элемент которого равен произведению соответствующих элементов сомножителей. — Прим. ред.
Если обобщить этот пример так, чтобы таблица содержала все произведения векторов vb и2, • • •, ум по К и менее, то будет справедлива следующая теорема.
Теорема 14. Для любых целых Чисел М и К^М существует сверточный код с R=Yj2M и
такой, что
(101)
и этот код может быть полностью ортогонализован.
Доказательство. Доказательство проводится в два этапа. Во-первых, мы должны показать, что число / проверок, ортогональных относительно е^\ на единицу меньше суммы в равенстве (101). Во-вторых, мы должны показать, что минимальное расстояние кода в точности равно этой сумме.
Заметим сначала, что если к таблице (100) добавить снизу строку 000000 1, то таблица станет матрицей, транспонированной к порождающей матрице кода Рида — Маллера второго порядка (К = 2у (В этом состоит причина, почему коды этого параграфа названы аналогом кодов Рида — Маллера.) Рид [14] показал, что в матрице, порождающей код К-ro порядка1), столбцы могут быть сгруппированы в 2М-К множеств по 2К столбцов в каждом таким способом, что сумма столбцов каждого множества имеет единицу только в первой строке. (Доказательство Рида очень длинно и здесь приводиться не будет.) Таким образом, транспонированная матрица может быть подразделена на 2М-К множеств по 2К строк в каждом, так что сумма строк каждого множества имеет единицу только в первом столбце. Если из транспонированной матрицы удалить строку
^ Код Рида — Маллера. — Прим. ред.
00 ... 01, то одно множество будет содержать 2К — 1 строк и сумма этих строк будет 10 ... 0 1. Значит, если строки транспонированной матрицы без строки 0 0... 0 1 суть последние строки в множестве проверочных треугольников, то можно построить ^м-к ортогональных относительно е^ проверок размера Mi = 2K каждая и таких, что, кроме е^\ существует единственный шумовой информационный символ, контролируемый этими 2М-К проверками1).
Этот же процесс может быть выполнен с предпоследними, третьими снизу и т. д. строками проверочных треугольников. После того как будут обработаны См строк, оставшиеся строки приводятся к коду порядка К—1. Совокупность систем ортогональных проверок, образованных из каждого множества строк проверочных треугольников, ортогональна относительно е^\ так как в каждую систему входит только один шумовой информационный символ и все эти символы различны для различных систем проверок.
Общее число / проверок, ортогональных относительно е§\ которые построены таким способом, равно
J=2ck2M~j— 1; (102)
оно на единицу меньше суммы (101), что и требовалось доказать.
Остается показать, что минимальное расстояние вычисляется в точности по формуле (101). Минимальное расстояние d^> IАЛ, и отсюда оно должно быть не меньше, чем сумма (101). Тогда достаточно показать, что существует некоторое кодовое слово с /^l в точности этого веса. Вспомним, что су-
9 При суммировании 2я строк любого множества (кроме последнего) получим 2я единиц в позициях, соответствующих шумовым проверочным символам и обусловленных матрицей 1. В последнем (неполном) множестве из 2К — 1 строк при суммировании получим 2К — 1 проверочных шумовых символов и один (старший по индексу) информационный. — Прим, ред.
ществует начальное кодовое слово с Zo =1, вес которого на единицу больше числа единиц в порождающих полиномах. Это последнее число есть число единиц в первых столбцах проверочных треугольников, а потому — в силу симметрии каждого треугольника — ив последних строках этих треугольников. Из того, что^ порождающая матрица кода Рида — Маллера содержит на одну единицу больше, чем множество последних строк проверочных треугольников !) (она включает дополнительный столбец 0 0... ...01), следует, что существует кодовое слово с Zo^l, вес которого равен числу единиц в порождающей матрице кода Рида—Маллера К-го порядка. Но всякое произведение / из М векторов Vi, v2 • • • Ум содержит в точности 2м”5 единиц. В таком случае число единиц в порождающей матрице будет
к
2 (юз) 7=0 .
и, следовательно, существует начальное кодовое слово с Zo^l такого веса. Сумма (ЮЗ) равна сумме (101), что и требовалось доказать. "
В табл. IV выписаны сверточные коды для М <. 5, аналогичные кодам Рида — Маллера. М, К код, где К=1 совпадает с равномерным М, L кодом (§ 3.7), где L = 1.
Кроме очевидного различия между кодами этого параграфа и обычными кодами Рида — Маллера, состоящего в том, что первые являются сверточными, а вторые — блоковыми, существуют и другие важные различия. При фиксированном М длина кода Рида — Маллера равна 2м и добавление к порождающей матрице произведений векторов более высокого порядка ведет к повышению скорости передачи и в то
!) И в связи с тем, что каждая строка транспонированной матрицы определяет порождающий полином кода (так как она является нижней строкой проверочного треугольника). — Прим, ред, -
же время к сокращению минимального расстояния. С другой стороны, для сверточного кода — аналога кодов Рида — Маллера скорость /?=1/2м остается постоянной, а добавление произведений векторов более высокого порядка ведет к увеличению и кодового ограничения, и минимального расстояния. .
Заключение
Как методом проб и ошибок, так и аналитическим методом мы построили довольно широкий класс кодов, пригодных для порогового декодирования. Для случая /?= 1/2 удалось показать, что эффективное кодовое ограничение должно расти как квадрат числа образованных ортогональных проверок, и построить коды, достигающие этой границы. В случае других
скоростей хорошей оценки нижней границы для эффективного кодового ограничения получить не удалось, однако можно предположить, что подобная оценка имеет место при неограниченном возрастании числа ортогональных проверок.
Было найдено, что при скорости /? = 1/2 теорема 10 дает наименьшее возможное значение величины пЕ. Например, в пределе, когда М —> оо, эффективное кодовое ограничение равномерных кодов при L=1 примерно в М/2 раз меньше границы, указанной в теореме 10, однако эти коды имеют слишком малую скорость передачи. В случае аналогов кодов Рида — Маллера с очень малыми скоростями передачи эффективное кодовое ограничение также намного ниже границы теоремы 10.
Метод доказательства теоремы 10 таков, что эффективное кодовое ограничение пЕ кодов, полученных с его помощью, значительно меньше фактического кодового ограничения пА. С другой стороны, методом проб и ошибок были получены коды, у которых пЕ и пА приблизительно одинаковы. У равномерных кодов и кодов, аналогичных кодам Рида — Маллера, пЕ и пА совпадают. Важность получения как можно меньшего значения величины пА мы уже подчеркивали.
Последнее замечание, по-видимому, следует сделать относительно ПО-кодов табл. II. Эти коды были построены вручную методом, подобным тому, который описан в § 3.6. По многим причинам исследование с применением вычислительной машины, по-видимому, невыполнимо. Специальный метод, с помощью которого строился каждый код, создавался после тщательного изучения соответствующих проверочных треугольников; для построения же всех кодов табл. II или даже всех кодов с фиксированной скоростью передачи систематического набора правил найдено не было. Для построения многих кодов требовались такие хитроумные приемы, которые нелегко было бы запрограммировать. В лучшем случае представляется возможным использовать вычислительную
машину для поисков некоторых более длинных кодов при условии высокой степени контроля программы оператором.
В гл. IV будут приведены схемы порогового декодирования, пригодные для любого кода, описанного в настоящей главе. Затем в гл. V будут изложены численные и аналитические результаты относительно вероятности ошибки, которая может быть достигнута при применении порогового декодирования к кодам, описанным в данной главе.
Глава IV
СХЕМЫ ПОРОГОВОГО ДЕКОДИРОВАНИЯДЛЯ ДВОИЧНЫХ СВЕРТОЧНЫХ кодов
Приведем дискретные схемы, которые можно использовать для реализации алгоритма порогового декодирования двоичных сверточных кодов. Вначале для удобства сформулируем и докажем лемму, которая часто будет нужна в последующих параграфах.
Лемма 2. Пусть еь <е2, ..., еП1 — множество щ статистически независимых двоичных случайных величин, для которых Pr[ej=l]=l—Рг[^ = 0]=^. Тогда вероятность pi того, что количество элементов этого множества, равных единице, является нечетным числом, будет
1Pt 21Pt 2ni
1
Pt 2
1
Pt 2
(104)(104)1-П(1-2уу)
(104)
(104)
7 = 1.
Доказательство. Здесь будет использован метод производящих функций [17]. Для /-й случайной величины производящей функцией gj(s) будет Yjs + + (1—Yj), т- е- полином относительно s, в котором коэффициент при sv есть вероятность того, что случайная величина принимает значение о. Так как случайные величины статистически независимы, производящая функция g(s) их суммы как действительных чисел равна
ntnt
g (s) = Д gj (s) = Jj [YyS + (1 — Yy)].(105)
Тогда искомая вероятность pt есть сумма коэффициентов полинома g(s) при нечетных степенях s, т. е.
A=y[g(l) — £(—1)1-A=y[g(l) — £(—1)1-(Юб)(Юб)
A=y[g(l) — £(—1)1-
A=y[g(l) — £(—1)1-
(Юб)
(Юб)
Подставляя выражение (105) в (106) и замечая, что ^(1) = 1, получим уравнение (104).
Прежде чем перейти к деталям реальных декодирующих схем, сначала переформулируем алгоритмы порогового декодирования теорем 3 и 4 в их частном виде для двоичных сверточных кодов со скоростью R = \/n0. В этом случае, если дана система {AJ из / проверок, ортогональных относительно ^\ алгоритм порогового декодирования может быть сформулирован таким образом.
Выбрать ^1 = 1 тогда и только тогда, когда
(107)(107)^iAt > т.
(107)
(107)
Здесь
{Л;} в этой сумме трактуются как действительные числа;
^z суть весовые множители:
^ = 1 для мажоритарного декодирования, (108)
qt=дляqt=дляАВ-декодирования;АВ-декодирования;(Ю9)(Ю9)
qt
=для
qt
=для
АВ-декодирования;
АВ-декодирования;
(Ю9)
(Ю9)
р^=\—Яг есть вероятность того, что нечетное число шумовых символов, кроме ^\ контролируемых проверкой Лй принимает значение 1;
Т есть порог, причем
Г = Гу/1 для мажоритарного декодирования, (ПО)
j
Т = ’2 ^^1 Для АВ-декодирования.(111)
/ = 0
Здесь р0=1 — ^0 = Рг[4’>= 11 и wu = 2log-^.
"о
Этот алгоритм просто перефразирует правила декодирования теорем 3 и 4. Рассмотрим конкретные схемы его реализации. Для удобства ограничим исследование скоростями /?=1/п0, а впоследствии укажем, как поступить в общем случае для R = kQ/nQ.
4.1. Декодирование для двоичного симметричного канала
Начнем с простейшего случая, когда вероятность искажения одна и та же для всех принятых символов, т. е. Pr (^^ = 1) = /?0 для всех и и j. Единственным каналом, удовлетворяющим этому требованию, является двоичный симметричный канал, рассмотренный в гл. I. В этом случае схемы АВ-декодирования особенно просты, так как весовые множители {t^±} и значение порога Т представляют собой постоянные величины (разумеется, в случае мажоритарного декодирования эти величины всегда постоянны, и потому схемы, приведенные в этом параграфе, пригодны для мажоритарного декодирования при любом двоичном канале). Например, рассмотрим конкретную проверку Лг- размера п^. Применяя лемму 2, получаем
Pi = 1 - qt = 1[1 - (1 - 2Л)Я<] ■(И2)
Это выражение зависит только от п^ так как р0 постоянно. Поэтому (кУг] в (109) и Т в (111) также постоянные величины.
а. Декодер типа I .
Первая схема, предлагаемая для реализации соотношения (107), показана н-а рис. 11. В том, что это действительно пороговый декодер, можно убедиться следующим образом.
Проверочные последовательности S^^D^, j = 2, 3, ..., п0> образуются, как это объяснено в § 2.7, кодированием принятой информационной последовательности R^^D) и последующим сложением полу-
ченного результата с принятыми проверочными последовательностями К^ф), j=2, 3, ..., п0. (Двоичные сложение и вычитание совпадают, так как
дПД- о—* разрядный кодер
ггП Единичная задержка
г
г
©Умножение на постоянную величину в
ф Сумматор по mod 2
Рис. 11. Декодер типа I.Рис. 11. Декодер типа I.Сигналы, указанные на рисунке, соответствуют моменту времени т.
Рис. 11. Декодер типа I.
Рис. 11. Декодер типа I.
1 + 1=0 означает, что 1=—1.) Затем По—1 проверочных последовательностей запоминаются таким же числом регистров сдвига. Величины, поступающие на выходы запоминающих устройств в момент времени т, когда должно приниматься решение относительно е^\ показаны на рис. 11.
Проверки {Л4 образуются комплектом из / сумматоров по модулю два, расположенных на рис. 11 ниже регистров сдвига. Входы Z-ro сумматора дают набор проверок s^, которые суммируются для образования А<. Затем выходы этих / сумматоров трак-
туются как действительные числа; весовые множители Wi имеют значения (108) или (109) в зависимости от типа декодирования. После этого взвешенная сумма сравнивается с константой Т, определяемой выражениями (НО) или (111). Таким образом, на выходе порогового устройства появляется е^ , значение символа ^^ полученное в результате декодирования. Далее, для получения $^\ декодированного значения i^\ эта величина складывается по модулю два с величиной г^\ которая благодаря задержке как раз в момент времени m появляется на выходном полюсе кодера.
Наконец, рассмотрим измененные проверочные последовательности
S^* (D) = Svn (D) - [4n1 Gw (Dy (113)
Из выражения (63) следует, что если декодирование произведено верно, т. е. если е^ = е^ , то влияние ошибки ^ на измененные проверочные последовательности должно быть устранено. Более того, выражения (113) в моменты времени от 1 до т+1 имеют в точности такую же структуру по отношению к г^, как первоначальные члены в моменты времени от 0 до m по отношению к е^\ Но это значит, что декодирование символа е^ может быть выполнено применением к измененной проверочной последователь^ ности в моменты времени от 1 до т+1 того же алгоритма, что и при декодировании символа е^ из первоначальных проверочных последовательностей в моменты времени от 0 до т.
Таким образом, если не произошло ошибочного декодирования, то в последующие моменты времени декодер типа I будет работать правильно, если проверочные последовательности будут изменяться в соответствии с равенством (113). Из рисунка 11 видно, что это можно выполнить посредством обратных связей от выхода ^п порогового элемента к сумматорам
по модулю два, расположенным между разрядами регистров сдвигов, которые запоминают проверочные последовательности. Связи с сумматорами соответствуют порождающим полиномам G^ (D).
Относительно декодера типа I следует сделать еще несколько замечаний.
Во-первых, регистры сдвига, используемые для запоминания проверочных последовательностей, содержат всего
(п0 — k^m = (пА — п0) (1 — /?)
разрядов. Вдобавок входящий в схему кодер содержит (пА — Ио)/? разрядов. Всего, таким образом, в декодере типа I имеется пА — и0 разрядов регистров сдвига. Во-вторых, принятые последовательности могут быть введены в декодер, начиная с нулевого момента времени, так как последовательности, состоящие сплошь из нулей, в любом сверточном коде образуют вполне правомерное начальное кодовое слово.
При этом не требуется отключать пороговое устройство вплоть до момента времени иг, когда должно быть принято решение относительно ^^ Кроме того, все информационные символы на выходе декодера должны быть нулями до момента времени иг, если декодирование производится правильно. В течение всего этого времени декодер находится под контролем, и любая «единица» на выходе должна истолковываться как указание на то, что символ ^ декодирован неверно.
Декодер типа II
Вторая схема, реализующая алгоритмы порогового декодирования, показана на рис. 12. Форма, в которой эта схема реализует алгоритмы, совершенно отлична от приведенной выше. Поэтому сейчас необходимо изложить теорию, на которую опирается схема, изображенная на рис. 12.
Каждая проверка из системы {Л^ проверок, орто- ональных относительно е^\ может быть записана
Рис. 12. Декодер типа II.
Сигналы, указанные на рисунке, соответствуют моменту времени тп.
в виде суммы шумовых символов, один из которых есть ^\ т. е.
А^е^^е^Х /=1, 2J. (114)
Так как At — проверка, то равенство (114) можно переписать так:
ni
А=^+ 5/^. /=1, 2, ...,Z(115)
Обозначим через В^ сумму принятых символов, кроме г^, которые входят в выражение А^ т. е.
Bl=l1r^j\ i=\, 2, ..., J. (116)
Вспомним, что ^ = /^Ч- е§\ и подставим выражения (114) и (115) в (116)
В^-^-Де^, i =(117)
Пусть для удобства
В0 = г№ = ^^е«(118)
Из равенства (117) и (118) видно, что {BJ образует систему /+1 уравнений (но не проверок!), каждое из которых есть сумма 1^ и множества шумовых символов, таких, что ни один из них не входит более чем в одно уравнение. Поступая так же, как и в начале главы, найдем, что правила порогового декодирования будут выглядеть следующим образом.
Выбрать t^^l тогда и только тогда, когда
^iB^T,(119)
/ = 0
где (Вг) трактуются как действительные числа, а {йУг} и Т имеют тот же смысл, что в формулах (108) — (111). Если / нечетно, то правило мажоритарного декодирования, изложенное здесь, не совпадает в точности с формулой (107). Для полного еди-
нообразия также и в этом случае правило (119) должно звучать так: выбрать
когДа У5/ = ;Ц^-7=0
Этот, алгоритм выполняет те же операции декодирования, что и алгоритм (107), с той единствен’ ной разницей, что первый прямо дает символ 1^ (значение символа i^\ полученное при декодировании), тогда как второй дает ^Х), откуда декодированное значение символа /^ может быть найдено из равенства 1^ =г^ — е^.
Теперь можно легко объяснить работу декодера типа II, показанного на рис. 12. Принятые последовательности запоминаются в п0 регистрах сдвига так, что принятые символы могут быть использованы для образования множества {BJ. Величины Bt образуются в сумматорах, расположенных на рисунке ниже регистров сдвига; входы Z-ro сумматора суть nt принятых символов в равенстве (116), сумма которых равна Вг. Выходы сумматоров, т. е. В^ умножаются на весовые множители и сравниваются с порогом в соответствии с неравенством (119). Выходом порогового элемента является io . Наконец, для подготовки схемы к правильной работе в последующие моменты времени принятые последовательности меняются в соответствии с (65). Это достигается об-
•(1)*ч
ратными связями от выхода ^ порогового устройства к сумматорам по модулю два, расположенным между разрядами регистра сдвига, с соединениями, соответствующими порождающим полиномам GU)(D).
Декодер типа II содержит п0 регистров сдвига по m разрядов в каждом, т. е. всего тп0 = пА— п0 разрядов регистров сдвига. Столько же разрядов и а декодере типа I. Более того, как и в случае декодера типа I, тот факт, что последовательности, состоящие
сплошь из нулей, являются кодовыми словами, означает, что с момента времени 0, когда входы впервые вступают в действие, до момента времени пг. когда принимается решение относительно^^, пороговый элемент не должен отключаться. Однако в противоположность декодеру типа I декодер типа II не может служить также и кодером, если не произвести в нем некоторых изменений.
Заключение
Содержание предыдущих разделов можно сформулировать в виде теоремы.
Теорема 15. Для двоичного сверточного кода со скоростью передачи R = \ln^ и кодовым ограничением пА мажоритарное декодирование (в случае любого двоичного канала) или кй-декодирование (в случае двоичного симметричного канала) может быть выполнено последовательной схемой, содержащей пА — ^о разрядов регистров сдвига и один пороговый логический элемент.
Интересно отметить, что элементы декодеров обоих типов работают со скоростью одна операция в единицу времени, в то время как принимаемые символы поступают со скоростью п0 символов в единицу времени. Этот факт позволяет снизить требования к быстродействию элементов декодеров.
Представляется правдоподобным, что эти декодеры содержат минимальное для сверточного декодера число элементов памяти. Это можно показать следующим образом. Так как для принятия решения относительно е^ требуется пА принятых символов, а в единицу времени поступает п0 символов, то декодер должен запомнить не менее пА — nQ принятых символов (или их эквивалентов).
Наконец, теперь должно быть ясно, что в случае R^ko/по декодеры типов I и II каждый со своим собственным комплектом сумматоров для образования системы проверок, ортогональных относительно е^Ь
для j = 1, 2, ..., ^о, должны быть изменены так, чтобы содержать кй пороговых устройств. Выходами пороговых элементов должны быть символы в декодере
типа I или символы ^о в декодере типа II. Таким образом, в случае R=kofno теорема 15 остается неизменной, кроме последних слов, которые следует читать «... и £0 пороговых логических элементов».
Декодирование для канала с параметрами, изменяющимися во времени
Рассмотрим случай, когда вероятность искажения не одинакова для всех принятых символов, но на приемном конце эти вероятности известны. Иными
Рис. 13. Двоичный стирающий канал.
словами, величины Рг[^</) = 1] известны, но могут меняться вместе с и и j.
Примером такого канала может служить наложение импульса напряжения с нормально распределенной амплитудой на передаваемый сигнал, который при передаче единицы является положительным, а при передаче нуля отрицательным импульсом с амплитудой У^ вольт. В приемнике используется полярность принятого импульса для определения наиболее вероятного значения переданного двоичного символа. Амплитуда принятого импульса может служить для подсчета вероятности того, что такое определение было ошибочно (более детально такой канал будет описан в § 5.3).
Другим примером является двоичный стирающий канал, показанный на рис. 13. Вероятность правильного приема переданного символа есть q, а вероятность стирания р. Тогда если принят символ нуль или единица, то вероятность ошибочного приема равна 0, тогда как любой стертый символ можно истолковать, например, как нуль с вероятностью 7г (более подробно такой канал описан в § 5.2).
Покажем теперь, как можно реализовать АВ-де- кодирование в случае класса переменных во времени двоичных каналов.
а. Весовые множители
Применение АВ-декодирования в случае каналов, переменных во времени, требует вычисления весовых множителей {wj и порога Т по формулам (109) и (111); теперь эти величины являются функциями времени.
a ja jРассмотрим систему (А<) проверок, ортогональных относительно е^\ Пусть yj — вероятность ошибки для /-го шумового символа, кроме в^\ кон
a j
a j
тролируемого фиксированной проверкой Ai1). Тогда по лемме 2 имеем
1Pi= "^1Pi= "^п1'1-По-2^)7-1.п1'1-По-2^)7-1.= 1— Qi-= 1— Qi-(120)(120)
1
Pi= "^
1
Pi= "^
п1'
1-По-2^)
7-1.
п1'
1-По-2^)
7-1.
= 1— Qi-
= 1— Qi-
(120)
(120)
(121)(121)Отсюда следует, что
(121)
(121)
Plnl
!- П^-^У)
j” 1
Удобней писать равенство (121) иначе: положим
е(^) = —ln(l — 2Y/);(122)
9 То есть вероятность того, что е^ =£ 0. — Прим, ред.
тогда равенство (121) можно записать так:
/ nt \
^=Ц^А,(123)
pi V У=1 ’ /
где cth(x) = (ех + е~х)/(ех— е-х) —обычный гиперболический котангенс. Полагая в формуле (109) логарифм натуральным, получаем
и поскольку р0 = Pr (^ = 1), получим
w0 = 2 In (^0/р0) = 2 In [cth (у ^n)] •(125)
б. Аналоговая схема для вычисления весовых множителей
Теперь можно построить схему, которая по формулам (124) и (125) вычисляет величины {^} и по найденным {ку^— порог Т. Такая схема показана на рис. 14.
Допустим, что входами схемы рис. 14 являются л0 последовательностей
С(У) (D) = с^ + c\nD + c^ti1 + ...,
/-1, 2,n0,(126)
где c^b— сигнал на /-м входе схемы в момент времени и, имеет значение
db = In [1 — 2 Pr ^b = 1)].(127)
Весовые множители {ку^ вычисляются следующим образом. На входы i-ro аналогового сумматора, который на рисунке расположен ниже аналоговых регистров сдвига, поступают величины с^\ записанные в регистрах сдвига и соответствующие шумовым символам е^\ кроме е^ контролируемым проверкой А{.
Выход этого аналогового сумматора соединен с нелинейной схемой, которая преобразуетх в 2 In [cth-g- xj.
Рис. 14. Аналоговая схема для вычисления весовых множителей и порога, изменяющихся во времени.
Из выражения (124) следует, что результат такого преобразования есть в точности весовой множитель для проверки Av Для вычисления порога Т следует взять половину суммы всех весовых множителей, как это требует равенство (111).
Так как аналоговая схема, приведенная на рис. 14, вычисляет совокупность весов и порог в каждый
момент времени, то для получения законченной схемы АВ-декодирования в случае канала переменного во
Выходной сигнал декодераВыходной сигнал декодера1А1АR(0>R(0>Обозначения me же, что на рис. Пи 14, с добавлением ©обозначающего аналоговую схему „ и ° или, схему умножения ' (оба входа трактуются как действительные числа')Обозначения me же, что на рис. Пи 14, с добавлением ©обозначающего аналоговую схему „ и ° или, схему умножения ' (оба входа трактуются как действительные числа')Рис. 15. Полная схема декодирования для ПО-кода при R= 72> «£= 11-Рис. 15. Полная схема декодирования для ПО-кода при R= 72> «£= 11-
Выходной сигнал декодера
Выходной сигнал декодера
1А
1А
R(0>
R(0>
Обозначения me же, что на рис. Пи 14, с добавлением ©обозначающего аналоговую схему „ и ° или, схему умножения ' (оба входа трактуются как действительные числа')
Обозначения me же, что на рис. Пи 14, с добавлением ©обозначающего аналоговую схему „ и ° или, схему умножения ' (оба входа трактуются как действительные числа')
Рис. 15. Полная схема декодирования для ПО-кода при R= 72> «£= 11-
Рис. 15. Полная схема декодирования для ПО-кода при R= 72> «£= 11-
времени ее можно объединить с одним из декодеров типа I или II.
На рис. 15 показана полная схема декодирования, полученная соединением аналоговой схемы рис. 14 с декодером типа I и предназначенная для ПО-кода со скоростью R=W2 и /=4, взятого из табл. 1.
Заключение
Мы предложили схемы, которые могут быть использованы для порогового декодирования любого двоичного сверточного кода. Декодирующие схемы чрезвычайно просты, содержат, очевидно, минимально возможное число элементов памяти и в качестве устройства для принятия решения используют простой пороговый логический элемент. Декодирующие схемы выполняют в единицу времени (в течение которой поступают п0 символов) только одну операцию, и потому вполне возможно построить такие схемы с разумным временем декодирования для каналов, у которых входная скорость является величиной порядка мегагерца. Тот факт, что время, затрачиваемое на декодирование одного принятого символа, постоянно, является преимуществом, поскольку полностью исключается возможность появления очереди принятых символов, ожидающих декодирования.
Все эти качества декодирующих схем чрезвычайно привлекательны для инженеров-связистов. Однако остается нерешенным центральный вопрос. Какова вероятность ошибки на приемном конце? Ответ на этот вопрос будет дан в гл. V.
Глава V
ХАРАКТЕРИСТИКИ ПОРОГОВОГО ДЕКОДИРОВАНИЯСВЕРТОЧНЫХ кодов
Исследование сверточных кодов мы завершим оценкой вероятности ошибки, которой можно достичь, используя пороговое декодирование.
Рассматривая различные каналы связи, мы будем сосредоточивать внимание на величине Pi (в).
В § 2.5 величина Pi(e) была названа средней вероятностью неправильного декодирования множества первых информационных символов. Так как почти у всех кодов, построенных в гл. III, скорость передачи равна R = \/nOl мы и ограничимся этими кодами. В этом случае А(^) становится просто сред-* ней вероятностью неправильного декодирования символа цр.
Отметим два момента, касающихся порогового декодирования сверточных кодов: с одной стороны, недостаточная эффективность в общем случае, с другой — превосходные результаты в частных случаях. В качестве характерного примера вспомним двоичный симметричный канал (рис. 1). Граница для случайного кода, полученная в § 2.5, показывает, что если R < С, то средняя по ансамблю сверточных кодов величина вероятности Л(е) стремится к нулю, экспоненциально убывая с ростом кодового ограничения пА. Резкий контраст этому результату, как будет показано, составляет тот факт, что при применении порогового декодирования величина Р4(е) всегда превосходит некоторую положительную константу, не зависящую от роста пА (по крайней мере когда коды удовлетворяют следствию теоремы 10). С другой стороны, мы увидим, что в случае кодов умеренной длины сравнение характеристики порогового декоди-
рования с характеристикой случайного кода и с вероятностью ошибки, которая достигается при использовании других доступных систем декодирования, оказывается в пользу порогового декодирования1).
Двоичный симметричный канал
Большая часть этого параграфа посвящена изучению величины Л(^) для двоичного симметричного канала (рис. 1). Особое внимание этому каналу мы уделяем по двум причинам. Во-первых, этот канал наиболее полно изучен связистами-теоретиками и теперь уже знаком всем инженерам-связистам. Во-вторых, естественно предположить, что результаты, получаемые при применении порогового декодирования, для этого канала в основном сохранятся и для более широкого класса двоичных каналов.
Границы вероятности ошибки
г Мы хотим показать, что при использовании порогового декодирования величина Р^е) не может быть сделана сколь угодно малой. Доказательство будет облегчено использованием логарифма отношения правдоподобия L, который определяется равенством
1 Pr^o^}] •1 Pr^o^}] •(128)(128)
1 Pr^o^}] •
1 Pr^o^}] •
(128)
(128)
С помощью равенств (17) и (18) можно записать равенство (128) иначе
(129)(129)_ у |п М±Кг1,1П М^]
(129)
(129)
~Й Рг[ЛК = о] Pr^-oj1
*) Иначе говоря, несмотря на то что асимптотические (при п->оо) свойства построенных кодов явно неудовлетворительны, при не слишком больших пА удается получить сверточные коды, допускающие пороговое декодирование и обладающие хорошими характеристиками. — Прим. ред.
Наконец, с помощью формул (21) и (22) можно свести равенство (129) к виду
(130)
где {Л^} трактуются как действительные числа, а значения весовых множителей {wj и порога Т определены равенствами (109) и (111).
Равенство (130) выражает следующий интересный факт: когда применяется АВ-декодирование, логарифм отношения правдоподобия в точности равен разности между взвешенной суммой результатов ортогональных проверок и порогом.
Логарифм отношения правдоподобия представляет значительный интерес, так как если известно L, то вероятность ошибки декодирования Pt(e|L) символа /^ можно определить из уравнения
(131)
Уравнение (131) непосредственно следует из уравнения (128), если заметить, что при L > 0
P1(e|Z) = Pr[^) = 0|{Az}], тогда как при £<0
Л(^£) = Рг[^)=1|(А}].
Теперь мы в состоянии доказать, что если построенный нами код удовлетворяет следствию из теоремы 10, то при применении порогового декодирования вероятность ошибки не может быть сделана произвольно малой.
Теорема 16. Пусть для двоичного сверточного кода со скоростью R—l/по образована система 1 = =Цп0—1) проверок1) (Лг), ортогональных относи
*) В упомянутом выше следствии из теоремы 10 вместо / фигурирует Q. Кроме того, в рассмотренной теореме 16 принято, что величина г (входящая в условия следствия из теоремы 10) равна нулю. — Прим. ред.
тельно s^. Положим, что для любого /=1, 2, ..., 1 найдется п^— 1 проверок, для которых n^j. Тогда, если код применяется в двоичном симметричном канале с вероятностью перехода р0"1—9о, то каково бы ни было J, величина Pi(e), полученная при пороговом декодировании, удовлетворяет неравенству
РЛе>РЛе>(132)(132)
РЛе>
РЛе>
(132)
(132)
Доказательство. При пороговом декодировании величина РДе) минимальна, если используется АВ-декодирование. Кроме того, РДе) монотонно убывает вместе с возрастанием I, так как при этом АВ- декодирование полнее использует информацию, заключенную в системе (AJ, и для более длинных кодов, построенных в соответствии с условием теоремы, система (AJ всегда включает в качестве подсистемы систему (AJ каждого более короткого кода. Поэтому нам достаточно показать, что при АВ-деко- дировании величина РДе) удовлетворяет неравенству (132), если J-*oo. Начнем с доказательства того, что \L\ ограничен.
Используя выражение (111), можно переписать равенство (130) в виде
jj
L^^WiAi —^^Wi,(133)
Z=11 = 0
откуда следует, что |L|max получается, когда все А< равны нулю, т. е. когда все ортогональные проверки удовлетворены. Таким образом,
IL |тах — -^IL |тах — -^(134)(134)In — .
IL |тах — -^
IL |тах — -^
(134)
(134)
Pi
Подставляя выражение (112) в (134) *), получаем
IL |max = fro ~ 1) % In j ^ л ~^ + In -^. (135)
Я1 —(1—2^0)*р0
Пользуясь разложением в ряд логарифма lny±j=2(z + |x3+ l^H-, ...),0<х< 1, (136)
можем записать равенство (135) в виде
Нт |£|тм = 1п^+(По-1)2УГ(1-2ЛУ+
J -> ООРоL
+ |(1-2л)3/ +(137)
Так как ряд в скобках сходится абсолютно, для каждого члена ряда суммирование по i можно выполнить отдельно, используя формулу для суммы геометрической прогрессии
44^^ +(138)
Ограничив сверху ряд справа, получим
;ta IL |.„ < in £ +!4,JW 2 [(1 -ад + 4-1(1-2р0)3+ ...]. (139)
В ряде справа мы узнаем разложение выражения
InIn1 + (1-2Ро) . 1-(1-2л) -1 + (1-2Ро) . 1-(1-2л) -In-^-.РоIn-^-.Ро(140)(140)
In
In
1 + (1-2Ро) . 1-(1-2л) -
1 + (1-2Ро) . 1-(1-2л) -
In-^-.
Ро
In-^-.
Ро
(140)
(140)
1) И учитывая условие, сформулированное в теореме отно* сительно tit. — Прим, ред.
Поэтому соотношение (139) принимает вид limHk^-^+^-hn^.(141)
J -> ООzPoРо
Из уравнения (131) следует, что величина Pi^e\L) минимальна, когда \L\ максимален, и что эта вероятность больше, чем 1/2е"|£,тах. Учитывая неравенство (141), находим, что Pt(e|£) должно удовлетворять неравенству
Рг (^ | £) > ~-^-[(2ро+/го-1)/2ро] In (^о/А)е(142)
Но так как РДе)—среднее значение вероятности Pi(e|£) по всем £, то Pi (в) должна быть, конечно, больше, чем минимальное значение Pt(e|£), и поэтому больше, чем правая часть неравенства (142), что и требуется доказать.
Из теоремы 16 следует, что, пользуясь пороговым декодированием в случае кодов, удовлетворяющих следствию теоремы 10, величину РДе) нельзя сделать сколь угодно малой. Согласно теореме 12, этот класс кодов является наилучшим из всех, которые могут быть построены для порогового декодирования при Р=1/2. Таким образом, при пороговом декодировании в случае Р=1/2 величину РДе) невозможно сделать произвольно малой. Можно предположить, что это верно и при других скоростях, однако мы не в состоянии этого доказать.
В действительности мы доказали больше, чем утверждается в теореме 16. Неравенство (142) показывает, что для класса кодов, рассмотренного в теореме 16, не существует алгоритма декодирования, который позволил бы сделать вероятность ошибки меньше правой части неравенств (142) или (132). Даже в самом благоприятном случае (когда удовлетворены все ортогональные проверки) вероятность ошибки при декодировании превосходит границу в правой части неравенства (132). По этой причине неравенство (132) не может считаться хорошей нижней границей величины Pi^; оно дает хорошую границу минимального значения величины Pi(e|£).
Данные о ПО-кодах
Установив, что в общем случае !) при пороговом декодировании вероятность ошибки не может быть сделана сколь угодно малой, обратимся к вычислению Pi(e) в частных случаях. Для этой цели выберем ПО-коды из табл. III. Эти коды обладают тем свойством, что значения пА и пЕ почти равны и что пЕ никогда не превышает границы, указанной в теореме 10.
Прежде чем выражать РДе) в форме, наиболее подходящей для двоичного симметричного канала, дадим общее выражение, которое годится для любого двоичного канала, независимо от того, изменяется он во времени или нет. Положим, как обычно, р0=1—q0 = Рг(^ = 1). В случае канала, параметры которого изменяются во времени, р0 — случайная величина. Общим выражением для РДе) будет
^i(^)=^oPr 2®Л> г^^о +
(143)(143)
(143)
(143)
где черта указывает на усреднение по всем значениям весовых множителей, Wt = 2 log (gi/Pi), i=0, 1, ..., /. Равенство (143) выражает тот очевидный факт, что ошибка произошла тогда, когда встречается одно из двух несовместимых событий: или порог превзойден, когда £W = 0, или не превзойден, когда е^ = 1. Но так как система {Лг} проверок, в которых ^п=1, дополняет систему {Дг} проверок, в ко-
!) В смысле, указанном в теореме 16, и для класса кодов, рассмотренного в этой теореме. — Прим. ред.
торых 6^ — 0 *), то имеем
РгРг<2®’,А<<2®’,А<q^>=iq^>=i= Рг= Рг^д>5^-г|^)=о^д>5^-г|^)=о(144)(144)
Рг
Рг
<2®’,А<
<2®’,А<
q^>=i
q^>=i
= Рг
= Рг
^д>5^-г|^)=о
^д>5^-г|^)=о
(144)
(144)
Отсюда равенство (143) можно переписать в виде
Л 00 = ^Л 00 = ^■ J2 -зуд >7 = 1■ J2 -зуд >7 = 1тК’=отК’=о
Л 00 = ^
Л 00 = ^
■ J
2 -зуд >
7 = 1
■ J
2 -зуд >
7 = 1
тК’=о
тК’=о
(145)(145)+дРг [ 2 ™л > 5 ®i - т I ^ = о
(145)
(145)
и мы видим, что следует рассматривать распределение вероятностей значений {Дг} проверок только при условии е^ — 0. Для двоичного симметричного канала черта над правой частью равенства (145) может быть опущена, так как все весовые множители постоянны.
Мы видели (п. 1.1г), что система {Дг} проверок, в которых ^ = 0, суть система статистически независимых случайных величин, для которых Рг(Д^ = = \)=Pi=\—Рг(Дг = 0). Определим случайную величину Xi равенством
Xi = WiAi, Z=l, 2, ...,/, (146)
где Ai трактуется как вещественное число. Тогда равенство (145) можно переписать в виде
Pi(e) = ?oPr 2^/
+ лРг[2^>2^-7'm=i /=i+ лРг[2^>2^-7'm=i /=i(147)(147)
+ лРг[2^>2^-7'm=i /=i
+ лРг[2^>2^-7'm=i /=i
(147)
(147)
!) Это значит, что А\ -|~Д^ = 1, где At и Л^— значения проверки At при е^\ равном соответственно 0 и 1; это объясняется тем, что ^ входит во все проверки. — Прим. ред.
где Xj — множество / статистически независимых случайных величин, для которых Pr(Xi = ^i)=Pi и- Рг(Х<=0)=^.
Определение величины ТДе) из равенства (147) сводится к классической задаче вычисления вероятности того, что сумма статистически независимых случайных величин превосходит некоторую фиксированную величину. Однако мы не в состоянии получить для РДе) точного выражения или даже хорошей нижней оценки по следующим причинам. Так как, согласно выражению (112), для двоичного симметричного канала
Pi = 1 - qi = j [1 - (1 - 2Рор], (148)
то в общем случае величины Хг- не являются равномерно распределенными. Более того, так как гц растет в прямой зависимости от / (по крайней мере для кодов, удовлетворяющих следствию из теоремы 10), при увеличении / вероятность Pi стремится к 7г; это означает, что при АВ-декодировании весовые множители стремятся к нулю. Для больших J распределение суммы величин Xi определяется почти полностью несколькими первыми значениями kt при малых значениях гц. По этим причинам для обработки сумм независимых случайных величин не могут быть применены обычные приемы, такие, как граница Чернова или центральная предельная теорема.
Численное решение уравнения (147) облегчается использованием производящей функции, упомянутой в § 4.1. В случае двоичного симметричного канала производящая функция gt(s) для Xi такова:
gi(s) = ^sWz + ^z. (149)
Так как величины %, статистически независимы, производящая функция g(s) их суммы равна произведению функций gi(s') или
^(«) = П(а^' + ^)- (150)
Тогда, так как каждый коэффициент в производящей функции есть вероятность того, что случайная величина равна показателю при s в этом члене, равенство (147) можно написать так:
Р1(е)=^0 [сумма коэффициентов в g(s) техчленов, у которых показатели больше Т] + р0[сумма коэффициентов в g(s) тех членов,
у которых показатели не меньше 2 ^/—Л-
(151)
Равенство (151) было использовано в качестве основы при определении величины Pi (в) для ПО-кодов табл. III на вычислительной машине. Так как при мажоритарном декодировании ^«=1 для всех /, то g(s) в равенстве (150) представляет собой обычный полином с /+1 членами. В этом случае очень легко вычислить величину РДе). При АВ-декодиро- вании все w< могут быть различными и тогда полином g(^s) содержит V членов, и применение вычислительной машины становится необходимым даже в простейших случаях.
На рис. 16—19 показаны значения РДе) в зависимости от пЕ для ПО-кодов со скоростями 7г, 7з, Vs и Vic соответственно. (Все эти данные были получены вычислением на машине ИБМ-7090 вычислительного центра Массачусетского технологического института; на получение каждого графика требовалось приблизительно три минуты машинного времени.) Для каждого значения скорости было использовано пять различных каналов1), и они были выбраны так, чтобы обеспечить широкий диапазон величин РДе).
Несколько особенностей графиков, показанных на рис. 16—19, ясны сразу. Во-первых, РДе) не убывает экспоненциально при увеличении пЕ ни для мажоритарного, ни для АВ-декодирования. При АВ-декоди- ровании Р4(е) монотонно убывает с ростом пЕ по
9 Иначе говоря, пять различных значений вероятности Ро—1 — ^о, характеризующей канал, —- Прим. ред.
Рис. 16. Характеристика ПО-кода при R = 7г Для двоичного симметричного канала.
мажоритарное декодирование,АВ-декодирование. п^ в двоичных единицах. Для п^ = 106 код взят из табл. 1.
Рис. 17. Характеристика ПО-кода при R = 7з Для двоичного симметричного канала.
Обозначения те же, что на рис. 16.
Рис. 18. Характеристика ПО-кода при R = 7б Для двоичного симметричного канала.
Обозначения те же, что на рис. 16.
Рис. 19. Характеристика ПО-кода при R = 7ю Для двоичного симметричного канала.
Обозначения те же, что на рис. 16.
причине, которая была установлена в начале доказательства теоремы 16. Однако при мажоритарном декодировании в случае каналов с большим р0 при некоторых значениях пЕ величина Pv^ имеет минимум и после него возрастает. Причина этого состоит в том, что для проверок с большим п^, в достаточно длинных кодах pt близко к 1/2, но эти «плохие» проверки имеют такой же вес в принятии решения относительно ^1}, как и «хорошие» проверки с малыми гц. В конечном счете при любом значении р0 вероятность Py^ для мажоритарного декодирования будет стремиться к 1/2, когда величина пЕ бесконечно возрастает.
Для первой оценки качества ПО-кодов при использовании порогового декодирования для одного канала на каждом из рис. 16—19 нанесена верхняя граница величины Р^^ в том виде, как это дается границей (Б.10) в приложении Б для случайного кода. (В каждом случае скорость передачи несколько меньше, чем /?Крит для выбранного канала.) При нанесении границы для случайного кода была использована величина пЕ, а не пА. Это делалось потому, что пЕ есть число символов, по которым в случае порогового декодирования принимается решение относительно е^9 в то время как все пА символов используются при декодировании по максимуму правдоподобия, как предполагается при выводе величины Pi^ для случайного кода.
Во всех четырех случаях вероятность Pi^ для ПО-кодов достигает границы А(е) для случайного кода при пЕ«70. Если используются более длинные ПО-коды, то получаемая при декодировании по максимуму правдоподобия вероятность ошибки превышает эту верхнюю границу для средней по ансамблю сверточных кодов вероятности ошибки.
Поскольку рассмотрение практического осуществления, проведенное в п. 1.1а, показывает невыполнимость декодирования по максимуму правдоподобия в общем случае, более реалистичным критерием для оценки характеристики ПО-кодов является
вероятность ошибки, которой можно достичь при использовании других методов кодирования и декодирования. Для сравнения в случае скоростей V2, Уз и Vs выбраны подходящие коды Боуза — Чоудхури [2], при декодировании которых для исправления любой комбинации ошибок веса не более (d—1)/2 может быть использован алгоритм Питерсона [12, стр. 197—202] (d—минимальное расстояние). В случае скорости 7ю мы предположили существование блоковых кодов, для которых d равно среднему весу ненулевого кодового слова. При вычислении вероятности Р^ ошибки в блоке мы предполагали, что любая комбинация ошибок может быть исправлена тогда и только тогда, когда ее вес не превосходит (d—1)/2. Наконец, так как при п = = 63 не существует кодов Боуза — Чоудхури с требуемыми скоростями, пришлось воспользоваться укороченными кодами: если скорость несколько превосходила заданную, то отбрасывалось столько информационных символов, что скорость укороченного таким образом кода уже не превосходила
Таблица V
Блоковые коды, использованные для сравнения с ПО-кодами
п
к
d
R
Тип кода
31
16
7
0,517
Код Боуза-—Чоудхури
54
27
11
0,500
Укороченный (63, 36)-код Боуза — Чоудхури
31
11
11
0,355
Код Боуза — Чоудхури
58
19
15
0,328
Укороченный (63, 24)-код Боуза — Чоудхури
31
6
15
0,194
Код Боуза — Чоудхури
58’
11
23
0,190
Укороченный (63, 16)-код Боуза — Чоудхури
30
3
17
0,100
Код со средним расстоянием
60
6
13
0,100
Код со средним расстоянием
желаемой. В табл. V выписаны все коды, которые были использованы для сравнения с ПО-кодами.
В табл. VI приведены значения вероятностей Л(е) для ПО-кодов из табл. II, Р^ —вероятность ошибки в блоке, и отношение Р^е^к для блоковых кодов табл. V, где к — число информационных символов в блоковом коде. В случае каждой из скоростей был использован тот же канал, что и при соответствующих расчетах для случайного кода на рис. 16—19, а п бралось таким же, как и пЕ.
Таблица VI
Сравнительные характеристики для сверточных ПО-кодови блоковых кодов табл. V в случае двоичногосимметричного канала
Скорость
fig или п
Блоковые коды
Сверточные коды
Р^
Рх^
72
31
6,8 ■ 10”4
4,3 -10”5
2,4 - 10”5
54
7,3- КГ5
2,7 • 10”6
6,6 • 10”’
7з
31
3,4- 10”4
3,0 -10”5
3,8 ■ 10”5
58
1,3 10”5
7,0 -10”7
9,3-10”6
7»
31
1,6- КГ4
2,7- 10”5
1,9 -10”5
58
4,1 • 10”5
3,7-10”6
3,4 -10”6
Vic
30
3,7 • 10”
1,2- Ю”3
7,7 • 10”5
60
6,0 -10”4
1,0-10”4
1,3-10”5
Величина Рх (е) для сверточных кодов была найдена экстраполированием данных на рис. 16—19 для Рх (е) в предположении, что применялось АВ-деко- дирование. Были использованы следующие вероятности ошибки при передаче: po = Q,O13O при Р-=Ч2*>/70 = 0,0530 при Р = Ч5;
/70 = 0,0310 при Р=Ч»;р» = 0Д100 при R = 1ix0.
Ph(e) =Р(е), то среднее число правильно декодированных (до первой ошибки) информационных символов приблизительно одинаково и для блокового, и для сверточного кодов. С другой стороны, величина Рк(е) заведомо подчинена неравенству
Pk^<kP^e)t (152) в котором вероятность совместного наступления событий ограничена сверху суммой вероятностей каждого события. Таким образом, для сравнения блокового и сверточного декодирования сопоставление величин Р^е) и кРх^е) или (что то же самое) величин P(e)lk и РДе) представляется вполне разумным.
Из таблицы VI видно, что результаты порогового декодирования для ПО-кодов выгодно отличаются от результатов декодирования блоковых кодов, используемых для сравнения. В случае высоких скоростей разница невелика. Заметное превосходство порогового декодирования в случае Р= 1/10 объясняется тем, что при такой низкой скорости особенно важно исправлять большое количество комбинаций ошибок, вес которых "больше, чем (d—1)/2. Даже мажоритарное декодирование для многих таких комбинаций ошибок будет правильно декодировать символ tf^. Например, в случае ПО-кода при /?=1/10, 1=26, d = 27 ошибка декодирования произойдет при^1} = 0 только тогда, когда 14 или более ортогональных проверок окажутся равными единице. Таким образом, если искажены 14 символов из 48 входящих в систему ортогональных проверок, то при декодировании ошибка произойдет только в том неблагоприятном случае, когда все искаженные символы контролируются различными ортогональными проверками (в предположении, что ^^ = 0); если два символа в комбинации ошибок принадлежат одной и той же проверке, то ошибки декодирования не произойдет, пока вес комбинации ошибок не окажется равным по меньшей мере 16,
Допустимые отклонения для весовых множителей и порога
Характеристика порогового декодирования в применении к ПО-кодам табл. II оказывается вполне приемлемой, а простые схемы для реализации порогового декодирования могут сделать его при соответствующих длинах кодов в достаточной степени ценным для практических целей. Но, в то время как при рассмотрении схем декодирования и при вычислениях величины Pi(e) предполагалось, что весовые множители и порог принимают свои истинные значения, с технической точки зрения важно знать, как отразятся неточности в их значениях на характеристике декодирования.
Легко убедиться, что требования к отклонениям не строги. Из равенства (130) следует, что в критических случаях, когда взвешенная сумма ортогональных проверок приближается к порогу, L стремится к нулю и в соответствии с равенством (131) вероятность ошибки при принятии решения стремится к 1/2. Таким образом, в этом случае несущественно, какое значение — нуль или единица приписывает декодер символу е^. На рис. 20, а для типичного случая приведены числовые результаты, которые иллюстрируют влияние неточностей в значении порога. Характеристика не ухудшается сколько-нибудь заметно даже при 5-процентном отклонении. Незначительные отклонения в значениях весовых множителей дают такой же результат.
Более интересным является вопрос о влиянии ошибки при оценке свойств канала. В соответствии с равенством (112) весовые множители, а также порог получают значения, зависящие от оценки величины ро, которую мы будем обозначать через р*. К счастью, слишком точного определения не требуется. Такое заключение позволяют сделать рис. 15—19, из которых ясно, что умножение всех проверок даже на одинаковые весовые множители, как это полагается при мажоритарном декодировании в больший-
Неточность в значении порока, выраженная в процентах
Рис. 20. Влияние неточностей на вероятность ошибки. ПО-код, /?=1/2, ^ = 79; двоичный симметричный канал, Ро = 0,0130. а —влияние неточностей в значении порога на вероятность ошибки; б —влияние неточностей в оценке канала на вероятность ошибки.
стве случаев, не ухудшает характеристики сколько- нибудь заметно.
На рис. 20, б для типичного случая приведены числовые результаты, которые показывают, какое незначительное влияние оказывают умеренные неточности в определении свойств канала на значение Pi (в).
В заключение отметим, что мажоритарное декодирование можно понимать как предельный случай АВ-декодирования, когда /^*->0. Для этого рассмотрим две проверки, одну размера Пг = а, другую размера Пг = Ь. Отношение весовых множителей wa и wb в соответствии с формулой (112) будет
1.е[[1+(1-2РУ]/[1-(1-2ЛУ|) fo6([i+(i-2/>;)’]/[i-(i-2,;)-])' 1 '
Когда Pq-^Oi оба весовых множителя стремятся к бесконечности, а их отношение стремится к пределу, который можно найти двукратным применением правила Лопиталя:
lim -^^ 1 (154)
при произвольных а и Ь. В этом случае все проверки умножаются на одинаковые весовые множители, что является отличительной особенностью мажоритарного декодирования. Таким образом, можно ожидать, что характеристики мажоритарного и АВ-декодирования почти одинаковы в случае каналов с малыми р0. Из рис. 16—19 видно, что это действительно так.
Модификация порогового декодирования
Существует два основных пути, следуя которым можно модифицировать алгоритм порогового декодирования с целью повышения достоверности декодирования при передаче по двоичному симметричному (или по другому) каналу с обратной связью. (Основная идея этого раздела — повышение достоверности за счет декодирования только наиболее вероятных
комбинаций ошибок и переспроса во всех остальных случаях — впервые была предложейа Возенкрафтом и Хорстейном [5].)
Первый метод состоит в том, чтобы создать в по
роговом устройстве область неопределенности шириной 2А, симметричную относительно порога, т. е. вся- j
кий раз, когда 5 4$otAt — Т < А, устройство должно
сигнализировать о (необходимости переспроса1).
Из равенства (131) следует, что при АВ-декодиро- вании использование метода обнаружения ошибки эквивалентно тому, что решение принимается тогда и только тогда, когда вероятность ошибки меньше, чем е~А/(1+е~А). Область неопределенности можно применить также и при мажоритарном декодировании. А именно, пусть М — такое целое число, что J — М четно. Тогда ^п будет декодироваться правильно всякий раз, когда среди пЕ символов, контролируемых проверками {A J, имеется не более (/—А1) /2 ошибок и не будет принято неправильного решения, если среди этих символов встретится не более чем (/+М)/2 ошибок. При этом подразумевается следующее правило декодирования: выбрать ^) = 1, если более чем (/+М)/2 проверок {AJ имеют значение единица; выбрать 6^ = 0, если не более чем (/ — M^JS проверок {Аг} имеют значение единица. В противном случае подается сигнал об обнаружении ошибки. Доказательство этого утверждения представляет собой тривиальную модификацию доказательства теоремы 1.
Второй метод повышения надежности при наличии обратной связи будем называть случайным дополнением сверточного кода. Этот метод предназначен для использования в сочетании с методом подсчета ошибок, описанным в § 3.2. Его идея состоит в том, чтобы заставить ошибку декодирования размножаться; затем это размножение может быть обнаружено методом подсчета ошибок, на основании чего можно потребовать повторения передачи. Этого можно до-
*) То есть происходит обнаружение ошибки. — Прим. ред.
биться добавлением к порождающим полиномам (65) членов степени, большей, чем т, коэффициенты 0 и 1 при которых выбираются независимо друг от друга с вероятностью 1/2. (Так как пА при этом возрастает, сложность кодера и декодера возрастает в той же пропорции.) Предположим, что к каждому порождающему полиному добавлено L таких членов. Из рис. 11 видно, что в случае ошибки декодирования влияние случайного дополнения состоит в введении в регистры сдвига проверок пачки из L^Hq— 1) случайных символов. Когда эти символы поступают в ту часть регистра сдвига, которая используется для декодирования, т. е. в последние m разрядов регистра сдвига в каждой цепи, то вероятность размножения ошибок возрастает. (Аналогичный анализ приложим к декодеру типа II на рис. 12.) Выбрав L достаточно большим, вероятность необнару- жения ошибки можно сделать произвольно малой. Однако, так как число символов, подлежащих повторению, растет пропорционально L, растет и расход времени на переспрос. (Мы здесь не будем рассматривать таких важных вопросов, как запоминание данных для повторения, количество символов, подлежащих повторению, и т. д. Для полного ознакомления с ними отошлем читателя к статье Возенкрафта и Хорстейна [5]. Наша цель — указать главным образом на те особенности применения обратной связи, которые характерны для порогового декодирования.)
Наконец, для осуществления метода подсчета ошибок необходимы средства для подсчета всех ошибок, исправленных в принятой последовательности. На выходе порогового устройства в декодере типа I появляется единица всякий раз, когда исправляется ошибка в информационной последовательности. Число ошибок, исправленных в проверочной последовательности, может быть получено посредством модификации декодера типа I, показанной на рис. 21. Порождающие полиномы всегда выбираются так, что gU)=l, / = 2, 3, ..., п0; в противном случае в первом кодовом слове найдутся неиспользованные по-
зиции, т. е. позиции, на которых во всех первых кодовых словах стоят нули. Таким образом, из выражения (70) следует, что
^^’Н-^, 7 = 2, 3, .... п. (155) Отсюда е^*— декодированное значение символа е^ — может быть получено суммированием s^ и ^w* по модулю два. Так это и сделано на рис. 21;
Рис. 21. Схема подсчета всех ошибок в принятой последоваРис. 21. Схема подсчета всех ошибок в принятой последовательности.тельности.Остальная часть схемы такая же, как на рис. 11.Остальная часть схемы такая же, как на рис. 11.
Рис. 21. Схема подсчета всех ошибок в принятой последова
Рис. 21. Схема подсчета всех ошибок в принятой последова
тельности.
тельности.
Остальная часть схемы такая же, как на рис. 11.
Остальная часть схемы такая же, как на рис. 11.
на выходе сумматора появляется единица всякий раз, когда в соответствующей проверочной последовательности исправляется ошибка.
Двоичный стирающий канал
Весьма эффективный метод декодирования сверточных кодов был развит для этих каналов Эпстейном [26]. Метод Эпстейна приводит к экспоненциальному убыванию вероятности ошибки при любой скорости передачи, меньшей пропускной способности канала, а среднее число операций на один декодирован-
ный символ не зависит от длины кодовой комбинации.
В этом параграфе мы бегло коснемся АВ-декоди- рования для двоичного стирающего канала, изображенного на рис. 13. Канал имеет пропускную способность C = q и характеризуется тем, что принятый символ может оказаться сомнительным, но никогда не бывает ошибочным [16, стр. 129]. В § 4.2 мы видели, что этот канал можно свести к двоичному каналу, если все стертые символы заменить нулями и считать их неверными с вероятностью V2. Выражение для Pi(e) можно сразу написать в виде1)
Pi(£) = 4^Pr каждая проверка At контролирует не менее одного стертого символа, кроме ^L
(156)
Справедливость равенства (156) видна из следующего рассуждения: символ е^ немедленно можно определить из любой проверки, в которой нет ни одного другого стертого символа; с другой стороны, если имеется другой стертый символ, то такая проверка не несет никакой информации относительно г^. Таким образом, с вероятностью V2 будет допущена ошибка тогда и только тогда, когда 1^ соответствует стертому символу и каждая из проверок, ортогональных относительно ^ контролирует по крайней мере еще один стертый символ. Равенство (156) можно переписать в виде
j
Pi^-^IIO-^);(is?)
t = l
здесь использован тот факт, что, кроме г^, ни один символ не входит более чем в одну из ортогональных проверок.
!) Здесь р=1—q— вероятность стирания символа. — Прим, ред..
Используя равенство (157), можно вычислить величину Pi(e) для двух двоичных стирающих каналов на рис. 22. Ввиду того что здесь основные черты те
Рис. 22. Характеристика ПО-кода при /?=1/2 для двоичного стирающего канала (р— вероятность стирания).
Остальная часть схемы такая же, как на рис. 11. Код из табл. I, ^= 106.
же, что у двоичного симметричного канала, мы больше не будем возвращаться к этому случаю.
Если код удовлетворяет следствию теоремы 10, то, как и в случае двоичного симметричного канала, ве-
личина Pi(e) не может быть произвольно малой. В частности, может быть сформулирована следующая теорема.
Теорема 17. Пусть сверточный код используется для передачи со скоростью R=Uno по двоичному стирающему каналу с вероятностью стирания р=1—q. Если система {Д^, состоящая из 1=Цпо—1) проверок, ортогональных относительно е^\ образована так, что п0— 1 этих проверок имеют п^ = ] (/=1, 2, ..., /) для любого J, то вероятность Pv^ при пороговом декодировании удовлетворяет условию
м
^(^T^nO-fT"1.(158)
где
М == | [log2 /? — log2 (/г0 — 1) — 1 ]/log2 <?).(159)
Д о к а з а т е л ь с т в о. Для кода теоремы 17 равенство (157) принимает вид
РАе)=^рЦ^-^-(160)
Ясно, что правая часть монотонна убывает с ростом J. Имеем также
П(1-?'Г'>1-(ло-1) 1^= i = M1-М
= 1— (/г0—(161)
ЕслиМудовлетворяет равенству(159),тогда
(п0— l)^1-’’<Су и выражение (161) превращается в
nd-^'^j.(162)
i = M
Из неравенства (162) следует, что произведение всех членов в равенстве (160) не может быть меньше, чем
половина произведения членов с индексами I от 1 до М включительно 9, а это и есть утверждение jeopeMbi.
Гауссовский канал
Последний канал, который будет здесь изучен, — гауссовский канал, кратко описанный в § 4.2. Передаваемый сигнал представляет собой положительный или отрицательный (при передаче единицы или нуля соответственно) импульс с амплитудой ± V S вольт. Принятый импульс отличается от переданного наложением нормально распределенного случайного импульса с нулевым средним значением и дисперсией N. Покажем, как для этого канала могут быть получены входные сигналы сФ аналоговой схемы рис. 14, описывающие статистику канала. Будут даны также некоторые указания, как улучшатся характеристики декодирования для этого канала, если использовать не постоянные, а изменяющиеся во времени весовые множители. Вспомним, что в § 4.2 сигналы, несущие информацию о статистике канала и поступающие на входы схемы для вычисления весовых множителей, определялись по формуле
с^р = — In [1 — 2Рг ^л = 1)](163)
для всех и и /. Эти сигналы могут быть получены следующим образом. Если принят импульс напряжением у вольт, то соответствующий полученный сим
!) В последнем утверждении содержится неточность. В действительности из равенства (162) вытекает, что
Р\= ^Р Ц (1 - qT”1 > У Р П О -‘>
Z = 1Z = 1
М— 1СОМ-1
> у р П (1 - q1^"1 • п <* — ^У6-1 > т р П <1 ~ ^)"0'1- Z = 1i = MZ = 1
Таким образом, в выражении (158) следует величину М заменить на М — 1. — Прим. ред.
вол истолковывается как 1 или 0 в соответствии со знаком^. Логарифм отношения правдоподобия Lt при этом равен
1- (Ks -1 v I У<2М
L, = |„= 1п ^,
' Рг [е*/* = 1]1 e-(Vs +|» i)2/2W
что можно свести к выражению
(165)
Равенство (165) показывает, что величина Lt пропорциональна амплитуде принятого напряжения. Используя выражение (131), получаем
Prki/^l]--^!-.(166)
+ ^ z
С помощью равенств (165) и (166) перепишем выражение (163) в виде
- 1П f=^ = 1П Cth [Т1 0 • (167)
Из равенства (167) следует, что величину с^ можно получить пропусканием принятого импульса через схему рис. 23. Нелинейное устройство, входящее в эту схему, имеет точно такой же вид, как и в аналоговой схеме рис. 14.
В принципе вычисление вероятности Pi(e) для гауссова канала может быть выполнено посредством равенства (145). Однако в формуле (145) необходимо произвести усреднение по значениям весовых множителей. Поскольку весовые множители представляют собой нелинейные функции нормально распределенных принятых напряжений, то в общем случае нельзя получить аналитическое выражение. Однако существует простой случай, когда Р1(е) может быть найдена непосредственно. Этот случай может служить иллюстрацией тех преимуществ, которые можно по-
лучить, применяя изменяющиеся во времени весовые множители. Этот простой случай имеет место, когда рассматривается код, в котором п0—1 проверочных символов являются повторением единственного в кодовом ограничении информационного символа; такой
Принятые импульсыПринятые импульсыДвухполупери одный выпрямительДвухполупери одный выпрямительc(j)Luc(j)LuНелинейное устройство с характеристикой ^=2ln cth(x/2)Нелинейное устройство с характеристикой ^=2ln cth(x/2)NN
Принятые импульсы
Принятые импульсы
Двухполупери одный выпрямитель
Двухполупери одный выпрямитель
c(j)
Lu
c(j)
Lu
Нелинейное устройство с характеристикой ^=2ln cth(x/2)
Нелинейное устройство с характеристикой ^=2ln cth(x/2)
N
N
Рис. 23. Схема вычисления с^ для гауссова канала.
блоковый код можно рассматривать как* вырожденный случай сверточного кода. (Полное описание соответствующего канала, включающее выкладки, аналогичные равенствам (172) — (174), содержится в статье Блюма и др. [1].) В этом случае удобно пользоваться величинами {BJ, введенными в п. 4.16, для которых имеем
В^г^, / = 1, 2, ..., п0,(168)
и
Pz = Pr[^)=l], /=1, 2, ..., п0.(169)
Пользуясь равенством (164), представим весовые множители в виде
^z = 21n^- = 4-^|^|, 1 = 1, 2, .... п0,(170)
где Ut — принятый импульс для символа г^. Поскольку г^ приписывается значение 1 или 0 в зависимости от знака и^ правило АВ-декодирования, описанное в п. 4.16, становится таким: выбирать tw = 1 тогда и только тогда, когда
ГИ
^>0-(171)
Предположим без ограничения общности, что была передана единица. Тогда сумма в левой части неравенства (171) представляет собой нормально распределенную случайную величину со средним значением n0VS и дисперсией n^N, так как это есть сумма п0 статически независимых нормально распределенных случайных величин со средним значением ]Л$ и дисперсией N. Ошибка имеет место, если эта сумма отрицательна, поэтому
м = у^Зт [^~^)dx- (,72)
откуда
-Vn^SlN
P^=VH f е-М^И (173)
Например, если «о=Ю и Pi(e) = 1,38 • 10'3, то равенство (173) дает ]/5^=0,98. Из рис. 19 находим, что при передаче по двоичному симметричному каналу с вероятностью перехода ро = О,110 тот же самый код (^=10) дает такую же величину Pi(e). Этот двоичный симметричный канал можно рассматривать как полученный из гауссовского, если наблюдать только полярность выходного импульса и такого, что о
(174<
Решение уравнения (174) дает VS/N = 1,24. Таким образом, в рассмотренном примере по сравнению с использованием постоянных весовых множителей в отношении сигнал—шум можно получить выигрыш в 20 1g (1,24/0,98) =2,3 дб.
Заключение
Наиболее важным в этой главе является отрицательный результат, состоящий в том, что при передаче по двоичному симметричному или стираю-
щему каналу, когда пороговое декодирование применяется к сверточному коду, удовлетворяющему теореме 10 и ее следствию, величина Pi(e) ограничена снизу положительной величиной. Так как при R = x/^ для порогового декодирования невозможно построить код лучше того, который удовлетворяет теореме 10 и ее следствию, то этот результат, безусловно, верен для любого кода со скоростью R = x/s» а, может быть, также и для других скоростей. Несмотря на невозможность с помощью порогового декодирования полностью использовать возможности сверточных кодов, из табл. VI (и рис. 16—19) ясно, что в случае кодов умеренной длины сравнение в смысле достижимой вероятности ошибки между пороговым и другими методами декодирования оказывается в пользу последнего. Простота технической реализации порогового декодирования может сделать его для кодов такой длины практически достаточно ценным.
В этой главе было показано также, что для повышения надежности порогового декодирования можно воспользоваться некоторой его модификацией, использующей область неопределенности. Кроме того, был продемонстрирован важный с технической точки зрения факт, что требования к отклонениям в пороговых элементах оказываются не очень жесткими. Этот результат имеет место в отношении точности значений порога и весовых множителей, а также точности априорных оценок канала.
Глава VI
ПОРОГОВОЕ ДЕКОДИРОВАНИЕ БЛОКОВЫХ КОДОВ
Введение
В предыдущих главах мы видели, как может быть применена идея порогового декодирования к сверточным кодам. Перейдем теперь к вопросу ее применимости к более знакомому классу блоковых линейных кодов. От класса сверточных кодов этот класс отличается тем, что независимо от других каждое множество из к информационных символов при передаче кодируется в п символов. Здесь и ниже для систематической формы линейного блокового кода используется обозначение (м, А)-код (систематическая форма означает, как разъяснялось в § 1.1, что первые к передаваемых символов совпадают с информационными) .
В соответствии с равенством (2) проверочные символы /д+1, /д+2, ..., tn определяются через информационные символы /1, t^ ..., tk с помощью системы линейных уравнений
к
tj^^Cjiti, / = А+1, А + 2, и, (175) которые в матричной форме имеют вид
^£ + 1
^ + 1, 1 • • • ^к + Х, к
Л
^+2
••
^2
^2
.(176)
- ^п _—^П, 1• • •^п, к
_^к_.
где [Р] есть (п — k) Х^-матрица коэффициентов [qj. Из (7) следует, что проверки могут быть записаны в
форме матричного уравнения такs*+iS/H 2Sri -форме матричного уравнения такs*+iS/H 2Sri -(177)(177)
форме матричного уравнения так
s*+i
S/H 2
Sri -
форме матричного уравнения так
s*+i
S/H 2
Sri -
(177)
(177)
где [/] — единичная матрица размерности п — к. Ма
трицатрицаН = \Р: -/|Н = \Р: -/|(178)(178)
трица
трица
Н = \Р: -/|
Н = \Р: -/|
(178)
(178)
называется проверочной матрицей кода. Из (177) следует, что каждая строка матрицы Н дает коэффициенты при шумовых символах, которые входят в одну из проверок. Назовем е^ е2, ..., ек информационными, а е&+1, ед+2, ..., еп проверочными шумовыми символами. Из (177) видно, что строки матрицы [Р] дают коэффициенты при информационных шумовых символах, входящих в проверки; кроме того, каждый проверочный шумовой символ контролируется одной и только одной проверкой. Из § 3.2 должно быть ясно, что задача построения системы проверок, ортогональных относительно в), сводится к нахождению непересекающихся множеств строк матрицы [Р]. Эти множества должны быть выбраны так, что некоторая линейная комбинация строк каждого такого множества имеет единицу в /-й позиции, но не более чем в одной из этих линейных комбинаций ни в какой другой позиции не стоит отличный от нуля сим
вол.
с про-(179)с про-(179)Рассмотрим, например, двоичный (6,3)-код верочной матрицей
с про-
(179)
с про-
(179)
ГО 1 1 : 1 0 01
К = [Р: —/] = 10 1:010
Ll 1 0 : 0 0 1_
Первая строка определяет коэффициенты при шумовых символах в проверке Sh+i = s4. Таким образом, s4 контролирует е2, е3 и е^. Аналогично s5 контролирует
еь ^з и е5, a $б контролирует еь е2 и ев. Мы видим, что s5 и s6 образуют систему двух проверок, ортогональных относительно еь Точно так же s4 и s6 ортогональны относительно е2, а $4 и s5 ортогональны относительно е3. Из теоремы 1 следует, что символы еь е2 и е3 могут быть правильно определены мажоритарным декодированием, если в блоке из шести символов имеется не более одной ошибки. Тогда переданные информационные символы могут быть найдены сложением по mod 2 принятых информационных символов с символами еь е2 и е3.
Прежде чем перейти к систематическому исследованию ортогональных проверок для блоковых кодов, обобщим сначала на этот случай некоторые определения гл. III.
Минимальное расстояние d блокового кода обычно определяется как минимальное число разрядов, в которых отличаются два кодовых слова. Так как кодовые слова образуют группу, d представляет собой минимальный вес ненулевого кодового слова.
Будем говорить, что блоковый (я, й)-код может быть полностью ортогонализован, если можно построить d — 1 проверок, ортогональных относительно в}, /=1, 2, ..., к, т. е. относительно каждого информационного шумового символа.
В процессе декодирования нужно определить только информационные шумовые символы, так как все переданные информационные символы можно найти посредством соотношений t) = r^— е^ /=1, 2, ..., к. [Разумеется, если переданные проверочные символы потребуются на приемном конце, то их можно восстановить по информационным символам посредством уравнений (175).] Из теоремы 1 следует, что при мажоритарном декодировании полностью ор- тогонализованного кода каждый из к информационных шумовых символов может быть правильно декодирован, если в принятом блоке произошло не более чем [(б/—1)/2] ошибок. Таким образом, в этом слу* чае будет правильно декодировано все множество информационных символов. Другими словами, мажоритарным декодированием полностью ортогонализован-
кого кода исправляется любая комбинация ошибок, исправление которой гарантируется по минимальному расстоянию. Как будет показано на конкретном примере в п. 6.26, могут быть исправлены многие комбинации ошибок и большего веса.
Если дана система {Л^} из / проверок, ортогональных относительно ej, то размером п^ каждой такой проверки мы будем называть число шумовых символов, кроме ej, контролируемых этой проверкой.
Коды максимальной длины
В § 3.7 было показано, что равномерные двоичные сверточные коды могут быть полностью ортогонали- зованы. Эти коды обладают тем свойством, что их минимальное расстояние совпадает со средним расстоянием. Представляется естественным начать наш анализ блоковых кодов с того класса кодов, для которых минимальное расстояние между кодовыми словами также совпадает с их средним расстоянием, а именно с кодов максимальной длины. Эти коды получили свое название потому, что их кодовые слова можно рассматривать как первые qk — 1 выходных символов ^-разрядного генератора последовательностей максимальной длины, в который в качестве начальных условий вводятся к информационных символов [12, стр. 166—167], причем все символы принадлежат полю GF(q). '
Можно рассмотреть блоковый ^п, &)-код, являющийся частным случаем сверточного кода, для которого пА = п0 = п и k^k. Тогда из формулы (53) следует, что среднее расстояние между кодовыми словами блокового (п, й)-кода дается формулой
(18°)
Так как для кода максимальной длины n=qk—1 и d=dcp, то из равенства (180) имеем d=qk-x(^q—1).
Проверочная матрица [Р : — 7] кода максимальной длины такова, что строки матрицы Р суть все qk — к — 1 ненулевых последовательностей длины к,
исключая те к строк, в которых имеется только один ненулевой символ. Последнее можно показать следующим образом: для любых ненулевых начальных условий, какова бы ни была ненулевая последовательность длины А, среди первых qk — 1 выходных символов генератора последовательностей максимальной длины всегда найдется совпадающая с ней последовательность к подряд идущих символов. (Допускается циклический сдвиг в направлении от последнего символа к первому).) Каждый сдвиг такой выходной последовательности представляет собой также возможную выходную последовательность, а потому и кодовое слово, принадлежащее коду максимальной длины. Поэтому множество кодовых слов можно рассматривать как пространство строк матрицы [О], в которой первая строка есть любая ненулевая выходная последовательность, а остальные к — 1 строк получаются циклическими сдвигами первой. Каждая совокупность к последовательных разрядов первой строки имеет такой же вид, как и некоторый столбец матрицы G, а потому qk — 1 столбцов матрицы Q должны составлять множество всех ненулевых последовательностей длины к. Это останется справедливым и тогда, когда в результате элементарных преобразований над строками матрицы G она будет приведена к виду [/: Р*] (действительно, стоит лишь заметить, что если в множестве всех ненулевых последовательностей длины к оставить неизменными все разряды, кроме первого, а к первому прибавить второй, то получится исходное множество). Таким образом, матрица Р* в качестве своих столбцов должна иметь все ненулевые последовательности длины к, кроме к единичных векторов). Но если код есть пространство
строк матрицу [/ : Р*], то его проверочной матрицей является [Р**:— /], где t означает транспонирование матрицы [12, стр. 49]. Значит, матрица Р*г в качестве своих строк имеет множество всех ненулевых последовательностей длины к, кроме к единичных векторов, а это как раз и есть то свойство, которое надо было установить.
Например, проверочной матрицей двоичного (7,3)-кода максимальной длины является матрица
(181)(181)"110. -0 11.
(181)
(181)
111.7
-101. _
и она имеет форму H = \P:IY где строки матрицы Р суть все ненулевые последовательности длины 3 кроме единичных векторов.
Число ортогональных проверок
Найдем максимальное число проверок, ортогональных относительно ei, которые могут быть образованы из проверочной матрицы кода максимальной длины. Пусть qk— к—1 строк матрицы [Р] разбиты на два множества строк Si и S2, таких, что
Si содержит все q— 2 строк веса 1 с отличным от нуля первым элементом1), все к—1 строк веса 2, которые содержат единицу в первой позиции, минус единицу в некоторой другой позиции и нули во всех остальных.
S2 содержит остальные qk— q— 2^ + 2 строк матрицы [Р].
Множество Si соответствует системе проверок, ортогональных относительно е^ так как ни один из информационных шумовых символов, кроме еь не кон
тролируется более чем одной проверкой. Кроме того, для каждой строки множества 52, имеющей в первой позиции элемент 0, существует единственная строка этого же множества, имеющая первым символом 1 — 0, а остальные символы — противоположные соответствующим символам ранее рассмотренной строки. Тогда сумма этих двух строк соответствует проверке, которая контролирует е^ и не контролирует никакой другой информационный шумовой символ. Все проверки, образованные таким способом, могут быть объединены с проверками, соответствующими строкам множества 5Ь и полученная таким образом система ортогональна относительно вь Число / проверок, ортогональных относительно et и образованных указанным образом, выразится формулой
У=й(5!)+1й(52), (182)
где Й(5) означает число элементов множества 5. Из равенства (182) находим
J = |^(^-1+D-2. (183)
Можно заметить, что это максимальное число проверок, ортогональных относительно еь которые могут быть построены в силу следующих причин:
Ни одна строка матрицы [Р] не может быть использована более одного раза для образования проверок, ортогональных относительно вь
Множество Si — максимальное множество строк единичного веса матрицы [Р], которые могут использоваться в множестве проверок, ортогональных относительно ev
Чтобы получить дополнительные проверки, ортогональные относительно еь остальные строки матрицы [Р] должны комбинироваться не менее чем попарно.
Из симметрии !) матрицы [Р] следует, что этот же процесс может быть повторен для получения такого
же числа проверок, ортогональных относительно е^ j = 2, 3, ....L
Полная ортогонализация
Код может быть полностью ортогонализован тогда и только тогда, когда J = d— 1. Для кода максимальной длины максимальное число / проверок, ортогональных относительно любого информационного символа, определяется формулой (183), a d=^q— l)^-1. Следовательно, учитывая формулу (183), разность между d — 1 и / можно выразить в виде
- (tir_ 1) —у =—2)(^»-1—1).(184)
Из равенства (184) вытекают следующие две теоремы.
Теорема 18. Двоичный код максимальной длины допускает полную ортогонализацию.
Доказательство. Подставив в равенство (184) q = 2, получим d — 1 = 1.
Теорема 19. Недвоичный код максимальной длины может быть полностью ортогонализован тогда и только тогда, когда k = l, т. е. когда имеется единственный информационный символ.
Доказательство. При q^ правая часть в равенстве (184) всегда положительна, если последний множитель отличен от нуля. Этот множитель равен нулю тогда и только тогда, когда к=\. Таким образом, только в этом случае d — 1 =/.
Теорема 18 устанавливает важный результат, состоящий в том, что класс двоичных кодов максимальной длины может быть полностью ортогонализован. Это (2fe—1, £)-коды с минимальным расстоянием 2h-1. При больших к скорость передачи kln = kl(2h—\) очень мала.
Тот факт, что пороговое декодирование не ограничено исправлением комбинаций ошибок только веса не более |(d— 1)/2], имеет особенно большое значе-
ние для кодов с такими низкими скоростями передачи. В качестве конкретного примера рассмотрим (1023, 10)-код максимальной длины с кодовым расстоянием d = 512. Предположим, что этот код используется для передачи по двоичному симметричному каналу с вероятностью ошибки ро=О,25. В таком случае среднее число ошибок в принятом блоке равно 1О23ро, или приблизительно 256. С другой стороны, [(d—1)/2] =255. Таким образом, при алгоритме декодирования, который исправляет ошибки только веса не более [ (d—1)/2 ], вероятность ошибки была бы равна приблизительно V2.
Положим теперь, что для определения 10 информационных шумовых символов из системы d— 1=511 проверок, ортогональных относительно каждого из этих символов, используется мажоритарное декодирование. Общая вероятность ошибки будет приблизительно 5- 10~7. Причина такого радикального сокращения состоит в следующем. Пусть б4 = 0. Тогда 61 будет декодировано неверно только в том случае, когда более 256 из 511 проверок, ортогональных относительно 61, окажутся равными единице. Так как каждая из этих проверок включает два шумовых символа, кроме 61, то вероятность равенства этой проверки единице по лемме 3 будет равна 0,375. Затем можно вычислить вероятность того, что окажутся равными единице более чем 256 из 511 проверок. Она будет равна 3,1 • 10"8. Подобным же образом получим, что вероятность неверного декодирования символа 6Ь если он равен единице, будет меньше, чем 1,0 •! О”7. Средняя вероятность ошибки декодирования символа 61 будет, таким образом, меньше, чем 0,750 • 3,1 • 10’8 + + 0,25 • 10~7 = 4,9 • 10'8. Разумеется, вероятность ошибки декодирования любого из всех 10 информационных шумовых символов будет меньше, чем увеличенная в 10 раз вероятность неверного декодирования символа 61, или меньше, чем 4,9 • 10-7.
Теорема 19 подтверждает замечание, сделанное в § 1.2, в том смысле, что существуют определенные трудности эффективного применения порогового декодирования к недвоичным кодам. Из равенства (183)
следует, что / ^ м/2 независимо от q при больших к, в то время как из (180) имеем d^^q — l)/q]n. В этом и заключается основная трудность, с которой мы столкнулись, пытаясь ортогонализовать недвоичный код, а именно можно построить примерно столько ортогональных проверок, что и в случае двоичного кода при тех же п и к. Это означает, что нельзя использовать все преимущества, обусловленные применением кода с основанием q > 2. С другой стороны, хотя полная ортогонализация для недвоичных кодов максимальной длины и невозможна, все же простота алгоритма порогового декодирования может служить разумным основанием для его применения к этим и, быть может, другим недвоичным кодам; мы не будем заниматься этим вопросом в дальнейшем. Ниже всюду рассматриваются только двоичные коды.
Схемы порогового декодирования для циклических кодов
Коды максимальной длины являются циклическими кодами, т. е. кодами, для которых циклический сдвиг ^t^—*tj_i и ti—Ип) любого кодового слова является снова кодовым словом. Питерсон [12, стр. 167— 171] показал, что любой циклический (п, й)-код может быть получен с помощью линейной последовательной схемы, содержащей регистр сдвига из к или п — к разрядов. Как мы сейчас покажем, циклическая структура этих кодов делает возможным также упрощение схем порогового декодирования.
Циклические коды могут быть полностью ортого- нализованы тогда и только тогда, когда можно построить d — 1 проверок, ортогональных относительно е^ Это следует из того факта, что проверки относительно е2 должны быть такой же формы, как и проверки относительно е^ только все индексы циклически возрастают на единицу. Если можно построить j проверок, ортогональных относительно еь то можно построить / проверок, ортогональных относительно е^ и обратно. Аналогичные рассуждения справедливы и относительно е^ е^ ..., е^. Эта особенность цикличе-
ских кодов делает возможным использование схем порогового декодирования, очень похожих на декодеры типов I и II для сверточных кодов. Назовем эти схемы циклическими декодерами типов I и II и проиллюстрируем их конструкцию на примере (7,3)-кода максимальной длины с проверочной матрицей (181).
буферное запоминающее устройствобуферное запоминающее устройство- Выходной- Выходнойсигнал декодерасигнал декодераРис. 24. Циклический декодер типа I (7,3)-кода максимальной .длины.Рис. 24. Циклический декодер типа I (7,3)-кода максимальной .длины.
буферное запоминающее устройство
буферное запоминающее устройство
- Выходной
- Выходной
сигнал декодера
сигнал декодера
Рис. 24. Циклический декодер типа I (7,3)-кода максимальной .длины.
Рис. 24. Циклический декодер типа I (7,3)-кода максимальной .длины.
На выходе мажоритарного элемента будет: 1, если 1 поступили на три входа;сигнал об ошибке, если 1 поступили на два входа; 0, если на входы посту-пило не более одной 1. Обозначения на рис. 24 и 26 такие же, как на рис. 11и 14.
Циклический декодер типа I для этого кода показан на рис. 24. Принятые символы поступают одновременно в ^-разрядное буферное запоминающее устройство и в (п — k)-разрядное кодирующее устройство. После п сдвигов (п — &)-разрядный регистр содержит сумму по mod 2 принятых проверочных символов и кодированных принятых информационных символов1). По теореме 9 эта сумма как раз и есть совокупность результатов проверок. Затем эти результаты комбинируются в соответствии с правилом образования системы проверок, ортогональных относительно 51, после чего результаты ортогональных проверок взвешиваются и сравниваются с порогом. На выходе порогового элемента получаем е* — деко-
9 Точнее, проверочных символов, вычисленных с помощью принятых информационных символов. Такое вычисление производится в процессе кодирования, чем и объясняется примененное автором выражение. — Прим, редч
дированное значение символа вь Оно складывается с г^ как раз в это время поступающим из буферного запоминающего устройства, в результате чего и получается /*, т. е. декодированное значение символа tv Так как код циклический, то приведенная схема (без отмеченной пунктиром связи) будет продолжать правильно работать в последовательные промежутки времени; после следующего сдвига на выходе окажется /2 и т. д.
Декодер типа I для циклического кода имеет такой же вид, как предложенный ранее Меггитом [10] для декодирования произвольного циклического кода. Меггит определяет основной решающий элемент схемы только как комбинаторный элемент, на выходе которого появляется единица для всех сочетаний проверок в (п — k) -разрядном регистре, соответствующих комбинациям ошибок с единицей в первом разряде. Вообще, кажется, что нет способа построить для этой схемы простой комбинаторный элемент. Трудность заключается в следующем. Существует единственная комбинация ошибок веса 1, п — 1 комбинаций веса 2, (и—1)(м — 2) комбинаций веса три и т. д., содержащих единицу в первом разряде. Каждой исправимой комбинации ошибок соответствует свой отличный от других синдром. Таким образом, для того чтобы декодер мог исправить любую комбинацию Т или менее ошибок, комбинаторный элемент должен распознавать приблизительно пт-х сочетаний проверок. Если Т > 2, то пытаться строить такой комбинаторный элемент с помощью стандартных приемов минимизации, используемых в логических схемах, практически нецелесообразно. Единственная надежда состоит в том, чтобы отыскать некоторые специальные структурные свойства кода, которые бы подсказали практически приемлемую форму комбинаторного элемента.
Если циклический код может быть полностью ор- тогонализован, то пороговое декодирование на самом деле приводит к определенной форме комбинаторного элемента, а именно пороговому логическому эле-
менту, в котором обязательно должны быть сумматоры по mod 2, необходимые для образования проверок. В этом случае схема Меггита, имеющая лишь теоретическое значение, становится также практической декодирующей схемой.
Мажоритарный элемент ■—Мажоритарный элемент ■—Рис. 25. Циклический декодер типа II для (7,3)-кода максимальной длины.Рис. 25. Циклический декодер типа II для (7,3)-кода максимальной длины.Меггит ввел показанные на рис. 24 пунктиром связи с его основным циклическим декодером. Это
Мажоритарный элемент ■—
Мажоритарный элемент ■—
Рис. 25. Циклический декодер типа II для (7,3)-кода максимальной длины.
Рис. 25. Циклический декодер типа II для (7,3)-кода максимальной длины.
ю Выходной сигнал декодера
На выходе мажоритарного элемента будет: 1, если 1 поступили на три или четыре входа; сигнал об ошибке, если 1 поступили на два входа; 0, если на входы поступило не более одной 1.
приводит к тому, что (п — k)-разрядный регистр сдвига содержит проверки, соответствующие принятым символам, когда последние изменяются в процессе декодирования. Если на выходе регистра оказывается правильное кодовое слово, то после завершения декодирования регистр будет содержать только нули. Наличие хотя бы одной единицы соответствует обнаружению неисправимой ошибки. Наконец, как должно быть ясно из рис. 24, если декодированные проверочные символы не представляют интереса (что обычно и бывает), то буферное запоминающее устройство можно сократить до к разрядов. Если это сделано, то общее число разрядов регистров сдвига в циклическом декодере типа I будет п.
Циклический декодер типа II для того же самого (7,3)-кода максимальной длины показан на рис. 25. Эта схема реализует алгоритм порогового декодирования в той его форме, которая определена в п. 4.16. В этом случае система {Вг} уравнений, используемых
для принятия решения при декодировании, имеет вид ИВ0 = Г1(185)
В^ = (Сумма принятых символов, кроме гь шумовые символы которых контролируются f-й проверкой, ортогональной относительно ej. (186)
Взвешенное суммирование этих величин и сравнение с порогом ничем не отличаются от описанных в § 4.16.
Циклический декодер типа II в сущности прост. Принятые символы сначала вводятся в п-разрядный регистр сдвига. Совокупность значений {Bi} образуется сложением соответствующих принятых символов. Декодированным значением символа ц является выход i\ порогового элемента. Так как код является циклическим, то после единичного циклического сдвига регистра выход той же схемы выдает символ h и т. д.
Метод вычисления весовых множителей и порога в циклических декодерах типов I и II точно такой же, что и в декодерах типа I и II для сверточных кодов. Поэтому больше никаких объяснений по этому поводу не последует. В случае двоичного симметричного канала при АВ-декодировании совокупность весовых множителей и порог являются постоянными величинами, так же как и при мажоритарном декодировании.
Основные черты циклических декодеров типов I и II можно суммировать в следующей теореме.
Теорема 20. Если двоичный циклический (п, к)-код допускает полную ортогонализацию, то с помощью декодирующей схемы, содержащей п разрядов регистра сдвига и один логический пороговый элемент, можно исправить любую комбинацию не более чем [ (d — 1) /2 J ошибок в блоке.
В теореме 20 предполагается, что мажоритарное декодирование применяется для системы проверок, ортогональных относительно еь которые можно построить. В условии теоремы мы выделили часть пред-
ложения, чтобы оттенить тот факт, что если хотят, чтобы циклические декодеры типов I и II были эффективными и практичными декодирующими устройствами, то структура кода должна допускать построение d—1 проверок относительно е^ Для предположения о том, что такая структура является общим
Рис. 26. Аналоговая схема для вычисления весовых множителей и порога.
свойством циклических кодов, никаких оснований нет. '
Когда для определения символа ei из системы проверок, ортогональных относительно е^ применяется АВ-декодирование, то на каждом входе порогового элемента циклических декодеров типов I и II становится необходимым использовать весовые множители. Как показано в § 4.1, в случае двоичного симметричного канала эти весовые множители постоянны. В случае канала, параметры которого изменяются во времени, весовые множители и порог можно вычислять с помощью аналоговой схемы, подобной той, которая показана на рис. 14. Такая схема для (7,3)-кода максимальной длины показана на рис. 26. Входами этой схемы являются с^ с^, ..., съ где с. = —1п[1—2Рг(ег=1)]. Работа этой схемы аналогична работе схемы рис. 14 и дальнейших пояснений не требует.
(15,7)-код Боуза — Чоудхури
Кроме кодов максимальной длины, мы не можем указать другие классы хороших блоковых (и, k)-кодов, допускающих полную ортогонализацию. Однако в некоторых отдельных случаях мы нашли такие коды. Одним таким кодом является (6,3)-код с проверочной матрицей (179). Более интересным представляется двоичный (15,7)-код Боуза — Чоудхури [2] с кодовым расстоянием d = 5. В проверочной матрице Н = [Р : /] этого кода строками матрицы Р являются
(187)(187)3-1 [Г] 0 И 0 0 0 01101000011010— 0 0 0 1 1 0 1 3—1101110 — о 1 1 о Ш 1 1 -1 3-1 1 10 0 1 1 3-1 О Щ О 0 О Ш
(187)
(187)
и, как показано в (187), можно построить d—1=4 проверки, ортогональные относительно ^ь (Здесь для указания правила образования ортогональных проверок мы используем те же обозначения, что и в § 3.5 и 3.6.) Из того, что код циклический, следует, что его можно полностью ортогонализовать и декодировать посредством циклических декодеров типа I или II.
Помимо того что (15,7)-код Боуза — Чоудхури является достаточно хорошим, приведенный пример интересен еще и тем, что для этого кода Питерсон [12, стр. 230] пытался с помощью вычислительной машины минимизировать логическую схему декодера, составив сначала таблицу истинности для комбинаторного элемента в декодере Меггита. На этом пути он не нашел простой логической схемы. Путь построения ортогональных проверок естественно приводит к простой логической схеме комбинаторного элемента в декодере Меггита, предназначенном для этого кода, а именно: схема состоит из мажоритарного логического элемента и двух сумматоров по mod 2,
Достаточное условие полной ортогонализации
Сформулировать приемлемую систему условий, достаточную для того, чтобы установить, допускает произвольный двоичный (п, й)-код полную ортогонализацию или нет, мы не можем. Единственный наш результат в этом направлении дается следующей теоремой, доказательство которой приведено в приложении Г.
Теорема 21. Любой двоичный блоковый (п, к)-код может быть полностью ортогонализован, если k<3.
Теорема 21 устанавливает максимальное значение к, при котором блоковый (п, й)-код всегда может быть полностью ортогонализован. Простейшим нетривиальным кодом при к = 4 является (7,4)-код Хемминга с минимальным расстоянием d = 3 и проверочной матрицей
Н =Н =(188)(188)~1 0 1 1 :1110:/
Н =
Н =
(188)
(188)
_0 1 1 1 : .
Легко проверить, что здесь не существует способа построения d — 1 проверок, ортогональных относительно 61. Так как этот код — циклический, то не существует также способа построения d — 1 проверок, ортогональных относительно любого информационного шумового символа.
Заключение
Мы видели, как можно применить пороговое декодирование к блоковым (n, k) -кодам, а также показали, что в случае циклических кодов схемы порогового декодирования можно сделать очень простыми. Однако оказалось, что эффективное применение порогового декодирования к блоковым кодам ограничивается главным образом двоичными кодами макси-
11 Дж. Месси
мальной длины с низкими скоростями передачи). Это соображение было подкреплено теоремой 21, утверждающей, что полная ортогонализация двоичного кода оказывается всегда возможной, если только число информационных символов не превосходит 3. Для того чтобы устранить это ограничение, в гл. VII мы обобщим способ применения алгоритмов порогового декодирования таким образом, что их эффективное использование окажется возможным в более широком классе блоковых кодов.
Глава VII
ОБОБЩЕНИЕ ПОРОГОВОГО ДЕКОДИРОВАНИЯДЛЯ БЛОКОВЫХ КОДОВ
В гл. VI нам удалось установить, что алгоритмы порогового декодирования можно эффективно применить к двоичным кодам максимальной длины, т. е. к классу кодов с малыми скоростями передачи. Оказалось, что эффективность основных алгоритмов ограничивается такими кодами с низкими скоростями. Иначе говоря, коды с высокими скоростями обычно не допускают полной ортогонализации. Распространим теперь метод образования ортогональных проверок на более широкий класс кодов, для которых пороговое декодирование может оказаться эффективным. Ограничимся двоичными кодами. (Пока еще не ясно, в какой степени обобщенный метод приложим к недвоичным кодам.)
Прежде чем переходить к описанию обобщенного метода, проиллюстрируем его применение примером. Рассмотрим (7,4)-код Хемминга с кодовым расстоянием d = 3 и проверочной матрицей (188). Мы видели, что этот код не допускает полной ортогонализации. Строки матрицы Р для этого кода соответствуют проверкам s5, s6, s7 и выглядят так
10 112-01 1 О2-0 1 10
(Как и в гл. III, строки нумеруются для указания ортогональных проверок и их размера, а в рамки поме* щается каждый ненулевой коэффициент информационного шумового символа, отличный от тех коэф-
И?
фициентов суммы1), которые входят в проверку, ортогональную относительно этой суммы.) Из таблицы следует, что проверки s6 и s7 образуют систему d—1—2 проверок, ортогональных относительно суммы е2+е3. Если в принятом блоке произошло не более одной ошибки, то эта сумма с помощью мажоритарного декодирования может быть найдена правильно. Обозначим декодированное значение этой суммы через (е2 + е3)*. Точно так же s5 и s7 образуют d—1=2 проверки, ортогональные относительно ез + е4, и мажоритарным декодированием можно най^ ти значение (е3 + е4)*.
Рассмотрим теперь модификацию исходных проверок, образовав систему s^ и Sg вида
^+(^.)-(189)
Из формул (189) видно, что, если суммы декодированы верно, то s' и Sg являются проверками, соответствующими проверочной матрице Я' = [Р':/], где строки матрицы Р' имеют вид 10 0 0 10 0 0
и потому теперь можно построить d— 1=2 проверки, ортогональные относительно ev Весь процесс декодирования будет верным, если в принятом блоке окажется не более одной ошибки. Так как код является циклическим, символы е^ е3 и е4 можно определить таким же способом.
§ 7.L Ортогонализация в L шагов
Теперь можно описать метод обобщенной ортогонализации. Начиная с исходной системы проверок, со-
9 Здесь автор расширяет понятие ортогональной системы проверок, определение которой должно было бы выглядеть так: система проверок называется ортогональной относительно суммы шумовых символов вг-Ve^ если все проверки системы контролируют символы вг и вз, но никакой другой шумовой символ не контролируется более чем одной проверкой. — Прим, перев.
ответствующих проверочной матрице Н, предположим, что мы можем построить не менее d — 1 проверок, ортогональных относительно некоторых сумм информационных шумовых символов. (Если код не допускает ортогонализации в L шагов, можно применить алгоритм декодирования, образовав на каждом шаге столько ортогональных проверок, сколько возможно.) Затем предполагается, что эти суммы известны (для отыскания значения каждой из этих сумм применяется пороговое декодирование) и они рассматриваются как дополнительные проверки, т. е. как известные суммы шумовых символов. Затем для получения системы проверок, соответствующих проверочной матрице Н', эти добавочные проверки комбинируются с первоначальными проверками. Если все суммы декодированы верно, то матрица Н' будет верной проверочной матрицей. Таким же образом матрица Н' преобразуется в матрицу Н". В конце концов получается некоторая матрица №\ из которой можно построить d — 1 проверок, ортогональных относительно еь Если этот процесс можно выполнить для всех е3-, /=1, 2, ..., fe, то мы будем говорить, что код допускает ортогонализацию в L шагов.
Согласно этому определению, ортогонализация в один шаг совпадает с полной ортогонализацией, определенной в § 6.1. Мы видим, что (7, 4)-код Хем- минга может быть ортогонализован в два шага.
Если на каждом шаге процесса ортогонализации в качестве правила для принятия решения используется мажоритарное декодирование, то при условии, что код ортогонализуется в L шагов, в принятом блоке будут исправлены [(d—1)/2J или менее ошибок. Это следует из того, что множество сумм на первом шаге будет декодировано верно и Н' будет верной проверочной матрицей. По той же причине Н", Н'", ..., Н^ будут верными проверочными матрицами, и отсюда мажоритарное решение относительно в) будет правильным при /=1, 2, ..., к.
Представляется правдоподобным, что при использовании на каждом шаге АВ-декодирования можно получить более хорошие результаты. На первом шаге
это должно быть верным, так как правило АВ-декодирования должно давать по меньшей мере такую же малую вероятность ошибки, что и мажоритарное декодирование, при определении сумм из системы ортогональных проверок. Однако после того, как эти суммы скомбинированы с первоначальными проверками для образования проверок, соответствующих модифицированной матрице Н, система ортогональных проверок, образованных из матрицы Н\ не обладает больше строгой статистической независимостью, которой она обладала бы, если матрица Н' являлась бы первоначальной проверочной матрицей. Представляется, однако, целесообразным рассматривать эти ортогональные проверки так, как если бы они обладали свойством независимости, необходимым для применения правила АВ-декодирования, так как если матрица Н' была образована неверно и поэтому не являлась правильной проверочной матрицей, то, вероятней всего, процесс декодирования окажется неудачным.
Коды Рида — Маллера первого порядка
В качестве первого примера, иллюстрирующего применение метода обобщенной ортогонализации, приведем следующую теорему.
Теорема 22. Для любого М существует двоичный блоковый (2м, М + 1)-код с кодовым расстоянием d = 2M~\ допускающий ортогонализацию в 2 шага.
Доказательство. Рассмотрим проверочную матрицу [Р : /], где строками матрицы Р являются все двоичные последовательности длины 2^+1 нечетного веса более единицы. Таких строк существует в точности 2м — М— 1, и отсюда п — к = 2м— М— — 1. Это видно из того, что половина всех 2М+1 двоичных последовательностей длины М+1 имеет нечетный вес и все они, кроме М + 1 единичных векторов, суть строки матрицы Р. Так как fe=M+l, то п = 2м, как и утверждается в теореме. Покажем теперь, что
такой код имеет минимальное расстояние d = 2M-x и может быть ортогонализован в два шага.
Определим, сколько можно построить проверок, ортогональных относительно ei + e2. Для каждой строки матрицы Р, начинающейся символами 1 О, найдется единственная строка, начинающаяся символами 0 1 и совпадающая с первой во всех остальных позициях. Сумма двух этих строк дает проверку относительно ei + e2, и никакие другие информационные шумовые символы этой проверкой не контролируются. Точно так же для каждой строки матрицы Р, начинающейся символами 1 1 веса не менее 5, найдется единственная строка, начинающаяся символами 0 0 и совпадающая с первой во всех остальных позициях. Сумма этих строк снова дает проверку относительно ei + e2, и никакие другие информационные шумовые символы этой проверкой не контролируются. Наконец, во всех строках веса 3 матрицы Р, начинающихся символами 1 1, третьи единицы находятся в несовпадающих позициях. Каждая из них представляет собой проверку, контролирующую сумму ei + e2 и еще один информационный шумовой символ, различный для различных строк. Пользуясь этим методом, можно построить столько проверок, ортогональных относительно ei + e2, сколько существует строк матрицы Р с единицей на первой позиции, т. е. 2м-1 — 1.
Из симметрии матрицы Р, имеющей своими строками все векторы нечетного веса, не меньшего трех, следует, что можно построить 2м-1 — 1 проверок, ортогональных относительно суммы любых двух информационных шумовых символов. Теперь считая, что все суммы е2 + е3, е3+е4, ..., ek_i + ek известны и могут быть использованы для исключения переменных из первоначальных проверочных уравнений, можно построить модифицированную проверочную матрицу [Р: /]. Заметим, что из известных по предположению сумм можно построить любую сумму четного числа переменных е2, е3, ..., ек [например, ^2+^4= (^2+^3) + (^3+^4)]. Но так как все строки матрицы Р имеют нечетный вес, то все проверки от-
носительно ei контролируют четное число переменных е2, е3, ..., е^, а эти последние можно исключить с помощью сумм, считающихся известными.
Таким образом, посредством строк матрицы Р, начинающихся единицей, можно построить матрицу Р\ имеющую 2м-1 — 1 строк вида 1 0 0 ... О, и, следовательно, из модифицированной проверочной матрицы можно построить 2м-1 — 1 проверок, ортогональных относительно вь Из симметрии матрицы Р следует, что аналогичный процесс может быть применен к е2, е3, ..., ек.
Остается показать, что d=J +1 = 2М~\ Минимальное расстояние не может быть менее этой величины. С другой стороны, d может не более чем на единицу превышать число единиц в любом столбце матрицы Р (ср. с леммой Г.1), а в каждом столбце имеется / единиц. Отсюда d должно быть в точности равным /+1, что и завершает доказательство теоремы.
Коды, описанные в доказательстве теоремы 18, эквивалентны кодам Рида — Маллера первого порядка [12, стр. 91], т. е. они отличаются от последних только перестановкой позиций. Однако в той форме, в которой эти коды использованы, они являются систематическими, что означает, что первые к кодовых символов совпадают с информационными. Это упрощает кодирование и обычно представляется желательным также и по другим причинам (например, некоторые принимающие станции могут и не иметь декодирующих устройств, но все же там желательно извлечь некоторые данные из принятой информации). Коды Рида — Маллера обычно не даются в систематической форме, так как алгоритм декодирования Рида [14] не может применяться непосредственно, т. е. без предварительного линейного преобразования.
Наконец, следует отметить, что метод порогового декодирования можно усовершенствовать следующим образом. После того как определены все к — 1 сумм (si + e2)*, (е2 + е3)*, ..., (еА_1 + ^)* и из модифицированной проверочной матрицы определено значение
^р все остальные переменные ^ еу • • • ’ е*к можно определить непосредственно комбинированием уже известных величин. Например, £3 = г* + (^ + г2)* + +(£2+^з)*е Таким образом, во всем процессе декодирования необходимо с помощью порога принять в общей сложности только к решений.
Если код допускает ортогонализацию в L шагов, то в общем случае при пороговом декодировании не требуется производить сравнение с порогом более чем к раз в течение всего процесса декодирования. Это следует из того факта, что каждое решение дает декодированное значение некоторой суммы переменных е^ е2, ..., е^. Так как таких переменных только к, то может найтись не более к образованных из них линейно независимых сумм. Если в процессе декодирования с помощью сравнения с порогом образовано к + пг значений сумм, то по крайней мере m из них являются линейными комбинациями других значений. С другой стороны, в процессе декодирования никогда не достаточно принять с помощью порога менее чем к решений, так как существует к подлежащих нахождению линейно независимых величин.
Коды Хемминга
Мы показали, что (7,4)-код Хемминга с кодовым расстоянием d = 3 может быть ортогонализован в 2 шага. Этот код принадлежит классу кодов с п = = 2М— 1, к —2м— М— 1 и d = 3, открытому Хеммин- гом [21]. Эти коды — циклические. Они являются также плотноупакованными; это означает, что любая из 2П возможных принятых последовательностей длины п отстоит от некоторого кодового слова на расстоянии (d—1)/2 = 1 или менее. Поэтому в случае двоичного симметричного канала любой алгоритм декодирования, исправляющий одиночную ошибку в блоке, будет алгоритмом декодирования по методу максимального правдоподобия (см. приложение Б). Таким образом, мажоритарное декодирование при ортогонализации в 2 шага для (7,4)-кода
является одновременно алгоритмом декодирования по максимуму правдоподобия.
Покажем теперь, что все коды Хемминга допускают ортогонализацию в L шагов при некотором L, а потому в случае двоичного симметричного канала мажоритарное декодирование при ортогонализации в L шагов является декодированием по максимуму правдоподобия. Мы вовсе не предлагаем пороговое декодирование при ортогонализации в L шагов в качестве обязательного пути декодирования этих кодов, так как к ним можно применить очень простые способы декодирования, такие, как первоначально предложенный Хеммингом [21], или развитый Хаффменом [19]. Наша цель состоит только в том, чтобы показать, что метод обобщенного порогового декодирования приложим по крайней мере к одному классу кодов с высокой скоростью передачи.
Теорема 23. При М = 2, 3, 4, ... (2м — 1, 2м — — М—\)-коды Хемминга М-го порядка с кодовым расстоянием d = 3 могут быть ортогонализованы в L шагов, где L не более чем М — 1.
Доказательство. Проверочная матрица [Р:/] кода Хемминга М-го порядка такова, что столбцы матрицы Р содержат все различные ненулевые последовательности длины М веса не менее двух. Согласно теореме 21, при М = 2 можно ортогонали- зовать (3,1)-код в один шаг. При М = 3, как уже показано, можно ортогонализовать (7,4)-код в два шага. Покажем теперь по индукции, что код М-го порядка можно ортогонализовать в М — 1 шаг.
Предположим сначала, что символ ei встречается в нечетном числе первоначальных М проверок, т. е. что первый столбец матрицы Р имеет нечетный вес. Тогда пусть г< будет i-й строкой матрицы Р и у,— суммой остальных М — 1 строк этой матрицы, при этом Yi и Ft имеют единицы одновременно в тех и только тех позициях, которые соответствуют столбцам четного веса матрицы Р, причем в i строке в этой позиции стоит единица. Таким образом, уг и г^ образуют систему d—1=2 проверок, ортогональных от-
носительно суммы информационных шумовых символов в этих разрядах. Можно построить М таких пар ортогональных проверок. Предположив суммы известными, можно использовать их для исключения всех единиц из столбцов четного веса матрицы Р. Первоначальное множество 2 м-1 — (М — 1) — 1 столбцов нечетного веса матрицы Р составляют только ненулевые столбцы. Тогда, отбрасывая последнюю строку и сплошь нулевые столбцы, преобразуем матрицу Р в Р\ соответствующую проверочной матрице кода Хемминга (М— 1)-го порядка. Символ 61 по-прежнему контролируется модифицированной проверочной матрицей, так как его разряд соответствовал столбцу нечетного веса матрицы Р.
Предположим теперь, что символ е^ встречается в четном числе первоначальных М проверок, т. е. первый столбец матрицы Р — четного веса. Рассмотрим множество сумм, известных по предположению и описанных в предыдущем абзаце. Эти суммы содержат в общей сложности 2м-1 — 1 различных шумовых символов, а именно те информационные шумовые символы, позиции (номера) которых соответствуют столбцам четного веса матрицы Р. Эти суммы сами по себе соответствуют модифицированной проверочной матрице, составленной из всех столбцов четного веса матрицы Р. Отбросим любую строку этой матрицы (если имеются только две модифицированные проверки, контролирующие еь то отбросим ту строку, которая не контролирует символа е^, т. е. отбросим одну из сумм. Оставшиеся М — 1 сумм определяют модифицированную проверочную матрицу, которая соответствует коду Хемминга порядка М — 1. Модифицированные проверочные символы представляют собой М информационных шумовых символов, которые контролировались, помимо отброшенной, еще только одной строкой.
После выполнения этого процесса М — 3 раз мы получим проверочную матрицу кода Хемминга третьего пэрядка и символ е^ будет контролироваться по- прежнему. Этот код допускает ортогонализацию в 2 шага. Таким образом, после М — 1 шага процес-
са ортогонализации можно образовать d—1^2 проверки, ортогональные относительно е^ (мы не доказывали, что это наименьшее возможное число шагов). Ясно, что те же самые рассуждения применимы к е2, ^з, ..., eft, чем и завершается доказательство теоремы.
Коды Боуза — Чоудхури
Коды Хемминга можно рассматривать как частный случай более общего класса циклических кодов, известных под названием кодов Боуза — Чоудхури [2] (эти коды были независимо открыты Хоквинге- мом [22]). Хотя нам и не удалось доказать, что все коды этого класса допускают ортогонализацию в L шагов, все же мы проверим, что коды длины не более 15 допускают такую ортогонализацию. Имеется четыре таких кода. (7,4)-и (15,11)-коды являются кодами Хемминга и допускают ортогонализацию в 2 и 3 шага соответственно, согласно теореме 2.3. (15,7)-код, как показано в § 6.3, может быть ортогонализован в один шаг. Как будет сейчас показано, оставшийся (15,5)-код с кодовым расстоянием d=l допускает ортогонализацию в 2 шага.
В проверочной матрице /7 = [Р:/] (15,5)-кода Боуза — Чоудхури строки матрицы Р суть
1 О 1
-1 1 1
1 1 о
-О 1 1
(191)(191)1 о о
(191)
(191)
ЧВ 1 1
—О 1 1
О О 1
-1 0 1
-О 1 о
Они соответствуют информационным шумовым символам, которые контролируются проверками от s6 до 515 соответственно. Для этого кода, как показано
в (191), можно построить d — 1=6 проверок, ортогональных относительно e2+e3. Так как крд циклический, то можно построить также проверки, ортогональные относительно е3 + е4 и е4 + е5, что легко проверить и непосредственно. Таким образом, считая эти
VVVVVVVVV
Мажоритарный элемент
Мажоритарный элемент
Мажоритарный элемент
Мажоритарный элемент
(е,)
Рис. 27. Комбинаторный элемент циклического декодера типа Iдля (15,5)-кода Боуза — Чоудхури.
стемы (27).стемы (27).Проверки на четность от s6 до s15 соответствуют уравнениям 1—10 си
стемы (27).
стемы (27).
На выходе каждого мажоритарного элемента будет 1, если 1 поступили не
суммы известными, мы можем исключить переменные из первоначальных проверочных уравнений. Из этих сумм можно образовать любые суммы четного числа переменных е2, е3, е4 и е5. Это позволяет исключить из шести (d—1=6) проверок формулы (191), контролирующих Si, все остальные информационные символы. Этот процесс преобразует матрицу Н в Н\ из которой можно построить шесть проверок, орто-
тональных относительно еь Так как код циклический, этот же самый процесс можно выполнить и для е2, е3, е4 и е5. Значит, код допускает ортогонализацию в 2 шага.
Для иллюстрации средств, которыми проводится ортогонализация в L шагов, на рис. 27 показан комбинаторный элемент, пригодный к использованию в циклическом декодере типа I для (15,5)-кода Боу- за — Чоудхури. Остальная часть схемы декодирования такая же, как у описанного в § 6.3 декодера типа I для циклического кода, допускающего ортогонализацию в один шаг.
Три верхних мажоритарных элемента на рис. 27 используются для получения декодированных значений сумм е2 + е3, е3+е4 и е4+е5. Затем эти суммы трактуются как добавочные проверки и комбинируются с первоначальными проверками для построения системы d— 1=6 проверок, ортогональных относительно е^ Эти последние проверки затем обрабатываются четвертым мажоритарным элементом для получения декодированного значения символа еь Следует отметить, что в этом случае требуется два уровня мажоритарных элементов. Вообще для ортогонализации в L шагов требуется L уровней пороговых элементов. Однако, как было объяснено в § 7.2, для комбинаторного элемента всегда требуется не более чем к мажоритарных элементов. Таким образом, вовсе не требуется, чтобы число мажоритарных элементов росло экспоненциально с ростом L, как было бы, если бы L уровней мажоритарных элементов имели структуру полного дерева.
Неприложимость к сверточным кодам
На первый взгляд может показаться, что метод ортогонализации в L шагов пригоден для расширения класса сверточных кодов, к которым можно эффективно применить пороговое декодирование. Как мы сейчас покажем, дело обстоит не так, по крайней мере в тех важных случаях, когда скорость передачи есть дробь с единицей в числителе, т. е. /?=1/п0.
Проверочная матрица [Яд:/] сверточного кода (ср. § 3.3) со скоростью R = l/n0 такова, что строки матрицы Яд имеют вид
g? g?
а(2) у(2) р-(2)
62 61 бо
^... & gT g^
(192)
^о)
g1^ g^
^ g^ g^
аС^о)рг(Яо) y(«o)у(Яо)
Ьщб26]бо
Здесь символы g представляют собой коэффициенты
(ио—1) порождающих полиномов. Предположим те
перь, что можно построить систему / проверок, ортогональных относительно некоторой суммы информационных шумовых символов, скажем, ^Ч-^ + • •• ••• Ч-^- Это значит, что можно найти / подмно- j
жеств строк матрицы И, таких, что сумма строк ка
ждого подмножества имеет единицу в каждой из /
позиций, соответствующих информационным шумовым символам ..., г^ но любая другая позиция имеет единицы не более чем в одной из / сумм
строк. Пусть ai<a2< ... <а,. Отбросим слева все столбцы матрицы //д вплоть до столбца, соотвег-
ствующего символу ^. Можно скомбинировать строки этой новой матрицы и получить систему /проверок, ортогональных относительно е^\ Но вслед
ствие симметрии каждого проверочного треугольника расположение коэффициентов в этой новой матрице точно такое же, как и в матрице, образованной из H^ отбрасыванием снизу в каждом проверочном треугольнике такого же числа строк, что и столбцов в предыдущем рассуждении. Тогда / проверок, ортогональных относительно ^1}, можно построить
прямо из этих строк матрицы /7д.
Иными словами, всегда можно непосредственно образовать столько проверок, ортогональных относительно е^, сколько можно построить и относи
тельно любой суммы информационных шумовых символов. Таким образом,, если возможна ортогонализация в L шагов, то возможна и ортогонализация в один шаг, т. е. полная ортогонализация. Следовательно, в случае сверточного кода при скорости /?= = 1/по более общий метод ортогонализации не приносит никакой выгоды.
Заключение
Рассмотрев метод ортогонализации проверок, мы убедились, что пороговое декодирование можно применить по крайней мере к одному классу кодов с высокой скоростью передачи с таким же успехом, как и к кодам с низкой скоростью. Этот обобщенный метод мы назвали ортогонализацией в L шагов.
Максимальные возможности ортогонализации в L шагов еще не выявлены, но и полученные результаты весьма обнадеживают. Еще не найдены блоковые (и, 6)-коды, для которых можно показать, что ортогонализация в L шагов не возможна. К сожалению, здесь мы обязаны не общности метода, а тому факту, что по необходимости изучали коды малой длины.
Хотя схемы для реализации порогового декодирования при ортогонализации в L шагов более сложны, чем при ортогонализации в один шаг, все же схемы
достаточно просты, чтобы представлять практический интерес (особенно в случае циклических кодов). Систему п—к проверок всегда можно построить посредством точной копии схемы кодирования (ср. § 2.6). Эти проверки можно затем рассматривать как входы комбинаторной схемы, имеющей к выходов, а именно г*, ^’ •••» eV которые являются декодированными значениями информационных шумовых символов. Затем для образования выходного сигнала декодера эти величины складываются по mod 2 с принятыми информационными символами.
Если код допускает ортогонализацию в L шагов, то вся комбинаторная схема должна содержать не более чем к пороговых элементов и не более dk сумматоров по mod 2; последнее можно показать следующим образом. Из § 7.2 следует, что необходимо не более к пороговых элементов. Сумматоры нужны, чтобы образовать множество ортогональных проверок для каждого порогового элемента и комбинировать выходные сигналы каждой из этих схем для получения декодированных значений к информационных шумовых символов. Так как, чтобы исправить любую комбинацию |(d—1)/2 ] или менее ^ошибок, каждому пороговому элементу требуется не более чем d — 1 входов, то для образования этих входов требуется в общей сложности не более чем k^d— 1) сумматоров. Так как декодированное значение каждого из к информационных шумовых символов является суммой выходных сигналов некоторого множества пороговых элементов, то для образования каждой из этих величин достаточно иметь один сумматор. Таким образом, для всей комбинаторной схемы всегда достаточно (d—\)k-v-k = dk сумматоров.
Глава VIII
ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ И РЕКОМЕНДАЦИИК ДАЛЬНЕЙШИМ ИССЛЕДОВАНИЯМ
. Итоги исследования
В гл. II были рассмотрены свойства сверточных кодов и проведены некоторые обобщения результатов, известных для этого класса кодов. За этим исключением, все содержание книги посвящено исследованию метода декодирования линейных кодов, который назван пороговым декодированием.
В гл. I были сформулированы два вида порогового декодирования: мажоритарное декодирование и декодирование по апостериорной вероятности (АВ- декодирование). Посредством каждого из этих методов некоторый шумовой символ, скажем, ет, может быть найден из системы проверок, ортогональных относительно этого шумового символа. Правило мажоритарного декодирования целиком основывается на минимальном расстоянии, т. е. символ ет получает то значение, которое содержится в комбинации ошибок минимального веса, удовлетворяющей системе ортогональных проверок1). С другой стороны, правило АВ-декодирования основано на вероятностном критерии, т. е. символ ет получает значение, наиболее вероятное при данных результатах ортогональных проверок. Хотя эти правила декодирования и различны, мы видели (в п. 5.1в), что мажоритарное декодирование можно рассматривать как предельный случай АВ-декодирования, если считать, что вероятность ошибки в канале исчезающе мала.
О Но, как уже отмечалось ранее, это не обязательно комбинация ошибок минимального веса, удовлетворяющая системе первоначальных проверок, — Прим, ред,
В гл. III—V пороговое декодирование было применено к декодированию сверточных кодов. Сначала было необходимо построить коды, допускающие эффективное применение правил порогового декодирования. Для проведения этого исследования были получены оценки качеств кода. Затем коды были построены как методом проб и ошибок, так и аналитическими методами. Эти результаты изложены в гл. III. Для применения порогового декодирования к сверточным кодам в гл. IV были построены простые декодирующие схемы. Наконец, в гл. V представлены данные о вероятности ошибки при пороговом декодировании сверточных кодов в случае двоичного симметричного, двоичного стирающего и гауссовского каналов. Этим завершилась работа над сверточными кодами.
Применение порогового декодирования к блоковым линейным кодам рассматривалось в гл. VI и VII. В гл. VI мы видели, что эффективное применение основных алгоритмов порогового декодирования допускает лишь небольшое число представляющих интерес блоковых кодов. Для того чтобы обойти эту трудность, в гл. VII был введен более общий метод построения системы ортогональных проверок. Это обобщение позволило повторным применением порогового декодирования эффективно декодировать несколько более широкий класс кодов.
8.2. Выводы
Основываясь на изложенных выше результатах исследований, можно высказать следующие утверждения относительно порогового декодирования:
Сверточные коды
Пороговое декодирование (если оно применимо) реализуется легко.
Схема декодирования должна содержать только Па — ^о разрядов регистра сдвига, причем кажется,
что это тот минимум, к достижению которого следует стремиться в разумных схемах декодирования. Кроме того, единственные нелинейные элементы в схеме декодирования, а именно пороговые логические элементы, имеют очень простое устройство. Даже схемы, необходимые при вычислении меняющихся во времени весовых множителей (когда они применяются) для пороговых элементов, не являются непреодолимо сложными.
(и) Характеристики декодирования вполне удовлетворительны в случае кодов длины до 100 символов.
В случае длинных кодов хорошие характеристики исправления ошибок можно получить для кодов с очень низкой скоростью передачи (§ 3.6 и 3.7). Однако в случае скоростей, представляющих наибольший практический интерес, хорошие характеристики исправления ошибок ограничены кодами длины приблизительно 100. Вероятности ошибок, которые для таких кодов можно получить посредством порогового декодирования, соперничают с вероятностями ошибок, получаемыми другими известными способами исправления ошибок.
(Hi) При фиксированной скорости передачи вероятность ошибки на приемном конце нельзя сделать произвольно малой.
Этот отрицательный результат говорит о недостаточной общности порогового декодирования для сверточных кодов. Мы смогли строго показать, что этот отрицательный результат получается в случае R = 1/2, но он представляется справедливым и в других случаях. В частности, невозможность достижения произвольно малой вероятности ошибки декодирования при Я = 1/2 была продемонстрирована как в случае двоичного симметричного, так и в случае двоичного стирающего канала.
Блоковые коды
Пороговое декодирование (если оно применимо) реализуется легко.
Во всей схеме декодирования для блокового (n, ft)-кода требуется не более чем к пороговых логических элементов. Остальная часть схемы декодирования содержит умеренное количество линейных компонент, а именно схему кодирования и не более чем kd сумматоров по mod 2, где d—минимальное кодовое расстояние. В важном частном случае циклических кодов возможны еще более простые схемы декодирования.
Несколько интересных классов кодов допускают эффективное декодирование.
Коды максимальной длины, коды Рида — Малле- ра первого порядка и коды Хемминга допускают ортогонализацию в L шагов. Это значит, что для этих кодов любая комбинация ошибок веса не более [(d—1)/2] исправляется мажоритарным декодированием. В гл. VI и VII показано, что ортогонализацию в L шагов допускают также несколько отдельных, но интересных кодов.
Общие замечания
Пороговое декодирование ограничено главным образом двоичными кодами.
В § 6.2 было показано, что способ образования ортогональных проверок из первоначальных проверок кода таков, что преимущества недвоичного алфавита не могут быть использованы в полной мере.
Корректирующая способность кода не ограничивается целиком минимальным кодовым расстоя-. нием.
В общем случае алгоритм порогового декодирования позволяет исправлять многие из комбинаций ошибок веса, большего, чем [(rf— 1)/2]. Это особенно существенно для кодов с малой скоростью передачи.
Корректирующая способность кода может быть повышена, если известна апостериорная вероятность ошибки принятого символа.
В противоположность методу чисто алгебраического декодирования правило АВ декодирования
дает возможность использовать апостериорную вероятность принятого символа для уменьшения вероятности ошибки декодирования. Можно ожидать, что эта особенность порогового декодирования окажется особенно важной при декодировании для канала с замираниями. Эта особенность порогового декодирования похожа на особенность декодирования кодов с низкой плотностью проверок, т. е. кодов Гал- лагера, которые также соединяют алгебраический и вероятностный подход [6].
Рекомендации к дальнейшим исследованиям
Дальнейшие исследования рекомендуется проводить особенно в следующих областях:
Построение хороших систематических классов сверточных кодов для исправления случайных ошибок.
Кроме некоторых классов кодов, построенных для исправления пачек ошибок [20], единственными известными систематическими классами сверточных кодов являются равномерные коды и коды, аналогичные кодам Рида — Маллера, которые были найдены в представленных исследованиях. К сожалению, оба эти класса кодов имеют низкую скорость передачи. Было бы желательным иметь несколько классов хороших кодов, пригодных для порогового декодирования (или другого алгоритма декодирования).
Исследования размножения ошибок в сверточных кодах.
Дополнительные усилия для изучения общих свойств порогового декодирования сверточных кодов пока, видимо, не целесообразны. Основные особенности вполне ясны из теорем 10—12. Точно так же вряд ли будут найдены более простые схемы декодирования. С другой стороны, некоторые другие особенности, главной среди которых является вопрос о размножении ошибок, вполне оправдывают дополнительные исследования.
В § 3.1 были рассмотрены два метода контроля за размножением ошибок — ресинхронизация и подсчет ошибок. Существует также и третья возможность — автоматическое возвращение декодера после короткой пачки неверно декодированных символов. Как оказалось, автоматическое возвращение возможно при последовательном декодировании по крайней мере при высоких скоростях передачи [Дж. Во- зенкрафт, личное сообщение, 1962; Дж. Бусс- ганг (J. J. Bussgang), личное сообщение, 1962]. Однако быстрый рост объема вычислений при декодировании, сопровождающих ошибку при последовательном декодировании, ограничивает практическое использование автоматического возвращения для борьбы с размножением ошибок. Пороговое же декодирование не страдает этим ограничением, так как объем вычислений всегда постоянен. По-видимому, следует смоделировать достаточно длинные коды (например, код табл. II с пА = \М и /?= 1/2), чтобы выяснить, в самом ли деле возможно при возникновении ошибки такое автоматическое возвращение. Если да, то на очереди дальнейшие исследования, которые должны показать, что пачка искаженных символов имеет довольно малую среднюю длину.
Изучение других нелинейных функций в применении к декодированию сверточных кодов.
Вместо порогового элемента и связанных с ним сумматоров в декодере типа I на рис. 11 можно в качестве решающего элемента использовать любой комбинаторный элемент, лишь бы он был способен образовать декодированное значение символа е^. Может быть, можно найти другую простую нелинейную функцию, пригодную к использованию для декодирования некоторых классов сверточных кодов. Несомненно, это будет очень трудной областью исследований.
Исследование всеобщности ортогонализации блоковых линейных кодов в L шагов.
Это самая важная область для дополнительных исследований. Теоремы 21 и 23 наводят на мысль
о возможности общей теоремы такого характера: «любой двоичный код длины 2м— 1 или менее может быть ортогонализован в М — 1 шагов». Такой результат, окажись он верным, был бы необычайно важным. Он означал бы, что в любом блоковом коде исправлять любую комбинацию не более чем L(d— 1)/2J ошибок можно было бы всего одной операцией комбинаторной схемы, состоящей не более чем из к пороговых элементов кодера и не более чем kd сумматоров по mod 2. Попытки доказать это предположение или опровергнуть его имели бы большое значение.
ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ И СВОЙСТВА ОБЪЕКТОВСОВРЕМЕННОЙ АЛГЕБРЫ
Абелевой группой называется множество элементов с операцией (здесь это будет сложение), такой, что для любых трех элементов а, b и с этого множества выполняются следующие аксиомы. 1) a-Vb принадлежит множеству. 2) Имеет место равенство (а + &)+с=а+(& + с). 3) Существует единственный элемент множества О, такой, что а + 0 = а. 4) Для каждого элемента а существует единственный элемент —а, такой, что а+(—а)=0. 5) Имеет место равенство а + Ь = Ь + а. В этой книге под словом «группа» всегда подразумевается абелева группа.
Подгруппой называется подмножество элементов группы, которое само образует группу относительно той же операции.
Если Н есть подгруппа группы G и а — любой элемент группы G, то смежным классом группы G по подгруппе Н, содержащим элемент а, называется совокупность всех таких элементов b группы G, что а — b принадлежит подгруппе Н. Смежный класс, содержащий 0, есть сама подгруппа. Любой другой смежный класс называется собственным смежным классом.
Кольцом называется аддитивная абелева группа со второй операцией (здесь это будет умножение), такой, что для любых элементов группы а, b и с выполняются следующие аксиомы. 1) ab принадлежит группе. 2) Выполняется равенство я(6с) = (а6)с. 3) Выполняется равенство а(6 +с) = ab-Vac. 4) Выполняется равенство (6 + с)а=Ьа + са. Кольцо назьр азется коммутативным, если аЬ = Ьси
Полем называется кольцо, все ненулевые элементы которого образуют абелеву группу по умножению. Если q = p\ где р— простое число, то можно показать, что существует поле, содержащее q элементов. Это поле называется полем Галуа из q элементов и обозначается символом GF^qY
Множество полиномов относительно одного переменного D с коэффициентами из GF^q) образует коммутативное кольцо, называемое кольцом полиномов над полем GF(qY
Идеалом, порожденным полиномом f(DY называется множество всех полиномов вида h (/))/(/)), где h(D) —произвольный полином.
Классом вычетов, содержащим полином g^DY п0 модулю идеала, порожденного полиномом f(D), называется множество всех полиномов h^DY таких, что gf.D) —h (D) принадлежит идеалу.
Множество классов вычетов по модулю идеала, порожденного полиномом HDY образует кольцо, называемое кольцом классов вычетов по модулю идеала. Это свойство означает, что сумма или произведение полиномов из двух классов вычетов всегда принадлежит некоторому третьему классу вычетов независимо от выбора этих полиномов.
(Определения и свойства, описанные здесь, можно найти в любом учебнике по современной алгебре.)
ДОКАЗАТЕЛЬСТВО ТЕОРЕМЫ 8(ГРАНИЦА ДЛЯ СЛУЧАЙНОГО КОДА)
В § 2.5 разбиением группы (л, 6)-кода было названо отображение кодовых слов в подгруппу Н' и ее собственные смежные классы С', С^ ..., и^, соответствующее отображению множества 2h информационных последовательностей в подгруппу Н и ее собственные смежные классы С^ С2, ..., CN. Предположим, что существует ансамбль (п, k)-кодов, в котором каждой информационной последовательности с вероятностью 2-<п-М приписывается любая из 2(П-А) возможных проверочных последовательностей.
Пусть Ij— любая информационная последовательность. Кодовое слово с этой информационной последовательностью обозначим через /у. Предположим, что при передаче по двоичному симметричному каналу с вероятностью перехода р0 < V2 используется некоторый конкретный код. Тогда вероятность ^(^/1^) того> чт0 было передано слово /у при условии, что принято слово R', будет
PV'A^=№"- (Б-1)
где w — число позиций, в которых /у и R' отличны. По правилу максимального правдоподобия в качестве переданной информационной последовательности Ij следует выбрать ту, для которой вероятность ^(^1^)—наибольшая. Так как вероятность в равенстве (Б.1) монотонно убывает с ростом w, правило максимального правдоподобия сводится к выбору в качестве переданной последовательности та-
кого Ij, для которого lj и R' отличаются в наименьшем числе позиций.
Пусть декодирование ведется по правилу максимального правдоподобия; вычислим среднюю вероятность Р(е) ошибки при выяснении, к какому смежному классу принадлежит переданная информационная последовательность. Так как множество расстояний от любого кодового слова до кодовых слов во всех других смежных классах в точности совпадает с множеством весов кодовых слов в собственных смежных классах, можно без ограничения общности предположить, что передана сплошь нулевая последовательность /q.
Пусть Ij — любая информационная последовательность в собственном смежном классе, и пусть в канале возникла комбинация ошибок веса W'. Положим далее, что Wj— число информационных пози- зий в комбинации ошибок, отличных от /у, a W'.— общее число позиций, в которых Г^ отличается от комбинации ошибок. Так как была передана сплошь нулевая последовательность, то принятая последовательность отличается от переданной в W' позициях. По всему ансамблю кодов вероятность P(W^ <; W^ того, что /у ближе к принятой последовательности, чем /д, вычисляется по формуле
w-w, P<W,j<W,')=,Tkn'^ 2 С^й, (Б.2) i = 0
поскольку суммирование по I дает общее число проверочных последовательностей, которые, будучи присоединенными к Ij, образуют кодовые слова, отличающиеся от комбинации ошибок не более чем в W' разрядах, и каждая из этих проверочных последовательностей имеет по предположению вероятность 2-(n-fe)e Если вес комбинации ошибок есть W\ то вероятность ошибки Р(е|1Г') равна вероятности того, что для некоторого кодового слова в собственном
смежном классе UPy^W", а эта вероятность ограничена сверху суммой вероятностей того, что каждое Wj < W, т. е.
W-Wj
P^e\W^<22-(n'ft) 2 ClB_k. (Б.З)
BceV^yaZ=0
собств. см. кл.
Правая часть ограничена сверху суммой по всем возможным Wj,
^у=0Z = 0
.(Б.4)
Так как Р(е|№') —вероятность, она никогда не превосходит единицы. Таким образом, средняя вероятность ошибки Р(е^ выраженная формулой
р^= 2 р^р^^—
Все W'
п
= 2 стp»'qVW'P<e\ W'\(Б.5)
W’ =0
ограничена сверху следующим образом:
пР(е)^ Сп Ро 9оW"=0пР(е)^ Сп Ро 9оW"=0minmin1, г4""^1, г4""^w 2ti z=ow 2ti z=o
п
Р(е)^ Сп Ро 9о
W"=0
п
Р(е)^ Сп Ро 9о
W"=0
min
min
1, г4""^
1, г4""^
w 2ti z=o
w 2ti z=o
(Б.6)
Неравенство (Б.6) является обычной формой границы для случайного кода.
Некоторые авторы [23, 24, 16] получили асимптотические оценки величины (Б.6). Лучшая такая оценка дана Возенкрафтом [3]; приведем его результат без доказательства.
Оценки даны в терминах величин р^ ркрит и /?Крит,
где
/?=1-
(Б.7)
Ркрит.
1/ Ро
(Б.8)
1 Ркрит
V 1-А) '
^?крит == 1 ~
~ ^ (.Ркрит)*
(Б.9)
В этих обозначениях асимптотической формой неравенства (Б.6) будет
Р(е) < Акрит 2-"^+Az 2-пЕ!. R < /?крит, (Б.10)
Р(6) < (А, + AJ 2"^. ^крит < R < С = 1 - Н (р0),
(Б.11) где
^крит ” ^(Л) + ^(А)-2Я(АРИТ) +
НДЛрит —РоН^^о/М (Б. 12)
Et = H ^ — Н (pt) + (а — р^ log2 (qo/po\ (Б. 13)
А, =,(Б. 14)
V^nptQt Pt—PQ
Крит I (^/^) 2л/?КрИТ^КрИТ
И
Аг=Нрм ^-{W^tY ^'t * (Б*16)
Первый вывод асимптотической оценки неравенства (Б.6) дал Элайес [24], который доказал, что показатель степени в (Б.11) точно такой же, что и показатель степени для величины Р^, полученной из соображений «плотной упаковки». Этот показатель можно получить и геометрически — построением, приве-
PtPtРкритРкритН(сс)=-тЬд2т-()-л:) 1од2(1-т)Н(сс)=-тЬд2т-()-л:) 1од2(1-т)
Pt
Pt
Ркрит
Ркрит
Н(сс)=-тЬд2т-()-л:) 1од2(1-т)
Н(сс)=-тЬд2т-()-л:) 1од2(1-т)
денным на рис. Б.1. На этом рисунке рКрит представляет собой точку, в которой угол наклона касательной к кривой Н (х) в два раза меньше, чем угол наклона
Ро
V[ । 0,8 0,6 0,4 0,2
О 0,1 0,2 ОД 0,4 0,5
Рис. Б.1. Геометрическая интерпретация показателя степени в выражении для Р ^е\
касательной в точке р0. Эту интересную геометрическую интерпретацию показателя степени в выражении для Р^ Элайес [24] приписывает Шеннону.
ДОКАЗАТЕЛЬСТВО ТЕОРЕМ 10 И 11
Доказательство теоремы 10
Рассмотрим проверочную матрицу [//д: /] сверточного кода со скоростью R=Un0. Матрица //д состоит из столбца п0 — 1 проверочных треугольников, каждый из которых соответствует одному из порождающих полиномов. Имеем
■^2)
g® g^ 0
а№ . »(2) о(2) от * *®1 оо
(В.1)
р-(Ло) 60
g^ gM о
Предположим, например, что g^\ g^\ .g^ суть все ненулевые коэффициенты полинома G(2)(O), выписанные в порядке возрастания индексов. Тогда из (В.1) следует, что в первом проверочном треугольнике проверками, контролирующими символ ^1}, будут s^\ s^\ ..., s^, и эти проверки контролируют
следующие шумовые символы:
д^ контролирует ер, ер,
s® контролирует ер, ер_а, ^(В-2)
s<2» контролирует ер, ^,_ .„ . -^J’ „, ер.
На рис. B.l способ -вхождения информационных нулевых символов в эти проверки изображен геометрически. Здесь аь а2 и а3 представляют собой индексы первых трех ненулевых членов полинома
Рис. ВЛ. Геометрическая интерпретация структуры проверок.Рис. ВЛ. Геометрическая интерпретация структуры проверок.Рис. В.2. Расположение проверочных треугольников в матрице //д.Рис. В.2. Расположение проверочных треугольников в матрице //д.
Рис. ВЛ. Геометрическая интерпретация структуры проверок.
Рис. ВЛ. Геометрическая интерпретация структуры проверок.
Рис. В.2. Расположение проверочных треугольников в матрице //д.
Рис. В.2. Расположение проверочных треугольников в матрице //д.
G2(D^ а X и Y соответствуют информационным позициям, за исключением первой, соответствующей символу ^^ которые контролируются проверкой s^. Заметим, что, выбрав а3 достаточно большим, индекс шумового символа, соответствующего точке X, можно сделать сколь угодно большим, а индексы всех других контролируемых шумовых символов будут иметь большие значения.
Из рис. В.2 видим, что в каждом проверочном треугольнике /-я проверка относительно е^ контролирует, кроме е^» еще I шумовых символов. Таким образом, общее число шумовых символов, контролируем мых вместе с ^1} проверками в проверочных тре-
угольниках, которые соответствуют порождающим полиномам с N ненулевыми коэффициентами, равно
(в.з)
Z = 1
Построение / проверок, ортогональных относительно ер, можно выполнить следующим образом.
Ненулевые символы каждый раз по одному помещаются сначала в G^B), затем в С^ЦВ) и т. д.,
наконец, в G^tJD) до тех пор, пока там не будет размещено всего / ненулевых членов. При этом /-й член помещается в О^ЦВ) таким образом, чтобы индекс информационного шумового символа самого низшего порядка и контролируемого проверкой sp, а именно символа еР_а ’ был на единицу больше, чем индекс любого информационного шумового символа, контролируемого вместе с ^ любой уже
построенной проверкой. Как показано выше, это всегда можно сделать. Таким образом, система построенных / проверок, контролирующих символ ^п*
есть система проверок, ортогональных относительно
Эффективное кодовое ограничение пЕ на единицу больше числа шумовых символов, кроме ^^ которые контролируются теми же проверками, что и символ ^е Пусть
/ = Q(^o—1)+G 0<.r<nQ— 1.(В.4)
Согласно нашему построению, существует Q+1 проверок относительно г^ в каждом из первых г проверочных треугольников и Q в каждом из последних п0—1—г проверочных треугольников. Таким образом, используя равенство (В.З), находим, что эффективное кодовое ограничение вычисляется по формуле
^l=r<£±i^+(„o_1_r)w±i>. (В,5)
Наконец, используя равенство (В.4) и тот факт, что R=Vjn0, приводим выражение (В.5) к виду
^“т^т^я+Р+'+М'-'т^яЬ <в-6>
что и требовалось доказать.
Доказательство теоремы 11
Попытаемся найти такое правило, которое для случая R = kQlnQ позволит получить / проверок, ортогональных относительно е^ при j= 1, 2, .. ., £0. В этом случае проверочная матрица [Яд:/] такова, что, как показано на рис. В.2, матрица Яд состоит из
Рис. В.З. Геометрическая интерпретация структуры проверок.
(п0 — к^к^ проверочных треугольников, по одному на каждый порождающий полином. Техника построения очень похожа на описанную выше. Снова поместим по одному ненулевому члену последовательно в каждый из порождающих полиномов (порядок выполнения шагов показан на рис. В.2) до тех пор, пока не будут образованы / проверок относительно ^, /=1, 2, ..., к0. Способ выбора членов такой, что каждая из этих систем / проверок ортогональна относительно ^, /=1, 2, .к0.
Способ вхождения информационных шумовых символов в проверки относительно е^ можно показать геометрически, например, как на рис. В.З. Этот рисунок соответствует случаю, когда второй ненулевой член помещен в третий проверочный треугольник некоторого ряда рис. В.2 и й0=4. На рис. В.З построена проверка относительно ^3), а информацион-
ные шумовые символы соответствуют разрядам Хь Уь ^2, Уг, Х3 и Х4. Вдобавок контролируется также один проверочный шумовой символ, а именно ^. Ясно, что, выбрав «2 достаточно большим, можно добиться того, чтобы индексы всех информационных шумовых символов, кроме ^3), контролируемых этой проверкой, были больше, чем любой индекс, встречающийся в уже построенных проверках относительно ^3). Продолжая таким же образом, можно построить / проверок, ортогональных относительно ^, у=1, 2, ..., £0. Из рис. В.З ясно, что система проверок относительно выбудет контролировать наибольшее число других шумовых символов. По определению пЕ равно этому числу плюс единица.
Если положить
J=Q<n0 — ^о) + л 0<r<n0 — k№(В.7)
то с помощью нашего способа построения в каждом из первых г рядов проверочных треугольников можно разместить Q+1 проверок относительно ^о) и Q проверок относительно ^о) в каждом из последних п0 — ко — г рядов. Из рис. В.З видно, что в любом проверочном треугольнике Z-я проверка относительно ^о) контролирует в точности кй1 шумовых символов, кроме ^о). Таким образом, используя равенство (В.З), находим, что
-1 = to [г <2±Ш2+а+(я.-.
(8.8)
Наконец, используя равенство (В.7) и тот факт, что R — kolno, можно привести равенство (В.8) к виду
п£ = Р2Т^ + ^о4+ 1 + |'Ъ“Г ^М' (в-9)
что и требовалось доказать.
ДОКАЗАТЕЛЬСТВО ТЕОРЕМЫ 21
Предварительные соображения
Для удобства представим матрицу Р, входящую в проверочную матрицу Н = \Р-П блокового (м, ^)- кода в виде
P=\Hxh^ _ _HKY (Г.1) где hx, /z2, ..., hk суть векторы-столбцы размерности п— к. Обозначим вес вектора Рц через ||/1J| и для обозначения вектора, образованного сложением по mod 2 векоторов 1ц и h^ будем писать Рц © h^ Для доказательства основной теоремы нам понадобятся две следующие леммы.
Лемма Г.1. Если d— минимальное расстояние блокового (п,к)-кода и аь а2, ..., aN — любые различные символы из ряда 1, 2, .. ./к, то
Ц^©^©... ®haN\\>d-N. (Г.2) Этот хорошо известный результат устанавливает просто, что вес суммы любых N столбцов матрицы Р не менее d — N. Доказательство очень похоже на то, которое использовано для соответствующего результата в случае сверточных кодов (ср. доказательство теоремы 11), и здесь оно будет опущено.
Лемма Г.2. Имеет место равенство
(Г.З)(Г.З)II Ai © А2 ® • • • © ^N II =
(Г.З)
(Г.З)
= 2(-2/- 2 11НЧ-ЧП
/ = 1Все различные
множества ин-дексов с^ <
<о2<
') ЗдесьЧЧ'') ЗдесьЧЧ'^ах ^а2 ••• ^а,— произведение векторов^ах ^а2 ••• ^а,— произведение вектороввведенное в § 3.8. — Прим. редлвведенное в § 3.8. — Прим. редлhhаоао
') Здесь
ЧЧ'
') Здесь
ЧЧ'
^ах ^а2 ••• ^а,— произведение векторов
^ах ^а2 ••• ^а,— произведение векторов
введенное в § 3.8. — Прим. редл
введенное в § 3.8. — Прим. редл
h
h
ао
ао
Доказательство. Так как этот результат не является широко известным, дадим его доказательство. Достаточно доказать, что равенство (Г.З) выполняется для суммы по mod 2 двоичных скалярных величин 6Ь 62, ..., bN.
При N=2 равенство (Г.З) дает
61 © 62=61 + 62 — 26462.(Г. 4)
Здесь знак © указывает на сложение по mod 2, а знак + (и S) — на обычное сложение действительных чисел. Равенство (Г. 4) легко проверяется подстановкой всех четырех возможных комбинаций значений 61, 62.
Предположим, что лемма справедлива при N = M, и покажем, что она выполняется также и при N = =Л1+1. Используя ассоциативный закон, получим
61 ф 62 ф ... ф 6ж+1 = (6Т ф ... ф 6Ж) ф 6ж+1.(Г.5)
Применяя равенство (Г. 4) к двум членам справа в равенстве (Г. Б), получим
61 ф ... ф 6ж+1 = (6Х ф ... ф 6Ж) + 6ж+1
(Г.6)
Пользуясь индуктивным предположением, равенство (Г. 6) можно переписать в виде
61 © . . • © 6^+1 = 2 (— 2)72 6а 6а • • • 6а. +
/ = 1РазличныеJ
индексы
Л!
Н~^Л1+1 + (—2) 6^+1 2 ( 2/2 6а 6а • . . 6а ..
/ = 1РазличныеJ
индексы
(Г.7)
Равенство (Г. 7) приводится к виду
М + 1
61 © . . . © 6^+1 = 2 ( 2/2 6а 6а . . . 6а.,
у = 1Различные1
индексы
(Г.8) что и доказывает лемму индукцией по М.
Доказательство теоремы 21
Докажем, что если к ^ 3, то любой блоковый (п, к)-код можно полностью ортогонализовать, т. е. для /=1, 2, ..., к можно построить d—1 проверок, ортогональных относительно ej. Для этого покажем, что при ^^3 необходимые условия для минимального расстояния d совпадают с достаточными условиями полной ортогонализации. (Рассматривая с этой точки зрения выражение (Г. 1), видим, что ЦА1П есть число проверок, контролирующих символ 51, ИМ — — IIA1A2II — число проверок, контролирующих еь но не контролирующих е2, и т. д.)
Случай 1: к= 1, /7 = [А1: /].
Достаточным условием существования d — 1 проверок, ортогональных относительно е^ будет
HAJI > rf — 1.(Г. 9)
В то же время по лемме Г. 1 необходимым условием того, что d — минимальное кодовое расстояние, будет
WhA\>d-\1(Г. 10)
а это совпадает с достаточным условием полной ортогонализации.
Случай 2: 6 = 2, H^h^ : 7].
Если е2 встречается только в таком числе проверок, которое достаточно для исключения е2 из всех проверок, где этот символ встречается вместе с еь кроме, может быть, одной, то данный случай сводится к предыдущему. В противном случае проверок, ортогональных относительно е^ можно построить по меньшей мере oi + o2+l, где Oi— число проверок, контролирующих только 51 (т. е. не контролирующих других информационных шумовых символов), о2 — число проверок, контролирующих только е2. Таким образом, достаточным условием суще- ^тдования d — I проверок, ортогональных относу
тельно е4, будет неравенство
(ИМ - IIM2II) + (ИМ - IIM2II + 1) > d - 1, (Г.11) или неравенство
\\км\Ы\-ЖМ><1-^(Г. 12)
Из соображений симметрии неравенство (Г.12) является также достаточным условием существования d — 1 проверок, ортогональных относительно б2, а отсюда — достаточным условием полной ортогонализации. Применяя леммы Г. 1 и Г. 2 к первым двум столбцам матрицы Н, получим, что неравенство (Г. 12) является также необходимым условием для d быть минимальным кодовым расстоянием.
Случай 3: fe = 3, H = \hjijd^: Ц.
Если число проверок, контролирующих только символы б2 и 63, не превосходит числа проверок, контролирующих символы еь б2 и 63, то данный случай сводится к предыдущему. В противном случае проверок, ортогональных относительно 6Ь можно построить не менее чем 01 + 02 + 03 + ^123+2, где Oi — число проверок, контролирующих только 61, 02 — число проверок, контролирующих только б2, Оз—число проверок, контролирующих ТОЛЬКО 63, 0123 — число проверок, контролирующих 61 и б2 и 63. Это следует из того, что если удовлетворено последнее условие, то число проверок, контролирующих б2 и 63, достаточно для исключения этих символов из всех проверок, контролирующих 61 и б2 и 63, а также из того, что символ 62, как и 63, может встретиться после ортогонализации в одной проверке, контролирующей символ 6Ь Таким образом, достаточным условием существования d — 1 проверок, ортогональных относительно 6Ь является
(II A, Il-Il M2II-II Msll + ll Wsll)+
+(IIМ - II М2II - IIМзII + IIЩ»II +1)+ + (■ II Аз II - II М3 II - II Мз II + II ЬМ II +1)+
+ 11 »М11>^-1,(Г.13)
ИЛИ
II hi II + II h2 И + || А31| -2( || hxh21| + II hxh, || +
.+ 11Мз11) + 4||М2М>^-3. (Г.14)
Снова, в силу соображений симметрии, неравенство (Г. 14) является также достаточным условием существования проверок, ортогональных относительно е2 и е3, а отсюда — достаточным условием полной ортогонализации. Применяя леммы Г. 1 и Г. 2 к первым трем столбцам матрицы Н, находим, что неравенство (Г. 14) является также необходимым условием для d быть минимальным кодовым расстоянием.
СПИСОК ОБОЗНАЧЕНИЙ
Л/ — проверка, ортогональная относительно некоторого шумового символа, например ет,
В} — сумма принятых символов, кроме rm, контролируемых проверкой Л г,
D — оператор задержки,
G^\D)—порождающий полином сверточного кода,
J— число ортогональных проверок, к — число информационных символов в кодовом слове, ко—число информационных символов, передаваемых сверточным кодом в единицу времени,
L —число шагов, требуемых для ортогонализации блокового кода, т — степень порождающего полинома, п—число символов в кодовом слове, пй — число символов, передаваемых сверточным кодом в единицу времени,
пд — действительное кодовое ограничение сверточного кода, пЕ — эффективное кодовое ограничение сверточного кода, Л/ — число символов, контролируемых проверкой А,, Ро— Pr[em=l], где ет — символ, подлежащий определению при декодировании,
рй — вероятность ошибки в двоичном симметричном канале, Pl — вероятность нечетного числа ошибок среди символов, контролируемых суммой Bi, р—вероятность стирания в двоичном стирающем канале, Рх^— вероятность ошибки при декодировании множества первых информационных символов сверточного кода,
q— число элементов конечного поля или GF^q^
Т — порог,
Wi — весовой множитель,
С^—биномиальный коэффициент,
[У] — наибольшее целое число, не превосходящее J, |\7] — наименьшее целое число, не меньшее чем /, {X/} — множество всех элементов Xi, где I пробегает все значения, для которых X имеет смысл,
{/(£)} —полином, полученный из ЦО) отбрасыванием всех членов; в которых степень D больше чем т.
ЛИТЕРАТУРА
Б л ю м, Чанг, Харрис, Гауптшейн, Морган (Bloom F. J., Chang S. S. L., Harris B., Hauptschein A., Morgan К. C.), Improvement of binary transmission by null-zone reception, Proc. IRE, 45 (1957), 963—975.
Б о у 3, Рой-Чоудхури (Bose R. C., Ray-Chau d- hurl D. K.), On a class of error correcting binary group codes, Information and Control, 3 (1960), 279—290; русский перевод: Б о уз Р. К., Рой-Чоудхури Д. К., Об одном классе двоичных групповых кодов с исправлением ошибок, Кибернетический сборник, вып. 2, ИЛ, М., 1961, 83—94.
Воз.енкрафт (Wozencraft J. М.), Sequential decoding for reliable communications, Sc. D. Thesis, Dep. Electr. Eng., June 1957.
Возенкрафт, Pe йфф e н (Wozencraft J. M., Reif- fen B.), Sequential decoding, Technology Press, MIT, Cambridge, Mass., Wiley, New York, 1961; русский перевод: Возенкрафт Дж., Р е й ф ф е н Б., Последовательное декодирование, ИЛ, М., 1963.
Возенкрафт, Хорстейн (Wozencraft J. М., Но г s- tein М.), Digitalised communication over two-way channels, A paper presented at the Fourth London Symposium on Information Theory, London, August 29 — September 3, 1960; Coding for two-way channels, Tech. Rep. 383, Res. Lab. Electro-: nics, MIT, August 30, 1961.
Галлагер (Gal la ger R. G.), Low Density Parity Check Codes, Sc. D. Thesis, Dep. Electr. Eng., MIT, 1960; русский перевод: Галлагер P., Коды с малой плотностью проверок на четность, сб. «Теория кодирования», изд-во «Мир», М., 1964, 139—165.
3 и в (Ziv J.), Coding and decoding for time-discrete amplitude-continuous memoryless channels, Sc. D. Thesis, Dep. Elect. Eng. MIT, February 1962, 69—76.
Кампопиано (Campopiano C.), Construction of relatively maximal systematic codes of specified minimum distance from linear recurring sequences of maximal period, IRE Trans., IT-6 (1960), 523—628. (В этой статье линейные коды над произвольным полем Галуа впервые рассматриваются с той же точки зрения, что и в гл. I настоящей книги.)
Маллер (Muller D. Е.), Application of Boolean algebra to swtiching circuit design and to error detecting, IRE Trans., EC-3 (1954), 6—12.
Мегги т (Me g gi 11 J. E.), Error correcting codes and their implementation for data transmission systems, IRE Trans., IT-7 (19 61), № 4, 234—244; русский перевод: Меггит Дж., Коды, исправляющие ошибки, и их применение в системах передачи информации, сб. «Теория кодирования», изд-во «Мир», М., 1964, 225—255.
Питерсон (Peterson W. W.), Encoding and errorcorrection procedures for the Bose — Chaudhuri codes, IRE Trans., IT-6, (1960), 459—470; русский перевод: Питерсон У. У., Кодирование и исправление ошибок для кодов Боуза — Чоудхури, Кибернетический сборник, вып. 6, ИЛ, М., 1963, 25—54.
Питерсон (Peterson W. W.), Error-correcting codes, MIT Press, Cambridge, Mass, Wiley, New York, 1961, 51—52; русский перевод: Питерсон У. У., Коды, исправляющие ошибки, изд-во «Мир», М., 1964, стр. 67—68.
Плоткин (Plotkin М.), Binary codes with specified minimum distance, IRE Trans., IT-6 (1960), 445—450; русский перевод: Плоткин M., Двоичные коды с заданным минимальным расстоянием, Кибернетический сборник, вып. 7, ИЛ, М„ 1963, 60—73.
Рид (Reed I. S.), A class of multiple-error-correcting codes and the decoding scheme, IRE Trans., IT-4 (1954), 38—49; русский перевод: P и д И. С., Класс кодов с исправлением нескольких ошибок и схема декодирования, Кибернетический сборник, вып. 1, ИЛ, М., 1960, 189—205.
С л е п я н (S 1 е р i a n D.), A class of binary signalling alphabets, Bell System Tech. L, 35 (1956), 203—234; русский перевод: С л e п я н Д., Класс двоичных сигнальных алфавитов, «Теория передачи сообщений», ИЛ, М., 1957, 82—113.
Фано (Fano R. М.), Transmission of information, MIT Press, Cambridge, Mass., Wiley, New York, 1961, 244—245; русский перевод: Фано P., Передача информации. Статистическая теория связи, изд-во «Мир», М., 1965.
Феллер (Feller W.), An introduction to probability theory and its applications, vol. 1, Wiley, New York, 1957; русский перевод: Феллер В., Введение в теорию вероятностей и ее приложения, изд-во «Мир», М., 1964.
X а ф ф м е н (Huffman D. А.), The synthesis of linear sequential coding networks, Cherry C. (ed.), Information Theory, 77—95.
Хаффмен (Huffman D. A.), A linear circuit viewpoint on error-correcting codes, IRE Trans., IT-2 (1956), 20—28.
Хегельбергер (Hagelbarger D. W.), Recurrent codes: easily mechanized burst-correcting, binary codes, Bell System Tech. J., 38 (1959), 969—984.
Хемминг (Hamming R. W.), Error detecting and error correcting codes, Bell System Tech. L, 29 (1950), 147—160;
русский перевод: X е м м и н г Р., Коды с обнаружением и исправлением ошибок, сб. «Коды с обнаружением и исправлением ошибок», ИЛ, М., 1956.■
Хоквингем (Hocquenghem А.), Codes correcteurs d’erreurs, Chiffres, 2 (1959), 147—156.
Ш e н н о н (Shannon С. Е.), Mathematical theory of communication, Bell System Tech. J., 27 (1948), 379; 623; русский перевод: «Математическая теория связи» в книге Шеннон К., Работы по теории информации и кибернетике, ИЛ М., 1963, стр. 243—332.
Элай ес (Elias Р.), Coding for noisy channels, IRE Convention Record, Part IV, 1955, 37—44.
Э л а й e с (E 1 i a s P.), Error-free coding, IRE Trans., IT-4 (1954), 29—37; русский перевод: Элайес П., Безошибочное декодирование, сб. «Коды с обнаружением и исправлением ошибок», ИЛ, М., 1956, 58—71.
Эпстейн (Epstein М. A.), Algebraic decoding for a binary erasure channel, Tech. Rep. 340, Res. Lab. Electronics, MIT, March 14, 1958.
ОГЛАВЛЕНИЕ
Предисловие редактора перевода 5
Предисловие автора . . .11
Глава I. Принцип порогового декодирования15
Пороговое декодирование линейных кодов ... 19
Заключение 30
Глава II. Сверточное кодирование и вычисление проверок . . .32
Сверточное кодирование32
Алгебраическая структура .37
Граница Гилберта . . . 40
Верхняя граница минимального расстояния . . . 42
Граница, основанная на случайном выборе кода 45
Схемы кодирования 50
Вычисление проверок 54
Глава III. Сверточные коды для порогового декодирования . . . . . . . 58
Введение 58
Проблема декодирования длясверточных кодов 58
Структура проверок61
Кодовые границы 65
Собственно ортогональные коды73
Коды, полученные методом проб и ошибок (ПО-коды) 76
Равномерные сверточные коды84
Аналог кодов Рида — Маллера... 89
Заключение94
Глава IV. Схемы порогового декодирования для двоичных сверточных кодов .. 97
Декодирование для двоичного симметричного канала . . . . 99
Декодирование для канала с параметрами, изменяющимися во времени107
Заключение . . . 112
Глава V. Характеристики порогового декодирования сверточных кодов113
Двоичный симметричный канал 114
Двоичный стирающий канал . 136
Гауссовскийканал140
Заключение 143
Глава VI. Пороговое декодирование блоковых кодов . . 145 § 6.1. Введение 145
Коды максимальной длины . 148
Схемы порогового декодирования для циклических кодов 154
(15,7)-код Боуза — Чоудхури 160
Достаточное условиеполнойортогонализации . . 161
Заключение 161
Глава VII. Обобщение порогового декодирования для блоковых кодов . . . . 163
Ортогонализация в L шагов . 164
Коды Рида — Маллера первого порядка . . . . 166 § 7.3. Коды Хемминга .169
Коды Боуза — Чоудхури172
Неприложимость к сверточным кодам174 § 7.6. Заключение 176
Глава VIII. Заключительные замечания и рекомендации к дальнейшим исследованиям178
Итоги исследования .. . 178
Выводы 179
Рекомендации к дальнейшим исследованиям . . 182
Приложение А. Основные определения и свойства объектов современной алгебры ............ 185
Приложение Б. Доказательство теоремы 8 (граница для случайного кода) . . . ....187
Приложение В. Доказательство теоремы 10 и 11 . . . 192
Доказательство теоремы 10 192
Доказательство теоремы 11 195
Приложение Г. Доказательство теоремы 21 ...... 197
Предварительные соображения .197
Доказательство теоремы 21 199
Список обозначений202
Литература 203
Дж. Месси
ПОРОГОВОЕ ДЕКОДИРОВАНИЕ
Редактор Н. Н. ЩербиновскаяХудожник Н. А. УсачёвХудожественный редактор В. И. Шапо иг, овТехнический редактор Ю. И. Экк(
Сдано в производство 5/Х 1965 г.
Подписано к печати 13/1 1966 г.
Бумага 84xlO8Vs2 3,25 бум. л. 10,92 условн.печ. л. Уч.-изд. л. 8,95 Изд. № 1/3317
Цена 64 коп. Зак. 1911
ИЗДАТЕЛЬСТВО «МИР*
Москва, 1-й Рижский пер., 2
Ленинградская типография № 2 имени Евгении Соколовой • Главполиграфпрома
Комитета по печати при Совете Министров СССР.
Измайловский проспект, 29.
9 Читатель должен помнить, что элементы проверочного тре
угольника являются коэффициентами только при информационных
шумовых символах; кроме того, проверка s$\ j = ^0-|-lи0
контролирует еще в точности один проверочный шумовой сим
вол, не показанный ни в (90), ни в (92). Приняв это во внима
ние, легко убедиться, что в этом примере, кроме 11 символов,
обведенных прямоугольниками, и символа е^ проверки Дь..., Дб,
вместе взятые, контролируют еще 10 проверочных шумовых сим
волов, так как эти проверки являются линейными комбинациями
в общей сложности десяти проверок s^. —Прим, перев.