WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     || 2 |
-- [ Страница 1 ] --

Г. И. Никитин СВЕРТОЧНЫЕ КОДЫ Учебное пособие 2001 УДК 621.391.254.019.4 (075) ББК 32.811.4 Н62 Никитин Г. И.

Н62 Сверточные коды: Учеб. пособие/ СПбГУАП. СПб., 2001. 80 с.: ил.

В пособии излагаются принципы построения, формирования и обра ботки помехоустойчивых сверточных кодов, их определение, свойства, разновидности и эффективность, а также рассматривается реализация кодирующих и декодирующих устройств этих кодов.

Приводятся примеры применения сверточных кодов в радиотехни ческих системах, в том числе в сотовых и спутниковых системах связи.

Рассмотрен порядок выполнения лабораторной работы "Сверточные коды".

Предназначено для радиотехнических специальностей всех форм обучения.

Рецензенты:

кафедра электронные вычислительные машины Санкт-Петербургского государственного университета путей сообщения;

кандидат технических наук доцент В. Н. Яночкин Утверждено редакционно-издательским советом университета в качестве учебного пособия © Санкт-Петербургский государственный университет аэрокосмического приборостроения, © Г. И.Никитин, Предисловие Подавляющее число современных систем связи работает при переда че самого широкого спектра сообщений (от телеграфа до телевидения) в цифровом виде. Из-за наличия помех в каналах связи сбой при при еме любого элемента вызывает искажение цифровых данных, что мо жет привести, особенно в космических системах связи, к катастрофи ческим последствиям. В настоящее время по каналам связи передаются цифровые данные со столь высокими требованиями к достоверности передаваемой информации, что удовлетворить эти требования тради ционным совершенствованием антенно-фидерных трактов радиолиний, увеличением излучаемой мощности, снижением собственного шума приемника оказывается экономически невыгодным или просто невоз можным.

Высокоэффективным средством борьбы с помехами в цифровых си стемах связи является применение помехоустойчивого кодирования, ос нованного на введении искусственной избыточности в передаваемое сообщение, что приводит к расширению используемой полосы частот и уменьшению информационной скорости передачи.

Теория и техника помехоустойчивого кодирования прошли несколь ко этапов в своем развитии от эмпирического использования простей ших кодов с повторением, с постоянным весом, с одной проверкой на четность до создания основ математической теории – ответвления выс шей алгебры и теории чисел с приложением теории к реальным систе мам связи.

Многообразие существующих кодов делится на два класса: блочные коды и непрерывные коды. В блочных кодах передаваемая информаци онная последовательность разбивается на отдельные блоки с добавле нием к каждому блоку определенного числа проверочных символов.

Кодовые комбинации кодируются и декодируются независимо друг от друга. В непрерывных кодах, называемых также цепными, рекуррент ными, конволюционными или сверточными, передаваемая информаци онная последовательность не разделяется на блоки, а проверочные сим волы размещаются в определенном порядке между информационными.

Процессы кодирования и декодирования также осуществляются в не прерывном режиме.

В связи с прогрессом в теории и технике кодирования в современ ных системах связи используются в той или иной степени помехоустой чивые коды. Так, в системах персонального радиовызова (пейджинго вые системы) используются блочные циклические коды, в сотовых сис темах связи применяются как блочные, так и сверточные коды, в подав ляющем большинстве спутниковых систем связи, в основном, исполь зуются непрерывные сверточные коды.

Настоящее учебное пособие является дополнением лекционного курса “Радиотехнические системы передачи информации” [1]. В процессе изу чения курса РТС ПИ студенты выполняют 4 лабораторных работы, свя занные с теорией и практикой кодирования: “Первичные коды” [2], “Эф фективные коды” [3], “Корректирующие коды” [4] и “Циклические коды” [5]. Изучив материалы данного учебного пособия, студенты должны выполнить 5-ю лабораторную работу “Сверточные коды”.

Материал пособия написан в соответствии с образовательным стан дартом для инженеров: направление 654200 – “Радиотехника”, специа лизация 200700 – радиотехника;

для магистров: направление 552500 – “Радиотехника”;

для всех форм обучения: направление 654100 – “Элек троника и микроэлектроника”, специализация 200400 – промышленная электроника.

Автор выражает признательность и благодарность студенту группы 2502 К. Б. Тисленко за помощь при подготовке материалов пособия, за написание раздела “Порядок выполнения лабораторной работы”, за под готовку программы выполнения работы на компьютерах.

1. ПЕРВЫЙ РЕКУРРЕНТНЫЙ КОД ФИНКА Первый непрерывный рекуррентный код был предложен в 1955 г. на шим соотечественником Л. М. Финком [6], который долгие годы заведовал кафедрой в Ленинградской военной академии связи, а затем работал в элек тротехническом институте связи им. М. А. Бонч-Бруевича.

Однако западные специалисты имели слабое представление о рабо тах наших отечественных ученых в области кодирования и поэтому лишь спустя 4 года (в 1959 г.) “вновь открытый” рекуррентный код был на зван по имени его западного автора – кодом Хегельбергера [7].

В этой связи целесообразно упомянуть самокритичное высказыва ние в предисловии к русскому изданию капитальной монографии У. Пи терсона и Э. Уэлдона “Коды, исправляющие ошибки” [8]. Авторы по существу извиняются за недостаточное внимание к публикациям на ших отечественных ученых в области теории и практики кодирования и отмечают следующее: “Без сомнения, наиболее серьезным пробелом данной монографии является отсутствия обзора последних работ, вы полненных в Советском Союзе. Основные из этих работ включены в книгу В. Д. Колесника и E. Т. Мирончикова “Декодирование цикличес ких кодов” (1968), заслуживающую самой высокой оценки [9]… В свя зи с этим, может быть, самым подходящим для данной книги явилось бы название “Коды, исправляющие ошибки, в Западном мире.” Отметим, что В. Д. Колесник и E. Т. Мирончиков в свое время за кончили ЛИАП и в настоящее время (оба доктора технических наук и профессора) работают в ГУАП.

Итак, рассмотрим идею построения рекуррентного кода Финка в из ложении самого Л. М. Финка, скромно умолчавшего в монографии “Те ория передачи дискретных сообщений” [10] о своем авторстве.

“В этом коде последовательность кодовых символов не разделяется на отдельные кодовые комбинации. В поток информационных симво лов включаются корректирующие символы, так что между каждыми двумя информационными символами помещается один корректирую щий. Обозначая информационные символы через ai, а корректирующие через bi получаем такую последовательность символов:

a1b1 a2b2 a3b3 …….a kb k a k+1b ….

k+ Информационные символы определяются передаваемым сообщени ем, а корректирующие формируются по следующему правилу:

bi = ak–S + ak+S+1 (mod2), (1.1) где s – произвольное целое число, называемое шагом кода (s = 0,1,2…).

Очевидно, что при ошибочном приеме некоторого корректирующе го символа bi соотношение (1.1) в принятой последовательности не бу дет выполнено для i = k. В случае же ошибочного приема информаци онного символа a соотношение (1.1) не будет выполняться при двух i значениях k, а именно при k1 = i – s –1 и при k2 = i + s. Отсюда легко вывести правило исправления ошибок при декодировании. В принятой кодовой последовательности для каждого bk проверяется соотношение (1.1). Если оно оказалось не выполненным при двух значениях k (k = k и k = k2) и при этом k2 – k1 = 2s+1, (1.2) то информативный элемент ak1+S+1 должен быть заменен на противопо ложный.

Очевидно, что избыточность такого кода равна 1/2. Он позволяет ис правлять все ошибочно принятые символы, кроме некоторых неудачных сочетаний. Так, если s = 0, он обеспечивает правильное декодирование, когда между двумя ошибочно принятыми символами имеется не менее трех (а в некоторых случаях двух) правильно принятых символов ( при этом учитываются как информационные, так и корректирующие символы).” Для наглядности в табл. 1.1, 1.2 и 1.3 графически показаны процес сы форматирования (кодирования) кодов Финка при шагах s = 0,1 и соответственно. Там же представлены варианты декодирования приня тых последовательностей с искаженными за счет помех различными символами. Искаженные символы и результаты их декодирования ото бражены в таблицах жирным шрифтом. Для всех рассматриваемых зна чений s = 0,1 и 2 принята исходная информативная последовательность из 10 символов 0001101011 (для s = 2 – с добавлением до 14).

Как видно из рассмотренных примеров формирования кодов после суммирования по модулю 2, в соответствии с выражением (1.1), после довательность проверочных символов получается различной и опреде ляется значением шага s.

Таблица. 1. S = Маркировка символов, a b a b a b a b a b a b a b a b a b a b 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 текущее значение i 1 2 3 4 5 6 7 8 9 Информационные символы, 0 0 0 1 1 0 1 0 1 суммирование по mod2, проверочные символы 0 0 1 0 1 1 1 1 Выходная последовательность 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 Декодирование при ошибке в одном информационном символе 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 Принятая последовательность, суммирование по mod 2, результат суммирования 0 0 1 1 0 1 1 1 Декодированная последовательность 0 0 0 1 1 0 1 0 Декодирование при ошибке в одном проверочном символе 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 Принятая последовательность, суммирование по mod 2, результат суммирования 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 0 Декодированная последовательность Декодирование при ошибке в двух проверочных символах Принятая последовательность, 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 суммирование по mod 2, результат суммирования 0 0 0 1 0 0 1 1 Декодированная последовательность 0 0 0 1 1 0 1 0 lc = Таблица. 1. S = Текущее значение i 1 2 3 4 5 6 7 8 9 Информационные символы, 0 0 0 1 1 0 1 0 1 суммирование по mod2, проверочные символы 1 1 0 0 1 1 Выходная последовательность 0 1 0 1 1 0 1 0 0 1 1 1 0 Декодирование при ошибке в одном информационном символе Принятая последовательность, 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 1 суммирование по mod 2, результат суммирования 0 1 0 1 1 1 Декодированная последовательность 0 0 1 1 0 1 Декодирование при пачке ошибок 3 символов 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 Принятая последовательность, суммирование по mod 2, результат суммирования 0 0 0 1 0 1 Декодированная последовательность 0 0 1 1 0 1 l = c Таблица. 1. S = i 1 2 3 4 5 6 7 8 9 10 11 12 13 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 Декодирование при пачке ошибок 5 символов 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 lc = Полученные проверочные контрольные символы встраиваются меж ду соседними информативными, образуя соответствующую входную последовательность, подлежащую передаче по каналу связи.

На стороне приема осуществляется та же самая процедура получе ния проверочных символов, что и на стороне передачи (1.1), и произво дится сравнение их с принятыми проверочными символами. Если при приеме ошибок нет, то результат суммирования по модулю 2 (сравне ние) будет состоять из последовательности, содержащей одни нули. Эта последовательность, так же как в блочных циклических кодах, называ ется синдромом. Напомним [5], что термин “синдром” заимствован из медицинской практики (с греческого – вместе бегущий) и означает со четание симптомов болезни, характерное для данного заболевания.

В теории кодирования синдром, который также называют опознава телем ошибок, означает совокупность признаков, характерных для оп ределенных ошибок. Синдром полностью определяется комбинацией ошибок, которые приводят к появлению в синдромной последователь ности 1 на соответствующих позициях. В табл.1.1–1.3 непосредственно синдромы только с 1 на позициях, определяющих конфигурацию оши бок, не указаны. Их заменяют результаты суммирования по модулю 2 по алгоритму (1.1) информационных символов ai, принимаемых с ошибка ми, причем символы, определяющие конфигурацию ошибок, выделены в таблицах жирным шрифтом.

Как видно из табл. 1.1, при s = 0 ошибка при приеме одного 5-го информационного символа приводит при декодировании к ошибке двух проверочных символов 4-го и 5-го, что позволяет исправить находя щийся между ними 5-й информационный символ, в соответствии с вы ражениями (1.1) и (1.2).

Декодирование при ошибке в одном проверочном символе при раз ных значениях шага s вызывает в результате суммирования различие только в одном символе, что не влияет на правильный прием информа тивной последовательности.

Декодирование при ошибке в двух информационных символах (табл. 1.1, s = 0) показывает, что для верного декодирования ошибоч ные символы (4-й и 6-й) должны быть разнесены, чтобы не участвовать в формировании одинаковых проверочных символов. Для этого номера набора искаженных проверочных символов в результате суммирования должны стыковаться без перекрытия и, по крайней мере, без пропуска.

В табл. 1.1 показана ситуация, когда в последовательности провероч ных символов неверно декодируется группа из 4 подряд следующих сим волов с 3-го по 6-й, которые отмечены жирным шрифтом.

Это условие “стыковки” требует наличия трех (l = 3) верно прини c маемых символов между двумя искаженными информационными сим волами. Назовем этот интервал l – расстоянием стыковки.

c В этом случае, когда соотношение (1.1) оказывается не выполненным для группы проверочных символов с 3-го по 6-й, в соответствии с выраже нием (1.2) 4-й и 6-й информационные элементы заменяются на противопо ложные, т. е. происходит верное исправление ошибочно принятых инфор мационных символов с номерами i = 4 и i = 6. Однако в интервал стыковки l = 3 попадает верно принимаемый 5-й информационный символ, для c которого из-за ошибочно принятых соседних (левого 4-го и правого 6-го) информационных символов также будет выполняться условие (1.2) и он, верно принятый, будет в декодере заменен на противоположный.

Для того чтобы этого не произошло необходимо увеличить число верно принимаемых символов между ошибочными информационными по крайней мере на два, чтобы пары неверно декодируемых провероч ных символов не стыковались. Это приводит к тому, что стыковочное расстояние l = 3 требуется увеличить по крайней мере (для s = 0) на lД = c (два дополнительных символа). Таким образом, для однозначного деко дирования информационных символов требуется между двумя ошибоч но принимаемыми символами иметь защитный интервал l0 = l + lД из c верно принимаемых символов с учетом проверочных. Для кода Финка с шагом s = 0 значение l0 = 5. Увеличение шага (s>0) способствует воз можности исправления не только ошибочных символов в принимаемой последовательности, но и групп подряд следующих символов. При s = код Финка не способен исправлять даже два подряд следующих оши бочных символа, а при шаге s = 1 появляется возможность исправления групп из трех соседних символов.

Подобные “серийные” ошибки возникают в результате воздействия в каналах передачи помех импульсного характера, длительность кото рых больше длительности одного символа. Аналогичная ситуация воз никает и в каналах с кратковременными замираниями сигнала (мульти пликативная помеха), в частности, в системах подвижной связи [11].

При этих условиях ошибки уже не независимы, а возникают “пачка ми”, общая длительность которых соответствует длительности помехи.

В этой связи интересно привести высказывание редактора перевода монографии [7] Добрушина Р.А.: “При переводе книги возникли серь езные терминологические трудности, связанные с отсутствием или нео днозначностью русской терминологии. Так, после долгих размышле ний в качестве перевода английского термина burst of error был выбран термин “пачка ошибок”, хотя в русской литературе встречаются и дру гие варианты (“пакет ошибок”, ”вспышка ошибок” и т. п.)”. В дальней шем, присоединяясь к мнению Добрушина Р. Л., будем пользоваться термином пачка (пакет) ошибок.

Пачка ошибок длиной b определяется вектором ошибки, в котором все единицы заключены в последовательности b символов при усло вии, что крайние символы этой последовательности – единицы. Так, векторы ошибок при пачке ошибок длиной b = 4 могут выглядеть сле дующим образом (для последовательности длиной n = 10): 0001101000, 0100100000, 0000011110 и т. п.

Именно с целью возможности исправления пачек ошибок в коде Финка применяется отличный от нуля шаг s. При достаточно большом значении s символы, входящие в одну и ту же проверку на четность (1.1), будут разне сены по времени на столько, что состояние канала за это время успеет измениться. При этом пакет ошибок будет, как правило, захватывать толь ко символы, не связанные друг с другом проверками на четность (1.1).

В табл. 1.2 для кода Финка с шагом s = 1, наряду с очевидными пред ставлениями процесса формирования кода и декодирования при ошибке в одном информационном символе, рассмотрено декодирование принятой последовательности при пачке ошибок из трех символов. Как видно, иска женные (жирные) символы не связаны друг с другом общими проверками на четность (1.1). В связи с этим они все (2 информативных и один прове рочный между ними) будут декодированы правильно. Возвращаясь к коду с шагом s = 0, из табл. 1.1 видно, что соседний с информационным иска женным символом проверочный символ (слева или справа), при условии его искажения, приведет к неверному декодированию принимаемой после довательности. Таким образом, при шаге s = 0 в коде Финка исправляемая пачка ошибок вырождается в один символ b = 1.

Для шага s = 1 и пачке ошибок из 3 символов стыковочное расстоя ние l = 7, а число необходимых дополнительных правильно принимае c мых символов для однозначного декодирования lД = 6. Это приводит к тому, что правильное декодирование очередного (даже одиночного) ин формативного символа или очередной пачки ошибок из трех символов возможно при защитном (однозначном) интервале с неискаженными помехами символами l0 = l + lД = 7 + 6 = 13.

c В табл. 1.3 рассмотрены процессы формирования кода Финка с шагом s = 2, что дает возможность верного декодирования пачки ошибок, состоя щей из 5 символов. При этом стыковочное расстояние l = 11, дополни c тельное – lД = 10 и результирующий защитный интервал l0 = 21 верно принимаемому символу между крайни Таблица 1. ми пораженными помехами символами.

В табл. 1.4 приводится сводка резуль s b l lД l c татов для значений длительности исправ 0 1 3 2 ляемой пачки ошибок b и защитного ин 1 3 7 6 тервала l0 по числу символов при трех 2 5 11 10 значениях шага s = 0,1,2 кода Финка.

si 2si+1 2b+1 2b 4b+ На основании данных табл. 1.4 ус танавливается связь между шагом кода Финка s, длиной b исправляе мой пачки ошибок b = 2s+1 (1.3) и защитным интервалом l0 = 4b +1. (1.4) Необходимость иметь интервал времени с неискаженными символа ми после прохождения пачки ошибок относится к недостаткам всех ре куррентных кодов.

Обратим внимание на то, что для верного декодирования принимае мой кодовой последовательности на стороне приема должна быть обес печена жесткая синхронизация по тактовым импульсам, определяющим порядок следования информативных и проверочных символов. В про тивном случае, при сбое синхронизации, верное декодирование стано вится невозможным, поскольку принимаемые информационные симво лы могут быть восприняты как проверочные и наоборот. При рассмот рении вопросов, связанных с любым кодированием, всегда априорно предполагается наличие правильной синхронизации как по тактовым, так и по цикловым (при блочном кодировании) импульсам.

Как отмечалось ранее, код Финка остался незамеченным в Западном мире. Первые сверточные (рекуррентные) коды, исправляющие пачки ошибок, были найдены позже Хегельбергером. Вайнер и Эш в 1963 г.

создали значительную часть математического аппарата теории сверточ ных кодов [13] и нашли хорошие коды, исправляющие одиночные ошиб ки. В дальнейшем методы построения сверточных кодов были обобще ны на случай недвоичных кодов.

2. ДВОИЧНЫЕ СВЕРТОЧНЫЕ КОДЕРЫ Сверточное кодирование, рассмотренное в целом ряде монографий [6–27], удобнее всего описывать, характеризуя действие соответствую щего кодирующего устройства. Сверточный кодер представляет собой устройство, воспринимающее за каждый такт работы в общем случае k входных информационных символов, и выдающее на выход за тот же такт n выходных символов, подлежащих передаче по каналу связи.

Отношение R = k/n называют относительной скоростью кода. Выход ные символы, создаваемые кодером на данном такте, зависят от m ин формационных символов, поступивших на этом и предыдущем тактах.

Таким образом, выходные символы сверточного кодера однозначно оп ределяются его входным сигналом и состоянием, зависящим от m–k пре дыдущих информационных символов. Обратим внимание на то, что в коде Финка выходные символы кодера зависят как от предыдущих, так и от последующих информационных символов, в соответствии с алго ритмом (1.1), поскольку шаг кода ± s – двузначный.

Основными элементами сверточного кодера являются: регистр сдви га, сумматоры по модулю 2 и коммутатор.

Регистр сдвига является динамическим запоминающим устройством (рис 2.1), в котором хранятся двоичные символы 0 или 1. Число триг герных ячеек m в регистре сдвига и определяет память кода. В момент поступления на вход регистра нового информационного символа сим вол, хранящийся в крайнем правом разряде, выводится из регистра и сбрасывается. Каждый из остальных, хранящихся в регистре символов перемещается на один разряд вправо, освобождая тем самым крайний левый разряд, куда и поступает новый информационный символ.

а) Вход Выход 1 2 3... m б) Вход Выход 1 2 3... m Рис. 2.1. Регистр сдвига Используются два различных изображения регистров сдвига: с со стыкованными впритык ячейками (рис.2.1, а) и с непосредственными последовательными связями между ячейками (рис.2.1, б), что дает воз можность на схемах встраивать между соответствующими ячейками до бавочные элементы, в частности, схемы суммирования по модулю 2 [5].

Заметим, что при изображении сдвигающего регистра, как правило, не указывают шину сдвига, на которую поступают тактовые импульсы, продвигающие записанную информацию по регистру.

Сумматор по модулю 2 осуществляет сложение поступающих на его входы символов 0 и 1. Правило сложения по модулю 2 следующее: сум ма двоичных символов равна 0, если число единиц среди поступающих на входы символов четно, и равна 1, если это число нечетно. В частно сти, для двухвходовой схемы 0 0 = 0, 1 0 = 1, 0 1 = 1, 1 1 = 0, где знаком обозначается сложение по модулю 2.

Изображение схем может быть таким, как показано на рис. 2.2.

m Рис. 2.2. Варианты изображений схем суммирования по модулю Коммутатор осуществляет последовательное считывание поступающих на его входы (контакты) символов и устанавливает на выходе очередность посылки кодовых символов в канал связи. Встречаются 3 варианта изобра жений коммутаторов в схемах сверточных кодеров (рис. 2.3) а) б) в) Выход Выход 2 Выход n n n Рис. 2.3. Варианты изображений коммутаторов На рис. 2.3, а представлена кольцевая схема коммутатора, на рис. 2.3, б – линейная, на рис. 2.3, в – в виде регистра сдвига. Тактовая частота переключения и число контактов коммутатора в сверточных кодерах определяется относительной скоростью кода R = k/n, где k – число ин формативных символов;

n – число передаваемых в канал связи симво лов за один такт поступления на кодер информационного символа. В соответствии с этим число контактов (ячеек регистра сдвига коммута тора) должно быть равно n, а частота переключения должна быть в n раз больше входной тактовой частоты. Так, при скорости R = 1/2 у комму татора должно быть 2 контакта и переключение должно производиться с удвоенной тактовой частотой.

Для примера на рис. 2.4 приведены кодеры кода Финка с различны ми шагами S = 0,1,2, работающие со скоростью R = 1/2.

S = Выход S = 1 Выход S = Выход Рис. 2.4. Кодеры для кода Финка По аналогии с блоковыми кодами, сверточные коды можно класси фицировать на систематические и несистематические. Систематичес ким сверточным кодом является такой код, для которого в выходной последовательности кодовых символов содержится без изменения поро дившая ее последовательность информационных символов. В противном случае сверточный код является несистематическим. На рис. 2.5, а и б представлены, соответственно, примеры кодеров систематического и несистематического сверточного кода для R = 1/2. В каждом из этих кодеров входные двоичные информационные символы поступают в сдви гающий регистр, состоящий из трех ячеек, находившийся в исходном нулевом состоянии. После прихода на вход сдвигающего регистра оче редного информационного символа коммутатор опрашивает два выхода в каждом из кодеров и формирует тем самым два выходных кодовых символа. В случае систематического сверточного кода (рис. 2.5, а) пер вым из выходных кодовых символов, получаемых за каждый цикл опро са коммутатора, всегда будет очередной информационный символ, по ступивший в сдвигающий регистр. Из рис. 2.5, б можно видеть, что выходная последовательность кодовых символов не содержит входные информационные символы в неизменном виде, поэтому кодер будет порождать несистематический сверточный код.

а) б) Выход Выход Вход Вход Рис. 2.5. Примеры кодеров систематического (а) и несистематического (б) сверточного кода В общем случае сдвигающий регистр кодера сверточного кода (рис. 2.6) содержит m ячеек, а коммутатор делает один цикл опроса при прихо де 1 k < m очередных информационных символов, где m кратно k, опрашивая за один цикл n 2 выходов кодера. При этом, очевидно, влияние любого входного информационного символа будет распростра няться на lП = mn/k выходных кодовых символов. Эта величина называ ется полной длиной кодового ограничения и играет роль, аналогичную блоковой длине кода при блочном кодировании. Длина кодового огра ничения и конкретный выбор связей с ячейками сдвигающего регистра на сумматоры по модулю 2 будут определять корректирующие свойства получаемого сверточного кода.

Информационные m– 0 1 m– символы В канал Рис. 2.6. Общий вид двоичного сверточного кодера Для того чтобы задать структуру сверточного кодера, необходимо указать, какие разряды регистра сдвига связаны с каждым из суммато ров по модулю 2, счет разрядов ведется слева направо. Связи j-го сум матора по модулю 2 описываются путем задания j-й порождающей пос ледовательности gj = (gj0, gj1, gj2,… gjm–1 ), (2.1) где компонента 1, если i-й разряд регистра связан с j-м сумматором;

g = 0, в противном случае.

ji (2.2) Типичные параметры сверточных кодов: k,n = 1,2,..., 8;

R = k/n = =1/4,...,7/8;

m = 2,..., 10 [15].

Наиболее часто на практике применяются сверточные коды со ско ростью R = 1/2 (рис. 2.5). При значении R = 1/n структура кодера остает ся неизменной, но два сумматора по модулю 2 заменяются на n сумма торов, образующих n выходных символов для каждого информационно го символа, поступающего на вход кодера. На рис. 2.7, а приведена схема сверточного кодера для скорости R = 1/3.

A1(X) а) б) Вход B1(X) B2(X) Выход B3(X) A2(X) Выход Рис. 2.7. Примеры кодеров для скоростей 1/3(а) и 2/3(б) При скоростях R = k/n,где k >1, как правило, в схеме кодера использу ют k регистров сдвига. Типичным является пример, показанный на рис. 2.7, б для кода с R = 2/3. В кодер одновременно вводятся два сим вола (один для входной последовательности A1(X), другой – для A2(X)) и сумматоры, по модулю 2 вычисляют три символа для выходных после довательностей B1(X), B2(X), B3(X).

Сверточный код удобно задавать посредством порождающих (произ водящих) многочленов, определяемых видом последовательностей (2.1), подобно тому, как это делается для линейных блоковых циклических кодов [5]. Порождающие многочлены полностью определяют структуру двоичного кодера сверточного кода. Выходные кодовые символы можно представить в виде свертки последовательности информационных сим волов и порождающих многочленов кода, задающих линейные рекур рентные правила кодирования, но об этом в следующем разделе.

3. ПРЕДСТАВЛЕНИЕ СВЕРТОЧНЫХ КОДОВ С ПОМОЩЬЮ МНОГОЧЛЕНОВ В отличие от боковых кодов, каждый из которых описывается единствен ным порождающим многочленом, сверточный код требует для своего описания несколько порождающих многочленов, число которых определяется количеством n выходных символов, передаваемых за каждый такт в канал связи.

Представим последовательность информационных символов, посту пающих на вход кодера, в виде многочлена (полинома) A(X) = a0+a1X+a2X2+…, (3.1) где Xi – символ оператора задержки на i тактов работы сдвигающего регистра;

ai = 0;

1 – информационные двоичные символы.

Многочлены, описывающие n последовательностей кодовых симво лов, поступающих на вход коммутатора кодера и далее в канал связи, Bj(X) = b0(j)+b1(j)X+b2(j)X2+…, (3.2) bi(j) = 0;

1 – двоичные кодовые символы на j-м входе коммутатора кодера.

В силу линейности сверточного кода Bj(X) = Gj(X)A(X), (3.3) где Gj(X) = g0+g1X+g2X2+…+gm–1X m–1 – (3.4) j-й порождающий многочлен сверточного кода;

gi = 0;

1 – его двоичные коэффициенты (2.1), равные 1, если i-я ячейка (i = 0,..., m–1) сдвига ющего регистра через схему суммирования связана с j-м входом комму татора кодера, и равные нулю в противном случае.

Например, для кодера систематического сверточного кода (рис. 2.5, а) порождающие многочлены будут G1(X) = 1;

G2(X) = 1+X 2, (3.5) а для кодера несистематического сверточного кода (рис. 2.5, б) G1(X) = 1+X+X2 ;

G2(X) = 1+X2. (3.6) Порождающие многочлены могут быть объединены в матрицу раз мера k n, называемую порождающей матрицей из многочленов. На пример, порождающие матрицы для кодеров (рис. 2.4), в соответствии с (3.5) и (3.6), записываются в виде G1(X) = [1 1+X 2] и G2(X) = [1+X+X2 1+X 2]. (3.7) Строка в матрице соответствует одному из k символов входной после довательности (в данном случае k = 1), а число многочленов в строке равно числу схем суммирования по модулю 2. При k > 1 некоторые порождающие многочлены могут равняться нулю.

Так, для схемы кодера (рис. 2.7, б) при скорости R = 2/3, выходной код описывается шестью порождающими полиномами, задаваемыми ше стью наборами связей между двумя регистрами и тремя сумматорами.

Связь между входными символами и выходными последовательностями может быть представлена в следующей матричной форме:

G11(X )G12(X )G13(X ) [B1(X )B2(X )B3(X )] = [A1(X )A2(X )].

(3.8) (X )G22(X )G23(X ) G В данном случае порождающая матрица многочленов (полиномов) имеет вид 1+ X 1+ X G(X ) = (3.9) 0 X + X.

Рассмотрим, в качестве примера, для схемы кодера (рис. 2.5, б), как кодируется последовательность информационных символов 101. Этой последовательности соответствует многочлен A(X) = 1+X2.

Тогда на выходе первого сумматора по модулю 2 кодера (рис. 2.5, б) последо вательность кодовых символов будет 11011, ей соответствует многочлен B1(X) = 1+X+X3+X4.

На выходе второго сумматора по модулю 2 этого кодера последова тельность кодовых символов будет 10001, а ей соответствует многочлен B2(X) = 1+X4.

В итоге на выходе кодера будет сформирована последовательность B(X) выходных символов за 5 тактов нахождения входной последова тельности 101 в трехразрядном регистре:

B1(X) 1 1 0 1 B2(X) 1 0 0 0 B(X) 11 10 00 10 Такты 1 2 3 4 Нетрудно видеть, что справедливы равенства B1(X) = A(X)G1(X) ;

B2(X) = A(X)G2(X), (3.10) где после перемножения многочленов подобные члены приводятся по модулю 2. [5] Используя представление сверточного кода с помощью порождаю щих многочленов, часто задают сверточный код посредством последо вательностей коэффициентов производящих многочленов, записанных в двоичной или восьмеричной форме. Последняя запись является более компактной и используется при большой длине сдвигающего регистра кодера. Например, структуру кодера (рис. 2.5, б) можно записать в виде в двух последовательностей: 111;

101, которые в двоичной форме пред ставляют коэффициенты соответствующих порождающих многочленов (3.6), а в восьмеричной форме –7;

5.

Двоичные последовательности коэффициентов порождающих мно гочленов иногда называют генераторами кодов [16].

Следует заметить, что при формировании систематического кода пер вый из порождающих многочленов G1(X) = 1, т. е. с первого разряда регистра сдвига информационный символ непосредственно поступает в канал. При этом генератор кода в двоичной форме будет соответство вать значению 100…0 с общим числом символов, равным числу разря дов m в сдвигающем регистре. В частности, для систематического коде ра (рис. 2.5, а) с порождающими многочленами (3.5) двоичные генера торы кода будут 100 и 101 (в восьмеричной форме – 4;

5).

Таким образом, выбор генераторов кода тождественен заданию но меров отводов m-разрядного регистра сдвига.

В общем случае последовательность коэффициентов j-го производяще го многочлена (j = 1,..., n) при подобном представлении будет иметь вид j Gj = {,,..., } g0j g1j gm- и совпадает с порождающей последовательностью кода (2.1). Если A = {a0,a1,a2,…} – последовательность кодируемых информационных символов, а Bj = {,, …} – b0j b1j b2j последовательность кодовых символов на j-м входе коммутатора кодера, то для любого из них, появляющегося в µ-й момент времени (µ = 0, 1,2,...), можно записать m- bµj = gij.

aµ-i (3.11) i= Таким образом, каждый кодовый символ выходной последователь ности кодера сверточного кода определяется сверткой кодируемой ин формационной и порождающей последовательностей, что и обусловли вает название сверточных кодов.

Сверточные коды являются частным случаем итеративных или ре куррентных кодов. При рекуррентном кодировании разбиение кодируе мой последовательности информационных символов на блоки не про изводится, а кодовые символы вычисляются.

Очевидно для рекуррентных и, в частности, для сверточных кодов понятие кодового слова не имеет смысла, так как кодовые символы вы числяются по текущему блоку последних информационных символов для каждого такта работы кодера. Поэтому подобные коды называют также цепными или скользящими.

Вообще говоря, сверточные коды можно рассматривать как обобще ние блочных кодов, так как за каждый такт работы кодера по текущему блоку последних информационных символов формируется определен ный блок выходных кодовых символов. Однако блоки выходных кодо вых символов сверточного кода, формируемые в следующие друг за дру гом такты работы кодера, являются функционально зависимыми, тогда как при блоковом кодировании зависимость между соседними блоками кодовых символов (кодовыми словами) отсутствует. Указанное положе ние обусловливает определенные преимущества сверточных кодов пе ред блоковыми, так как позволяет существенно проще, чем при блоч ном кодировании, реализовать достаточно большую эквивалентную бло ковую длину кода, определяемую длиной кодовых ограничений. Как из вестно, большая блоковая длина кода требуется для достижения высо кой эффективности кодирования. Упрощению аппаратурной реализа ции способствует также непрерывность обработки информации, осу ществляемой при кодировании и декодировании сверточных кодов.

4. ГРАФИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ СВЕРТОЧНЫХ КОДОВ Сверточный кодер как конечный автомат с памятью описывают диаг раммой состояний. Диаграмма состояний представляет собой направ ленный граф, вершины которого отождествляются с возможными со стояниями кодера, а ребра, помеченные стрелками, указывают возмож ные переходы между состояниями. Состояние 000...0 называется нуле вым, остальные – ненулевые. Над каждым из ребер записывают кодо вые символы, порождаемые кодером при соответствующем переходе из состояния в состояние. Так например, диаграмма состояний для кодера сверточного кода (рис. 2.5, б) будет иметь вид, показанный на рис. 4.1, где различные состояния кодера отмечены также буквами a, b, c, d.

Внутренним состоянием кодера считают символы, содержащиеся в (m–1) разрядах регистра (начиная от входа кодера). Первые два разряда кодера (рис. 2.5, б) с m = 3 могут находиться в одном из четырех состояний – 00, 10, 11 и 01. Эти состояния соответствуют вершинам графа (рис. 4.1).

Диаграмма построена следующим образом. Первоначально кодер на ходится в состоянии 00 и поступление на вход символа 0 переводит его также в состояние 00. На выходе кодера будут символы 00. На диаграм ме этот переход обозначают петлей 00 около состояния 00.

Далее при поступлении символа 1 ко дер переходит в состояние 10 и на его вы ходе будут символы 11. Этот переход из со a стояния 00 в состояние 10 обозначают стрелкой (ребром). Затем возможно поступ ление символа 0 или 1. Кодер переходит в b c состояние 01 либо 11, а символы на выходе будут 10 или 01 соответственно. Построе 01 ние диаграммы состояний заканчивается, d когда просмотрены возможные переходы из каждого состояния во все остальные.

Если, например, в сдвигающем регис- Рис. 4.1. Диаграмма состояний кодера (рис. 2.5, б) тре кодера перед очередным опросом ком мутатора содержится 011, то на данной диаграмме переходов это ото бражается переходом из состояния 11(d) в состояние 01(с);

порожден ные при этом кодовые символы будут 01, они записаны над соответ ствующим ребром, помеченным стрелкой. Определенная последователь ность кодируемых информационных символов задает конкретную пос ледовательность смены состояний и при этом порождаются кодовые символы, записанные над соответствующими ребрами, соединяющими состояния кодера на диаграмме состояний.

Рассматриваемую диаграмму состояний можно развернуть во времени, при этом получим так называемую решеточную (решетчатую) диаграмму.

Так, например, решеточная диаграмма для кодера (рис. 2.5, б) диаграмма состояний которого представлена на рис. 4.1, показана на рис. 4.2. На ней принято, что штриховые линии (ветви) соответствуют переходам, происхо дящим при приходе информационного символа 1, а сплошные линии (вет ви) — информационного символа 0. Из решеточной диаграммы видно, что ее структура после окончания “переходного процесса” в кодере становится повторяющейся. Так, на рис. 4.2 подобная повторяемость структуры реше точной диаграммы будет возможна после третьего такта работы кодера, так как при поступлении в кодер четвертого информационного символа пер вый символ покидает регистр сдвига и более не оказывает влияния на формирование кодовых символов. Важное значение решетчатого представ ления состоит в том, что с ростом числа входных символов число вершин в решетке не растет, а остается равным 2m–1, где m – число ячеек в регистре сдвига, необходимое для кодирования.

00 00 00 a 00 a a = Начальное 11 11 11 состояние b b 10 10 10 11 11 11 b = 01 01 00 c = c c 01 01 10 10 d = d d Время Рис. 4.2. Решеточная диаграмма кодера (рис. 2.5, б) Решетчатая диаграмма показывает все разрешенные пути, по кото рым может продвигаться кодер при кодировании. Например, при по ступлении на вход кодера последовательности 1011… путь по решетке (1 – пунктирная, 0 – сплошная линия) даст возможность получить кон фигурацию выходной последовательности 11100001… Каждой информационной последовательности символов соответству ет определенный путь (определенная траектория) на диаграмме. Кодо вая последовательность на выходе формируется путем считывания ком бинаций над ветвями при прослеживании данной траектории. Таким образом, решетчатая диаграмма однозначно связывает информацион ную последовательность, последовательность состояний кодера и после довательность символов на его выходе.

Удобным графическим аппаратом для исследования кодирования и декодирования сверточных кодов является также кодовое дерево, строя щееся на основании диаграммы состояний и решетчатой диаграммы [8, 14–15, 24–25]. Коды, допускающие подобное представление с помощью кодового дерева, называются древовидными. Таким образом, сверточ ные коды относятся к древовидным кодам.

5. ОСНОВНЫЕ ПАРАМЕТРЫ И ХАРАКТЕРИСТИКИ СВЕРТОЧНЫХ КОДОВ При сверточном кодировании преобразование информационных пос ледовательностей в выходные кодовые происходит непрерывно. Кодер двоичного сверточного кода содержит сдвигающий регистр из m разря дов и сумматоры по модулю 2 для образования кодовых символов вы ходной последовательности. Входы сумматоров соединены с определен ными разрядами регистра. Коммутатор на выходе устанавливает оче редность посылки кодовых символов в канал связи. В соответствии с такой идеологией формирования сверточных кодов можно перечислить ряд параметров и характеристик, определяющих структуру кодов.

1. Число информационных символов, поступающих за один такт на вход кодера – k.

2. Число символов на выходе кодера – n, соответствующих k, посту пившим на вход символам за такт.

3. Скорость кода определяется соотношением R = k/n (5.1) и характеризует избыточность, вводимую при кодировании. Так, для кодов Финка (рис. 2.4) и кодеров (рис. 2.5) значение R = 1/2. Для кодера (рис. 2.7, а) скорость кода R = 1/3, а для кодера (рис. 2.7, б) – R = 2/3, т. е. на вход кодера одновременно поступает k = 2 информационных символа, а на выходе образуется n = 3 кодовых символа за один входной такт. Типичными являются скорости R = 1/n и R = n–1/n (R = 2/3 на рис. 2.7, б). Большие скорости кода позволяют увеличить пропускную способность канала связи, зато снижение скорости уменьшает количе ство ошибок на выходе приемника.

4. Избыточность кода = 1 – R = 1 – k/n. (5.2) В частности, при R = 1/3 число символов в выходной последователь ности превышает их число во входной информационной последователь ности в 3 раза. Однако несмотря на большую избыточность, сверточ ные коды находят широкое распространение благодаря хорошим кор ректирующим свойствам.

5. Память кода, называемая также входной длиной кодового ограни чения или информационной длиной кодового слова [18], определяется максимальной степенью порождающего многочлена в составе порожда ющей матрицы G(X) (3.9):

l = k max gi, j(x) +1, (5.3) deg i, j где deg gi, j(x) – степень (от degree – англ.) порождающего многочлена.

В свою очередь, максимальная степень одного из порождающих много членов определяет число разрядов m в регистре сдвига кодера (рис. 2.6). С учетом младшего члена многочлена X0 = 1 значение m = max gi, j(x) + (5.4) deg и задает необходимое число разрядов в регистре сдвига.

Таким образом, память кода (входная длина кодового ограничения) задается простым выражением l = km, (5.5) причем при единственном (k = 1) входном информационном символе, поступающем в кодер для формирования сверточного кода за один такт, l = m, т. е. память кода определяется числом ячеек в регистре сдвига, необходимым для кодирования.

Обратим внимание на то, что в ряде монографий [6–8, 18] при изоб ражении сверточных кодеров младший член порождающих полиномов X0 = 1 вводится в соответствующую схему суммирования по модулю или непосредственно на контакт коммутатора не с первой ячейки реги стра сдвига кодера, как это показано на рис. 2.6 и в других схемах свер точных кодеров, а непосредственно со входной шины. При этом число требуемых разрядов в регистре сдвига на один уменьшается. Число эле ментов памяти сдвигающего регистра определяет сложность кодера.

6. Полная длина кодового ограничения (ДКО), называемая также ДКО по выходу кодера [23] или кодовой длиной блока [18], представляется числом кодовых символов, порождаемых кодером в промежутке време ни между поступлением в него данного информативного символа и выходом в канал соответствующего символа, в формировании которого входной символ принимает участие. С учетом того, что каждые k запи санные в сдвигающем регистре кодера информационные символы пред ставляются на выходе n символами, полная ДКО будет определяться выражением [18] lП = n max gij(x) +1, (5.6) deg_ или в соответствии с (5.4) и (5.5) ln lп = nm =.

(5.7) k Значение lп показывает на какое максимальное число выходных сим волов влияет данный информационный символ и играет ту же роль, что и длина блочного кода [5]. Величина полной ДКО характеризует протяженность корреляционных связей в закодированной последователь ности для одного информационного символа.

В табл. 5.1 приведены последовательности символов на выходах со ответствующих кодеров при поступлении на вход информационной пос ледовательности, содержащей только одну единицу – A(X) = 1000… Это дает возможность определить выходной набор символов B(X) на пол ной длине кодового ограничения, которая подчеркнута в табл. 5.1.

Таблица 5. № ри- Порождающие № сунка R многочлены и Выходная последовательность B(X) L l d п min кодера матрицы 1 2.5, а 1/2 1 1 0 0 0 1 0 0 0 … 3 6 1+X 1+X+X 2 2.5, б 1/2 3 6 1+X2 1 1 1 0 1 1 0 0 0 … 1+X+X 3 2.7, а 1/3 1+X+X2 1 1 1 1 1 0 1 1 1 0 0 0... 3 9 1+X 4 2.7, б 2/3 1 1 1 1 1 0 0 2 6 В табл. 5.1 указаны порождающие многочлены для трех схем свер точных кодеров (рис. 2.5 и 2.7, а) и порождающая матрица для кодера (рис. 2.7, б), определены значения памяти кодов l, полной ДКО lП и минимального свободного расстояния dmin (см. далее п. 10). Построены выходные последовательности B(X) при подаче на вход кодеров инфор мационной последовательности A(X) = 10000…, которые позволяют не посредственно определить lП и dmin. Для кодера (рис. 2.7, б), обеспечи вающего скорость R = 2/3, последовательность A(X) подается на верх ний вход, а на нижний вход – 00000… 7. Маркировка сверточного кода отличается разнообразием, но во всех обозначениях кода присутствуют основные параметры – k и n, оп ределяющие скорость кода R = k/n. Так, в [18] код обозначается (n, k), в [21] – (k, n), но в большинстве монографий в маркировку кода вводят третий параметр, определяющий входную длину кодового ограничения (память кода) – l [6, 11, 15, 27]. Будем придерживаться этой позиции и маркировать код тремя параметрами (n, k, l), (5.8) что позволяет по обозначению кода сразу же определить скорость кода R = k/n и число разрядов в сдвигающем регистре кодера, причем для наиболее часто применяемых кодов с R = 1/n маркировка кода будет – (n, k, m).

8. Вес w двоичных кодовых последовательностей определяется чис лом “единиц”, входящих в эту последовательность или кодовые слова.

Например, w = 4 для кодовой комбинации 101011, а w = 2 – вес комби нации 1001.

9. Кодовое расстояние d показывает степень различия между i-й и j-й кодовыми комбинациями при условии их одинаковой длины. Для лю бых двух двоичных кодовых комбинаций кодовое расстояние равно чис лу несовпадающих в них символов. В общем виде кодовое расстояние может быть определено как суммарный результат сложения по модулю 2 одноименных разрядов кодовых комбинаций – L dij = k, kik jk (5.9) k= где kik и kjk – k-е символы кодовых комбинаций i и j;

L – длина кодовой комбинации.

Впервые в теорию кодирования понятие кодового расстояния ввел Р. Хемминг, поэтому расстояние d называют хемминговым.

10. Минимальное кодовое расстояние dmin – это наименьшее расстоя ние Хемминга для набора кодовых комбинаций постоянной длины. Пе ребрав все возможные пары кодовых комбинаций, определяем мини мальное из них dmin = mindij. (5.10) Однако это определение справедливо для блочных кодов, имеющих постоянную длину. Сверточные коды являются непрерывными и харак теризуются многими минимальными расстояниями, определяемыми дли нами начальных сегментов кодовых последовательностей, между кото рыми берется минимальное расстояние. Число символов в принятой для обработки длине сегмента L определяет на приемной стороне число ячеек в декодирующем устройстве.

Это число символов, которое декодер должен хранить в памяти для обработки принимаемой кодовой последовательности, называется ши риной окна декодирования. Если ставится цель обнаружения и исправ ления как можно большего числа конфигураций ошибок, то в общем случае увеличение ширины окна декодирования всегда приводит к улуч шению характеристик, однако к конце концов происходит насыщение.

Ширина окна декодирования должна быть не меньше полной длины кодового ограничения lП (5.7) и зачастую в несколько раз ее превышает.

В соответствии с различной длиной L обрабатываемых в декодере сегментов, минимальное расстояние Хемминга для любых пар кодовых слов называется L-м минимальным свободным расстоянием сверточно го кода и обозначается dL. Если L равно lП, то оно называется просто минимальным свободным расстоянием и будем обозначать его, как и в блочных кодах dlп = dmin. (5.11) Теоретически значение наибольшего минимального свободного рас стояния dL* можно получить, устремляя длину L обрабатываемых в де кодере символов к бесконечности * d = max dL = dL, (5.12) L причем очевидно, что dlП dlП +1 dlП +2... d.

(5.13) Значение dL* оказывается полезным при поиске структур хороших сверточных кодов, поскольку эта величина указывает предел, к дости жению которого надо стремиться при поиске структуры кода [18, 20].

Важной характеристикой кода, полностью определяющей его кор ректирующие свойства, является спектр свободных расстояний кода, т. е.

перечисление количества кодовых последовательностей, имеющих дан ное значение свободного расстояния [15, 23].

Минимальное свободное расстояние dL сверточного кода можно оп ределить с использованием диаграммы состояний или решеточной диаг раммы для соответствующего кодера.

Поскольку сверточный код является линейным кодом, то среди раз личных путей на решеточной диаграмме кода обязательно будет путь с нулевым весом (нулевой путь), т. е. путь, последовательность кодовых символов которого состоит полностью из нулей. Следовательно, мини мальное свободное расстояние сверточного кода будет равно минималь ному числу единиц, т. е. минимальному весу путей, которые расходятся и сливаются с нулевым путем. Решеточную диаграмму кода можно ис пользовать для определения минимального свободного расстояния, если для каждой ее ветви записать вес соответствующих кодовых символов на выходе кодера, а затем подсчитать вес путей, расходящихся и слива ющихся с нулевым путем. На рис. 5.1 показана подобная решеточная диаграмма c метками весов для кодера сверточного кода (рис. 2.5, б), построенная на базе решеточной диаграммы (рис. 4.2).

0 0 0 a 2 2 2 2 2 2 b 0 0 1 1 1 c 1 1 1 1 1 1 d 0 1 2 3 Рис. 5.1. Решеточная диаграмма с метками весов для кодера (рис. 2.5, б) Из нее можно видеть, что из всех ненулевых путей, расходящихся и сливающихся с горизонтальным нулевым, будет один, имеющий вес 5, отходящий от нулевого пути на 3 ветви [ab(11)–bc(10)–ca(11)], два пути, отходящие от нулевого пути на 4 [ab(11)–bd(01)–dc(01)–ca(11)] и 5 [ab(11)–bc(10)–cb(00)–bc(10)–ca(11)] ветвей и имеющие вес w = и т. д.

Таким образом, минимальный вес ненулевого пути для данного свер точного кода равен 5, следовательно, минимальное свободное расстоя ние этого кода dmin = 5. Очевидно, этот код может исправить (см. далее п. 11) любые две ошибки, произошедшие в канале связи, так как эти две ошибки могут привести к тому, что принимаемая последователь ность кодовых символов будет иметь хеммингово расстояние от пере данной последовательности, равное двум, а от всех других последова тельностей это расстояние будет по крайней мере не менее трех. Следо вательно, при декодировании по минимуму хеммингова расстояния лю бые две ошибки этим кодом будут исправлены.

Очевидно потенциально корректирующая способность сверточного кода тем выше, чем больше его минимальное свободное расстояние.

Поэтому структуру кодера сверточного кода, т. е. его порождающие многочлены, стремятся выбрать таким образом, чтобы максимизиро вать минимальное свободное расстояние кода. Это при прочих равных условиях обеспечивает наивысшую корректирующую способность свер точного кода при его декодировании по максимуму правдоподобия, в частности, при декодировании по алгоритму Витерби (см. разд. 8.3).

Наряду с оценкой минимального свободного расстояния сверточно го кода по решетчатой диаграмме, можно значение dmin определить по последовательности выходных символов B(X) – на полной длине кодо вого ограничения lП (5.7).

В табл. 5.1 на основании построения B(X) на интервале lП в после дней колонке приведены значения dmin соответствующих кодов, кото рые равны весу w последовательностей B(X):

dmin = WlП, (5.14) WlП где – вес кодовой последовательности на полной длине кодового ограничения lП.

Обратим внимание на то, что для кодера на рис. 2.5, б (вторая строка табл. 5.1) выходная последовательность B(x) по структуре полностью совпадает со структурой выходного кода при поступлении на вход кодера последовательности A(X) = 1000… для решеточной диаграммы (рис. 4.2), так как путь по решетке [ab(11)–bc(10)–ca(11)] определяет тождествен ную B(X) = 111011000….

Таким образом, минимальное свободное расстояние dmin для различ ных вариантов коротких сверточных кодов можно найти по (5.14), оп ределив структуру выходной последовательности B(X) на длине lП (табл.5.1.), что и делается при выполнении лабораторной работы.

11. Корректирующая способность кода определяется кратностью (ко личеством) исправляемых gИ ошибок, под которой понимают гаранти руемое число ошибок в кодовых комбинациях, исправляемых заданным кодом. Очевидно, что чем больше кратность gИ, тем эффективнее явля ется код. Хемминг определил простую зависимость между значением минимального кодового расстояния и кратностью ошибки. Принятая, пораженная помехой кодовая последовательность отождествляется на приемной стороне с той из информационных, на которую она больше всего похожа, т. е. с той, от которой она отличается меньшим числом символов. Хемминг показал, что это для блочных кодов выполняется при условии dmin 2gИ + 1, (5.15) откуда следует, что dmin -, gИ (5.16) где означает целую часть числа х.

x При сверточном кодировании кратность исправляемых ошибок оп ределяется аналогичным выражением с учетом минимального свобод ного расстояния dL при обработке кодовых последовательностей с дли ной L. Если в последовательности произошло не более gИ ошибок, при чем gИ удовлетворяет неравенству 2gИ + 1 dL, (5.17) то ошибки исправляются.

В частности, при длине L кодовой последовательности, равной пол ной длине кодового ограничения lП, в соответствии с (5.11), 2gИ + 1 dmin, (5.18) что совпадает с (5.15) и (5.16) для блочных кодов, так как, постоянная длина блочного кода эквивалентна полной длине кодового ограничения для сверточных кодов.

12. Мощность кода определяет способность кодов исправлять мно жественные, одиночные и многократные ошибки, возникающие в кана ле связи. Мощность кода зависит от входной длины кодового ограниче ния l (5.5) и от вида образующих полиномов. В [23] показано, что веро ятность исправления ошибок при декодировании в явном виде связана со свободным кодовым расстоянием dL. Так, для рассмотренного ранее кодера (рис. 2.5, б), генерирующего код (2, 1, 3) с образующими поли номами G1 и G2 (табл. 5.1 ), величина dmin = 5. Для кода (2, 1, 5) с образу ющими полиномами G1(X) = 1 + X3 + X4, G2(X) = 1 + X + X3 + X4, (5.19) который используют при кодировании речевого сигнала в системе со товой связи GSM, dmin = 7. В еще более мощном коде (2, 1, 7) с образу ющими полиномами G1(X) = 1 + X2 + X3+ X5 + X6, G2(X) = 1 + X + X2+ X3 + X6, (5.20) применяемом в системах спутниковой связи, dmin = 10.

Следовательно, коды с большим кодовым ограничением l являются более мощными.

13. Энергетический выигрыш кода определяет выигрыш по поме хоустойчивости при применении корректирующего кодирования. Как правило, в системах предполагают применение символов с двухпози ционной фазовой модуляцией ФМ-2, использующей противоположные сигналы с начальной фазой 0° при передаче символа “1” и 180° при передаче “0” (или наоборот).

Для получения заданного значения вероятности ошибочного приема одного символа p1 в информационной последовательности надо обес печить на выходе демодулятора приемника некоторое необходимое ми нимально допустимое отношение сигнал/шум.

При передаче информации с корректирующем кодированием уже вместо k информативных символов за заданное время требуется переда ча n символов с добавлением проверочных за то же время при том же уровне сигналов.

При этом придется сокращать длительность символов при передаче (при скорости R = 1/3 – в три раза), что потребует расширения полосы частот в n/k раз. Исходное заданное значение вероятности p1 будет обес печиваться уже при другом отношении сигнал/шум. Разница отноше ний сигнал/шум при применении кодирования и без него при ее поло жительном значении определяет энергетический выигрыш кода, выра жаемый в децибелах.

Быстрая ориентировочная оценка энергетической эффективности для целей оперативного сравнения кодов производится по асимптотическо му энергетическому выигрышу от кодирования (АЭВК) = 10lgRdmin (дБ), (5.21) где R = k/n – относительная скорость кода;

dmin – минимальное кодовое расстояние.

Величина АЭВК характеризует ЭВК при вероятности p1 0 и явля ется верхней границей реального ЭВК при p1 0 [23].

В табл. 5.2 приведены основные характеристики коротких сверточ ных кодов со скоростью R = 1/2, с указанием значений АЭВК.

Коды заданы порождающими многочленами в восьмеричной форме записи и указаны значения памяти кода (5.5) и минимального кодового расстояния (5.11).

Таблица 5. № Порождающие многочлены R l d АЭВК, дБ min 15,7 35 3, 2 15,17 4 6 4, 3 23,35 5 7 5, 1/ 4 53,75 6 8 6, 5 133,171 7 10 6, 6 247,371 8 10 6, Выигрыш от кодирования может быть использован наиболее эффек тивным способом, например, путем уменьшения мощности передатчи ков в системах связи, уменьшения размеров антенн или увеличения ско рости передачи.

Как отмечается в [15], для получения значительного выигрыша от кодирования наиболее пригодны сверточные коды с малой длиной ко дового ограничения и с декодированием по алгоритму Витерби. В част ности, хорошо известный код с R = 1/2, l = 6, который имеет ЭВК 5дБ при p1 = 10–5, применяется во многих системах при различных скоростях передачи данных.

14. Сложность кодеков сверточных кодов определяет возможность практической реализации кодера на стороне передачи и декодера на сто роне приема системы связи.

Сложность сверточного кодера определяется числом его простейших элементов, которыми являются разряды в регистре сдвига, сумматоры по модулю 2 и связи сумматоров с разрядами сдвигов. В большинстве случаев длина регистра сдвига имеет порядок нескольких десятков еди ниц, а каждый сумматор связывается приблизительно с половиной раз рядов регистра. Поэтому можно считать, что сложность сверточного кодера линейно зависит от длины регистра m или от длины кодового ограничения l. Практическая реализация устройства, состоящего из не скольких десятков или сотен простейших элементов, не представляет труда.

Сложность декодеров определяется методом декодирования. В на стоящее время используется три основных метода декодирования свер точных кодов: пороговое, аналогичное мажоритарному методу декоди рования блочных кодов, последовательное и декодирование по алго ритму Витерби.

Наиболее простыми в реализации являются алгоритмы мажоритар ного декодирования как блочных, так и сверточных кодов. Сложность реализации декодеров растет практически пропорционально полной длине кодового ограничения lП (5.7). Декодеры достаточно просты при исправлении ошибок невысокой кратности (gИ = 1, 2). Однако дальней шее увеличение кратности исправляемых ошибок приводит к значи тельному усложнению схемного построения декодеров, которое не оп равдывается возрастанием величины ЭВК.

Наибольшую сложность имеют декодеры Витерби, объем вычисле ний (сложность) которых возрастает экспоненциально с ростом длины кодового ограничения. При использовании алгоритма Витерби увели чение ДКО на единицу более чем вдвое увеличивает объем декодера, но дает прирост ЭВК – 0,4 …0,5 дБ [23]. Поэтому практически исполь зуемые декодеры выполняются для кодов с ДКО l 7…8. Повышение быстродействия таких декодеров возможно при распараллеливании про цедур декодирования, а снижение объема – за счет перехода к микро процессорной технике.

15. Надежность кодирования – определяется вероятностью правиль ного декодирования передаваемой информационной последовательно сти. Очевидно, что не всякий выбор связей в сверточном кодере приве дет к хорошему построению кодера. Например, заведомо плохо связы вать каждый из сумматоров с одними и теми же разрядами регистра.

В значительной степени надежность кодирования определяется со вокупностью кодовых расстояний между последовательностями, порож даемыми кодером.

Чтобы построить хороший сверточный код, нужно найти определя ющие коды, порождающие многочлены или матрицы, задающие связи между сумматорами и отводами регистра. Построение ведут исходя из получения максимального ЭВК, или минимальной ДКО l при заданном dmin, или минимальной вероятности сбоя символа. Поиск кодов осуще ствляют, как правило, перебором на ЭВМ. К настоящему времени най дено большое число сверточных кодов с самыми различными парамет рами для борьбы с различного рода помехами.

16. Трудоемкость – характеризует процесс декодирования сверточ ного кода и определяется числом вычислительных операций, затрачен ных на декодирование одного соответствующего блока принимаемой последовательности символов. Ясно, что если требуемое число опера ций в единицу времени при любом методе декодирования данного свер точного кода превышает быстродействие существующей вычислитель ной техники, то такой код не имеет практического интереса. В этом случае потребуется, в частности, снижение технической скорости пере дачи.

Рассмотрев целый ряд параметров и характеристик сверточных ко дов, перейдем к краткому обзору разновидностей этих кодов.

6. РАЗНОВИДНОСТИ СВЕРТОЧНЫХ КОДОВ 6.1. Систематические и несистематические коды Если в последовательности формируемых кодером кодовых симво лов можно отделить r = n – k избыточных символов от k информацион ных, то код называют систематическим. В систематическом кодере на k выходах будут информационные последовательности. На остальных n–k выходах – последовательности проверочных символов, формируемых как линейные комбинации информационных.

Первые k выходов систематического кодера соединены непосредствен но с первыми разрядами регистров. Коды Финка являются системати ческими, на рис. 2.5 показаны: а) – систематический, б) – несистема тический кодеры при скорости кода R = 1/2, т. е. при k = 1. Для кодеров с k = 1 при формировании систематических кодов один из порождаю щих многочленов либо G1(X) = 1, либо G2(X) = 1, чтобы информацион ная последовательность была частью выходной последовательности.

Систематические коды позволяют получить на приемной стороне оценку информационных символов, не производя декодирования или какой-либо иной обработки принимаемых символов. В кодовых несис тематических последовательностях информация непосредственно не содержится, они должны строиться так, чтобы при отсутствии ошибок ее можно было легко восстановить в декодере.

Достоинством несистематических сверточных кодов является то, что их минимальное свободное расстояние выше, чем у систематических при прочих равных условиях.

Таблица 6. Это объясняется тем, что систе Несистематический Систематический m матический сверточный код мож код – d код – d min min но получить из соответствующе 23 го несистематического, исключив 35 один из сумматоров по модуля 2, 46 что и приводит к уменьшению 57 минимального свободного расстояния кода.

В качестве примера (табл. 6.1) приведены максимальные значения минимального свободного расстояния для систематических и несисте матических сверточных кодов со скоростью R = 1/2 при различной дли не m сдвигающего регистра.

Однако несистематические сверточные коды, в отличие от система тических, могут быть катастрофическими.

6.2. Катастрофические сверточные коды Катастрофическим называется такой сверточный код, для которого конечное число ошибок, приобретенных в канале связи, может привес ти к бесконечному числу ошибок в декодированных символах.

Рассмотрим кодер несистематического сверточного кода (рис. 6.1, а), диаграмма состояний которого приведена на рис. 6.1, б, где четыре раз личных состояния кодера обозначены буквами a, b, c, d. Положим, что на данный кодер поступила последовательность информационных сим волов, соответствующая такой последовательности смены состояний кодера: abddd... dca.

а) б) Вход a 10 bc б) 01 d Выход Рис. 6.1. Кодер несистематического катастрофического кода (а) и его диаграмма состояний (б) Назовем ее истинным путем по диаграмме состояний кода. Тогда из диаграммы кодера (рис. 6.1, б) следует, что последовательность кодо вых символов, передаваемая по каналу связи, будет иметь вес равный 6, вне зависимости от того, сколько раз петля находится в состоянии d.

Если в канале связи четыре из шести единиц передаваемых кодовых символов исказились и были приняты как нули, то принятая последо вательность символов будет иметь меньшее расстояние Хемминга от нулевого пути, чем от истинного пути. Это приведет к тому, что при декодировании по минимуму расстояния Хемминга, т. е. по максимуму правдоподобия, нулевой путь будет выбран в качестве истинного. В результате при декодировании будет сделано произвольно большое чис ло ошибок. Таким образом, кодер, показанный на рис. 6.1, а, порожда ет катастрофический сверточный код.

Очевидно, кодер будет порождать катастрофический сверточный код тогда, когда на диаграмме состояний этого кодера будет замкнутый путь нулевого веса, соответствующий ненулевым кодируемым информаци онным символам. Для двоичных сверточных кодов со скоростью R = 1/n, для которых каждый сумматор имеет четное число связей, всегда будет петля с нулевым весом, соответствующая состоянию из всех единиц, т. е.

ненулевым информационным символам. Следовательно, все такие ко деры будут порождать катастрофический сверточный код. В общем слу чае необходимое и достаточное условие катастрофичности сверточного кода состоит в том, чтобы его порождающие многочлены имели общий делитель.

Например, для катастрофического кодера (рис. 6.1, а) с R = 1/2, l = порождающие многочлены G1(X) = 1 +X, G2(X) = 1 +X2. (6.1) Очевидно, что при этом каждый сумматор имеет четное число свя зей (по 2) и эти генераторы кода имеют общий множитель 1+X. Заме тим, что нулевая входная последовательность приводит к выходной пос ледовательности 000000…, в то время как входная последовательность, состоящая целиком из единиц, приводит к выходной последовательнос ти 11010000… Таким образом, две ошибки в первых символах приве дут к бесконечному числу ошибок в информационных символах, что очевидно является катастрофой [15].

Достоинством систематических сверточных кодов является то, что они не могут быть катастрофическими. Действительно, для системати ческого сверточного кода каждый замкнутый путь, соответствующий ненулевым кодируемым информационным символам, никогда не будет иметь нулевой вес, так как кодируемые информационные символы обя зательно присутствуют на выходе в неизменном виде.

Таким образом, при выборе структуры кодера сверточного кода по рождающие многочлены кода (т. е. связи со сдвигающего регистра на сумматоры по модулю 2) стремятся выбрать таким образом, чтобы по лучить некатастрофический код с максимальным минимальным свобод ным расстоянием. Такие коды должны быть несистематическими, и по рождающие их многочлены не должны иметь общих делителей. Для поиска структур таких кодеров широко используются ЭВМ.

6.3. Прозрачные сверточные коды В настоящее время при передаче цифровых данных в большинстве систем связи применяют фазовую модуляцию и когерентный прием. При двухпозиционной фазовой модуляции (ФМ-2) символ “1” передается с начальной фазой 0, при передаче символа “1” – с фазой. Опорная несущая, необходимая для когерентного приема в демодуляторах, выде ляется, как правило, из принимаемого сигнала. При этом в опорном генераторе может спорадически возникать неоднозначность фаз, что приводит к так называемой “обратной работе”, когда все символы “1” принимаются как “0”, а все символы “0” – как “1”, т. е. возникает эф фект негатива. Передача ФМ сигналов в каналах с неоднозначностью требует применения специальных мер для устранения негатива.

Впервые эту задачу решил Н. Т. Петрович в 1954 г., предложив ис пользовать в качестве опорного напряжения предыдущую посылку для демодуляции последующей. Автор назвал этот метод – относительной фазовой телеграфией (ОФТ) [28]. В дальнейшем это название транс формировалось в относительную фазовую модуляцию (ОФМ) и в фазо разностную модуляцию (ФРМ) [29].

Аналогичным способом, допускающим использование кодов, исправ ляющих независимые ошибки в канале с фазовой неоднозначностью, является внешнее относительное кодирование (рис. 6.2). При этом ко дер помехоустойчивого кода должен быть прозрачным для неоднознач ности, т. е. должен обладать свойством инвариантности (прозрачности) по отношению к операции инвертирования кода. Это означает, что если значения входных символов поменялись на противоположные, то ком бинированная выходная последовательность также инвертируется.

В этом случае в канале с ФМ-2 инверсия канальных символов, обус ловленная поворотом фазы опорной несущей на, должна приводить к инверсии всех декодированных символов на выходе декодера.

A( X ) Разностный Разностный A(X) кодер декодер A( X ) A'(X) Кодер Модулятор Канал Демодулятор Декодер Рис. 6.2. Способ передачи по каналу с неоднозначностью с внешним относительным кодированием Условия прозрачности сверточных кодов с R = 1/2, декодируемых по алгоритму Витерби, для двоичных кодов имеют вид (i) = 1, GS (6.2) S= где G(X) – порождающий полином;

– максимальная степень G(X);

i = 1;

2 – номер полинома G(X);

– знак суммирования по модулю 2.

Выражение (6.2) означает, что число единиц, в каждом порождаю щем многочлене (полиноме) двоичного сверточного прозрачного к ин версии кода, должно быть нечетным.

При этом последовательность на выходе кодера, состоящая сплошь из символов 1, порождает последовательность на выходе кодера, также целиком состоящую из символов 1. В этом случае обращение полярно сти всех символов на выходе декодера приводит лишь к обращению полярности символов на выходе декодера.

При использовании кодов такого типа сверточную систему кодиро вания – декодирования следует дополнить разностным (относительным) кодированием–декодированием, как показано на рис. 6.2. Это приводит к правильной полярности декодированных данных. Разностный кодер отображает последовательность данных A(X) в последовательность A'(X), в которой полярность символа, соответствующая символу 1 в A(X), ме няется по сравнению с предыдущим, а полярность символа, соответ ствующая символу 0 в A(X), остается неизменной.

Если в канале не меняется полярность передаваемой последователь ности, то восстановленная последовательность A( X ) совпадает с A'(X) (за исключением ошибок декодирования) и совпадает, конечно, с A( X ) A(X). Если в канале меняется полярность передаваемых данных, то при использовании прозрачного кода гарантируется, что последователь ность A( X ) будет совпадать с A'(X). Однако ввиду разностного кодиро вания исходных данных, последовательность A( X ) будет совпадать с A(X).

Таким образом, при использовании прозрачного кода полярность символов определяется автоматически в разностном декодере, имею щем две ячейки в регистре сдвига (рис. 6.2).

Заметим, что в разностном декодере одна выходная ошибка приводит к треку из двух ошибок (спаренные ошибки) на выходе разностного декодера (как и в методе ФРМ). Соответствующие потери составляют при этом всего 0,1…0,2 дБ [15].

В табл. 6.2 наглядно показано, что при поступлении на разностный декодер последовательности символов A( X), как в “позитиве”, так и в “негативе”, выходные последовательности A( X ) будут одинаковы.

Жирным шрифтом в последовательностях отмечены ошибки, A( X ) которые приводят в выходной последовательности к треку из двух ошибок.

Таблица 6. ПОЗИТИВ НЕГАТИВ 10110110010 A(X ) 10110110010 1101101011 A(X ) В табл. 6.3 приведены основные характеристики прозрачных свер точных кодов для каналов с ФМ и числом фаз М = 2 и 4 при скорости кода R = 1/2. Указаны значения входной длины кодового ограничения l (5.5), величины минимального кодового расстояния dmin (5.10) и асимп тотического ЭВК (5.21). Порождающие многочлены G(X) кодов пред ставлены в восьмеричной форме записи.

Таблица 6. № MR G1(X), G2(X) ld АЭВК, дБ min 1 13,15 4, 2 25,37 4, 21/2 4567 3 61,73 6, 4 133,171 6, 5 23,32 3, 6 41/2 212,113 588 488 6, 7 212,131 6, По величине АЭВК прозрачные двоичные коды не уступают в ряде случаев оптимальным кодам. Двоичные прозрачные коды используются и в каналах с многопозиционной ФМ [23].

6.4. Перфорированные сверточные коды Практическая реализация сверточных кодов со скоростями R = k/n встречает затруднения, особенно в случае больших скоростей передачи данных (несколько мегабит в секунду) [15]. Упрощение алгоритма об работки может быть получено при выборе кода с R = 1/n и “выкалыва нии” или удалении некоторых символов в выходной последовательнос ти для получения кода с R = k/n. В частности, кодовые последовательно сти требуемого кода с R = 2/3 могут быть получены из последовательно стей кода с R = 1/2 путем периодического вычеркивания (перфорации) символов. Полученный код будет иметь три символа на выходе декоде ра для каждых двух информационных символов, т. е. его скорость будет равна R = 2/3. Такие коды называются перфорированными.

Перфоратор Кодер Деперфоратор P p4 p3 p1 p4 p3 p p p4 p3 p2 p1 p4 p3 p2 p u p2 q3 q1 Q p2 q3 q q q3 q2 q q q3 q 0 Рис. 6.3. Образование символов перфорированного кода На рис. 6.3 показан процесс перфорации. При поступлении на вход кодера информационного символа u на его выходе образуется пара сим волов p и q. В перфораторе, состоящем из четырех тактируемых регист ров, производится такое преобразование последовательностей p и q в кодовые последовательности P и Q, при котором символы q2 и q4 на выходе отсутствуют. Четырем информационным символам на входе ко дера соответствуют восемь символов на его выходах p1p2p3p4 и q1q2q3q и шесть символов на выходах перфоратора p1p3p4 и q1q3p2. При этом скорость перфорированного кода 2/3. На приемной стороне необходимо К декодеру обратное преобразование и вместо вычеркнутых символов в ячейки ре гистра вписываются, например, нули.

Декодирование кодов, полученных перфорацией исходного кода со скоростью 1/2, можно производить декодером, рассчитанным на эту ско рость. Необходимо лишь предусмотреть правильную расстановку сим волов перфорации.

Перфорированные коды имеют почти те же характеристики, что и наилучшие известные коды, поэтому из-за своей простоты в ряде слу чаев они более предпочтительны.

6.5. Сверточные коды с различными алгоритмами обработки и конфигурациями исправляемых ошибок К настоящему времени разработано большое число различных свер точных кодов, обеспечивающих исправление ошибок различной кон фигурации. Разработаны коды, исправляющие случайные ошибки, ис правляющие одиночные и двойные ошибки, пачки ошибок, пачки оши бок с одновременным исправлением независимых ошибок [8, 14]. Пред ложен ряд алгоритмов декодирования сверточных кодов. Как правило, и коды, и алгоритмы получают название предложивших их авторов.

Первые непрерывные коды, исправляющие независимые ошибки, были описаны Элайесом (1955 г.) под названием конволюционных. Раз работка таких кодов ( под названием “рекуррентных”) была продолжена Килмером, который в работе 1961 г. рассмотрел пример непрерывного кода, обеспечивающего наименьшую вероятность ошибки, какую толь ко можно получить с помощью систематического кода с заданным ин тервалом взаимных связей между символами (выходной ДКО – lП).

Первый найденный класс сверточных кодов, исправляющих много кратные ошибки, составили самоортогональные коды Месси. Им же раз работан метод порогового декодирования [30]. Вайнер и Эш [13] нашли коды, исправляющие одиночные ошибки, и создали значительную часть математического аппарата теории сверточных кодов.

Последовательное декодирование предложил Возенкрафт [31]. Ана логичный алгоритм был предложен Фано. Нашим соотечественником Зигангировым был разработан алгоритм последовательного декодиро вания, получивший название стек- алгоритма [24]. Этот алгоритм во многих случаях лучше алгоритма Фано, он очень просто описывается и помогает проникнуть в существо различных принципиальных вопро сов последовательного декодирования. Основной недостаток последо вательного декодирования – чувствительность к пакетным ошибкам.

После введения Элайесом сверточных кодов встал вопрос о том, ка кие коды (сверточные или блоковые) потенциально лучше. Ответ на этот вопрос был дан Витерби в 1967 г., он получил верхние и нижние границы вероятности ошибки для сверточных кодов и с их помощью показал, что характеристики оптимальных сверточных кодов, как фун кции кодового ограничения, лучше соответствующих характеристик бло ковых кодов той же длины. Для получения этих границ Витерби ис пользовал алгоритм декодирования сверточных кодов, который, как ока залось, действует как алгоритм декодирования по максимуму правдо подобия. Этот алгоритм стал называться алгоритмом Витерби.

Сверточные коды, исправляющие пачки ошибок, как отмечалось в разд. 1, были предложены Финком, а затем Хегельбергером. В отече ственной технической литературе эти коды получили название Финка Хегельбергера [6]. В дальнейшем коды, исправляющие пачки ошибок, изучались Килмером, а также Вайнером и Эшем [13].

Их результаты были использованы Берлекэмпом и Препарата для по строения систематических сверточных кодов на базе теории матриц.

Месси предложил процедуру их декодирования, и эти коды получили название Берлекэмпа-Препарата-Месси (БПМ-коды). Позже, в 1966 г., Ивадари разработал аналогичные коды, которые несколько проще в ре ализации, чем БПМ-коды.

Для исправления случайных ошибок и пачек ошибок Коленбург раз работал так называемые диффузные коды, допускающие пороговое де кодирование, вклад в исследование которых в дальнейшем внес Тонг [8, 14].

Если на начальном этапе сверточные коды были лишь объектом тео ретических исследований, то в дальнейшем они стали применяться сна чала в сочетании с последовательным декодированием в космической связи, а затем в сочетании с пороговым декодированием в спутниковых системах передачи данных, системах морской радиосвязи и других сис темах.

7. СОГЛАСОВАНИЕ МОДЕМА И КОДЕКА Кодек помехоустойчивого кода состоит из кодера и декодера, систем синхронизации и устройств согласования с модемом (рис. 7.1).

Вход Выход Кодер Модулятор Канал Демодулятор Декодер Система синхронизации Система синхронизации Синхро- Синхро низация низация Рис. 7.1. Структурная схема модема и кодека Системы синхронизации формируют синхропоследовательности, необ ходимые для работы кодека и модема. Во многих случаях синхросигналы на приемной стороне выделяются из информационных последовательностей.

Помехоустойчивые кодеки используются с модемами различных ти пов. На рис. 7.2 показан пример согласования кодера (рис. 2.5, б) со скоростью 1/2 с фазовыми модуляторами ФМ-2 и ФМ-4.

Вход u1 u2 u3 u4 u кодера 1 0 1 1 t ( v12) v21) v22) v31) v32) v41) v42) v51) v52) v11) ( ( ( ( ( ( ( ( ( Выход кодера 1 1 1 0 0 0 0 1 t Выход 0 0 0 ФМ- t /2 3/ 0 3/ Выход ФМ- t ТС t ВС t Рис. 7.2. Временные диаграммы сигналов При использовании правила модуляции (00 0, 10 /2, 11 и 01 3/2) на выходе модулятора будет четырехфазный сигнал, причем каждому значению фазы соответствует пара символов на выходе кодера.

При использовании в модеме мягко го решения выход демодулятора кван S z p(z/S1) туют на Q уровней. При Q = 8 всю шка 7 лу значений сигналов разбивают на во S 6 семь зон и с помощью аналого-цифро 5 вого преобразователя (АЦП) преобразу 4 ют в двоичные трехзначные комбина 3 ции. На рис. 7.3 для ФМ-2 показаны положения сигнальных точек S0 и S1, 2 типичное расположение зон квантова S 1 ния с шагом, условные плотности рас 0 пределения вероятностей сигнала с по p(z/S0) мехой p(z/S0) и p(z/S1), а также двоичное Рис. 7.3. Диаграмма квантования представление квантованного сигнала отсчетов двоичных сигналов z0. Использование старшего разряда z дает жесткое решение.

Границы принимаемых ФМ сигналов определяются импульсами так товой синхронизации (ТС), а границы ветвей сверточного кода – им пульсами ветьевой синхронизации (ВС) (рис. 7.2). При выборе способа согласования кодека и модема необходимо учитывать неоднозначность фазы, возникающую при восстановлении несущей в демодуляторе.

Схемы кодеров сверточных кодов достаточно просты. Основное вни мание уделяется вопросам реализации декодеров и устройств, обеспе чивающих их работу.

Применение в кодеках быстродействующих СБИС открыло путь к использованию мощных сверточных кодов при обработке сигналов в реальном масштабе времени.

8. МЕТОДЫ ДЕКОДИРОВАНИЯ СВЕРТОЧНЫХ КОДОВ Развитие теории сверточных кодов происходило в трех направлени ях в соответствии с тремя важнейшими методами декодирования свер точных кодов: метода порогового декодирования [30], метода последо вательного декодирования [24, 31] и метода декодирования по максиму му правдоподобия (алгоритм Витерби) [17].

Метод порогового декодирования сверточных кодов в принципе ана логичен методу мажоритарного декодирования блоковых кодов [5]. До стоинством этого метода является простота алгоритма, а, следователь но, и реализующих его устройств. Число операций, необходимых для декодирования одного информационного символа, для этого алгоритма не превосходит некоторой постоянной величины.

Метод последовательного декодирования является методом вероят ностного декодирования, при котором число операций, необходимых для декодирования одного символа, является случайной величиной. При практически приемлемой сложности устройств метод последователь ного декодирования по своим характеристикам приближается к методу декодирования по максимуму правдоподобия.

Метод декодирования по максимуму правдоподобия теоретически более эффективен, чем метод порогового декодирования, однако слож ность устройств, необходимых для его реализации, возрастает экспо ненциально с ростом длины кода.

8.1. Метод порогового декодирования При пороговом декодировании сверточных кодов вычисляются синдро мы (признаки места ошибочных символов), затем эти синдромы или пос ледовательности, полученные посредством линейного преобразования син дромов, подаются на входы порогового элемента, где путем “голосования” (мажоритарный метод) и сравнения его результатов с порогом выносится решение о значении декодируемого символа. Основное достоинство этого метода декодирования – простота реализации. Однако он не полностью реализует потенциальные корректирующие способности сверточного кода.

Кроме того, не все сверточные коды могут быть декодированы этим мето дом. Чтобы сверточный код допускал декодирование пороговым методом, он должен обладать свойством ортогональности.

В принципе метод порогового декодирования сверточных кодов ана логичен методу мажоритарного декодирования циклических блочных кодов [5].

Общая схема декодера для сверточного кода (R = 1/2) представлена на рис. 8.1.

Исправленные символы Ключ Информационный регистр Вход Обратная связь Ключ Синдромный регистр Логическая схема Синхронизатор (мажоритарный элемент) Исправление Рис. 8.1. Общая схема декодера для сверточного кода Пороговое декодирование, как правило, применяется для системати ческих кодов. Декодер содержит аналог кодера, в котором по принимае мым информационным символам в сдвигающем регистре формируется копия проверочной последовательности. С этой целью синхронизатор декодера с помощью ключей 1 и 2 “расфасовывает” входную последова тельность символов на 2 потока – информационный и проверочный, синхронизатор управляет работой всего декодера.

В формирователе синдрома (сумматоре по модулю 2) образуется пос ледовательность синдромов S, которая поступает на вход синдромного регистра. В отсутствие в канале ошибок последовательности на входах формирователя синдрома всегда совпадают, и синдромная последова тельность состоит из одних нулей. Различным наборам ошибок соот ветствуют определенные конфигурации синдромных последовательно стей, в которых на определенных позициях появляются единичные сим волы. Закон формирования проверочных символов выбирается таким образом, чтобы по структуре синдромной последовательности можно было определить искаженные символы.

Логическая схема определяет по синдрому правильность записанно го в информационном регистре блока информационных символов. Если имеется комбинация ошибок, которая может быть исправлена, то логи ческая схема исправляет ошибки в этом блоке путем подачи единичных символов на выходную схему суммирования по модулю 2 в моменты выхода из информационного регистра искаженных символов.

Ошибки, исправляемые в очередном информационном блоке, могут влиять на символы синдромов, соответствующих последующим бло кам, поскольку сверточные коды непрерывны. Для того чтобы декодер смог полностью реализовать свои корректирующие возможности, сле дует исключить влияние этих ошибок. Это может быть достигнуто за счет обратной связи, которая на схеме (рис. 8.1) представлена пунктир ной линией.

Обратная связь преобразует синдромный регистр прямого действия в нелинейный регистр сдвига с обратной связью. Это может привести к явлению, называемому размножением ошибок. Неисправимые ошибки в канале могут вызвать переход синдромного регистра в такое состоя ние, что и при отсутствии аддитивных ошибок в канале декодер будет продолжать всегда декодировать неправильно. Причина этого состоит в том, что выход нелинейного регистра сдвига с обратной связью, когда на его вход поступает нулевая последовательность, а начальное состоя ние – ненулевое, может быть периодическим.

Известно несколько способов ограничения эффекта размножения ошибок. Возможен анализ числа ненулевых синдромов на длине кодо вого ограничения: когда число ошибок превышает корректирующую способность кода, анализатор отключает цепи коррекции синдрома.

Другой способ основан на использовании самоортогональных кодов, в которых распространение ошибок минимально. С этой же целью при меняют дефинитное декодирование, при котором обратная связь на син дромный регистр вообще не используется. Очевидно, что без обратной связи не будет размножения ошибок.

При пороговом декодировании используют, в основном, системати ческие коды. При скорости кода, отличной от 1/2, структура порогового декодера не отличается от описанной нами. Для практической реализа ции чаще всего выбирают самоортогональные коды, порождающие мно гочлены которых определяются на основе теории совершенных разно стных множеств. Подробные таблицы самоортогональных кодов приве дены в [14].

Методы порогового декодирования основаны на простых идеях, и они находят широкое применение на практике.

8.2. Метод последовательного декодирования Если простота алгоритмов порогового декодирования и, следователь но, простота их реализации стимулировали исследования сравнитель но коротких кодов и повышение их корректирующих способностей, то проводившиеся параллельно исследования методов последовательного декодирования имели одной из своих главных целей практическую реа лизацию теоремы Шеннона для канала с шумами [8].

При последовательном декодировании число операций, которое дол жен выполнить декодер, для того чтобы декодировать один символ, из меняется в зависимости от уровня шумов в канале. Число операций при последовательном декодировании является функцией скорости пе редачи и шумов в канале. При всех скоростях передачи, меньших опре деленной скорости, число операций при декодировании оказывается небольшим. Последовательный декодер строится по логической схеме, позволяющей проводить вычисления со средней скоростью, в несколь ко раз большей скорости передачи символов, и включает в свой состав буферное запоминающее устройство, предназначенное для хранения поступающих данных при повышении уровня шумов в канале. В слу чае если число возникших в канале ошибок превысит корректирую щую способность кода, при последовательном декодировании и других методах декодирования могут возникать ошибки. Однако при последо вательном декодировании ошибки могут возникать также и из-за того, что оказываются заполненными все ячейки памяти буферного запоми нающего устройства, т. е. из-за переполнения буфера. Если вероятность ошибки из-за переполнения буфера оказывается значительно больше, чем вероятность возникновения ошибки из-за невозможности испра вить или обнаружить ошибку, то именно она и будет определять харак теристики алгоритма последовательного декодирования.

При рассмотрении алгоритмов последовательного декодирования удобно представлять сверточный код в виде кодового дерева, которое для кодера (рис. 2.5, б) приведено на рис. 8.2.

Кодовое дерево строится следующим образом. Исходному нулевому состоянию сдвигающего регистра кодера соответствует начальный узел дерева. Если входной информационный символ, поступающий в регистр, равен 1, то ему приписывается линия a 00 a (ребро дерева), идущая, как принято на этом рисунке, вниз, а если инфор- 00 b мационный символ равен 0, – то c b вверх. Тем самым получаем два но d вых узла, соответствующие следую 10 c a щему такту работы кодера, для каж b дого из которых дерево строится да 01 d c лее аналогичным образом, и т.д. Над d каждым ребром дерева записывают a 11 a ся n кодовых символов, получаемых b при этом на выходе кодера. Совокуп 00 b c ность нескольких последовательных 1 d ребер, соединяющих какие-либо два узла, составляет ветвь дерева. Узлы, 01 c a соединенные одним ребром, называ b ются соседними. Для двоичных кодов 10 d c в общем случае из каждого узла де d рева будет исходить 2к ребер, каждо Рис.8.2. Кодовое дерево кодера му из которых сопоставлено n двоич (рис. 2.5, б) ных символов.

Коды, допускающие подобное представление с помощью кодового дерева, называются древовидными. Таким образом, сверточные коды относятся к древовидным.

Можно заметить, что рассмотренную ранее решеточную диаграмму кода можно получить из кодового дерева, если объединить те узлы де рева, после которых над соответствующими ребрами оказываются оди наковые кодовые символы. Эти узлы помечены на рис. 8.2 одинаковы ми буквами a, b, c, d и соответствуют состояниям кодера на диаграмме состояний (рис. 4.1).

Каждая последовательность кодируемых информационных символов порождает определенный путь по кодовому дереву. Например, инфор мационная последовательность 1001…. порождает путь по кодовому дереву, показанный штриховой линией на рис. 8.2, которому соответ ствует последовательность кодовых символов 11101111… Очевидно, за дача декодера заключается в отыскании истинного (правильного) пути, т. е. того пути, который в действительности был порожден кодером.

Таким образом, при алгоритмах последовательного декодирования декодер определяет наиболее правдоподобный путь по дереву, что по зволяет исключить из анализа большую часть остальных путей, имею щих меньшее правдоподобие.

Предположим, что задан некоторый сверточный код, и попытаемся по принятой последовательности определить передававшуюся после довательность. Для этого сначала необходимо передвигаться поочеред но вдоль каждого пути кодового дерева, сравнивая принятую последо вательность с последовательностью, соответствующей пути, по кото рому происходит движение. Если при этом удается обнаружить некото рый путь, которому соответствует последовательность, почти совпада ющая с принятой последовательностью, то естественно считать, что эта последовательность и передавалась. Метод последовательного де кодирования, предложенный Возенкрафтом [31], предусматривает вна чале поиск на кодовом дереве пути из m-го ребра (m – число разрядов регистра сдвига кодера), соответствующая которому кодовая последо вательность находится на каком-то определенном расстоянии от пере данной последовательности, и далее декодирование первого информа ционного символа. Первым переданным информационным символом считается первый информационный символ первого ребра найденного пути. Поскольку далее декодирование второго и последующих инфор мационных символов осуществляется точно так же, как и первого ин формационного символа, то этот алгоритм и был назван алгоритмом последовательного декодирования.

Одним из критериев близости пути на кодовом дереве к принятой последовательности является расстояние Хемминга между ними. Если расстояние Хемминга между последовательностями с длиной no, рав ной числу обработанных двоичных символов, не превышает опреде ленный порог Do, то последовательности можно считать совпадающи ми. В случае двоичного симметричного канала порог Do выбирается таким образом, чтобы вероятность того, что расстояние Хэмминга меж ду передававшейся и принятой последовательностями было больше чем Do, не превышало величины 2–L, где L – некоторая заданная постоян ная. При этом вероятность того, что расстояние Хемминга между пра вильным путем дерева и принятой последовательностью больше чем Do, при больших L оказывается чрезвычайно малой.

Предположим, что этот метод декодирования используется в двоич ном симметричном канале с вероятностью перехода p. Напомним, что в двоичном симметричном канале без памяти каждый переданный кодо вый символ может быть принят ошибочно с вероятностью р и правиль но с вероятностью q = 1–p, причем в случае ошибки вместо переданно го символа 0 на приемной стороне воспроизводится символ 1, или – наоборот. Для канала без памяти вероятность ошибочного приема сим вола не зависит от того, какие символы переданы до него и как они были приняты. На рис. 8.3 показаны вероятности перехода для двоич ного симметричного канала.

Поскольку в канале ошибки возникают независимо с вероятностью перехода р, то расстояние Хемминга d, вычисляемое вдоль правильного пути, как показано на рис. 8.4, почти всегда будет возрастать со скоро стью p с ростом числа обработанных символов n0. В то же время рассто яние Хемминга, вычисляемое вдоль любого другого пути кодового де рева, будет возрастать со скоростью 1/2, поскольку различные пути ко дового дерева отличаются друг от друга приблизительно в половине символов. Таким образом, расстояния Хемминга, вычисленные вдоль правильного и ошибочного пути кодового дерева, оказываются различ ными. При этом, даже если на начальном этапе декодирования путь кодового дерева был выбран неправильно, то через некоторое время ошибка будет обнаружена, поиск правильного пути будет продолжен и в конце концов правильный путь будет найден.

0 q = 1–p 0 Неправильный путь d (наклон 0,5) p Правильный путь p (наклон p) q = 1–p n Рис. 8.3. Вероятности Рис. 8.4. Зависимость расстояния переходов для двоичного Хемминга d от числа симметричного канала декодированных символов – n Этот алгоритм последовательного декодирования был обобщен Рейф феном [31] на случай произвольного дискретного канала без памяти.

Обобщение было сделано путем замены расстояния Хемминга на дру гую функцию (“перекошенное” расстояние [19]), являющуюся обобще нием расстояния Хемминга, которая была названа ценой пути.

Другим алгоритмом последовательного декодирования является ал горитм, предложенный Фано [32], который предусматривает вычисле ние и использование при декодировании наряду с ценой пути также некоторых порогов. Этот алгоритм является алгоритмом того же типа, что и алгоритм Возенкрафта, но для него среднее число операций, не обходимых для декодирования одного символа, не зависит от длины ко дового ограничения. Это упрощает анализ алгоритма Фано. Кроме того, достоинством алгоритма Фано является также то, что он допускает бо лее простую техническую реализацию. Поскольку сложность декодера Фано не зависит от длины кодового ограничения, то это позволяет ис пользовать его при больших ДКО, т. е. при малых вероятностях ошибки на декодированный символ. Подробное исследование количественных характеристик алгоритма Фано содержится в [8, 14–15].

Еще одним известным алгоритмом последовательного декодирова ния является алгоритм Зигангирова, предложенный в 1966 г., являю щийся алгоритмом декодирования по максимуму правдоподобия.

Этот алгоритм иногда называют стэк-алгоритмом (от английского stack – кипа, стопа), так как для его реализации требуется память боль шой емкости, содержимое которой постоянно упорядочивается опреде ленным образом, т. е. требуется “кипа памяти”.

В качестве метрики (расстояний Хемминга) путей по кодовому дере ву при этом алгоритме также используется функция правдоподобия пути (цена пути), но с добавлением элемента смещения, величина которого определяется исходя из скорости используемого кода и пропускной спо собности канала, путем оптимизации вероятности ошибки декодирова ния и среднего числа операций при декодировании одного информаци онного символа [24].

Количество вычислений на один декодированный информационный символ, которые производит декодер при данном алгоритме декодиро вания, является случайной величиной, что характерно для всех алго ритмов последовательного декодирования, так как все они являются вероятностными. Количество производимых декодером вычислений тем меньше, чем ниже уровень шума в канале, т. е. чем меньше вероятность ошибок при приеме кодовых символов в первой решающей схеме при емника. Для компенсации этой неравномерности вычислений при всех алгоритмах последовательного декодирования требуется включение бу ферного запоминающего устройства (ЗУ) между собственно последова тельным декодером и первой решающей схемой приемника. Однако в том случае, когда объем производимых вычислений оказывается очень большим (“всплеск вычислений”, соответствующий “плохому” состоя нию канала связи), возможно переполнение буферного ЗУ, что приво дит к отказу в декодировании. Это является недостатком всех методов последовательного декодирования. Однако сложность этих методов либо слабо, либо совсем не зависит от длины кодовых ограничений, что по зволяет использовать большую длину кодовых ограничений, а следова тельно, достигнуть большой эффективности корректирующего сверточ ного кода.

Для борьбы с отказами в декодировании при методах последователь ного декодирования, кроме очевидных способов увеличения объема бу ферного ЗУ и быстродействия декодера, можно через определенное за ранее число информационных символов, соответствующее с заданной вероятностью времени наступления отказа в декодировании, переда вать последовательность заранее известных символов, например последо вательность нулей. Тем самым декодер устанавливается на заведомо пра вильный путь по дереву. В случае наличия обратного канала возможна организация переспроса при наступлении отказа в декодировании.

Из-за присущей сверточным кодам непрерывности в обработке ин формации их синхронизация при декодировании осуществляется гораз до проще, чем при блочном кодировании. В частности, не требуется синхронизации по кодовым словам, без которой правильное декодиро вание блоковых кодов, как правило, невозможно. Однако для всех ме тодов декодирования сверточных кодов необходима надежная синхро низация по узлам кодового дерева (узловая синхронизация), т. е. синх ронизация по группам символов, соответствующих одному циклу опро са коммутатора кодера.

Структурная схема декодера Зигангирова будет выглядеть аналогич но схеме декодера Витерби (рис. 8.9) с той разницей, что на входе деко дера включено буферное ЗУ, куда поступают символы с первой решаю щей схемы приемника.

8.3. Метод декодирования по алгоритму Витерби Метод представляет собой декодирование по максимуму правдопо добия. Идея алгоритма Витерби состоит в том, что в декодере воспро изводят все возможные пути последовательных изменений состояний сигнала, сопоставляя получаемые при этом кодовые символы с приня тыми аналогами по каналу связи и на основе анализа ошибок между принятыми и требуемыми символами определяют оптимальный путь (оптимальной считается та последовательность, расстояние Хемминга которой от принятой последовательности минимально).

Декодирование по методу Витерби, по существу, представляет собой алгоритм поиска наивыгоднейшего, максимально правдоподобного пути на графе – решеточной диаграмме кода.

8.3.1. Декодирование в случае отсутствия ошибок при приеме Продемонстрируем работу алгоритма на примере несистематичес кого сверточного кода с маркировкой (2, 1, 3) с порождающими по линомами, задаваемыми выражением (3.6), кодер которого показан на рис. 2.5, б. Возьмем следующую последовательность символов и будем полагать, что все символы приняты без ошибок.

Рассмотрим графическое отображение q2q изменений состояния сигнала (рис. 8.5), 00 которое полностью соответствует диаг 11 рамме (рис. 4.1). Начальным всегда яв ляется состояние 00. В соответствии с 10 10 диаграммой переходов состояний сигнала (рис. 8.5) в первый тактовый момент воз 01 можны два перехода: 00 00 и 00 10.

Первому переходу соответствует на вы 11 ходе кодера кодовая комбинация 00, вто рому – 11.

Рис. 8.5. Диаграмма переходов При приходе на вход кодера первой состояний сигнала информационной 1 первой ветви 00 будут соответствовать две ошибки в приеме, а второй ветви 00 нуль ошибок. Ошибка по каждой ветви служит метрикой dH в смысле расстояния Хэмминга, т. е. соответствует числу отличающихся от тре буемых принятых символов. Эти метрики зафиксированы в узлах диаг раммы (рис. 8.6).

В момент времени 2 (второй такт) сигнал может принять 4 состоя ния, которые определяются двумя возможными переходами из 00 и дву мя переходами из 10. Сравнение с принятыми символами 01 дает следу ющие метрики соответствующих ветвей dН: 00 00dH = 1, 00 10dH = =1, 10 01dH = 0, 10 11dH = 2.

2 11 11 0 10 00 01 2 01 01 3 10 10 1 3 11 10 00 01 Рис. 8.6. Декодирование на основе алгоритма Витерби в отсутствие ошибок при приеме Суммарная метрика dН по каждому из возможных путей определя ется как сумма метрик составляющих его ветвей. Значения суммарных метрик показаны на диаграмме рис. 8.6. Для момента времени 3 следу ет анализировать уже 8 возможных путей и сравнивать 8 соответствую щих им метрик dH.

Алгоритм Витерби выбирает путь с наименьшей суммарной метри кой (“штрафом”) и может отбрасывать по ходу продвижения во време ни те пути, которые имеют штраф, превышающий минимальный “штраф” в данный момент времени на некоторую пороговую величину.

Для упрощения рис. 8.6 установлен пороговый уровень dH = 3 и не показываются ветви с большим значением dH. Оптимальным путем является путь с наименьшим “штрафом” ( при отсутствии ошибок в канале передачи символов dН = 0). Последовательность бит на выходе декодера, соответствующая этому пути, отмеченному на рис. 8.6 утол щением ветвей, совпадает с передаваемым информационным сигналом.

8.3.2. Декодирование в случае наличия ошибок при приеме Рассмотрим теперь случай, когда в канале связи возникли ошибки, например, при передаче первого и третьего информационного битов (на рис. 8.7 они обведены).

Теперь метрики первой и третьей ветвей оптимального пути не рав ны нулю и суммарная метрика оптимального пути dеН = 2. Однако как следует из рис. 8.7, оптимальный путь с наименьшей суммарной мет рикой восстанавливает передачу последовательности информационных 1 2 3 3 1 2 3 2 1 2 3 4 3 1 2 3 4 Принятые символы 0 1 10 1 0 01 Бит на выходе декодера 1 0 1 1 Рис. 8.7. Декодирование на основе алгоритма Витерби в случае приема с ошибками бит, т. е. использованный код исправляет ошибки. Разумеется, алго ритм Витерби не во всех случаях дает верный результат на выходе деко дера. На рис. 8.8 показан пример кода (2, 1, 3) для информационной последовательности, состоящей из всех нулей. При этом все символы на выходе кодера равны 0. Однако ошибки при приеме первых трех символов приводят к ошибке первого бита на выходе декодера.

2 3 3 2 2 2 2 0 2 2 0 2 3 1 0 1 2 3 4 5 6 7 Принятые 1 1 1 0 00 00 00 00 00 символы Бит на выходе 1 0 0 0 0 0 0 декодера Рис. 8.8. Декодирование на основе алгоритма Витерби нулевой последовательности при наличии ошибок на выходе Рассмотренный метод декодирования, когда в качестве метрики ис пользуют расстояние Хэмминга, называют декодированием с жестким решением. Здесь каждому символу на выходе демодулятора соответствует одно из двух значений: 0 или 1. Лучшие результаты в смысле восстанов ления исходного сигнала дает декодирование с мягким решением. В этом случае каждый символ на выходе демодулятора подвергают квантова нию (см. разд. 7). Для оптимизации приема сигнала в канале с гауссо вым шумом достаточно использовать 8-уровневые квантователи. При этом, например, уровню передачи логической единицы, будут соответ ствовать qi = 1– 4, а уровню передачи логического нуля qi = (–1) – (– 4) (возможно и наоборот). Величина квантованного уровня определяет доверительную вероятность полученного результата. Более высоким уровням (3;

4) соответствует более высокая доверительная вероятность.

При этом метрику отдельных ветвей вычисляют, суммируя совпадаю щие значения qi и вычитая несовпадающие.

При декодировании с мягким решением в качестве оптимального пути выбирают путь с максимальной суммарной метрикой, что соответству ет максимальной накопленной доверительной вероятности. Декодиро вание с мягким решением даже при трехкратной ошибке в приеме сим волов (рис. 8.8) может обеспечить оптимальный результат без ошибок на выходе декодера, что соответствует большей помехозащищенности канала связи, чем при использовании декодирования с жестким реше нием [27].

8.3.3. Схемное построение декодера Витерби Обобщенная структурная схема декодера, работающего по алгорит му Витерби, показана на рис. 8.9. Для каждого такта работы, соответ ствующего приему кодовых символов, полученных за один цикл опроса коммутатора кодера, вычислитель метрики ребер (BMP) вычисляет прав доподобие ребер, сливающихся в каждом узле. Например, в случае дво ичного симметричного канала с жесткими решениями он вычисляет Хеммингово расстояние между каждым из путей, сливающихся в лю бом узле, и соответствующей последовательностью принимаемых кодо вых символов, поступивших с выхода первой решающей схемы прием ника, выносящей жесткие решения о значении каждого принимаемого кодового символа.

Вычислитель метрики путей (ВМП), для каждого из путей, выжив ших на предыдущем такте декодирования и хранимых в ЗУ путей, осу Схема узловой Аналог синхронизации кодера ВМР ВМП С первой решающей схемы ЗУ метрики К получателю ЗУ путей путей Рис. 8.9. Структурная схема декодера Витерби ществляет следующие операции: вводит каждый из этих путей в аналог кодера, где генерируются 2q его возможных продолжений;

вычисляет правдоподобие каждого из этих продолжений, для чего суммирует мет рики выживших путей, хранимые в ЗУ метрики путей, с новыми вы численными значениями метрик ребер;

заносит вновь полученные пути в ЗУ путей, а их метрики — в ЗУ метрики путей, а затем отбирает из них пути, каждый из которых максимально правдоподобен для одного из узлов и сохраняет его в ЗУ путей, а его метрику — в ЗУ метрики путей. Затем эта же последовательность операций повторяется для сле дующего такта работы и т. д.

Важным достоинством декодера Витерби является то, что когда в результате воздействия шумов в канале связи или по другим причинам при декодировании сделана ошибка в выборе пути на решетчатой диаг рамме кода, т. е. выбран неправильный путь, то за несколько тактов, в течение которых могут происходить ошибки при декодировании, деко дер вновь выходит на правильный путь (рис. 8.10). Это позволяет на Правильный путь Отрезок неправильного пути Рис. 8.10. Случай выбора декодером Витерби отрезка неправильного пути чать процесс декодирования с любого момента времени, не заботясь о взаимной синхронизации кодера и декодера по началу работы. Действи тельно, отсутствие такой синхронизации эквивалентно нахождению де кодера на неправильном пути по решетчатой диаграмме кода. В силу этого свойства декодер, начав декодирование в произвольный момент, через несколько тактов сам выйдет на правильный путь, автоматически установив указанную синхронизацию.

Однако для всех методов декодирования сверточных кодов, как уже указывалось, необходима надежная синхронизация по узлам кодового дерева (узловая синхронизация), т. е. синхронизация по группам сим волов, соответствующих одному циклу опроса коммутатора кодера. Для этого можно использовать тот факт, что функция правдоподобия луч шего пути по дереву при правильной узловой синхронизации растет существенно быстрее, чем при ее отсутствии.

Эффективность сверточных кодов зависит от выбранного кода и ха рактеристики канала передачи. Итоговую оценку производят по вели чине коэффициента ошибок при заданном отношении сигнал/шум в канале и типе канала. Поскольку сверточные коды хорошо исправляют одиночные ошибки, но чувствительны к пакетам ошибок, то их обычно применяют вместе с перемежением передаваемых по каналу символов, как это делается в сотовых системах подвижной связи.

Интенсивно применяются сверточные коды и в спутниковых систе мах связи.

9. ПРИМЕНЕНИЕ СВЕРТОЧНЫХ КОДОВ В СОТОВЫХ И СПУТНИКОВЫХ СИСТЕМАХ СВЯЗИ Сверточные коды нашли широкое применение в сотовых и в спутни ковых системах связи.

Системы сотовой подвижной связи (ССПС) впервые стали эксплуа тироваться в конце 70-х – начале 80-х годов в Скандинавских странах (NMT-450) и США (AMPS). Сотовый принцип топологии сети с по вторным использованием частот в сотах во многом решил проблему дефицита частотного ресурса и в настоящее время является основным в создаваемых системах подвижной связи общего пользования. Стандар тизация в области ССПС привела к тому, что на смену девяти отдель ным аналоговым стандартам сотовой связи первого поколения пришли три цифровых стандарта второго поколения (GSM, D-AMPS, JDC), один из них – GSM признан “глобальным”.

В 1982 г. Европейская Конференция Администраций Почт и Элект росвязи, объединяющая администрации связи 26 европейских стран, создала специальную группу Group Special Mobile для разработки еди ного стандарта цифровой сотовой связи в диапазоне 900 МГц. Аббре виатура GSM и дала название новому стандарту. Позднее, в связи с широким распространением этого стандарта во всем мире, GSM стали расшифровывать как Global System for Mobile Communications (глобаль ная система для мобильной связи). Результатом работы этой группы стали опубликованные в 1990г. требования к системе сотовой связи стан дарта GSM, в котором используются самые современные разработки ведущих научно-технических центров. К ним, в частности, относятся временне разделение каналов, шифрование сообщений и защита дан ных абонента, использование блочного и сверточного кодирования с перемежением и т. п.

Каналы связи в стандарте GSM разделяются на физические и логи ческие. Физический канал образуется путем комбинирования времен ного (ВРК) и частотного (ЧРК) разделения сигналов.

До формирования физического канала сообщения данные, представ ленные в цифровом виде, группируются и объединяются в логические каналы двух типов:

– канал связи – для передачи кодированной речи и данных;

– канал управления – для передачи сигналов управления и синхро низации.

Кодирование и перемежение являются важными ступенями тракта обработки информационных цифровых сигналов и сигналов управле ния. В цифровых ССПС осуществляется преобразование аналогового речевого сигнала в цифровую последовательность, которая подвергает ся шифрованию и кодированию, что необходимо для защиты информа ции от ошибок в процессе передачи и приема. Для этого используются:

– блочное кодирование – для быстрого обнаружения ошибок при приеме;

– сверточное кодирование – для исправления одиночных ошибок;

– перемежение – для преобразования пакета ошибок в одиночные ошибки.

В цифровых ССПС кодируются все передаваемые по радиоканалу сигналы. В аналоговых ССПС кодируют цифровые сигналы управле ния.

При кодировании преследуют различные цели. Самый низкий уро вень имеет выявление (обнаружение) ошибок в полностью принятом сигнале. По сравнению с ним более высоким уровнем обладает обнару жение ошибок в отдельных сегментах сигнала, которое может быть вы полнено с помощью простых блоковых кодов, например, с проверкой на четность. В современных системах используют коды с исправлением ошибок. Это могут быть блоковые коды (каналы сигнализации в NMT 450, DECT ) и сверточные коды (GSM, системы с кодовым разделением – CDMA). Выбор кода определяет большое число факторов: характери стики каналов, скорость передачи, вид модуляции и т. п. Важное значе ние приобретает элементно-технологическая база. Применение быст родействующих процессорных СБИС открыло путь к использованию мощных сверточных кодов при обработке сигналов в реальном време ни. Сверточные коды хорошо исправляют случайные одиночные ошиб ки, но дают плохие результаты при пакетах ошибок. Поэтому сверточ ное кодирование и совмещают с перемежением (перетасовкой) инфор мационных символов, которое обеспечивает преобразование пакетов ошибок в одиночные.

В ССПС основные свойства речевых каналов и каналов управления значительно отличаются друг от друга. Для речевых каналов необходи ма связь в реальном масштабе времени с короткими задержками при сравнительно низких требованиях к вероятности ошибки в канале. Для канала управления требуется абсолютная достоверность данных и ис правление ошибок, но допускается более длительное время передачи и задержки.

В различных логических каналах используются различные сверточ ные коды, поскольку скорости передачи и требования по защите от оши бок также различны. Для упрощения процедур кодирования и декоди рования при формировании кодов используются только несколько по линомов. Это позволяет использовать в стандарте GSM сверточный код с одной скоростью R = 1/2. В ряде режимов для выравнивания скорости в речевом канале до R = 1/2 применяют прореживание, т. е. периоди ческий пропуск (перфорацию) кодированных символов. Поскольку слож ность декодирования по наиболее выгодному, с точки зрения реализа ции, алгоритму Витерби возрастает экспоненциально с увеличением длины кодового ограничения l, то типовые значения ДКО малы и лежат в интервале l = 3 – 10.

В стандарте GSM в речевом канале, в зависимости от скорости пере дачи сообщения, применяются следующие пары порождающих сверточ ный код многочленов (при R = 1/2):

3 4 2 3 4 G1(X ) = 1+ X + X ;

G2(X ) = 1+ X + X + X ;

G3(X ) = 1+ X + X.

2 4 4 3 G1(X ) = 1+ X + X + X ;

G2(X ) = 1+ X + X ;

G3(X ) = 1+ X + X + X.

В каналах управления цифровая последовательность подвергается кодированию сверточным кодом, который задается полиномами первой пары – G1(X) и.

G1(X ) На следующей ступени развития ССПС можно ожидать перехода к каскадному кодированию, например, внутреннему сверточному коди рованию и внешнему, устраняющему ошибки при декодировании свер точных кодов, блоковому, с исправлением пакетов ошибок. Разумеется, такое сложное кодирование требует большой избыточности, что фор мально снижает эффективность использования систем, но существен но повышает достоверность информации [27].

Сверточные коды и рассмотренные алгоритмы декодирования (в пер вую очередь – по максимуму правдоподобия, алгоритм Витерби) нахо дят основное применение в системах космической и спутниковой свя зи. Это объясняется тем, что каналы связи в этих системах близки по своим свойствам к каналам с белым гауссовским шумом, которые явля ются симметричными каналами без памяти. Для подобных систем ха рактерны жесткие ограничения по мощности передаваемого сигнала, поэтому для них важно осуществить наиболее эффективное кодирова ние и декодирование, позволяющее уменьшить вероятность ошибки на декодированный информационный символ при малом энергетическом потенциале [20].

Для существенного улучшения помехоустойчивости при использо вании сверточных кодов необходимо увеличивать скорость передачи символов, а следовательно, и ширину полосы, например, в 2 раза при относительной скорости передачи кода 1/2 или в 4/3 раза при относи тельной скорости 3/4. Таким образом, применение сверточных кодов оказывается особенно выгодным в спутниковых системах связи, энер гетический потенциал которых ограничивается мощностью бортового ретранслятора, т. е. в каналах, где определяющим фактором является ограничение мощности, а не полосы частот [16]. В системах с ограни ченной энергетикой кодирование позволяет уменьшить необходимое от ношение сигнал – шум, оптимальным образом распределить мощность ретранслятора между каналами и увеличить число каналов.

Большая задержка на трассах распространения в цифровых спутни ковых системах связи (ССС) не позволяет использовать для повышения верности системы с автозапросом (с обратным каналом), в которых коды служат для обнаружения ошибок. Поэтому в ССС и используются, в основном, сверточные коды, решающие задачу непосредственного ис правления ошибок.

Результаты расчетов вероятности ошибки для кодов со скоростью 1/2 и перфорированных кодов со скоростями 2/3 и 3/4, взятые из монографии “Цифровые методы в спутниковой связи” [23], показаны на рис. 9.1.

Там же приведены зависимости вероятности ошибки приема одного бита информации от отношения сигнал – шум ЕБ/N0 при фазовом мето де модуляции без применения кодирования (ФМ-2) и с применением сверточных кодов с различными порождающими многочленами, пред ставленными в 8-ричной форме записи. По кривым можно определить энергетический выигрыш от кодирования (ЭВК). Например, при ис пользовании сверточного кода (133,171) выигрыш составляет 5,4 дБ при вероятности ошибки 10–5.

Анализ показывает [23], что применение коротких сверточных ко дов, декодируемых по алгоритму Витерби с мягким решением, позволя ет получить ЭВК 4 – 6 дБ. Переход к жесткому решению снижает ЭВК примерно на 2 дБ. Квантование выхода демодулятора на четыре уровня снижает ЭВК на 0,7 – 0,8 дБ, а квантование на восемь уровней – на 0,25 дБ. Обычно ограничиваются квантованием на восемь уровней, ис пользуя практически полностью возможности мягкого решения.

3 4 5 6 7 8 ЕБ/N0, дБ 10– ФМ- 10– 10– (25,37,37,37) (133,171,133,171) (31,33,31) (133,171,133) (247,371) 10– ЭВК (133,171) 5,4 дБ (61,63) (25,35) p Рис. 9.1. Кривые помехоустойчивости декодирования сверточных кодов В настоящее время известны 4 наиболее крупных зарубежных про екта глобальных систем спутниковой персональной связи – Iridium, Globalstar (на низких орбитах), Odyssey и ICO (на средних орбитах), а также 2 проекта систем персональной связи на геостационарной орби те: Tritium-G (GEO-G) – глобальная связь с помощью трех искусствен ных спутников Земли (ИСЗ) и Tritium-R (GEO-R) – региональная персо нальная связь. В табл. 9.1 приведены данные для этих систем с относи тельной скоростью сверточных кодов и вероятностью ошибки при пе редаче данных [33].

Таблица 9. Наименование системы Iridium Globalstar Odyssey ICO GEO-G GEO-R Скорость сверточного кода 3/4 1/3 3/4 1/3 3/5 3/ Вероятность ошибки 5·10–6 10–6 10–5 10–5 5·10–6 5·10– при передаче данных К сожалению, ССС Iridium прекратила функционирование, запущен ные спутники сняты с рабочих орбит и уничтожены по причине банк ротства системы из-за первоначальной ошибки в расчете числа пользо вателей, способных закупать дорогостоящие терминалы системы.

В широко известной международной ССС ИНМАРСАТ также ис пользующей сверточные коды, в которых для передачи данных принята скорость кода 1/2 при длине кодового ограничения 7 и порождающих полиномах [35]:

2 3 5 G1(X ) = 1+ X + X + X + X, 2 3 G2(X ) = 1+ X + X + X + X.

В России в настоящее время разрабатывается проект многофункци ональной космической телекоммуникационной системы (МКТС) “Рос телесат” [34].

Система предназначена для передачи различного вида информации в цифровой форме через ИСЗ в глобальном масштабе с любыми стан дартными скоростями от 1,2 до 2048 кбит/c, а также для мониторинга земной поверхности.

В системе выбрана группировка из 24 ИСЗ с 4 орбитальными плос костями по 6 ИСЗ в каждой при высоте круговых орбит 10360 км.

МКТС “Ростелесат” является интегральной системой и включает в себя 3 взаимосвязанные функционально законченные системы: низко скоростную систему связи (НСС), высокоскоростную систему связи (ВСС) и систему мониторинга (СМ).

НСС обеспечивает непрерывную телефонную и другие виды цифро вой связи со скоростями до 64 кбит/c (телекс, факс, данные, пейджинг и др.) между подвижными и стационарными абонентскими станциями, а также абонентами наземных систем связи, находящимися в любых точ ках земного шара. На линии “Земля – Космос” и на линии “Космос – Земля” используется многостанционный доступ с временным разделе нием на ряде частот (ВРК/ЧРК). В обоих направлениях применяется каскадное кодирование при внутреннем – сверточном коде и внешнем – блоковом коде Рида-Соломона.

ВСС обеспечивает передачу между мобильными и стационарными абонентами со скоростями до 2048 кбит/c (связь между локальными вычислительными сетями, доступ к Интернету, дистанционное обуче ние и другие услуги мультимедиа). На линии “вверх” применяется свер точный код со скоростью 3/4 и длиной кодового ограничения 7;

на ли нии “вниз” – каскадное кодирование: внутренний код – сверточный со скоростью 3/4 и длиной кодового ограничения 7, внешний код – Рида Соломона (126,112).

Таким образом, изучение сверточных кодов необходимо для понима ния работы широкого спектра современных систем связи.

10. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ “СВЕРТОЧНЫЕ КОДЫ” Лабораторная работа выполняется на персональном компьютере и состоит из трех частей. Выполнение каждой последующей части стано вится возможным лишь при правильном выполнении предыдущей. Для того чтобы приступить к работе студент должен получить у преподава теля два номера варианта и ввести их на экране монитора в ячейки под символом “№”. При этом в соседних клетках отобразятся исходные дан ные для выполнения работы, а именно: порождающий полином в восьме ричной форме, скорость кода и минимальное расстояние по Хеммингу, соответствующие заданным вариантам.

Варианты представлены в следующей таблице:

№ 1 2 3 4 5 6 7 8 9 G1 7 17 37 35 33 47 65 73 147 G2 2 15 25 23 31 40 57 61 135 № 11 12 13 14 15 16 17 18 19 G1 345 371 753 7 17 37 75 171 367 G2 237 247 561 7 15 33 53 165 331 G3 – – – 5 13 25 47 133 225 Передвижение по ячейкам первого задания осуществляется нажати ем левой кнопки мыши, при наведенном на ячейку курсоре, или при нажатии клавиши “тab” на клавиатуре. Выделенная ячейка отобража ется мигающим в ней знаком “|”. При наведении курсора на заголовки параметров кода и характеристик кода высвечиваются интерактивные подсказки. После заполнения ответами всех ячеек для двух заданных номеров необходимо нажать кнопку “Проверить”. На экране под каж дым ответом высветится количество ошибок и суммарное их количе ство во всем разделе. При нулевом количестве ошибок программа авто матически перейдет к следующему заданию. Если ошибки были, необ ходимо их исправить и повторно нажать кнопку “Проверить”. Количе ство ошибок, допущенных при ответах, суммируется с каждой после дующей попыткой и отображается в графе “всего ошибок”.

Целью выполнение первого задания является правильное заполне ние ячеек соответствующими параметрами и характеристиками кодов, опираясь на материалы данного пособия. Обратим внимание на то, что значение коэффициента избыточности кода проставляется в десятич ной форме с округлением второго знака после точки.

Во втором задании “Построение кодеров сверточных кодов” необхо димо построить схему кодера, в соответствии с порождающими поли номами кодов. Связи в кодере задаются последовательным нажатием левой кнопки мыши на необходимом сумматоре по модулю 2 (кружок) и той ячейки регистра сдвига, с которой надо его связать. После задания всех связей нажимается кнопка “Проверить”. При устранении неверно поставленной связи процедура ее стирания аналогична (кружок сумма тора – ячейка регистра сдвига). Коммутатор на выходе кодера не пока зан. Номера контактов коммутатора соответствуют номерам суммато ров, высвечиваемым на экране монитора при установке курсора на кру жок сумматора.

В третьем задании надо определить последовательность символов на полной длине кодового ограничения при заданной базовой последо вательности 100000 для построенных кодеров из второго задания.

После выполнения всех трех заданий нужно показать преподавате лю экран выполненной работы для ее оценки.

На рисунке показан экран монитора при выполнении лабораторной работы для четырех порождающих полиномов, формирующих сверточ ный код.

КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Построение рекуррентного кода Финка, его характеристики и воз можности.

2. Кодирующие устройства кода Финка при различных значениях шага кода.

3. Примеры кодеров систематического и несистематического кодов.

4. Схемное построение кодеров для скорости 1/2, 1/3 и 2/3.

5. Представление сверточных кодов с помощью многочленов.

6. Обоснование названия “сверточные коды.” 7. Диаграмма состояний кодера сверточного кода (СК).

8. Решетчатая диаграмма кодера СК.

9. Определение характеристик СК: скорость, избыточность, память и длина кодового ограничения.

10. Маркировка, вес и кодовое расстояние СК.

11. Минимальное кодовое расстояние, корректирующая способность СК.

12. Мощность и энергетический выигрыш кода.

13. Определение систематических и несистематических кодов.

14. Характеристика катастрофических СК.

15. Характеристика прозрачных кодов.

16. Особенности применения перфорированных СК.

17. Характеристика алгоритмов обработки в декодерах СК.

18. Принцип декодирования по алгоритму Витерби.

19. Примеры применения СК и их возможности.

20. Достоинства и недостатки СК по сравнению с блоковыми кода ми.

21. Поясните принципы “мягкого” и “жесткого” декодирования СК.

22. Работа кодера, реализующего алгоритм Витерби.

23. Постройте схему кодера СК, заданного порождающими полино мами 15,17. Охарактеризуйте формируемый СК.

24. Определите полную длину кодового ограничения для СК с по рождающими многочленами 5,7;

4,5;

7,7,5 и приведите схемы кодеров.

25. Определите, какие из перечисленных ниже сверточных кодов со скоростью 1/2 являются прозрачными или катастрофическими:

1. G1(X) = X2, G2(X) = 1+X+X3.

2. G1(X) = 1+X2+X4, G2(X) = 1+X+X3+X4.

3. G1(X) = 1+X+X2+X4, G2(X) = 1+X3+X4.

4. G1(X) = 1+X4+X5+X6, G2(X) = 1+X+X3+X5.

26. Приведите маркировку порождающих многочленов п.25 в дво ичную и восьмеричную формы. Приведите рисунки соответствующих кодеров.

27. Методы декодирования СК.

28. Характеристика двоичного симметричного канала.

29. Применение СК в сотовых системах связи.

30. Применение СК в спутниковых системах связи.

31. Постройте схему кодера СК, заданного порождающими полино мами 23,35;

13,15,17. Охарактеризуйте формируемый СК.

32. Сопряжение кодеров СК с модемами.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Журавлев А. К., Никитин Г. И. Радиотехнические системы переда чи информации: Учеб. пособие / ЛИАП. Л., 1989. 86 с.

2. Никитин Г. И. Первичные коды: Метод. указ. / ЛИАП. Л., 1984. 28 с.

3. Никитин Г. И. Эффективные коды: Метод. указ. / ЛИАП. Л., 1987.

28 с.

4. Никитин Г. И., Антипова И. Б., Красновидов А. В. Корректирую щие коды: Метод. указ. / ЛИАП. Л., 1989. 32 с.

5. Никитин Г. И., Поддубный С. С. Помехоустойчивые циклические коды: Учеб. пособие / СПбГУАП. СПб., 1998. 72 с.

6. Харкевич А. А. Борьба с помехами. М.: Физматгиз, 1963. 276 с.

7. Питерсон У. У. Коды, исправляющие ошибки. М.: Мир, 1964. 340 с.

8. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки. М.: Мир, 1976. 600 с.

9. Колесник В. Д., Мирончиков Е. Т. Декодирование циклических ко дов. М.: Связь, 1968. 252 с.

10. Финк Л. М. Теория передачи дискретных сообщений. М.: Сов.

радио, 1963. 576 с.

11. Громаков Ю. А. Стандарты и системы подвижной радиосвязи. М.:

Эко-Трендз, 1998. 242 с.

12. Ильин В. А. Телеуправление и телеизмерение: Учеб. пособие для вузов. 3-е изд. М.: Энергоиздат, 1982. 560 с.

13. Вайнер Э., Эш Р. Анализ рекуррентных кодов. Кибернетический сборник. Вып. 5. М.: Мир, 1963.

14. Теория кодирования / Т. Касам., Н. Токура, Е.Ивадари, Я. Инага ки. М.: Мир, 1978. 576 с.

15. Кларк Д., Кейн Д. Кодирование с исправлением ошибок в систе мах цифровой связи. М.: Радио и связь, 1987. 392 с.

16. Спилкер Д. Цифровая спутниковая связь. М.: Связь, 1979. 592 с.

17. Витерби А. Д., Омура Д. К. Принципы цифровой связи и кодиро вания. М.: Радио и связь, 1982. 536 с.

18. Блейхут Р. Теория и практика кодов, контролирующих ошибки.

М.: Мир, 1986. 576 с.

19. Шварцман В. О., Емельянов Г. А. Теория передачи дискретной информации: Учебник для вузов связи. М.: Связь, 1979. 424 с.

20. Радиосистемы передачи информации: Учеб. пособие для вузов/ Под ред. И. М. Теплякова. М.: Радио и связь, 1982. 264 с.

21. Радиотехнические системы передачи информации: Учеб. посо бие для вузов/ Под ред. В. В. Калмыкова. М.: Радио и связь, 1990. 304 с.

Pages:     || 2 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.