Text
                    кодирование
информации
ДВОИЧНЫЕ коды


КОДИРОВАНИЕ ИНФОРМАЦИИ двоичные коды СПРАВОЧНИК Под ред. проф. Н. Т. Березюка Харьков Издательство при Харьковском государственном университете издательского объединения аВища школа» 1978
6Ф0.1 К57 УДК 681.32 Кодирование информации (двоичные коды). Березюк Н. Т., Андрущенко А. Г., Мощнцкий С. С. и др. Харьков. из- дательское объединение «Вища школа», 1978. 252 с. В справочнике рассматриваются вопросы кодирования двоичной информации. Приводятся основные понятия из теории информации и вычислительной техники. Подробно описываются различные двоич- ные коды, применяемые в дискретных устройствах переработки ин- формации, принципыд1Х построения, даны их классификация и срав- нительные характеристики. Содержатся практические рекомендации по выбору соответствующих кодов. . Справочник представляет интерес для инженерно-технических ра- ботников, нанимающихся разработкой и созданием устройств переда-1 чн информации, вопросами применения вычислительной и инфорыа-j ционной техники в АСУ. Табл, 47. Ил. 20. Список лит.1 157 назв. Рецензент д-р тртн- нюд^пррф Ф 4 Ктгр-оп |К11ИГА НТБ1 Редакция научно-техническои литературы Заа. редакцией Л. А. Гаврилова 30502—491 „о КМ226(04)—78 , 95“78 (^Издательское объединение «Вища школа», 1978,
ПРЕДИСЛОВИЕ Одна из важнейших научно-технических проблем на современном этапе — создание автоматизи- рованных систем управления и контроля для выпол- ’ нения различных задач. В процессе автоматизированно- го управления и контроля происходит интенсивный обмен информацией между отдельными частями систем, причем объем информации, а также скорости обработки и пере- дачи ее постоянно растут. Все более высокие требования предъявляются к достоверности передаваемых сообще- ний, что приводит к необходимости применять специ- альные меры, снижающие частость появления ошибок до некоторого допустимого уровня. Одной из наиболее действенных мер является исполь- зование помехоустойчивого кодирования. Поэтому во- просам кодирования уделяется значительное внимание со стороны советских и зарубежных исследователей и * инженеров. Появилась необходимость определенной си- стематизации работ и технических разработок, что, на наш взгляд, значительно облегчит выбор кодов, схем их реализации и декодирования при проектировании эле- ментов цифровой вычислительной техники, дискретных устройств автоматизированных систем управления. Это приобретает особое значение в свете решений XXV съез- да КПСС, где сказано о необходимости «... развивать производство универсальных и управляющих комплексов, а
периферийного оборудования, приборов, устройств регистрации и передачи информации для автоматизиро-. ванных систем управления технологическими процесса- ми и оптимального управления в отраслях народного, хозяйства». В предлагаемом справочнике приводятся принципы построения различных кодов. В первой главе даны ос- новные понятия, касающиеся теории информации и дискретных систем обработки информации и управления. Вторая, третья и четвертая главы посвящены анализу различных кодов, их классификации и сравнительным оценкам. Рассматриваются преимущественно двоичные коды, наиболее часто встречающиеся в практике при проектировании и эксплуатации дискретных устройств. Пятая глава содержит практические рекомендации по сравнительному анализу и выбору соответствующих ко- дов при проектировании дискретных устройств обработ- ки и передачи информации. Формулы имеют порядковую нумерацию внутри каж- дой главы, а рисунки и таблицы — сквозную нумерацию. Ссылки на литературу даются в квадратных скобках. Цифры в скобках указывают номер источника из списка литературы, помещенного в конце книги. Данный справочник в предлагаемом читателю объеме не претендует, разумеется, на исчерпывающее освеще- ние всех вопросов, связанных с кодированием и декоди- рованием информации. Авторы выражают благодарность д-ру техн, наук проф. Ф. А. Каткову, д-ру техн, наук проф. Н. С. Дани- лину и д-ру техн, наук проф. В. В. Свиридову за ценные замечания, которые способствовали улучшению содер- жания книги. Отзывы и пожелания просим направлять по адресу: 310003, г. Харьков, 3, ул. Университетская, 16, Издатель- ство при Харьковском государственном университете издательского объединения «Вища школа». 4
Глава 1 ОБЩИЕ СВЕДЕНИЯ / 1.1. Двоичная система счисления Как известно, любое n-разрядное число N с основанием т может быть представлено в виде суммы: N = , (1.1) 4=0 где ai — значение разрядного коэффициента i-го разря- да. Например, число 326 в привычной десятичной форме можно записать как _ , , Таблица 1 3 • 102 + 2 • 10' + 6 - 10° = 326. В двоичной системе счисле- ния основание т = 2, а в каче- Десятич- ное число Двоичное число 1 1 стве значений разрядных коэффи- циентов используются цифры 0 и 1. 2 10 Число 100110 записывается 3 Й 11 101 111 согласно (1.1) как 7 1.25 + 0 • 24 + 0 • 23 + 1 • 22 -f- 9 13 1001 1101 + 1 . 2' + 0 • 2°. 15 1111 В табл. 1 приведены примеры записи произвольного ряда десятичных чисел в двоичной системе счисления. По сравнению с другими системами счисления в дво- ичной системе наиболее просто реализуются процессы выполнения арифметических операций над числами. В табл. 2 показаны правила выполнения операций сло- жения, вычитания, умножения и Деления одноразрядных двоичных чисел.
Довольно часто в двоичной системе применяют так называемое сложение по модулю два. Знак сложения в этом случае обозначается ф . Таблица 2 Сложение Умножение 1 Выч втайне Деление 0+0 = 0 0X0 = 0 0 — 0=0 0| 1 =0 0+1 = 1 1+0=1 1+ 1= 10 0X1=0 1 X 0 = 0 1x1 = 1- 1—0= 1 1 — 1 = 0 0-1=1* 111 = 1 * Занимается 1 из старшего разряда. Правила сложения по модулю два записываются в следующем виде: 0ф0=0 0ф1 = 1 1ф0=1 (1.2) 1 ф 1 = 0. Например, при' сложении по модулю два двоичных чисел 1101101 и 1001111 получаем 1101101 Ф 1001111 оюоою. Операция вычитания по модулю два происходит по сле- дующим правилам: о-о = о 0—1=1 1—0=1 (1.3) 1 — 1=0. Сравнивая (1.2) и (1.3), можно убедиться в том, что обе операции дают один и тот же результат. Поэтому обычно применяют только операцию сложения по моду» лю два. 6
В дальнейшем при изложении материала сложение двоичных чисел .производим только по модулю два. Это относится также к случаю умножения и деления их, так как все промежуточные операции выполняются путем сложения по модулю два. Пример таких арифметических действий приведен в табл. 3. Таблица 3 Сложение Умножение Деление 10110 + 1010 11100 10111 X 1010 10111 10111 10010110 100011 ш 111 П01- 110 111 111 1.2. Сведения из теории матриц . Пусть имеются два равенства, в которых коэффициенты а^-числа [3,111] fi = «цЫ1 + а12«2; vz = = «21W1 + «22^2- Рассматриваемое преобразование характеризуется таб- лицей коэффициентов которая называется мат- рицей. Например, для t>i = 1 • U\ 4- Оыг, о2 = Ouj + 1иг Г1 0] матрица а равна q । . Даны два преобразования аир, характеризующиеся соответственно матрицами Матрица, определяющая преобразование ар, иначе говоря, матрица произведения у, имеет вид Till Т121 _. “llPll + я12р21 «11Р12 + «12P22I [pi 722J .а21Ри + аггРг] «21Р12 + 0.22^22] •
Легко заметить правило образования элементов ма- трицы произведения ар на приведенном примере произ- ведения двух матриц, имеющих по две строки и два столбца. Каждый элемент строки матрицы а умножают на соответствующий элемент столбца матрицы р, и полу- ченные произведения складывают. Например, элемент у 12 матрицы произведения, находящийся на пересечении первой строки и второго столбца, является суммой про- изведения первого элемента первой строки матрицы а на первый элемент второго столбца р и второго элемента той же строки а на второй элемент того же столбца р: т.— Понятие произведения двух матриц приложимо не только к квадратным, ио и к прямоугольным матрицам. Однако важно отметить, что произведение матриц имеет смысл только в том случае, если число столбцов одной матрицы равно числу строк другой. Если в качестве элементов перемножаемых матриц служат только символы 0 и 1, то операции умножения двух прямоугольных матриц производятся по следую- щим правилам. 1. Матрица произведения должна содержать число строк и столбцов, равных максимальным числам строк и столбцов перемножаемых матриц. Например, произве- дение матриц 15 строк ац<Х12 . • • . Я]б (Z21 а22 • • • • ®25 ₽11Р12 . . . ₽17 Р21Р22 . . • ₽27 5 строк X СЦ51&1Е2 * " • PBjPsj • • • Р07 5 столбцов 7 столбцов 8
дает матрицу 7ПТ12 . • • Т17 Т21Т22 . . . Т27 • • • • • • T15J152 • .Т157 1 15 строк. 7 столбцов 2. Каждый столбец матрицы произведения получается путем сложения по модулю два тех столбцов матрицы, имеющей наибольшее количество строк, номера которых совпадают с номерами строк, где расположены единицы соответствующего столбца матрицы, имеющей наиболь- шее количество столбцов. Пример. Умножить матрицу Mt на матрицу М2, где Mt = 001 010 011 0001111 I 100 М2 = 0110011 1 101 по 111 1010101 1 Первый столбец матрицы произведения равен третьему столбцу матрицы Mt, так как первый столбец матрицы М2, содержащий наибольшее число столбцов, равное 7, имеет единицу в третьей строке. Аналогично второй столбец матрицы произведения будет равен второму столбцу матрицы Mt в связи с тем, что второй стол- бец матрицы М2 имеет единицу только во второй строке. Третий столбец матрицы произведения равен сумме по модулю два второго и третьего столбца матрицы Mt, так как третий стол- бец матрицы Ма содержит единицы во второй и третьей строках: 1 О О 1 1 о 1 1 о 1 1 1 1 О 1 1 О
Аналогично находим остальные четыре столбца матрицы произ- ведения М. Таким образом получим матрицу М произведения двух матриц — Mi и Л18: 001 010 Oil 100011111 1010101 0110011 1100110 М = Mi X Ms = 100 X 0110011 = 0001111 101 1010101| 1011010 по 01И100 111 1101001 Рассмотрим прямоугольную матрицу. Общий элемент - ее atk находится на пересечении строки i и столбца k: anai2 . . . a-ik • • • ain алай • . • a-ik • • • ain ®nlan2 • • • • • <Х«л Элементы а1Ь агг, .... atk.....апп, расположен- ные по нисходящей диагонали слева направо, образуют главную диагональ матрицы. Диагональной называется матрица, все элементы ко- торой равны нулю, кроме тех, что расположены на главной диагонали. Например, матрица 0^0 диагональна. Единичная матрица — это диагональная матрица, все элементы которой равны 1. Например, матрица в три 100 ою 001 Транспонированной матрицей называют матрицу, которую можно получить из матрицы а, заменив строки столбцами. Обозначим ее через а”. Тогда а}* = ац. На- 101 единичная. столбца и три строки пример, матрица ат = ПО 010 10
явЛяется транспонированной по отношению к матрице I ио * а =011 . 1100 Приведенные сведения ‘о матрицах в дальнейшем используются при построении кодов. 1.3. Некоторые сведения из теории вероятности На практике очень часто приходится сталкиваться с опытами (испытаниями, наблюдениями, событиями), дающими различные результаты в зависи- мости от условий (обстоятельств), которых мы не знаем или не можем учесть. Применение математики к изучению таких явлений опирается на следующую закономерность. Во многих случаях при многократном повторении одного и того же опыта в одних и тех же условиях частота появления рас- сматриваемого результата (т. е. отношение числа опы- тов, в которых этот результат наблюдался, к общему числ$ производимых опытов) остается все время пример- но одинаковой, близкой к некоторому постоянному чис- лу. Это постоянное число называют вероятностью рас- сматриваемого события и обозначают буквой Р. Фор- мула для непосредственного подсчета вероятности имеет вид [98, 148] Р = , (1.4) где N— общее число равновозможных и несовместимых случаев (исходов) ; п — число благоприятствующих слу- чаев; Р — вероятность совершения благоприятного слу- чая. Обычно вероятность достоверного события прини- мается равной единице, а невозможного события — нулю. Тогда для любого события 0 < Р < 1.
Независимые события — это такие события, иа осу- ществление одного из которых не влияет осуществление других. Так, независимы события, состоящие в извлече- нии черного шара из двух различных урн, содержащих белые и черные шары. Однако два последовательных извлечения черного шара из одндй урны (без возвраще- ния вынутого шара в урну) не представляют собой неза- висимые события, поскольку результат первого извлече- ния влияет на число оставшихся в урне черных шаров и, следовательно, отражается на условиях второго опыта. Пусть событие А реализуется при П] из Ni равнове- роятных исходов первого опыта, а независимое от него событие В — при «2 из N? равновероятных исходов второго опыта. В этом случае вероятность события А П. „ П2 равна а вероятность В равна —. сложный опыт, состоящий в том, что производятся оба наши опыта. Очевидно, что данный сложный опыт может иметь NiN? различных равновероятных исходов, посколь- ку каждому из М исходов первого опыта могут отве- чать Л^2 различных исходов второго опыта. Из этих NiN2 равновероятных исходов сложному событию АВ будут благоприятствовать П!«2 исходов, которые получаются, если комбинировать nt исходов первого опыта, благо- приятствующих событию Д, с «2 исходами второго опыта, благоприятствующими событию В. Такимобразом, а Л.Пл rt1 ^2 вероятность события АВ выразим как • — и, значит, Р (АВ) = Р (Л) Р (В). (1.5) Эту формулу можно обобщить следующим образом. Пусть Ль Д2, ... , Ak— какие-то k взаимно независи- мые события. В этом случае РИь .............ДЛ)=Р(Д1)Р(Д2)... P(Ak). (1.6) * 12
Если события зависимы, то после наступления одного из них, например А, вероятность другого будет отли- чаться от его вероятности Р(В), вычисленной без учета наступления события А. Вероятность события В при условии, что уже произошло событие Л, называют услов- ной вероятностью и обозначают Ра(В) или Р(А/В). Поэтому формула для вероятности одновременного на- ступления двух зависимых событий должна быть запи- сана в виде [148] Р (А, В) = Р (А) РА (В). (1.7) Например, вероятность вынуть два белых шара из урны, в которой находятся два белых и три черных шара, равна произведению вероятности вынуть белый шар первый раз (событие Д) на вероятность вынуть белый шар второй раз (событие В) при условии, что первым был белый шар (произошло событие Д), т. е. Р (Д, В) = = 24 • = Vio- Из формулы (1.7) следует выражение ^(В) = ^^-. (1.8) 1.4. Элементы теории информации В природе многие процессы связаны с передачей, преобразованием и хранением, информации. Обычно под информацией понимаются те новые сведе- ния об окружающем мире, которые мы получаем в ре- зультате взаимодействия с ним, приспосабливаясь к нему и изменяя его в этом процессе приспособления. Комитетом научно-технической терминологии Академии Наук СССР рекомендуется следующее определение: «Информация — это сведения, являющиеся объектом хранения, передачи и преобразования». Во многих случаях нужно уметь определять количе- ство информации. В 1927 г. Р. Хартли (Англия) пред-
ложил и обосновал количественную меру информации, которая явилась отправной точкой теории информации. Эта мера информации записывается так [43, 124]: I = logN, (1.9) где I — количество информации; N — общее число сооб- щений, которое может быть составлено из п элементов, каждый из которых имеет т возможных состояний, т. е. N =тп. Формулу (1.9) можно представить в виде I—n\ogm. (1.Ю) Наиболее удобен выбор основания логарифма, рав- ного двум. При этом за единицу количества информации принято считать информацию сообщения, содержащего один элемент (п=1), который может принимать два равновероятных состояния (т=2). Действительно, 1=1 • log22=l бит (дв. ед). В случае одинаковой вероятности всех сообщений N, вероятность каждого сообщения Р = Мл. (1.11) Тогда количество информации можно выразить через вероятности поступления сообщений: / = 10g2 N = log2 -р- = — log2 Р . (1.12) Если сообщения неравновероятны и независимы друг от друга, то пользуются понятием средней информа- т ции [46]: /ср =— n^Pilo&Pt, где Pi— вероятность 1-го сообщения. Средняя информация на один элемент сообщения называется энтропией: Я* _ SP{log2Pt. (1.13)
Величина Н представляет собой меру беспорядочно- сти состояния источника сообщений и характеризует среднюю степень^ неопределенности состояния этого источника. В случае, когда все т различных состояний источника равновероятные, т. е. А = х1т , энтропия максимальна: т ~ log2 ± = - т ± log2 ± = log,m. 4=1 (1.14) Если сообщения неравновероятны, среднее количест- во информации, содержащееся в одном сообщении, будет Пример. Пусть передается текст, в котором использованы 32 буквы алфавита (N = 32). Если все буквы равновероятны н вероятность появле- ния любой из букв не зависит от предыдущего текста, количество ин- формации, приходящееся на одну букву, ^мако = lo62w = log232 = 5 бит. Пример. Имеем источник сообще- ний» с двумя состояниями (W = 2). — вероятность одного состояния; Р3— вероятность другого состояния. Тогда, учитывая, что /\-|-Р8 = 1, по, Рис. 1. Энтропия Н в слу- чае возможных состояний с вероятностями Pi и 1 -Pf. я =— 2 pt ад = - [A log./*! + (1 - (ад)1 • о-15) <=1 Задаваясь величиной Р± = 0-т-1, можно вычислить H — Из рис. 1, где приведена эта зависимость, видно, что знтропия макси- мальна, если Pi = Р2 = 0,5, т. е. когда оба события равновероятны. Энтропия, а следовательно, и количество информации равны нулю (Я=0), когда А=0 или Pi=l. Действи- тельно, если достоверно известно одно из состояний
источника, то сообщение об этом не несет никакой ин- формации. Количество информации, определяемое по формуле (1.15), представляет собой среднее количество информации, приходящееся на один элемент сообщения. В общем случае, когда вероятности отдельных состо- яний разные и взаимозависимые, количество информа- ции определяется формулой, выражающей условную энтропию [46, 114]: т т <!, i) iog2P/(0. (1.16) i=l z=l где P (i, I) — совместная вероятность t-го и /-го. состоя- ний; P/(t) — вероятность t-ro состояния при условии, что ему предшествовало j-e состояние. 1.5. Структурная схема передачи информации Специфика различных областей примене- ния систем передачи информации требует различного подхода к реализации таких систем. Система передачи по телефонным каналам связи, например, совершенно не похожа на систему космической связи или тропосфер- ной ни по техническому исполнению, ни по параметрам. Однако в принципах построения и назначении отдель- ных устройств самых разных систем много общего'. В об- щем случае схема системы передачи информации пока- зана на рис. 2 [109, НО, 136, 146, 147]. Можно передавать самые различные по физической природе сообщения: цифровые данные, полученные от ЭВМ, речь, тексты телеграмм, команды управления, результаты измерений различных физических величин. Естественно, что все эти сообщения предварительно должны быть преобразованы в электрические колебания, сохраняющие все свойства исходных сообщений, а затем унифицированы, т. е. представлены в форме, удобной
для последующей передачи. Под источником информации на рис. 2 понимается устройство, в котором выполнены все названные нами ранее операции. Для более экономного использования линии связи, а также для уменьшения 'влияния различных помех и искажений пе^даваемая от источника информация мо- жет быть в дальнейшем преобразована с помощью Рис. 2. Структурная схема передачи информации. кодирующего устройства. Это преобразование, как пра- вило, состоит из ряда операций, включающих учет ста- тистики поступающей информации для устранения избы- точности (статистическое кодирование), а также введе- ние дополнительных элементов для уменьшения влияния помех и искажений (помехоустойчивое кодирование). В результате ряда преобразований на выходе коди- рующего устройства образуется последовательность эле- ментов, которая с помощью передатчика преобразуется в форму, удобную для передачи по линии связи. Линия связи — это среда, по которой происходит передача сиг- налов от передатчика к приемнику. Учет влияния среды необходим. В теории передачи информации часто встре- чается понятие «канал связи» — это совокупность средств, обеспечивающих передачу сигналов.
На вход приемника, кроме сигналов, прошедших сре- ду, попадают также различные помехи. Приемник выде- ляет из смеси сигнала и помех последовательность, кото- рая должна соответствовать последовательности на выходе кодирующего устройства. Однако из-за действия помех, влияния среды, погрешностей различных преоб- разований полное соответствие получить невозможно. Поэтому такая последовательность вводится в декоди- рующее устройство, которое выполняет операции по ее преобразованию в последовательность, соответствующую переданной. Полнота этого соответствия зависит от ряда факторов: корректирующих возможностей кодированной последовательности, уровня сигнала и помех, а также их статистики, свойств декодирующего устройства. Сформи- рованная в результате декодирования последователь- ность поступает к получателю информации. Естественно, что при проектировании систем передачи информации всегда стремятся обеспечить такие условия работы, что- бы отличие информации, получаемой от источника, от информации, передаваемой получателю, было невелико и не превышало некоторой допустимой величины. В дан- ном случае основным показателем качества передачи является достоверность передачи информации — степень соответствия принятого сообщения переданному [5, 6]. Численно достоверность передачи информации харак- теризуется коэффициентом ошибок: N Яош=-^. (1.17) где NOm — количество неверно принятых сообщений; N — общее количество переданных сообщений. При увеличении N коэффициент ошибок стремится к вероятности ошибочного приема или просто к вероят- ности ошибки: N РОш = Ит-^. (1.18) Л
1.6. Помехи и ошибки в каналах связи При передаче по каналу связи информа- ция подвергается воздействию различного рода помех: широко известные флуктуационные, гармонические и импульсные помехи. Рис. 3. Различные виды помех. Флуктуационная помеха представляет собой напря- жение, меняющееся во времени случайным образом (рис. 3, а). Причина появления ее—тепловые шумы линии, элементов аппаратуры и т. д. Гармоническая по- меха (рис. 3,6) приближенно описывается синусоидаль- ным колебанием: t/noM=Vsin(co/+<p)- Эти помехи возни- кают, как правило, в самой аппаратуре из-за паразитного проникновения в канал различных несущих колебаний. Импульсной помехой называется помеха, пиковое значение которой соизмеримо с амплитудой полезного сигнала или превышает ее. Типичный вид одиночной импульсной помехи показан на рис. 3, в. Импульсные помехи обычно появляются пачками, по нескольку помех в пачке (рис. 3, е). Характер процесса появления пачек
во времени и отдельных помех внутри одной пачки существенно изменяется от канала к каналу и даже в одном канале в различные периоды времени [16—18, 33, 48, 50, 115, 116, 120, 121]. По типу источников импульсные помехи можно раз- делить на три основные группы: естественного проис- хождения, промышленные, возникающие в аппаратуре. К помехам естественного происхождения в первую очередь следует отнести атмосферные помехи, основным источником которых являются грозовые разряды, хаоти- чески возникающие во многих участках земного шара. Каждый такой разряд создает несколько мощных им- пульсов электрического тока. Источники промышленных помех многочисленны. К ним относятся различные коллекторные электрические машины, двигатели, аппараты, линии электропередачи, электросварка. Кроме классификации Помех по характеру воздейст- вия на передаваемое сообщение, их классифицируют по поведению во времени. Флуктуационные и гармониче- ские помехи действуют непрерывно в течение длинных отрезков времени. Их можно назвать постоянно дейст- вующими. В отличие от них импульсные помехи дейст- вуют на сигнал только в отдельные моменты. Помехи такого типа называются сосредоточенными во времени. В результате действия помех в канале связи инфор- мация, передаваемая по этому каналу, искажается, при- нятое сообщение будет отличаться от переданного, т. е. сообщение принимается с ошибкой. Возникновение оши- бок— случайный процесс, и предсказать появление их заранее, до эксперимента, можно только статистически, т. е. указывая вероятности того, что ошибка либо произойдет, либо нет. При этом вероятность ошибки может не зависеть от значения передаваемого элементар- ного символа 0 или 1, т. е. среди неправильно принятых сигналов одинаково часто встречаются как 1, так и 0. 20
Канал связи с такими ошибками называется симметрич- ным каналом. Условно такой канал показан на рис. 4. Здесь входными являются символы 0 и 1. Возможными выходными символами также будут 0 и 1. Вероятности Pi, Р2 определяют вероятность неискаженной передачи Рис. 4. Канал с искажениями символов 0 и 1. Рис. 5. Канал со стиранием символов. символов 0 и 1 соответственно, а вероятности (1 — Pi), (1—Р2)—вероятность трансформации символов. При Р1==Р2 канал является симметричным. Другим примером канала связи с помехами может служить так называе- мый канал со стирани- ем (рис. 5). На вход такого канала поступа- ют двоичные символы, которые с вероятно- стью Р передаются правильно и с вероят- „ _ „ г Рис. 6. Канал со стиранием и тран- НОСТЫО (1 Р) СТИра- сформацией символов. ются (стертые симво- лы условно обозначены через х). Таким образом, если на вход канала поступают символы 0 и 1, то на выходе получаются три различных символа: 0, 1, х. В этом канале предполагается отсутствие трансформации сим- 21
ГЧ.Ч волов. Такое предположение на практике не всегда оправдывается. Поэтому используется модель стираю- щего канала, в которой допустима трансформация сим- волов (рис. 6). Если условия передачи ряда последова- тельных символов не зависят один от другого, то такой канал называется каналом без памяти. Если же условия передачи символа зависят от предыдущих состояний канала, канал называется каналом с памятью. Экспериментальные исследования каналов связи [16, 60, 67, 69, 74], произведенные в СССР и за рубежом, по- , казали, что ошибки символов при передаче по каналу связи, как правило, группируются в пачки (пакеты) различной длительности. Пачкой ошибок называется участок последовательно- сти, начинающийся и кончающийся ошибочно приняты- ми элементами. Внутри пачки могут быть и правильно принятые элементы. Например, если в процессе передачи последовательности 0110100111 последняя приобретает вид 0010101001, то говорят, что она поражена пачкой ошибок длиной в восемь разрядов. Здесь поражены вто- рой, седьмой, восьмой и девятый разряды. Сказанное ранее позволяет сделать вывод о том, что в результате действия помех в каналах связи при пере- даче сообщений возникают ошибки. В зависимости от количества разрядов передаваемой последовательности, принимаемых с ошибками, различают однократные, дву- кратные и т. д. ошибки. Кроме этого имеют место пачки ошибок. Знание характера распределения ошибок в ка- нале связи позволяет правильно выбрать метод пере- дачи сообщений по данному каналу. Если ошибки, возникающие в передаваемом сооб- щении, происходят независимо одна от другой, их рас- пределение подчиняется биномиальному закону. В этом случае предполагается, что вероятность поражения каж- дого символа рэ передаваемой последовательности явля- ется величиной постоянной. Тогда вероятность безоши- 22 бочного его приема—(1—рэ), а вероятность распре- деления ошибок при передаче последовательности из п символов Р = 5С^рэ(1—Рз)п~‘, (1-19) г=о где i — кратность ошибки в последовательности; С„ — число сочетаний из п по i, qI n(n—1) (и —2) , .(n—1) (120) Каждый член суммы С1п р‘э (1—р9)"—г в формуле (1.19) характеризует вероятность появления /-кратной ошибки в передаваемой последовательности [31]. Для упрощения расчетов по формуле (1.19) в табл. 4 приведены значения функции (1 —рэу для часто встре- чающихся значений р„ и i, в табл. 5 — значения Сп- Т аб л и ц а 4 1 Рэ IO-’ 10—3 Ю—4 Ю-5 1 0,99000000 0,99900000 0,99990000 0,99999000 2 0,98010000 0,99800100 0,99980001 0,99998000 3 0,97029900 0,99700300 0,99970003 0,99997000 4 0,96059601 0,99600600 0,99960006 0,99996000 5 0,95099005 0,99500999 0,99950010 0,99995000 6 0,94148015 0,99401498 0,99940015 0,99994000 7 0,93206535 0,99302097 J 0,99930021 0,99993000 8 0,92274470 0,99202795 0,99920028 0,99992000 9 0,91351725 0,99103592 0,99910036 0,99991000 10 0,90438208 0,99004488 0,99900045 0,99990001 11 0,89533825 0,98905484 0,99890055 0,99989001 12 0,88638488 0,98806578 0,99880066 0,99988001 13 0,87752102 0,98707772 0,99870078 0,99987001 14 0,86874581 0,98609064 0,99860091 0,99986001 15 0,86005836 0,98510455 0,99850105 0,99985001 16 0,85145777 0,98411944 0,99840120 0,99984001 17 0,84294319 0,98313532 0,99830136 0,99983001 23
Таблица 5 n i 1 2 3 4 5 6 7 8 9 10 и 12 13 14 15 16 17 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 — 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 3 — 1 4 10 20 35 56 84 120 165 220 286 364 455 560 680 4 — — — 1 5 15 35 70 126 210 330 495 715 1001 1365 1820 2380 5 — — — — 1 6 21 56 126 252 462 792 1287 2002 3003 4368 6188 6 — 1 7 28 84 210 462 924 1716 3003 5005 8008 12376 7 1 8 36 120 330 792 1716 3432 6435 . 11440 19448 8 — — - — — — — 1 9 45 165 495 1287 3003 6435 12870 24310 9 1 10 55 220 715 2002 5005 11440 24310 10 — 1 И 66 286 1001 3003 8008 19448 11 — — — — — — — — — — 1 12 78 364 1365 4368 12376 12 — — — — —- — — — — — — 1 13 91 455 1820 6188 13 — — — — — — — — — — — — 1 14 105 560 2380 14 — — — — — — — — — — — — — 1 15 '120 680 15 — — — — — — — — — — — — — 1 16 136 16 — — — — — — — — — — — — — — 1 17 17 — — — / — — — — — — — — — — — — 1 Продолжение табл. 5 i п 18 19 20 21 22 23 24 1 2 18 19 20 21 22 23 24 153 171 190 210 231 253 276 з 816 969 1140 1330 1540 1771 2024 4 3060 3876 4845 5985 7315 8885 10626 5 8568 11628 15504 20349 26334 33649 42504 6 18564 27132 38760 54264 74613 100947 134596 7 31824 50388 77520 116280 170544 245157 346104 8 43758 75582 125970 203490 319770 490314 735471 9 48620 92378 167960 293930 497420 817190 1307504 10 43758 92378 184756 352716 646646 1144066 1961256 11 31824 75582 167960 352716 705432 1352078 2496144 12 18564 50388 125970 293930 646646 1352078 2704156 13 8568 27132 77520 203490 497420 1144066 2496144 14 3060 11628 38760 116280 319770 817190 1961256 15 816 3876 15504 54264 170544 490314 1307504 16 153 969 4845 20349 74613 245157 735471 17 18 171 1140 5985 26334 100947 346104 18 1 19 190 1330 7315 33649 134596 19 1 20 210 1540 8885 42504 20 1 21 231 1771 10626 21 22 23 •— *—• ь—> »— 1 22 1 253 23 1 2024 276 24 1 24 1—— •—
Ш С'» Q Г'. — С СО СО 00 LQ О СЧ GN —' Г- CD CD —I Продолжение табл. 4060 26
Следует отметить, что в реальных условиях ошибки, появляющиеся в передаваемой информации, в большин- стве случаев являются зависимыми (коррелированными) и сгруппированы в пачки. Результаты эксперименталь- ных исследований показали, что время группирования ошибок в пачки составляет ничтожные доли всего вре- мени передачи, но в течение этого времени сосредото- чено наибольшее число ошибок. В интервалах же между пачками возникают редкие независимые ошибки [66, 72, 102]. Поэтому оценка качества связи на основе биноми- ального закона распределения ошибок является прибли- женной. Законы распределения ошибок в каналах свя- зи изучают преимущественно экспериментальным путем и на основании этого создают математические модели каналов связи. 1.7. Передача информации по каналу без помех Если через канал связи без помех пере- дается последовательность дискретных сообщений дли- тельностью Т, то предел отношения [46] lim -sr = V [бит/cj, (1-21) где 1 — количество информации, содержащейся в после- довательности сообщений (скорость передачи информа- ции по каналу связи). Предельное значение скорости передачи информации называется пропускной способ- ностью канала связи: С = Уиако - Нп> [бит (дв. ед.)7с]. (1.22) Как известно, количество информации в сообщениях максимально при равной вероятности состояний. Тогда (1.23) Скорость передачи информации в общем случае за- висит от статистических свойств сообщения и.параметров 27
канала связи. Пропускная способность — это характери- стика канала связи, которая не зависит от скорости пере- дачи информации. Количественно пропускная способ- ность канала связи выражается максимальным количе- ством двоичных единиц информации, которое данный канал связи может передать за одну секунду. Для наиболее эффективного использования канала связи необходимо, чтобы скорость передачи информации была как можно ближе к пропускной способности кана- ла связи. Если скорость поступления информации на вход канала связи превышает пропускную способность кана- ла, то по каналу будет передана не вся информация, т. е. должно выполняться условие У<С. (1.24) Это основное условие согласования источника инфор- мации и канала связи. Согласование осуществляется путем соответствующего кодирования сообщений. Дока- зано, что, если скорость информации, вырабатываемой источником сообщений, достаточно близка к пропускной способности канала [137, 138], т. е. VH=C — е, где е — сколь угодно малая величина, всегда можно найти такой способ кодирования, который обеспечит передачу сооб- щений, вырабатываемых источником, причем скорость передачи информации будет весьма близка к пропуск- ной способности канала. Обратное утверждение заключается в том, что невоз- можно обеспечить длительную передачу всех сообще- ний, если поток информации, вырабатываемый источни- ком, превышает пропускную способность канала. Если ко входу канала подключен источник сообщений с энтропией на символ, равной пропускной способности канала связи, считается, что источник согласован с ка- налом. Если энтропия источника меньше пропускной способности канала, что может быть в случае неравно- вероятности состояний источника, то источник не согла- 28
сован с каналом связи, т. е. канал используется не пол- ностью. Согласование в статистическом смысле достигается с помощью так называемого статистического кодирова- ния. Для уяснения принципа статистического кодирова- ния рассмотрим две последовательности сообщений, представляющие, например, записанные через равные промежутки времени сигналы о состоянии двухпозицион- ного контролируемого объекта (включен или выключен): 110010111101000111010100010100 001000000011000000000000000000. Символу 1 соответствует сигнал «объект включен», символу 0 — «объект выключен». Будем считать, что символы появляются независимо один от другого. Для первой последовательности символы 1 и 0 равно- вероятны, для второй — вероятность первого символа /^=0,1, второго символа— 1 — Pi=0,9. Энтропия первой последовательности (1.13) Ht = =—2 • 0,5 log2 0,5=1. Энтропия второй последователь- ности Н2=—0,1 logzO, 1—0,9 log2 0,9 ~ 0,5. Следователь- но, количество информации на символ во второй после- довательности в два раза меньше, чем в первой. При передаче последовательностей через бинарный канал связи с C=log2m дв. ед./символ = 1 дв. ед./символ первая последовательность будет согласована с каналом в то время как при передаче второй последо- вательности пропускная способность двоичного канала, на символ в два раза больше энтропии источника, т. е. канал недогружен и в статистическом смысле не согла- сован с источником (С > Н2). Статистическое кодирование позволяет повысить энтропию передаваемых сообщений в пределе до вели- чины, которая получается, если символы новой последо- вательности равновероятны. При этом число символов в последовательности будет сокращено. В результате 29
источник информации согласуется с каналом связи. Тех» ника такого кодирования изложена в § 2.9. 1.8. Передача информации по каналу с помехами При передаче информации через канал с помехами сообщения искажаются и на приемной сто- роне нет полной уверенности в том, что принято именно то сообщение, которое передавалось. Следовательно, сообщение недостоверно, вероятность его после приема не равна единице. В этом случае количество получаемой информации уменьшается на величину неопределенности, вносимой помехами, т. е. определяется как разность энтропии сообщения до и после приема: I = Н (J) — Ht (0, где Н (i) — энтропия источника сообщений; Н/ (i) — энтро- пия сообщений на приемной стороне. Уменьшение коли- чества получаемой информации вследствие действия по- мех рассмотрим на примере передачи сообщений о состоя- нии двухпозиционного контролируемого объекта (включен, выключен). Пусть вероятности включенного и выключенного со- стояния соответственно равны: Pi=P2=0,5. Вероятность того, что при передаче состояния свыключено» прини- мается информация о включенном состоянии, Р,(2) = =0,01. Соответственно другие условные вероятности следующие: Рг(2)=0,99; /,2(1)=0,01; Pi(l)'=0,99, где величина Pi (/) — условная вероятность того, что при передаче /-го сообщения будет принято сообщение I. Вычисленная по формулам (1.13), (1.16) с учетом (1.8) энтропия Hi = 1; Ht (j) = Ht (i) = 0,081. Таким образом, за счет вносимых помех количество информации уменьшается: Г =Ht — /7; (i) = 1 — 0,081 = = 0,919 [бит]. Разделив I на время Т передачи одиноч- 30
ного сообщения, получим выражение для скорости пере- дачи по каналу связи с помехами: Г = hm _ = lira _£------!_1. 7,00 7 7,00 T Пропускной способностью канала с шумами назы- вается максимальная скорость передачи информации иа символ или в единицу времени при условии, что канал связи без помех согласован с источником информации: С = Умако = НШ /цако/7. Т-* «м Если энтропия источника информации не превышает пропускной способности канала Н < С, то существует код, обеспечивающий передачу информации через канал с помехами со сколь угодно малой частотой ошибок или сколь угодно малой недостоверностью. В работе [1371 определена пропускная способность канала связи при ограниченной средней мощности аналогового сигнала: C = Fm log2 (1 + Гв/№ш), где Fm— полоса частот канала; IF, — средняя мощность сигнала; — средняя мощность помех (равномерный спектр) с нормальным законом распределения амплитуд в полосе частот канала связи. Следовательно, можно передавать информацию по каналу с помехами без ошибок, если скорость передачи информации V < С = Fm log2^1 + Для скорости V > С при любой системе кодирования частота ошибок конечная, причем она быстро растет с увеличением V- Из последнего выражения следует, что для канала с весьма высоким уровнем шумов максималь- ная скорость передачи близка к нулю. При Умако= Fm loggU^/lV^. Максимальное количество информа- ции, передаваемое за время Т, УМаквТ= FmTlo&WJWш= c=FmTh (объем сигнала). 31
Глава неизбыточные коды 2 2. 1. Кодирование информации. Основные понятия В технике особую роль приобрели прео- бразования дискретной информации, так как многочис- ленные исследования показали, что в реальных услови- ях непрерывный сигнал без потерь для качественных ха- рактеристик функционирования системы может быть за- менен дискретным сигналом. Дискретные представления информации все более широко распространяются при передаче и обработке информации. Формой представле- ния информации является сообщение [85]. Процесс преобразования сообщений в комбинации из дискретных сигналов называется кодированием; сово- купность правил, в соответствии с которыми производят- ся данные преобразования,— кодом. Каждая комбинация записывается в виде последова- тельности, составленной из некоторых условных симво- лов — элементов кодовой комбинации. В качестве эле- ментов кодовой комбинации могут использоваться буквы (Л, В, С...) и цифры (0, 1,2...). В технических информационных устройствах элемен- тами могут служить одиночные импульсы постоянного тока (видеоимпульсы), переменного тока (радиоимпуль- сы), пауза между импульсами. Эти элементы различа- ются по какому-либо одному или нескольким кодовым (импульсным) признакам. В качестве кодовых призна- ков применяются такие параметры, как величина, поляр- ность, время, фаза, частота (рис. 7). Каждому сообще- нию однозначно соответствует определенная кодовая комбинация. Код позволяет записать все сообщения на некотором общем для данного набора сообщений языке. С этой точки зрения набор элементов данного кода рас- 32
сматривают как алфавит, а кодовые комбинации из этих элементов — как кодовые слова. Каждое сообщение пе- редается собственным кодовым словом. Преобразование сообщений в кодовые комбинации (кодовые слова) позволяет обеспечить [43, 103]: а) передачу необходимого количества различных сообщений по данному каналу связи с помощью комби- нирования из п элементов, имеющих т кодовых при- знаков; б) согласование параметров канала связи и пе- редаваемых сообщений; в) повышение достоверности передачи сообщений; г) более экономное использование полосы канала связи; д) уменьшение стоимости пере- дачи и хранения сообщений; е) скрытность передавае- мых сообщений. Выбор методов кодирования, обеспечивающих выпол- нение указанных целей, является сложной задачей, ре- шение которой зависит от ряда факторов: количества передаваемых сообщений, числа кодовых признаков, тре- буемого времени передачи, параметров канала связи, возможности аппаратурной реализации. Однако в доста- точно общем случае качество метода кодирования оце- нивается объемом сигнала для достижения требуемой помехоустойчивости при равной скорости передачи. Правила составления кодовых комбинаций (коды) и сами кодовые комбинации могут иметь различные харак- теристики. К ним относятся: число кодовых (импульс- ных) признаков, используемых для комбинирования, количество разрядов кодовой комбинации, способ комби- нирования (закон, согласно которому из единичных элементов образуются кодовые комбинации), способы формирования элементов кода (импульсные признаки), способ передачи (разделение) элементарных сигналов. Первые три свойства относятся к структурным характе- ристикам самого кода, последние два — к характеристи- кам сигналов кода. На рис. 7 приведены основные характеристики кодов. 2 Г-2&6 33
Характеристика кода nnhDHdO&Hn pogogoN gogudaxi одшэаьпиоу впнрдодпнпдтк goaouj dnhDHnpNOK эпно^оечиоиэп aoHhniuaoh nnhounpxjon апнодоеяиоиап дониои tdiQHddnoHijnasH] одшэаьпиоы эонниошаоиэн (aiQHdaKiOHgod) одшзаьпиоя аонниошооц Рис. 7. Характеристики кедов. атнопРпсоиогон^\ gownendu I/ XtWWfiUHn CJ OIQHhnOglT I оиэпь \ 1----------------1 . ouanh dlQHhnHnpj | 24
По числу импульсных признаков {символов) коды подразделяются на единичные, двоичные, многопозици- онные. В единичном коде используется только один сим- вол, и кодовые комбинации отличаются друг от друга лишь количеством сигналов. Кодовые комбинации дво- ичных кодов состоят из двух символов (0 или 1). Много- позиционные коды имеют количество символов более двух. По количеству разрядов кодовые комбинации могут иметь либо постоянное число разрядов, либо не постоян- ное. Этот признак разделяет коды на равномерные и неравномерные. В равномерных кодах каждая кодовая комбинация содержит одинаковое число разрядов. Не- равномерные коды — коды, в которых кодовые комбина- ции могут содержать разное число разрядов. По способу комбинирования различают коды, исполь- зующие все возможные комбинации, и коды с частичным использованием комбинаций. Характер передачи кодовых комбинаций разделяет коды на последовательный, параллельный и смешанный способы передачи отдельных символов кода. При после-? - довательной передаче^ е кодовые комбинации и ихедц,- ничные элементы передаются последовательно во время. ни по общей линии связи. При параллельной-передаче- кодовых ~ комбинаций " Каждому _ разряду - выделяется отдельная линия связи и все символы передаются -одно— временно. Смешанный способ передачи объединяет в себе последовательный и параллельный способы. Кроме различия кодов по перечисленным характе- ристикам, они могут иметь разное назначение и в соответствии с этим подразделяются на телеграфные, телемеханические, телевизионные, коммерческие, дипло- матические, военные, коды цифровых машин. Для передачи информации широко используются двоичные и многопозиционные коды. Авторы ставили перед собой задачу познакомить читателей с принципа- ми построения двоичных кодов, получивших широкое 2* 35
применение в различных автоматизированных устройст- вах обработки, хранения и передачи информации. 2.2. Классификация двоичных кодов Известно большое количество кодов, систематизация и классификация которых из-за их многочисленных признаков являются довольно затруд- нительными. Поэтому в основу классификации поло- жим рассмотренные в предыдущем параграфе структур- ные характеристики кодов. Коды можно разделить на две самостоятельные группы. К первой относятся коды, использующие все возможные комбинации — неизбы- точные коды. В литературе их еще называют простыми или первичными. Ко второй группе относятся коды, ис- пользующие лишь определенную часть всех возможных комбинаций. Такие коды согласно ГОСТ 17657—72 на- зываются избыточными. Оставшаяся часть комбинаций используется для обнаружения или исправления оши- бок, возникающих при передаче сообщений. В этих кодах количество разрядов кодовых комбинаций можно условно разделить на определенное число разрядов, предназначенных для информации (информационные разряды), и число разрядов, предназначенных для кор- рекции ошибок (проверочные разряды). Обе группы кодов, в свою очередь, подразделяются на равномерные и неравномерные. Равномерные коды — это коды, все кодовые комбинации которых содержат постоянное количество разрядов. Неравномерные коды содержат кодовые комбинации с различным числом раз- рядов. Ввиду того что неравномерные избыточные коды не нашли применения на практике из-за сложности их технической реализации, в дальнейшем их рассматривать не будем. 38
Все избыточные коды разделяются на два класса: непрерывные и блочные. В непрерывных кодах процесс кодирования и деко- дирования носит непрерывный характер. Этот класс ко- дов появился сравнительно недавно и не получил пока широкого развития. В блочных кодах каждому сообще- нию соответствует кодовая комбинация (блок) из п сим- волов; Блоки кодируются и декодируются отдельно друг от друга. Избыточные коды, в которых определенные разряды кодовых комбинаций отводятся для информационных и проверочных символов, называются разделимыми. Раз- делимые блочные коды обозначаются обычно (п, ^-кода- ми. где п — количество разрядов кодовой комбинации, k— число разрядов, отводимых для информационных сим- волов. Неразделимые коды не имеют четкого разделения кодовой комбинации на информационные и проверочные символы. К ним относятся коды с постоянным весом и коды Плоткина [95, 129]. Разделимые блочные коды, в свою очередь, делятся на несистематические и систематические. В несистемати- ческих кодах проверочные символы представляют собой суммы подблоков с I разрядами, на которые разделена последовательность информационных символов. К этим кодам относятся коды Бергера. Самый большой класс разделимых блочных кодов составляют систематические коды, у которых провероч- ные символы определяются в результате проведения ли- нейных операций над определенными информационными . символами. Для двоичных кодов эти операции сводятся к выбору каждого проверочного символа таким образом, чтобы его сумма по модулю два с определенными инфор- мационными символами была равной нулю. К систематическим кодам относятся коды с проверкой на четность, коды с повторением, корреляционный, ин- версный, коды Хэмминга, Голея, Рида-Маллера, Макдо- 37
нальда, Варшамова, с малой плотностью проверок на четность, итеративный код [8, 14, 24, 25, 34, 35, 49, 129, 130, 150]. Разновидностью систематических кодов являются циклические коды. Кроме всех свойств систематического кода, циклические коды имеют следующее свойство: если некоторая кодовая комбинация принадлежит коду, то получающаяся путем циклической перестановки симво- лов новая комбинация также принадлежит данному ко- ду. К наиболее известным циклическим кодам относятся простейшие коды, коды Хэмминга, Боуза — Чоудхури — Хоквингема, мажоритарные, коды Файра, Абрамсона, Миласа — Абрамсона, Рида — Соломона, компаундные коды. Классификация рассмотренных кодов приведена на рис. 8. В печати все чаще появляются отдельные сведения о новых систематических кодах: дециклических, несистема- тических кольцевых, циклических изверженных, абеле- вых, вычетных и других. В работе [104] систематизиро- ваны эти коды и указана литература, где приводятся параметры этих кодов либо формулы для вычисления их параметров. В Киевском политехническом институте разработаны неприводимые сменнопосылочные коды, обеспечивающие высокую верность передачи информа- ции [46]. 2.3. Основные характеристики кодов Оценка кодов обычно производится по их основным характеристикам, выражающим различные количественные и качественные показатели. Данные ха- рактеристики используются при выборе кодов, предна- значенных для передачи, хранения и обработки инфор- мации: длина кода; основание кода; мощность кода; полное число кодовых комбинаций; число информацион- ных символов; число проверочных символов; избыточ- ность кода; скорость передачи; вес кодовой комбинации; 38
Рис. 8. Классификация двоичных кодов.
кодовое расстояние; весовая характеристика кода; веро- ятность необнаруженной ошибки; оптимальность кода; коэффициент ложных переходов. Длина кода п — число разрядов (символов), состав- ляющих кодовую комбинацию. Основание кода tn — количество отличающихся друг от друга значений импульсных признаков, используемых в кодовых комбинациях. Для случая двоичных кодов т = 2. В качестве значений импульсных признаков ис- пользуются цифры 0 и 1. Мощность кода Np — число кодовых комбинаций (рабо- чих кодовых слов), используемых для передачи сообщений. Полное число кодовых комбинаций N — число всех воз- можных комбинаций, равное тп (для двоичных кодов М=2"). Число информационных символов k — количество сим- волов (разрядов) кодовой комбинации, предназначенных для передачи собственно сообщения. Очевидно, ЛГР=2*. (2.1) Число проверочных символов г — количество символов (разрядов) кодовой комбинации, необходимых для кор- рекции ошибок. Это число характеризует абсолютную избыточность кода. В теории кодирования под избыточностью кода R по- нимают относительную избыточность, равную отношению числа проверочных символов к длине кода: М- (2-2) В более общем случае эта формула может быть приве- дена к виду logman 8 = 1~> М Скорость передачи кодовых комбинаций — отношение числа информационных символов к длине кода: ^'«4- (2.4) 40
Поскольку п — k-\-r, то /?'=!-/?. (2.5) Пример. Определить избыточность и скорость передачи кода, предназначенного для передачи 16 сообщений, если длина двоичного кода п = 5. Полное число кодовых комбинаций: W=2"=2»=32; R = 1 —= 1—4= °>2; ₽'=1—0,2=0,8. Вес кодойой комбинации (кода) <« — количество еди- ниц в кодовой комбинации. Например, кодовая комби- нация 101100110 характеризуется длиной кода п = 9и. весом о =5. Кодовое расстояние d между двумя кодовы- ми комбинациями — число одноименных разрядов с раз- личными символами. Практически кодовое расстояние выражается как вес суммы по модулю два кодовых ком- бинаций. Например, для определения кодового расстоя- ния между комбинациями 10010111 и 00100110 необхо- димо просуммировать их по модулю два: , 10010111 + 00100110 10110001. Полученная в результате суммирования новая кодовая комбинация характеризуется весом о = 4. Следовательно, кодовое расстояние между исходными комбинациями d = 4. Весовая характеристика кода W (о) — число кодовых комбинаций веса о. Например, для кода, содержащего кодовые комбинации 00000, 01110, 10101 и ПОП, весо- вая характеристика W’(0) = 1, W(3) = 2, W’(4) = 1, т. е. данный код состоит из одного кодового слова веса 0, двух слов веса 3 и одного слова веса 4. Вероятность необнаруженной ошибки Рв.о — это веро- ятность такого события, при котором принятая кодовая комбинация отличается от переданной, а свойства дан- ного кода не позволяют определить факта наличия ошибки. Оптимальность кода — свойство такого кода, который обеспечивает наименьшую вероятность необнаружения ошибки среди всех кодов той же длины п и избыточности г. 41
Коэффициент ложных переходов [76] Л 1 vWP'(d) Кл(<0 = NCd * р , , п (2.6) где NPi(d) — число рабочих кодовых комбинаций, отсто- ящих от /-кодовой комбинации на расстояние d; С„— число сочетаний из п по d. Данный коэффициент показывает, какая доля ошибок кратности d не обнаруживается. Пример. Определить коэффициенты ложных переходов для кода с четырьмя рабочими комбинациями Np = 4t Vj = 001, Vt = 010, Vs = = 011, V4=100. Составим таблицу кодовых расстояний между каждыми комбина- циями (векторами): Из таблицы следует, что комбинация Vf удалена на d = 1 от одного вектора и иа d = 2 от двух векторов, т.е. Npi (1) = 1, Npt (2) = = 2, (3) = 0. Вектор V2 удален на d = 1 от одного вектора и на d = 2 от двух векторов, т. е. ЛС2(1) = 1, Л'р2 (2) = 2, Np2 (3) = 0. Вектор Vs удален иа d = 1 от двух векторов и иа d = 3 от одного вектора, т. е. (1) = 2, Wp3 (2) = 0, Np3 (3) = 1. Вектор Vt удален иа d = 2 от двух векторов и на d = 3 от одного вектора, т. е. Npi (1) = = 0, Npi (2) = 2, Npi (3) = 1. Определим коэффициент ложных пере- ходов: ..... 1 Wpi(l) + Afp2(l)-|-Wp3(l) + Wp4(l) 1 4 1 Кл0) - 4 Я ~ 4 ’ 3 ~ 3 : ’"3 л() = 4 С2 “ 4 • 3 = Т: 1 *pl(3)^p2(3) + Wp3(3)-i-tfp4(3) _i_ _2_ _L ЛдИ = -*----------------------------------=4'1~2- 42
Доказано 193, 94], что для систематических кодов все кодовые слова имеют одинаковое распределение кодовых расстояний до других слов, поэтому распределение ко- довых расстояний для любого слова можно определить, используя весовую характеристику систематического кода. Коэффициент ложных переходов в этом случае lF(<o) Кл(‘о) = -^-> (2.7) где Г (<в)— весовая характеристика кода. Пример. Пусть весовая характеристика кода с п = 5 следующая! Р7(1) = 1; VT(3) = 2; VT(4) =*•; Tf(5) = 1. Определить коэффициент ложных переходов. Из формулы (2.7) следует, что Кл(1) = 0,2; Кя(2) = 0; Кл(3)= = 0,2; Кл(4) = 0,2; /Сл(5) = 1. Таким образом, данный код обнару- живает все двукратные ошибки и 80% однократных, трехкратных и четырехкратных ошибок. Не обнаруживаются только пятикратные ошибки. 2.4. Основы построения неизбыточных кодов Для неизбыточных кодов характерно пол- ное использование комбинаций. К неизбыточным кодам от- носят также коды с частичным использованием комбинаций, у которых минимальное кодовое расстояние dMHH — 1. Такие коды обнаруживают не все виды искажений, вызванных даже однократной помехой. Количество различных ком- бинаций, которое можно получить из «-разрядного чис- ла, определяем по формуле iV = CS + C’ + C^ + ... + C (2.8) где С„, ... —число сочетаний из п элементов по 0,1, ..., п. После соответствующих преобразований по- лучаем N = 2". Так как в этом случае используются все возможные комбинации, то п является минимальным количеством разрядов, с помощью которых можно пост- 43
роить максимальное количество кодовых комбинаций при числе возможных значений символов 2 (0,1). Отсюда ко- личество разрядов, необходимое для передачи W сообщений, л = logg/V. (2.9) Пример. Определить количество разрядов кодовой комбинации для передачи восьми сообщений: п = log2 8=3, т. е. сообщение будет состоять из трех символов, каждый из которых может принимать два значения: 0 и 1. Кодовые комбинации при использовании кода на все сочетания строятся следующим образом. Составляется таблица, в первой графе которой записываются номера всех возможных сообще- Таблица 6 До сооб- щения Ве- роят- ность полу- чения Деление на группы Кодовые комбина- ции 1 1/8 1 11 ООО 2 1/8 I J ’ll 001 3 1/8 1II1 010 4 1/8 J пп 011 5 1/8 1 11 100 6 1/8 II 1 II 101 7 1/8 111 1 1 10 8 1/8 И 1 или N, во второй — ве- роятность их получения. Далее все сообщения де- лятся на две равные группы. Для группы I первому символу кодовых комбинаций присваива- ется, например, значение 0, для группы II — зна- чение I. Далее каждая из групп снова делится на две группы. В качест- ве значений второго сим- вола кодовых комбина- ций для сообщений груп- пы I снова принимаем 0, для группы II — 1 и т. д. Полученные комбинации отличаются одна от другой не менее чем одним элементом. Из табл. 6 видно, что запись комбинаций на все соче- тания является записью чисел от 0 до 7 в двоичной системе счисления. Такой код называют простым двоич- ным кодом. Построение всех кодовых комбинаций этого кода удобнее всего достигается посредством написания 44
необходимой последовательности двоичных чисел. В этих кодах количество информации, "Приходящееся на один символ, максимально. К неизбыточным кодам относятся и так называемые отраженные двоичные коды, в кото- рых соседние кодовые комбинации отличаются симво- лом только в одном разряде. К таким кодам относится широко известный код Грея. Наряду с простым двоичным кодом часто использует- ся двоично-десятичный код. Это обусловлено тем, что на выбор кода влияют удобство восприятия результатов вычислений или измерений, удобство преобразования аналоговых величин в цифровой код и т. д. С точки зре- ния простоты восприятия наибольшее преимущество име- ет десятичная система счисления, но так как непосред- ственно использовать ее в цифровых машинах нецелесо- образно, применяется двоично-десятичная система, на которой базируется двоично-десятичный код. В этой си- стеме используется основание 10, но цифры в каждом разряде записываются четырехразрядными двоичными числами. Например, число 279 в двоично-десятичной системе запишем следующим образом: 279- 0010 0111 1001 сотни десятки единицы. Разновидностью двоично-десятичных кодов являются самодополняющие двоично-десятичные коды, у которых при инвертировании цифр во всех четырех разрядах получается дополнение до 9 для кодируемой десятичной цифры. К этим кодам принадлежат код с избытком 3-и код Айкена. Наиболее известными представителями неравномер- ных двоичных кодов являются код Шеннона — Фано и код Хаффмена [134]. На рис. 8 показана классификация неизбыточных двоичных кодов. 45
2.5. Простые равномерные коды В равномерных кодах все кодовые комби- нации содержат одинаковое число элементов; Различие между комбинациями заключается в сочетании их эле- ментов. У нас в стране и за рубежом применяются раз- личные коды, используемые в телеграфных системах, в системах передачи данных, при обработке информации на ЭВМ. В качестве примера рассмотрим международ- ный телеграфный код № 2 (МТК-2), рекомендованный МККТТ для использования в буквопечатающих теле- графных аппаратах и уже распространенный повсемест- но. Кодовую таблицу МТК-2 отражает табл. 7. В этом коде 29 комбинаций из 32 используются для передачи русской буквы либо цифры (знака препинания), либо латинской буквы. Остальные три комбинации предназна- чены для перевода регистров. Из табл. 7 видно, что кодовые комбинации есть дво- ичная запись соответствующих номеров строк. При по- строении простых равномерных кодов кодовые комбина- ции выбираются с учетом степени важности знаков в сообщении. В коде МТК-2 при искажении комбинации «русский регистр» вся следующая за ней последователь- ность русских букв будет отпечатана на цифровом или латинском регистре, т. е. неправильно. Поэтому для пе- реключения регистров выбраны те кодовые комбинации, которые меньше других подвержены действию помех. С совершенствованием ЦВМ возникла необходимость в использовании новых служебных, арифметических, ло- гических и других символов, отсутствующих в междуна- родном коде № 2, что привело к созданию различных расширенных вариантов этого кода [117, 135]. В 1964 г. в нашей стране введен в действие ГОСТ 10859—64, согласно которому для ввода и вывода информации в ЦВМ стали использовать семиразрядный код (рис. 9), 46
I Таблица 7 Регистр Разряд комбинации Ks КОМбиИа- 1 ЦИН руоакий латинский цифр ж, виаки 1 2 3 4 Б 1 Т Т 5 0 0 0 о. 1 2 Возврат 0 0 0 1 0 каретки ) 3 О 0 9 0 0 0 1 1 4 Пробел 0 0 1 0 0 5 X Н Щ 0 0 1 0 1 i 6 н N 0 0 1 1 0 7 м М • 0 0 1 1 1 8 Перевод 0 1 0 0 0 строки 9 л L ) 0 1 0 0 1 10 р R 4 0 1 0 1 0 И г G III 0 1 0 1 1 12 и 1 8 0 1 1 0 0 13 п Р 0 0 1 1 0 1 14 ц С 1 0 1 1 1 0 15 ж V «— 0 1 1 1 1 16 Е Е 3 1 0 0 0 0 17 3 Z + 1 0 0 0 1 1 18 д D Кто там 1 0 0 1 0 19 Б В ? 1 0 0 1 1 20 С S ап. 1 0 1 0 0 21 ы У 6 1 0 1 0 1 22 ф F э 1 0 1 1 0- 23 ь X / 1 0 1 1 1 24 А А 1 1 0 0 0 25 В W 2 1 1 0 0 1 26 Й J Ю 1 1 0 1 0 27 Цифровой регистр 1 1 0 1 1 28 У и 7 1 1 1 0 0 29 Я Q 1 1 1 1 0 1 30 к К ( 1 1 1 1 0 31 Латинский регистр 1 1 1 1 1 32 Русский регистр 0 0 0 0 0 « 47
35 | * * f I i LT," * ж -ж- ж ж 'а ж ж ж ж о < п Г III • ж О'Ч ж <> 1 1 * 5 -о « с» Ж Ц- **• Г) % «5г от <о a г N 1 V л а к е х a 3 с a ОС 1 *ss!V с с «э U ч Uj * <0 X ж «5 % X: о <5 I юп ж Ж W- м п - Uu Ж * 1 V л •• Vm. сч го •о <© О) ♦ 1 •» • ж ж ] Рис. 9,- Семиразрядный код (ГОСТ 10859-64). «
Кодовая таблица в нем построена так, что в случае необходимости простым исключением старших разрядов можно получить подмножество комбинаций меньшей разрядности. Например, с помощью трехразрядных дво- ичных комбинаций можно представить цифры 0—7, с помощью четырехразрядных комбинаций — все симво- лы первой колонки таблицы (все десятичные цифры и символы «плюс», «минус», «дробная черта», «запятая», «точка» и «пробел»). Введение пятого разряда позво- ляет закодировать еще 16 математических и специаль- ных символов. В частности, введение кодов «стрелки вверх» и квадратных скобок позволяет соответственно печатать в одну стрСТку степенные функции (a t х озна- чает «а в степени х») и величины с индексами (a[t] означает «а с индексом i»). Шестиразрядный код дает возможность представить все цифры и буквы русского алфавита, а полный семи- разрядный код включает, кроме того, часть латинских букв (которые по начертанию не совпадают с русскими), символы отношений и логических функций, математиче- ские, специальные функции и несколько резервных пози- ций. Это позволило увеличить число резервных свобод- ных позиций (до 24) для размещения дополнительных символов, которые могут появляться в перспективе. Примерно по такому же принципу построен новый се- миразрядный международный первичный код (рис. 10). Логически он может быть разделен на четыре зоны (ко- лонки): 0—1, 2—3, 4—5, 6—7. В первой зоне расположе- ны функциональные символы, за исключением символа DEL («забой»), для которого сохранено последнее место (комбинации 1111111). Основная часть функциональных символов этой зоны делится на четыре группы: первая — для управления передачей информации по каналам связи (на рис. TCt — ТСю)', вторая — для уп- равления печатью (FE0 — FE$); третья — для управле- 49
X ь> Л о k <o +J b % x =3> N ti *». V» Ci «□ е •О Q Ъ b> •c Je -3 E c Cl V» С1 «о с 1 Сз О: 45 К Еэ > Э X > Г4 (V (3) J -c 1 V- С> сз * 3 -С CQ СЭ £3 U4 4. QJ 3: •-Ч Fi к 'J £ % c> сз *- ** «О С Э *•> <N fo <b <c 00 os •- — V II Л tv. сь *• Сэ м с ь 1 * 5 * * *» oa X •^4 « + * 1 - X С1 О V- U £ ! >эа гза ija "лг 2 1= <o g «О Ui 3 NVJ 1 *« 1 SUB JS3 I sd(*si) (JStlRS | (IS,) US ] сз с> Ci i 1 hos^ji) £ 1 103 Ml). 1 W3(Sjl)\ 1 ЯЭ¥(я31)\ BEL Й Jt 1 37{{3d) t- 4? t £ IL £ О 43 «О С *- ej «О <b «J r- 4> O) 3s СЧ 55 Vj С ** сэ »* c> <£> ** Ci Ci *» Ci V» Ci *•» С »» Ci c> v«. »» Ci Ci *• ** Cj Cl Vv. г С Ci V- Ci c> Ci Ci *•. ** V- *4. ха с Ci Ci C> Ci c> Ci Ci *' *». *«. *. »» *». А?|« 1 Рис. 10. Новый семиразрядный международный кед. 50
ния оконечными устройствами \DCt — DC^\ четвер- тая— для разделителей информации (/Si — /S4). Все остальные зоны таблицы кода заняты печатаемы- ми (графическими) символами. Колонки 2—3 выделены для математических специальных символов, знаков пунк- туации и цифр. В двух последних зонах размещены про- писные и строчные латинские буквы в соответствии с тре- бованиями лексико-графической упорядоченности (поло- жение цифр, знаков пунктуации и пробела также выбрано с учетом этих требований). Здесь расположены также резервные позиции. Символ («пробел») Space обычно не печатается, но все же относится к числу графических и употребляется для разделения слов и перемещения позиции печати на один шаг вперед. Цифры кодируются простым двоичным кодом. Построение четырехразрядных комбинаций для них производится отбрасыванием трех старших элемен- тов. Новый международный код построен для текстов, использующих латинский алфавит. Отсутствие в нем символов, соответствующих рус- скому алфавиту, не позволило использовать его в на- шей стране. Поэтому в 1967 г. был разработан новый вариант первичного стандартного кода ГОСТ 13052—67 (рис. 11). В этом коде символом «0» обозначен латин- ский международный регистр, символом «1» — русский регистр. Зоны русского регистра те же, что и в между- народном. Во второй зоне все символы оставлены без измене- ний, первый денежный знак обозначен символом, реко- мендованным третьим проектом кода, второй денежный знак в таблицу не включен, позиция 2/з используется для символа «номер». Две последние зоны полностью (за исключением позиций символов «забой» и «подчеркива- ние») заняты- русскими прописными и строчными бук- вами. То, что строчные буквы находятся до прописных, отражает стремление использовать на первом этапе 61
Латинский регистр I Русский регистр !б t Ос СХ ь * «1 X) T> Э <ъ 3 £ S «о 4 41 & < x X •X X S: X 55 с <к СХ E 3j * *Q Q г •0 3 «ъ 3 > « е S е> •q Q) & X •5» X $ X Ci £ I * о> I О OS Cr Г- Q. о к 4 u ZS b X N 1 *Q fCi / е> о l> Ъ Q) 4. bv •mJ X о E c О «а CL Ct «0 К Ь * X >- N > < 1 » It с «с Cj о 41 u. 4» 5: •m 3c X: % О *) *•. r- •D o> - • * V II Л <ч сч 1 ft я \ * 4- - 1 • \ V» ‘di (‘ай| 1 (СУ,) (to). 1 (СУз) J.P(*K))\ vnrfxty ЧЭ J? 5 <r> ex' < 1 (*И0) (РИз) | 1 (lw) 1 f'Htf) о> \(CCi)M3 I in (ЗД| t i s «О m I 1J (>UJ)\ i K~ CQ I 8- eg •? 5 ? h- о s — е> а о Cl e> - о|** c> - c> H <s s Ci □ л «г вяппзипизЕИпанпа ииЕияипиииэиаипи иивиэзЕиаяиииаин в Рис. И, Стандартный код (ГОСТ 13052—67). 52
(когда строчные буквы не очень нужны) код с одними только прописными буквами и достичь этого с минималь- ными затратами на кодопреобразование. В ЕС ЭВМ для ввода — вывода информации приме- няют восьмиразрядный код КОИ-8 (рис. 12). Он разра- ботан на основе семиразрядного кода (ГОСТ 13052—67), но имеет несколько иной перечень функциональных сим- волов и иное расположение колонок других символов. 2.6. Двоично-десятичные коды В двоично-десятичных кодах каждая де- сятичная цифра (сообщение) представляется группой цифр, состоящей из четырех двухпозиционных символов. Данная группа позволяет сформировать N = 24 = 16 ком- бинаций. В десятичной системе используется только 10 цифр, т. е. шесть комбинаций являются избыточными. В принципе могут быть включены любые шесть комби- наций, что приводит к очень большому количеству ва- риантов построения двоично-десятичных кодов. Общее число вариантов 161/61^2,9 • 1010. При рассмотрении десятичных цифр и двоичного пред- ставления их видно, что использование первых четырех степеней цифры 2 (2°=1; 2*=2; 22 = 4; 23 = 8) приво- дит к одному из возможных кодов: 8-4-2-1. Каждый раз- ряд этого кода имеет постоянный вес. Двоично-десятич- ные коды строятся с учетом следующих условий [26, 31]. 1. Вес наименьшей значащей цифры ?i равен 1. 2. Вес второй по минимальному значению цифры q2 составляет 1 или 2. 3. Вес, соответствующий двум оставшимся цифрам кода, подбирается так, чтобы их сумма была больше либо равна 6 (если <?г=2) или 7 (если <72=1)- В соответствии с этими условиями можно сформули- ровать 17 видов кодов, приведенных в табл. 8. 53
64
Кроме кода 8-4-2-1, все остальные 16 кодрв не имеют однозначности в изображении десятичных чисел. Так, код 4-3-2-1 позволяет записать цифру 6 как 1010 или 0111. Таблица 8 № п/п Вео разрядов № п/п Вес разрядов Xs п,п •Вес разрядов Q< Qi Qi Qi Qr Яя Qi 44 Qi Qt Qi 1 8—4—2— 1 7 6-3—2— 1 13 4—2—2— 1 2 7—4—2— 1 8 5-3-2— 1 14 6-3—1 — 1 3 6-4—2— 1 9 4-3-2— 1 15 5 —3—1 — 1 4 5—4—2— 1 10 3—3—2— 1 16 4—3—1— 1 5 4—4—2— 1 И 6—2—2— 1 17 5 —2 -1 — 1 6 7—3—2— 1 12 5—2—2— 1 Выбор вида двоично-десятичного кода диктуется ря- дом конкретных условий его использования и соображе- ниями удобства его реализации. Двоично-десятичные коды широко применяются при построении дискретных телеизмерительных систем в тех случаях, когда измеряе- мый параметр должен воспроизводиться на цифровых индикаторах. Двоично-десятичные коды обладают неко- торой избыточностью: /? = 1 — log210/log316 = 0,2, что можно использовать для обнаружения некоторых ошибок, но при этом выявляются далеко не все даже самые простые однократные ошибки. 2.7. Самодополняющиеся двоично- десятичные коды Широкое распространение в вычисли- тельной технике нашли двоично-десятичные коды, обла- ч дающие свойством самодополняемости. Необходимость в таких кодах вызвана заменой операции вычитания в ЭВМ операцией сложения, выполняемой в специальных машинных кодах — обратном и дополнительном. В об- Б5
ратном коде каждый разряд [а^ ]г представляется как дополнение до 2 1, т. е. [а^]г=2 — I — qt. Дополнение до 2—1 = 1 равно 0, если си =1, и 1, если. а< =0, т. е. является инверсией цифры а< . Для десятичного кода необходимо находить дополнение до 9. Удобство самодополняемых двоично-десятичных кодов состоит в том, что двоично-десятичный код цифры, являющейся дополнением до 9, находится аналогично двоичному коду простой инверсией двоичных изображений десятич- ного числа в коде, для которого ищется дополнение. Сле- довательно, если разряд десятичного числа a t представ- ляем с'помощью группы из четырех двоичных символов Qi, Qs, <?2, _<7ь_то дополнение до 9 определяется как (аг]ю = <74<73<72<7 ь где qt — отрицание двоичной цифры q(. Наиболее распространенными самодополняющими ко- дами являются код ‘ 2—4—2—1 (код Айкена) и код 8—4—2—1 с избытком 3 (табл. 9). Т а б л и ц а 9 Из таблицы видно, что при замене цифр всех четырех раз- рядов кода с 0 на 1 (или наобо- рот) получается дополнение до 9 для кодируемой десятичной цифры. 2.8. Отраженные коды В двоичном коде при переходе от изображения одного числа к изображению со- седнего старшего или соседнего Деся- тичная цифра Код Айкена Код с избыт- ком 3 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 001 1 0100 10 11 1 100 1 10 1 1110 1111 001 1 0100 0 10 1 01 10 0111 1000 100 1 1010 1011 1 100 младшего числа может происхо- дить одновременное изменение цифр в нескольких раз- рядах. Так, при переходе от изображения числа (0111) к изображению числа 8 (1000) одновременно изменя- ются цифры во всех четырех разрядах. Это может явить- 56
ся источником значительных ошибок при некоторых спо- собах кодирования непрерывных сообщений в двоичный код. Одно из наиболее распространенных и эффективных средств борьбы с ошибкой неоднозначности—использо- вание специальных кодов, носящих название отраженных (рефлексных — от английского слова to reflect — отра- жать). Отличительной особенностью этих кодов является то, что соседние кодовые комбинации различаются циф- рой только в одном разряде. Таким образом, в этих кодах нет одновременного изменения цифр в нескольких разрядах. Можно построить большое число двоичных кодов, у которых две соседние кодовые комбинации будут отли- чаться только одним символом. В табл. 10 приведено несколько вариантов таких кодов [26]. Таблица 10 Варианты отраженных кодов Десятичное число 1 2 3 4 5 6 7 0 ООО 000 000 000 000 000 000 1 010 100 100 001 001 001 001 2 011 101 по 011 101 101 101 3 001 001 010 010 111 100 100 4 101 011 011 по 011 по по 5 111 111 111 111 010 111 111 6 110 по 101 101 по 011 011 7 100 010 001 100 100 010 010 Наибольшее распространение из всех отраженных кодов, обладающих более простыми методами и схемами преобразования его в простой двоичный код, получил код Грея. Рассмотрим особенности кода Грея на примере. В табл. 11 приведен ряд чисел, выраженных комбинация- 57
ми простого двоичного кода и кода Грея. Для простоты рассмотрения взято 16 дискретных значений (включая нуль), цифровое представление которых требует всего четыре разряда двоичного кода [135]. Табл. 11 позво- ляет установить ряд характерных особенностей кода Грея [135]. 1. Каждая последующая комбинация всегда отличает- ся от предыдущей только в одной позиции (одном разряде). 2. Смена значений элементов в каждом разряде при переходе от комбинации к комбинации происходит вдвое Табл ица 11 реже, чем в простом коде. Поясним сказанное. В про- Деся- тичное число Про- стой КОД КЪд Грея стом коде смена элемента перво- го (младшего) разряда происхо- дит с чередованием элементов 0—1—0—1 ..., второго разряда— с чередов анием 00—11—00—11 .... третьего — с чередованием 0000—1111-0000 и т. д. В коде Грея соответственно имеем сле- дующие чередования элементов; для первого разряда 11—00—И ..., для второго 0000—1111—0000 и т. д. Это свойство позволяет при том же быстродействии схе- мы кодирования достигать более высокой. точности кодирования, чем с использованием простого кода. 3. При сложении двух сосед- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 001 1 0100 0101 01 10 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 000 1 001 1 0010 0110 0111 0101 0100 1 100 1101 1111 1110 10 10 1011 1 001 1000 них комбинаций по модулю два число единиц равно чис- лу разрядов минус три, т. е. в нашем случае имеем одну единицу. В общем случае для n-значного кода число единиц равно п — 3. Это свойство кода Грея иногда используется для про- верки правильности принятых комбинаций. 58
4. В коде Грея можно выделить оси симметрии (оси «отражения»), относительно которых наблюдается иден- тичность элементов в некоторых разрядах. Так, имеет место симметрия относительно оси, проведенной между числами 7 и 8. В комбинациях, симметричных относи- тельно этой оси, идентичны три символа младших раз- рядов. Относительно осей 1—2, 5—6, 9—10, 11—12 име- ется симметрия в одном символе младшего разряда, относительно осей 3—4 и U—12—в двух символах. Ось симметрии, которая проходит в n-значном коде Грея между комбинациями, соответствующими уровням (чис- лам) 2П-1 — 1 и 2П-1, называется главной осью симмет- рии. Относительно нее имеется идентичность символов в (п— 1) разрядах симметричных кодовых комбинаций. Отмеченная особенность послужила основанием для введения термина «отраженный (рефлексный) код». По сравнению с простым кодом код Грея позволяет уменьшать ошибки неоднозначности считывания, а так- же ошибки, вызванные помехами при передаче инфор- мации по каналам связи. Данный код используется обычно для аналого-цифрового преобразования различ- ных непрерывных сообщений. Недостатком кода Грея и других отраженных кодов является их невесомость, т. е. в них вес единицы не определяется номером разряда. Информацию, представленную такими кодами, трудно обрабатывать с помощью ЭВМ. Декодирование их так- же связано с большими трудностями из-за существен- ного усложнения декодирующих устройств. Поэтому перед вводом в ЭВМ или перед декодированием отра- женный код преобразуют в простой двоичный код, кото- рый удобен для ЭВМ, а также сравнительно легко деко- дируется. Для перевода простого двоичного кода в код Грея можно пользоваться следующим правилом: 59
1J под двоичным числом записать такое же число со сдвигом вправо на один разряд (при этом младший раз- ряд сдвигаемого числа теряется); 2) произвести поразрядное сложение сдвинутого й несдвинутого чисел по модулю два. Пример. Перевести двоичный код 11010011 в код Грея: 11010011 * 1101001(1) 10111010, т. е. [11010011]2 = [10111010]Грея. Обратный перевод кода Грея в простой двоичный код производится по следующему правилу: 1) цифра старшего разряда остается без изменения; 2) каждая последующая цифра инвертируется столько раз, сколько единиц ей предшествует в коде Грея. Пример. Перевести код Грея 10111010 в простой двоичный код. Первая цифра переписывается без изменений —1. Вторая слева цифра должна быть 1, так как соответствующая цифра в коде Грея 0 и впереди стоит только одна единица, т. е. 0->-1. Третья цифра должна быть 0 (1 -► 0). Четвертая цифра 1 (1 -* 0, 0 1, так как впереди две единицы). Питая 0 (1 -*• 0, 0 -* 1, 1 -> 0). Шестая 0 (0 -»• 1, 1 -> 0, 0 -* 1, 1 ->• 0). Седьмая 1 (1 -> 0 0 1 1 -► 0 0 -* 1). Восьмая 1 (0 -»• 1, 1 -► 0, 0 -* 1, 1 0, 0 -► 1). Полученный двоич- ный код имеет вид 11010011. 2.9. Неравномерные коды Шеннона — Фано и Хаффмена При передаче сообщений, закодирован- ных двоичным равномерным кодом, обычно не учиты- вают статистическую структуру передаваемых сообще- ний. Все сообщения независимо от вероятности их появ- ления представляют собой кодовые комбинации одина- ковой длины, т. е. количество двоичных символов, при- ходящееся на одно сообщение, строго постоянно. 60
Из теоремы Шеннона о кодировании сообщений в каналах без шумов следует, что если передача дискрет- ных сообщений ведется при отсутствии помех, то всегда можно найти такой метод кодирования, при котором среднее число двоичных символов на одно сообщение будет сколь угодно близким к энтропии источника этих сообщений, но никогда не может быть меньше ее. На основании этой теоремы можно ставить вопрос о постро- ении такого неравномерного кода, в котором часто встре- чающимся сообщениям присваиваются более короткие кодовые комбинации, а редко встречающимся симво- лам — более длинные. Таким образом, учет статистических закономерностей сообщения позволяет построить более экономичный код. Методы построения таких кодов впервые предложили в 1948—1949 гг. независимо друг от друга Р. Фано и К. Шеннон, поэтому код назвали кодом Шеннона — Фа- но [80, 134, 135]. Код Шеннона — Фано строится так же, как и двоич- ный код (табл. 6), только сообщения вписываются в таблицу в порядке убывания вероятностей. Деление на группы производится таким образом, чтобы суммы ве- роятностей в каждой из групп были бы по возможности одинаковыми. Например, если количество сообщений 1V=6, а веро- ятности их (в порядке убывания) равны 0,4; 0,2; 0,2; 0,1; 0,05; 0,05, то на первом этапе деления на группы отделим лишь первое сообщение (группа I), оставив группе II все остальные. Далее, второе сообщение соста- вит первую подгруппу II группы; вторая подгруппа той же группы, состоящая из оставшихся четырех сообще- ний, будет и далее последовательно делиться на части так, что каждый раз первая часть будет состоять из одного лишь сообщения. Построение кода приведено в табл 12. 61
Т аблица 12 № сооб- щения Ве- роят- ность Деление на группы Кодо вые комби- нации 1 2 3 4 5 6 0,4 0,2 0,2 0,1 0,05 0,05 I I I П 11) III I! } 1 J 111 и 0 10 110 1110 НПО 11111 Основной прин- цип, положенный в основу кодирования по методу Шенно- на — Фано, заклю- чается в том, что при выборе каждой цифры кодового обо- значения следует стремиться к тому, чтобы содержаще- еся в ней количест- во информации было наибольшим, т. е. чтобы независи- мо от значений всех предыдущих цифр эта цифра при- нимала оба возможных для нее значения (0 и 1) по возможности с одинаковой вероятностью. Разумеется, количество цифр в различных обозначениях при этом различно, т. е. данный код является неравномерным. Сообщениям, имеющим большую вероятность, соот- ветствуют короткие кодовые комбинации, имеющие мень- шую вероятность — более длинные кодовые комбинации. Среднее количество символов на одно сообщение для рас- смотренного кода составляет 1. 0,4 4- 2 • 0,2 4* 3 • 0,2 4- 4- 4 • 0,1 + 5(0,05 4- 0,05) = 2,3. Это значение не очень 6 далеко от энтропии: Н = 2 —pjlogp* => — 0,4 log 0,4 — — 2 • 0,2 log 0,2 — 0,1 log 0,1 — 2.0,05 log 0,05 ~ 2,22. В случае использования простого двоичного кода необходимое число символов составило бы 3. Еще более удобен близкий к коду Шеннона — Фано код Хаффмена [134, 148]. Метод его построения сводит- ся к следующему. Сообщения выписываются в столбец в порядке убывания вероятностей. Два последние сооб- щения объединяются в одно вспомогательное сообщение, которому приписывается суммарная вероятность. Веро- ятности сообщений снова располагаются в порядке убы- 62
вания вероятностей в дополнительном столбце, а две последние объединяются. Процесс продолжается до тех пор, пока не получим единственное сообщение с вероят- ностью, равной единице. В табл. 13 показана методика построения кода для шести сообщений с вероятностями 0,4; 0,2; 0,2; 0,1; 0,05; 0,05._______Таблица 13 № сообще- ния Вероят- ность Вспомогательные столбцы 1 2 3 4 6 '1 2 3 4 5 6 0,4 0,2 «0,2 0.1 0.051 0,05 - 0,4 0,2 0,2 0,11- 0,1] 0,4 0,2 |- 0,211 0,2] 0.4 .- 0.41J 0,2] 0,61- 0,4] 1 Чтобы составить кодовую комбинацию, соответствующую данному сообщению, необходимо проследить путь пере- хода сообщения по строкам и столбцам таблицы. Для наглядности строится кодовое де- рево. Из точки, соответствующей вероятности 1, направляются две ветви, причем ветвям с большей вероятностью присваивается символ 1, с меньшей — 0. Такое последовательное ветвление про- должаем до тех пор, пока не дойдем до вероятности каждого сообщения. Кодовое дерево для табл. 13 приведено на рис. 13. Те- Рис. 13. Кодовое дерево. перь, двигаясь по кодовому дереву сверху вниз, можно записать для каждого сообщения соответствующую ему кодовую комбинацию: 1—0 4—1101 2—10 5— 11001 3—111 6 — 11000 Полученный код является самым экономичным из всех методов кодирования. 63
Глава избыточные коды и принципы « ИСПОЛЬЗОВАНИЯ ИЗБЫТОЧНОСТИ 3.1. Общие положения Одним из наиболее важных требований, предъявляемых к системам передачи информации, являет- ся обеспечение высокой достоверности принимаемых сообщений. Вероятность ложного сообщения в данных системах, как правило, не должна превышать Р — 10_fi -ь-10~9, в то время как вероятность ошибочного приема единичного элемента в современных дискретных каналах редко бы- вает меньше р3 — 10~3 -=~ 10~4. Поэтому для повышения достоверности принимаемых сообщений обычно применяют специальные меры, снижающие вероятность появления ошибок до некоторого допустимого уровня. Избыточные коды — одно из наиболее эффективных средств обеспечения высокой достоверности, передавае- мых и принимаемых сообщений. При построении избы- точного кода для передачи информации используется лишь часть кодовых комбинаций (разрешенные комби- нации), отличающихся друг от друга более чем водном разряде. Все остальные комбинации не используются и относятся к числу запрещенных. Это значит, что из п символов кодовой комбинации для передачи информации используется k символов. Следовательно, из общего чис- ла N=2n возможных кодовых комбинаций для переда- чи информации используется только Np=2'1 разрешен- ных комбинаций. В соответствии с этим все множество ДГ=2” возможных кодовых комбинаций делится на две группы. В первую группу входит множество Np=2h разрешенных комбинаций. Вторая группа включает в себя множество (N — Np) —2n — 2ft запрещенных комби- 64
наций. Нетрудно видеть, что при использовании избыточ- ных кодов ошибка в одном разряде приводит к замене разрешенной комбинации запрещенной. При достаточно большом отличии разрешенных комбинаций друг от дру- га можно обнаружить двукратную, трехкратную и т. д. ' ошибки, поскольку они приведут к образованию запре- щенных комбинаций, а переход одной разрешенной ком- бинации в другую происходит под действием ошибок более высокой кратности. Пример. Для передачи информации используются следующие кодо- вые комбинации, различающиеся не менее чем двумя разрядами: ООН, ОНО, 1001, 1010, 1111, 0101, 0000. Пусть при передаче комбинации (например, ООН) произошла одиночная ошибка, в результате чего исказился первый разряд и принята комбинация ЮН. Эта комбина- ция является запрещенной, что свидетельствует о наличии в ией ошибки. При выборе разрешенных комбинаций, отличающихся четырьмя разрядами 1100 и ООН, легко убедиться, что в этом случае обнару- живаются одно-, дву- и трехкратные ошибки и не обнаруживается лишь четырехкратная ошибка. Искажение информации в процессе передачи сво- дится к тому, что некоторые из переданных символов заменяются неверными. Поскольку каждая из 2* разре- шенных комбинаций в результате действия помех может трансформироваться в любую другую, всего имеется NPN = 2k • 2" возможных случаев передачи (рис. 14), включающих в себя [118] Np — 2k случаев безошибочной передачи (рис. 14, сплошные линии); NP(NP—1) = 2*х х (2*—1) случаев перехода в другие разрешенные ком- бинации, что соответствует необнаруживаемым ошибкам (рис. 14, пунктирные линии); Wp (N — Np) — 2* (2П — 2*) случаев перехода в запрещенные комбинации, которые могут быть обнаружены (рис. 14, штрихпунктирные линии). Следовательно, не все искажения могут быть обна- ружены. Доля обнаруживаемых ошибочных комбинаций - UpN 1 N 1 2"' 3 7-256 65
Для использования данного кода в качестве исправ- ляющего множество запрещенных кодовых комбинаций разбивается на Np непересекающихся подмножеств Mk- Каждое из подмно- Рис. 14. Возможные трансформации раз- решенных кодовых комбинаций. жеств ставится в со- ответствие одной из разрешенных комби- наций. Если приня- тая запрещенная, комбинация принад- лежит подмножеству Mi, считается, что передана комбинация А{ (рис. 14). Ошибка будет исправлена в тех слу- чаях, когда получен- ная комбинация действительно образовалась из комбина- ции Др Таким образом ошибка исправляется в (N— Хр) случаях. Доля исправляемых ошибочных комбинаций -- N~N> _ 1 ,32) /Vp(^-JVp) Np' Любой код при выполнении условия Np < N может применяться в качестве исправляющего. Способ разбие- ния на подмножества зависит от того, какие ошибки должны исправляться данным кодом. Пример. Определить долю обнаруживаемых ошибок кода, каждая комбинация которого содержит всего один избыточный символ п => = (А + 1). Общее число возможных кодовых комбинаций составляет 2*+* = 2* . 21, т. е. вдвое больше общего числа разрешенных комби- наций. За подмножество разрешенных кодовых комбинаций можно при- нять подмножество 2* комбинаций, содержащих четное число единиц (или нулей). При кодировании к каждой последовательности из k информа- ционных символов добавляется один символ (0 или 1) такой, чтобы 66
число единиц в кодовой комбинации было четным. Искажение любого нечетного числа символов переводит разрешенную кодовую комбина- цию в подмножество запрещённых комбинаций, что обнаруживается на приемной стороне по нечетности числа единиц. Доля обнаружи- ваемых ошибок составляет I — 2*/(2* "** *) = 0,5. Большинство разработанных кодов предназначено для корректирования взаимно независимых ошибок опре- деленной кратности и пачек (пакетов) ошибок. 3.2. Связь корректирующей способности кода с кодовым расстоянием Для оценки степени различия между произвольными комбинациями данного кода используется понятие минимального кодового расстояния dMHH. Для обнаружения всех ошибок кратности до io это расстояние должно удовлетворять следующему условию: ^мин io 4* 1- (3.3) Рассмотрим, например, код с п = 3, предназначенный для обнаружения всех однократных ошибок, т. е. = 2. Кодовые комбинации данного кода: Vt V, Vs V4 VB Ve V7 Ve 000; 001; 010; Oil; 100; 101; 110; 111. Кодовая матрица расстояний выглядит следующим образом. Как видно из матрицы расстояний, в качестве разрешенных комбинаций в этом случае выбираем следующие: 1Л =000; Vt = = 011; V6 = 101; К7 = 110, либо Vs = 001; Уз = 010; Vs = 100; V8 = 111. Для обнаружения дву- кратных ошибок кодовое 3* 67
расстояние ^мии^З. При этом в качестве разрешенных ком- бинаций можно выбрать 14 = 000 и 14 =» П1, либо У г =* = 001 и У1 =* ПО, либо Из =а 010 И Иб = 101, либо И4 = = 011 и 14 = 100. Очевидна справедливость условия d < и. (3.4) Поэтому в принципе невозможно обнаружить ошибки кратностью, равной п. Для исправления ошибок кратности 4 кодовое рас- стояние должно удовлетворять условию ^мин 24 4- !• (3*5) При этом все множество кодовых запрещенных комби- наций разбивается на N непер^секающихся подмножеств, каждое из которых ставится в соответствие одной из раз- решенных комбинаций. При получении запрещенной комбинации, принадлежащей i-му подмножеству, прини- мается решение о том, что передавалась разрешенная комбинация У ь Способ разбиения на подмножества за- висит от того, какие ошибки должны исправляться дан- ным кодом. Пример. Построить код со аначностью л = 3 (ем. предыдущий пример), предназначенный для исправления однократных ошибок. Минимальное кодовое расстояние при этом 4ИНН >2-14-1 = 3. Выбираем в качестве первой разрешенной комбинации Vs = 001. При наличии однократных ошибок данная комбинация может перейти в одну из запрещенных комбинаций Ve = 101, V4 = 011, Vj =» 000, которые можно принять в качестве подмножества запрещенных комби- наций вектора V2, т. е. в случае приема одной из комбинаций этого подмножества выносится решение, что передан вектор Vs. Пусть в ка- честве второй разрешенной комбинации выбирается вектор, отстоящий от первого на расстоянии d = 2, Ve = 100. Ему должно соответство- вать подмножество запрещенных комбинаций Vf = 000, V, = 110, Ve = = 101. Получилось пересечение подмножеств. При приеме запрещен- ных сигналов Vi или Ve нельзя однозначно установить, какой был передан сигнал — Vs или VB.- Если же в качестве второй разрешенной комбинации выбрать комбинацию, отстоящую от V2 на d = 3, т. е. комбинацию V, = 110, которой соответствует подмножество запрещенных комбинаций Vs => 68
= 010, V6 = 100, V8 = Hl. то подмножества запрещенных комбинаций не пересекаются. Следовательно, dMHH — 3 обеспечивает исправление всех однократных ошибок. Для исправления всех ошибок кратности до ta .и одно- временного обнаружения всех ошибок кратности не более to (при t0 > /н) кодовое расстояние должно удовлетворять условию [29] . ^мнн to + tu + 1. (3-6) При этом нужно иметь в виду, что, если обнаружен- ная кодом ошибка имеет кратность to > tKl такая ошибка исправлена быть не может, т. е. в данном случае код только обнаруживает ошибку. Корректирующие возмож- ности кода в зависимости от кодового расстояния ил- люстрируем табл. 14. __ Таблица 14 ^МНН te *и Возможность, даваемая кодом 1 2 3 3 4 4 5 5 5 0 1 1 2 2 3 2 3 4 0 О 1 о 1 о 2 1 0 Отличать одну комбинацию от другой Обнаруживать однократные ошибки Исправлять (с обнаружением) однократные ошибки Обнаруживать двукратные ошибки Исправлять однократные и обнаруживать дву- кратные ошибки Обнаруживать трехкратные ошибки Исправлять (с обнаружением) двукратные ошибки Исправлять однократные и обнаруживать трех- кратные ошибки Обнаруживать четырехкратные ошибки Идея построения кода с данной корректирующей способностью, следовательно, заключается во внесении в него такой избыточности, которая обеспечила бы рас- стояние между любыми кодовыми комбинациями данного кода не менее </мин. К сожалению, вопрос об определе- нии минимального количества избыточных символов не решен. Существует лишь ряд верхних и нижних оценок (границ) [57, 61, 78, 81, 83, 90, 91, 92, 96, 107] s 69
1) граница Хэмминга (^мнн—1 \ 1+ 2 СМ: М (-1 / 2) граница Плоткина г > 2d — 2 — log2^; (3.8) 3) граница Элайеса г > log2C”— log2J, (3.9) где А к fl 1/i 2 (d — D) m — 0,5n 11 — у 1----"2 ~ I; 4) граница Варшамова— Гильберта (^мив“* \ 1+ 2 сл. (зло) *=1 / Экспериментально установлено, что наиболее близ- кие значения дает граница Варшамова — Гильберта [90]. Все приведенные границы позволяют сделать вы- вод, что при выполнении одного из условий (3.7) — (3.10) имеется возможность построить код с данными параметрами. Для кодов с dUBB = 3 получено точное соотношение между числом проверочных символов г и длиной кода т г > log2 (п + 1). (3.11) В табл. 15 приведены значения проверочных симво- лов г = п — k, рассчитанные для двоичного алфавита при 1 < k < 60 и 2 < dMHB < 21. 70
t Таблица 15 •W о сч *-|inaiCOCDOCOCDCiC'lLOcQ^Tj’b.Q(NlC СО —« СЧ Cl CM CN СО СО Я чГ Л if) 1Д (D а» *н1по1со(оосоофсчюоО’^^оа>сч1Пь.о Ol W СО СО сб ’d' ’t LO 1/5 Щ 0 а» — inCM(NCDCTiWlO0^^NCCO(£0-Tt<NCT) — - СЧ СЧ СЧ со rt со ’t -tf 't LO IO LO ио ~ lo а сч ф а сч со оо n о сч io ос со q а «— - ~ СЧ СЧ СЧ со СО СО Tf LO LO Ю 1Д «» - 1й 0 СЧ LO 0 СЧ Ю СО -- хг ф о LO ЕЧ О СО Ю СО *-'-"'-СЧСЧСЧСОСОсОСО'^тГ’ФЮЮЕЛЙ ift --LOCCC')i!OCO’-<t'b-OCOCD0’-<tS0C'llOlS —• - ^C4C4C4cOCOcOcO'tf'tf<t'’'J'LOiOlO ** ^ЮООСЧЮОО — гГГчОсОЮ □О-’СОФО': — ^b- -* — — СЧ С1 СЧ СО сО СО СО ’Г Ю bO LO eft -- 1Л ОС 04 LO ОС -• xf О СЧ ьО [х. О 00 <л СО •-< СО Ф —1 — ^СЧСЧСЧСЧСОсОсО'?'’* 't LO LO LO OJ ^UOOO»->’tb.C5COC0G)--',’i,ba>C4lONQ(NLn —» — СЧ (N сч r i со со со со U0 LO io — нН GO ^Ь-ОСОьОСО-Мф0 - -е (D 0 н- Tf —< —• сч сч сч сч со со со со ’t -е- ю to о -^CCh-^N0C4LOCOQCOiOCCCCOlOCOQcO r- — — — СЧ O J СЧ to co CO CO ’t ’t XT 1Л LO ст» о сч e'b- 0 04 — —' ’--C'10404C4COCOcO’*'T^’i'M-bO 00 И-|'ФГ^С>СОС£500—''TO0’-<tCDCTiH-COcOCO-*’ ^^.^.^.C4C4C4C4COCOCOCO'^’tTl<^LO ь- —•’^t^ooimooocOLnooocOLQooocMmt^oo ^^^--C4C4C'lC'lCOCOCOcO’t,t^5i<^ о —•’ФГ*-000110Г*-001*Г t^OOOl^COOO^CQtOOp wM^-.₽4C4C4(NC4C4cOCOrtCO’5rTt*Tj<^ 1ft и-<^С0О’-’’^4<ООО-мСОООООСОЮС^ОСЧ’^О — ^СЧСЧСЧСОСОСОСО^^хГ^ * - CO 0 OD и- COi.OoCOC'J’tb^H- co <0 O0 О СЧ — н-.н-.О1СЧСМСЧСЧС0С0С0С0тГ-<*'тГ СО 1-1СОЮСООСЧ’ТС!?"'-'СОЮ Ь-фниСОФсООСЧ -.-.-н-нннСЧСМСЧСЧСЧСОСОсОсО’*^ сч -COLOHO^COlOr-CJ — С'11ПЕЧО>'-'СО1Л0СО нч — ян O'! СЧ О1 оч сч co co CO co co -HC4COTJ‘iOCfs-COClH-H-C4COTfUO<£:NCOO'10 та CMCO-e,LOOb’OCCTiO--C4CO'^lOCDt4CC0O . СЧ СЧ 71
Продолжение табл, 15 d k 21 22 23 24 26 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 2 1 1 1 1 1 1 1 I 1 I 1 I 1 1 I I 1 1 1 1 3 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 5 13 13 13 13 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 6 17 17 17 17 17 17 18 18 18 18 18 18 18 19 19 19 19 19 19 19 7 20 20 20 21 21 21 21 21 22 22 22 22 22 22 23 23 23 23 23 23 8 23 23 24 24 24 24 25 25 25 25 25 26 26 26 26 26 27 27 27 27 9 26 27 27 27 28 28 28 28 29 29 29 29 29 30 30 30 30 30 31 31 10 30 30 30 30 31 31 31 32 32 32 32 33 33 33 33 33 34 34 34 34 11 33 33 33 34 34 34 35 35 35 36 36 36 36 36 37 37 37 37 38 38 12 36 36 36 37 37 37 38 38 38 39 39 39 39 40 40 40 41 41 41 41 13 39 39 39 40 40 41 41 41 42 42 42 42 43 43 43 44 44 44 44 45 14 42 42 42 43 43 44 44 44 45 45 45 46 46 46 47 47 47 47 48 48 15 44 45 >5 46 46 47 47 47 48 48 48 49 49 49 50 50 50 51 51 51 16 47 48 48 49 49 50 50 50 51 51 52 52 52 53 53 53 54 54 54 54 17 50 Я 51 52 52 53 53 53 54 54 55 55 55 56 56 56 57 57 57 58 18 53 54 -.4 5b 55 55 56 56 57 57 58 58 58 59 59 59 60 60 61 61 19 56 56 57 57 58 58 59 59 60 60 61 61 61 62 62 63 63 63 64 64 20 59 59 60 60 61 61 62 62 63 63 64 64 64 65 65 66 66 66 67 67 21 1 61 62 62 63 63 64 65 65 66 66 66 67 67 68 68 69 69 69 70 70 Продолжение табл. 15 d k 41 42 43 44 4Б 46 47 48 49 Б0 Б1 Б2 53 64 ББ 56 67 68 59 60 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 4 11 И 11 11 11 И 11 11 11 11 И 11 И 12 12 12 12 12 12 12 5 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 17 6 19 19 20 20 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 7 23 23 24 24 24 24 24 24 24 24 25 25 25 25 25 25 25 25 25 25 8 27 27 27 28 28 28 28 28 28 28 29 29 29 29 29 29 29 29 30 30 9 31 31 31 31 32 32 32 32 32 32 32 33 33 33 33 33 33 33 34 34 10 34 35 35 35 35 36 36 36 36 36 36 •36 37 37 37 37 37 37 37 38 11 38 38 38 39 39 39 39 39 40 40 40 40 40 40 41 41 41 41 41 41 12 41 42 42 42 42 43 43 43 43 43 44 44 44 44 44 44 45 45 45 45 13 45 45 45 46 46 46 46 46 47 47 47 47 48 48 48 48 48 48 49 49 14 48 48 49 49 49 49 50 50 50 50 51 51 51 51 51 52 52 52 52 52 15 52 52 52 52 53 53 53 53 54 54 54 54 55 55 55 55 55 56 56 56 16 55 55 55 56 56 56 56 57 57 57 57 58 58 58 58 59 59 59 59 60 17 58 58 59 59 59 59 60 60 60 61 61 61 61 62 62 62 62 63 63 63 18 61 62 62 62 62 63 63 63 64 64 64 64 65 65 65 65 66 66 66 66 19 64 65 65 65 66 66 66 67 67 67 67 68 68 68 69 69 69 69 '70 70 20 67 68 68 68 69 69 69 70 70 70 71 71 71 72 72 72 72 73 73 73 21 71 71 71 72 72 72 73 73 73 74 74 74 75 75 75 75 76 76 76 77
3.3. Основы матричного построения систематических кодов Пусть комбинация ..........afti>ib2,..., Ьг, где а\й2, ..., а* — информационные, Ь\Ьъ, ..., Ъг — про- верочные символы, является разрешенной комбинацией систематического (п, /г)-кода. В систематических кодах проверочные разряды являются линейной комбинацией информационных, т. е. значение любого проверочного разряда bi = ац at фа£2о2ф. •• ® где а.ц, а.(2, .... а£й — числа, равные 0 или 1. Сложим по модулю два две разрешенные кодовые ком- бинации систематического кода: _aia2- • .akbib2.. .br OjCl2 . . . Gfe&i&2.••Ьг___________________________ («I © a'l) («2 ф a2) • .(flk © a'k) (6i®6i)(i>2® b'2) ... (br ф b'r) Нетрудно видеть, что (bt ф b'i) = anO| ф a£2a2 ф •. • ф ф a-ikCik ф адЯ] ф а£2а2 © • • • © = «л (^1 ф с1) © ф 2 (а2ф сц) ф. • • ф aik (°* ф °*)- • Таким образом, проверочные разряды суммы по мо- дулю-два двух разрешенных комбинаций образуются по тому же правилу, что и для каждой разрешенной ком- бинации. Отсюда сумма двух разрешенных комбинаций систематического кода также является разрешенной ком- бинацией. Данное обстоятельство дает возможность определить все разрешенные кодовые комбинации, рас- полагая лишь ограниченным количеством разрешенных комбинаций. Для этого данные исходные комбинации выбираются специальным образом [90, 122, 123, 140]. 1. Все исходные комбинации должны быть различны. 2. Нулевая комбинация не должна входить в число исходных. 3. Все исходные комбинации должны быть линейно независимы, т. е. должно соблюдаться равенство cqaj ф 74
ф (Хааг ф... ф а*а* ¥= 0 при всех значениях а/, за исклю- чением — а2 = аз =... — а* = 0. 4. Каждая исходная кодовая комбинация, как и лю- бая ненулевая разрешенная комбинация, должна содер- жать количество единиц не менее с/мин- 5. Кодовое расстояние между любыми парами исход- ных комбинаций не должно быть меньше йМии- Подо- бранные определенным образом k исходных кодовых комбинаций однозначно определяют систематический код. Эти комбинации записывают в виде матрицы Gn, k, состоящей из k строк и п столбцов. Такая матрица назы- вается производящей: ОцО12. •. a\kt>ub\2... bir 021022 • . . 02*621622 . • - bir (3.12) 0*10*2 . . . O**6*i6*2 ... 6ft, Производящая матрица может быть представлена двумя подматрицами—информационной и проверочной. Число столбцов информационной подматрицы равно k, число столбцов проверочной подматрицы равно г: 01)012 Gn k = 021022 0*10*2 Ol* 02* Oft* 611612 ... би 621622 ... &2г 6*16*2 . . . 6ftr Теорией и практикой установлено [90], что в качестве информационной подматрицы удобно брать единичную матрицу в канонической форме £*: 1 о о ... о о 1 о ... о о о 1 ... о о о о ... 1 (3.13) Эта матрица имеет k столбцов и k строк. 75
Проверочная подматрица Cr, k строится путем подбора различных r-разрядных комбинаций, удовлетворяющих следующим условиям. 1. Количество единиц в строке должно быть не менее ^МИН - 1 • 2. Сумма по модулю два двух любых строк не должна иметь менее dMHH — 2 единиц. При соблюдении перечисленных условий любую про- изводящую матрицу систематического кода можно при- вести к следующему виду: 1 0 0 ... 0 ^11^12 • . . bir 0 1 0 ... 0 ЬцЬц . • • &2Г 0 0 1 ... 0 .. Ь9Г 0 0 0 ... 1 bkibki . .. bk, . ОЛ Ьг . Ьг (3.U) Пример. Построить матрицу систематического кода, способного исправлять одиночную ошибку (<и=1) при передаче 16 сообщений (Wp). Так как Np = 2*, то k = 4 (16 = 24) и число строк производящей матрицы G должно быть равно четырем. Число столбцов матрицы G равно длине кода n> п = k -}- г, где г —*Число проверочных разрядов. Для <и = 1 4МНИ = 2<н -}- 1 = 3. Пользуясь табл. 15, находим г — = 3. Следовательно, число столбцов подматрицы Сг равно трем. Учитывая то, что количество единиц в строке подматрицы Сг к должно быть не менее dMHH — 1 = 3 — 1 = 2 единиц, выбираем следую- щие комбинации: 111, 110, 101, 011. Окончательный вид производящей матрицы: С,= 1000111 0100110 0010101 0001011 или G2 = 1000111 0100011 0010110 0001101 или G3 = 1000011 0100101 0010110 0001111 И т. д. Построим, например, с помощью матрицы GB все комбинации дан- ного кода (7,4). Поскольку первая комбинация — нулевая, вторая — пятая комбинации—строки производящей матрицы, то остальные одиннадцать находятся суммированием по модулю два всевозможных сочетаний строк производящей матрицы. 76
Все 16 комбинаций кода (7, 4) с производящей матрицей Gg выг- лядят следующим образом: 1. 0000000 9. 0110011 3®4 2. 1000011 10. 0101010 3® 5 3. 0100101 11. 0011001 4®5 4. 0010110 12. 1110000 2® Зф4 5. 0001111 13. 0111100 3®4®5 6 . 1100110 2©3 14. юною 2®4®5 7. 1010101 2©4 15. 1101001 2®3ф5 8. 1001100 2®5 16. 1111111 2®3ф4ф5 При построении кодов необходимо уметь находить проверочные разряды кодовой комбинации по информа- ционным. Алгоритм образования проверочных символов с по- мощью матрицы Gn, t по известным информационным мо- жет быть записан в виде 6] = 61101 ф &21O2 ф • • • ф ftfelfl*; 62 = 6120] ф 622Я2 ф • •. ф ф bkzctk', Ъг = birdi ф 62^2 ф ... ф bkrcik- Для каждой конкретной матрицы Gn,k существует своя, одна единственная система проверок. Проверки производятся по следующему правилу: В первую про- верку вместе с проверочным разрядом 6j входят инфор- мационные разряды, которые соответствуют единицам первого столбца подматрицы Сг, во вторую проверку входят второй проверочный разряд 62 и информацион- ные разряды, соответствующие единицам второго столб- ца подматрицы Сг, k, и т. д. Число проверок равно чи- слу проверочных разрядов кода (числу столбцов под- матрицы С г, kj- Пример. Производящая матрица G кода (7, 4) имеет вид 1000 011 0100 101 Gy 4 — 0010 по 0001 111 тт
Согласно привеченному выше правилу построения система про- верки кода о матрицей 07 4 имеет вид bt = а2 ф а3 ф а4; Ь2 = 3=3 Ф Ф fl4S 63 = 6Z| Ф Oj ф с4. Гораздо удобнее проверочные уравнения составлять с помощью так называемой проверочной матрицы И, состоящей из г строк и п столбцов. Образуется прове- рочная матрица следующим образом. Вначале строится единичная матрица 100 ... О F _ 010 ... 0 г~ 001 ... 0 ’ 000 ... 1 после чего к ней слева приписывается подматрица Dk,r, содержащая k столбцов и г строк, причем каждая ее строка соответствует столбцу проверочных разрядов подматрицы Сг, k производящей матрицы Gn, k, т. е. Dk.r = ^11^21^31. • . •» bkl 612622632.......bk2 b\ri>2rb3r......bkr Следовательно, проверочная матрица Ег| = 6ц621, . .., bki 1 о ... о 612622, • • bk2 о 1 ... о birb2r......bkr О О ... 1 (3.15) С помощью этой матрицы операция кодирования осуществляется очень просто. Позиции, занимаемые единицами в i-строке подматрицы Dk,r, определяют те информационные разряды, которые должны участвовать в формировании i-ro проверочного разряда. Пример. Построить проверочную матрицу Н кода (7, 4), образу- ющая матрица которого имеет вид П
1000111 0100110 0010101 0001011 Находим сначала подматрицу Dk г, которая является транспо- нированной по отношению к подматрице Ck г\ 1110 110 1 10 11 Затем к ней справа приписываем единичную матрицу Ег и получаем проверочную матрицу Н = 1110100 1101010 1011001 Проверочные символы, определяемые по ней, fej = Oj ф а2 ф а3 ; ^2 = ai®a2®c4> ^з = ai ® аз®а4 и сообщение, например ОНО. закодированное таким кодом, будет выглядеть 0110011, так как 61 = 0ф1ф1=0; 62 = 0ф1ф0 = 1; Ь3 = 0ф1ф0=1. Подводя итоги рассмотренному выше матричному представлению кодов, можно сделать следующие выводы. 1. Образующая матрица Gn,k позволяет представить весь набор кодовых комбинаций в очень удобной и компактной форме. С помощью этой матрицы довольно просто построить любую кодовую комбинацию по из- вестным информационным символам, т. е. представить неизбыточное сообщение в закодированном данным ко- дом виде. 2. Проверочная матрица Нп,г обычно используется при построении кодирующих и декодирующих устройств, так как она определяет алгоритм нахождения прове- рочных разрядов по информационным символам. Кроме того, как будет показано ниже, данная матрица очень удобна для указания места ошибки в кодовой комбинации.
Пример. Образующая матрица кода (11, 7) имеет вид Оц, 7 — 10000001111 01000001110 '00100001101 00010001011 00001000111 00000101001 00000010110 Найти закодированную комбинацию неизбыточного сообщения 1101001. Поскольку для получения сообщения вида 1101001 необходимо сложить первую, вторую, четвертую и седьмую строки единичной матрицы Ek, для нахождения проверочных разрядов закодирован* него сообщения следует сложить эти же строки подматрицы Cr kt 1111 1110 ®1 0 1 1 0 110 110 0- Таким образом, закодированное сообщение имеет вид 11010011100. Пример. Найти соотношения для получения проверочных симво- лов кода, матрица которого имеет вид Н = 0111100 юною 1101001 Используя свойства матрицы, находим = «2 Ф °зФа4‘> ^2 = Oj ф а3 ф а4; 63=в1фй2фа41 где at — а4 — информацион- ные символы | —b3— проверочные символы. 3.4. Методы исправления ошибок Существует два основных метода исправ- ления ошибок. Первый метод основан на использова- нии кодов-спутников. В этом случае строится кодовая 80
таблица, в первой строке которой располагаются все кодовые слова Vi. Вторая строка таблицы заполняется векторами, полученными в результате суммирования по модулю два кодовых слов первой' строки с вектором еь вес которого <о = 1, а единица расположена в первом разряде. Третья строка таблицы — результат сложения по модулю два кодовых слов первой строки с вектором в2, вес которого <о = 1, а единица содержится во втором разряде. Аналогично поступают до тех пор, пока не будут просуммированы с кодовыми словами все векторы е/ весом <о = 1 с единицами в каждом из п разрядов. Затем суммируются по модулю два векторы q весом ш = 2 с последовательным перекрытием всех возможных разрядов. Вес вектора в/ определяет число исправляемых оши- бок. Сказанное ранее иллюстрирует табл. 16. Таким образом, для каждого кодового слова. Vi существует своя группа кодов-спутников, расположенных в соот- ветствующем столбце. Таблица 16 е vt V, V2*— 1 ei е2 е2Г^-1 - « £ Ф® • 40*4? к 04 4J ФФ ; ? . . . в2Л_,ф V2*-t Все коды-спутники рабочих кодовых комбинаций хранятся в памяти машины, и в случае приема комби- нации, совпадающей с одним из кодов спутников, ис- каженная комбинация расшифровывается как исходная рабочая комбинация, в которую входит данный код- спутник. 81
Пример. Определить коды-спутники для кода, исправляющего одиночную ошибку со следующими четырьмя рабочими комбина- циями) 01001, 01110, 10010, 10101. Поскольку /и = 1, достаточно построить коды-спутники, отличающиеся от исходных кодовых ком бинаций на ву с <о= 1. Используя табл. 16, имеем 01001 OHIO 10010 10101 «1 = 00001 01000 01111 10011 10100 е2 = 00010 01011 01100 10000 10111 еа = 00100 01101 01010 юно 10001 et = 01000 00001 00110 ною 11101 &, = 10000 11001 11110 00010 00101 Благодаря кодам-спутникам принятая, например, искаженная комбинация 10111 расшифруется как исходная) 10101. Такой метод исправления ошибок требует большого объема оборудования, особенно при длинных кодовых комбинациях, так как число запоминающих ячеек ста- новится чрезвычайно большим. Поэтому на практике применяется другой метод исправления ошибок, при котором используются проверочные соотношения, запи- санные на основании проверочной матрицы Н. При этом проверка кодовой комбинации на приеме выполняется путем сопоставления принимаемых прове- рочных разрядов кодовой комбинации и проверочных разрядов, вычисленных на основании принятых инфор- мационных. Их сумма по модулю два называется син- дромом. Характерная особенность синдрома то, что он не зависит от вцда переданной комбинации, а полностью определяется ошибками, поразившими принятую ком- бинацию. Между комбинацией синдрома и вызвавшей его комбинацией ошибки нет-взаимного однозначного соответствия — одному и тому же синдрому соответствует 2* различных комбинаций ошибок. Так, нулевому син- дрому соответствует нулевая комбинация ошибок, а также 2*— 1 комбинаций ошибок, совпадающих с раз- решенными кодовыми комбинациями (необнаруженные ошибки). Только одна из комбинаций ошибок, соответ- 82
ствующих нулевому синдрому, может быть исправлена кодом. При этом за каждым синдромом закрепляется такая исправляемая комбинация ошибок, появление ко- торой в канале наиболее вероятно. Поскольку синдром — сумма по модулю два прове- рочных разрядов кодовой комбинации и проверочных разрядов, вычисленных по принятым информационным символам, то, следовательно, он совпадает с комбина- цией результатов проверки на четность, определяемых проверочной матрицей Н. Если проверочный символ, вычисленный по инфор- мационным, обозначить b'i, а проверочный символ при- нятой кодовой комбинации — bt, то синдром, например для (7, 4)-кода с проверочной матрицей 0 11110 0 10 110 10 Н~ 1101001 С] 6^2 ^2 Ь$ выглядит следующим образом: biQ)b'i=Si\ b2Qb2 = = S2, b3 ф Ьз = S3; где b\ = а2 ф а3 ф а4; b2 = aj ф Озф04; Ьз = О1фО2фо4. Таким образом, определяем синдром путем решения уравнений а2 ф®3 ф©4 ф b\ = Sb С1фазфо4фб2 = 52: 01 Ф 02 ф 04 ф&з = S3. (3.16) Если код используется для исправления ошибок, то при декодировании должно быть заранее определено со- ответствие между видом синдрома и видом исправляе- мой ошибки. Установим это соответствие. Пусть ошибка воздействует в первом разряде (комбинация ошибки 1000000). Применим к этой комбинации проверки (3.16): 02 ф 0з ф о4 ф^1 — 0ф Оф Оф 0 = 0; фаз ф о4 ф Фб2 = 1ф0ф0ф0«1; а1фа2фа4фЬз = 1ф0ф фОф0 «= 1. 83
Это значит, что при действии ошибки в первом раз- ряде синдром равен 011. Аналогично можно получить виды синдромов при действии всех других возможных однократных ошибок. Все виды синдромов сведены в табл. 17. Пусть, например, в кодовой комбинации 1101001 при передаче произошла ошибка во втором разряде и на вход декодирующего устройства поступила комбинация 1001001. При декодировании в соответствии с (3.16) будут получены следующие результаты: 1-я проверка 0 4- 0 4- 1 4- 0 = 1; 2-я проверка I4-O4- 4-14-0 = 0; 3-я проверка 14-04-14-1 = 1. Таблица 17 Комбинация ошибки № искаженного раз ряда Синдром 1000000 1 011 0100000 2 101 0010000 3 110 0001000 4 111 0000100 5 100 0000010 6 010 Таким образом,син- дром равен 101. Это свидетельствует о том (табл. 17), что ошибо- чен именно второй раз- ряд принятой комбина- ции. Из табл. 17 вид- но, что для указания ошибок могут исполь- зоваться все комбина- ции двоичного кода, кроме нулевой. Поэтому число разрядов синдрома, а следовательно, и число прове- рочных символов при исправлении однократных ошибок определяется неравенством 2' — 1 > п, (3.17) или 2' — 1 > Сп. (3.18) Для исправления не только единичных, но и двойных ошибок необходимо выполнение условия 2Г-1>С^4-С“. (3.19) В общем случае 2Г—1 >Ci4-C^4-... 4-С'«, (3.20) где /и— кратность ошибки. Это условие совпадает с границей Хэмминга (см. § 3.2). Но если для исправ- 84
ления одиночной ошибки довольно просто получить синдромы, позволяющие однозначно определить место ошибки в комбинации, то для исправления двойных, тройных и т. д. ошибок, а также для исправления пачек ошибок построение синдромов довольно затруднительно. До сих пор не имеется в литературе метода, который позволил бы построить систематический код для исправ- ления множества ошибок. В работах [7, 76] разработан метод построения синдромов для кодов, предназначен- ных для исправления двойных, тройных, а также пачек ошибок длины /< 3. В табл. 18 представлены синдромы для кода, исправляющего двойные ошибки, а в табл. 19 — для кода, исправляющего тройные ошибки. По этим таблицам находим синдромы двойных и трой- ных ошибок путем суммирования по модулю два синд- ромов, в разрядах которых произошли ошибки. Напри- мер, для кода, исправляющего двойные ошибки, получен синдром 0000011111. По табл. 18 находим, что данный синдром получается путем суммирования по модулю два 5-го и 6-го разрядов, т. е. искажены пятый и шестой разряды кодовой комбинации. Таблица 18 № разряда кода Синдром 1 № разряда кода Синдром № разряда кода Синдром 1 0000000001 11 0001101010 21 0110111101 2 0000000010 12 0010000000 22 1000000000 3 0000000100 13 0010010110 23 1000011001 4 0000001000 14 0010110101 24 1000101101 5 0000001111 15. 0011011011 25 1001010010 6 0000010000 16 0011101101 26 1010000011 7 0000100000 17 0011110111 27 1100100011 8 0000110011 18 0100000000 28 1101011111 9 0001000000 19 0100010111 29 1111100110 10 0001010101 20 0100101001 85
Таблица 19 № разряда кода Синдром № раз ряда кода Синдром № разряда кода Синдром 1 0000000001 6 0000100000 и 0110111101 2 0000000010 7 0000111111 12 1000000000 3 0000000100 8 0001000000 13 1011011001 4 0000001000 9 0010000000 14 1101101010 5 0000010000 10 0100000000 15 1110110100 В табл. 20 представлены синдромы 30-разрядного кода, исправляющего пачки ошибок длины I < 3. Таблица 20 № разряда кода Синдром № разряда кода Синдром № разряда кода Синдром 1 00000001 11 00001011 21 00010101 2 оооооою 12 00010001 22 00100001 3 00000100 13 01000001 23 01001000 4 00001000 14 00001111 24 10000001 5 00010000 15 00100011 25 00011101 6 00100000 16 01000010 26 01000100 7 00001001 17 00001101 27 10000011 8 00010010 18 01000111 28 00110001 9 00100100 19 01010011 29 00010111 10 1 01000000 20 10000000 30 10000100 Ввиду сложности построения синдромов для исправле- ния множества ошибок обычно процесс построения пору- чают вычислительным машинам. С помощью вычисли- тельной машины Банерджи построил таблицу кодов для исправления любых двукратных ошибок в кодовых ком- бинациях длиной до 29 разрядов (приложение 1). В пер- вой графе этой таблицы указан тип кода. Каждая из 86
остальных граф соответствует одному из проверочных разрядов комбинации. Чтобы определить значение про- верочного символа (0 или 1) в любом из этих разрядов, нужно сложить по модулю два информационные сим во-, лы, находящиеся во всех тех разрядах, номера которых указаны в соответствующей клетке таблицы. Все дву- значные номера информационных символов подчеркнуты. Проверочным разрядам в таблице присвоены номера от первого до г — п~ k. В кодовых комбинациях они за- нимают места от(k + 1) до п. Для построения любого из приведенных в ней кодов необходимо вычислить г — = п — k сумм по модулю два. 3.5. Понятие об оптимальных кодах Избыточные коды могут применяться с целью либо только обнаружения возможных ошибок, либо исправления обнаруженных ошибок. Во всех слу- чаях желательно достичь максимальной корректирую- щей способности. Но в зависимости от конкретного по- строения кода его способность к исправлению тех или иных ошибок может изменяться в широких пределах. Поэтому возникает вопрос о том, какая из разновид- ностей систематического кода при заданных п и k имеет наивысшую корректирующую способность. При некото- рых значениях п и k может быть найдено такое удачное построение кода, при котором веса всех разрешенных ненулевых комбинаций мало отличаются друг от друга и от половины максимально возможного веса. При дру- гих значениях п и k может оказаться, что для некоторой малой части кодовых комбинаций из их общего числа 2* расстояние оказывается существенно меньшим, чем для большинства других. Поэтому при рассмотрении харак- теристик кодов можно обнаружить, что близкие по избы- точности и числу разрядов коды резко отличаются друг от друга по своей корректирующей способности. Кроме того, корректирующая способность одного и того же кода 87
может значительно изменяться в зависимости от харак- тера распределения ошибок в каналах связи [38]. В § 2.3 было дано определение оптимальности кода. Согласно этому определению оптимальным считается код, который при заданных величинах п и k (или избы- точности г) обеспечивает наименьшую вероятность необ- наружения ошибки. К сожалению, общий аналитический метод расчета оптимальных кодов еще не найден. Для определенных условий в канале и для произвольных значений п и k общим способом выбора оптимальных кодов остается способ перебора всех возможных (и, k)-кодов. В этом случае каждый раз определяется, какое значение веро- ятности необнаружения ошибки Рв.о является мини- мально достижимым. С помощью вычислительной машины такие'расчеты по отысканию оптимальных кодов для каналов связи с независимыми ошибками провел Слепян. Поиски были продолжены Фонтейном и Питерсоном [19, 93]. 3.6. Код с одной проверкой на четность Данный код независимо от длины кодо- вой комбинации содержит всего один проверочный сим- вол. Этот символ выбирается таким, чтобы его сумма по модулю два со всеми информационными символами равнялась нулю [22]. Благодаря такому способу выбора проверочного сим- вола кодовая комбинация содержит четное число еди- ниц. Например, простые комбинации 00101 и 10101 при кодировании их кодом с одной проверкой на четность выглядят соответственно 001010 и 101011. Признаком искажения кодовой комбинации является нечетность единиц в принятой комбинации. Данный код позволяет только обнаруживать однократные ошибки и все ошиб- ки нечетной кратности, так как только в этих случаях количество единиц в комбинации станет нечетным. 88
Коэффициент избыточности R = -£• JL t и данный код имеет d = 2. Распределение рабочих кодовых векто- ров по кодовым расстояниям для всех векторов оди- наково и записывается в следующем виде: Np(d) = Cdn‘, (3.21) где di принимает значения 2, 4, 6, ..., п, если п чет- но, и 2, 4, 6, .... п—1, если п нечетно. Коэффициент ложных переходов (см. § 2.3) с“1 = (3.22) СЛ где d = 1, 2, 3, ..п. Вероятность неправильного приема кодовой комби- нации определяется вероятностью появления ^обнару- живаемых (четных) ошибок. Если в комбинации искажаются двя определенных символа, а остальные не искажаются, вероятность такого события д’ (1 — рэ)"~2. Но так как таких вариантов будет Сп, вероятность двукратных ошибок Р2=*(?пр2(1—ра)п~2. Вероятность четырехкратных ошибок Р4=ч= (1 —p9'f~i и т. д. Следовательно, суммарная вероятность появле- ния необнаруживаемых ошибок Рял> = j>2 4. р4 ... е= = —Р»)"~\ где i = 2, 4, 6, . п (п’ — чет- ь-2 ное число, ближайшее к л, и меньше его). Так как с повышением кратности вероятность оши- бок резко падает, можно написать Ри.о^С2р2(1-рэ)"~2- (3.23) Пример. Найти характеристики двоичного кода с одной провер- кой на четность для п = 6. Вероятность сбоя единичного символа рэ = 10~4 . Число рабочих комбинаций Np = 2* = 2Л—1 = 25 = 32. 89
Избыточность кода R = -g- = 0,167. Распределение рабочих комбина- ций по кодовым расстояниям (d) и коэффициент ложных перехо- дов, найденные по формулам (3.21) и (3.22): d 1 2 3 4 5 6 dt 0 2 0 4 0 6 Wp(dz) -15-15-1 N (d) 6 15 20 15 6 1 Кл (d) 0 1 0 1 0 1. Значения K„(d) показывают, что обнаруживаются все ошибки нечетной кратности Кл (d) = 0, а все ошибки четной кратности при- водят к ложным переходам. Вероятность появления необнаруженной ошибки Рв 0 = ф0~8 • (1 — 1О~8)4 « 1,5 • 10~7. 3.7. Код с простым повторением , В основу построения этого кода поло- жен метод повторения исходной кодовой комбинации. Декодирование производится путем сравнения первой (информационной) и второй (проверочной) частей кода. При отсутствии такого совпадения комбинация браку- ется (т. е. обнаруживается ошибка). В этом случае k = п/2, г — п/2, тогда мощность кода — ЛГр = 2п/2. (3.24) Избыточность R = — — — = 0,5. п п Кодовое расстояние = 2. Распределение рабочих комбинаций по кодовым расстояниям Nv (d) = СЙ, (3.25) где dt == 2, 4, 6, ..., п, если п четно; dt = 2, 4, 6. п—1,если п нечетно. Коэффициенты ложных .переходов Kn(d) = Сп^/Сп. (3.26) Проверочная матрица имеет вид Н = |£ь £s| (Ek — единичная матрица). 90
Вероятность появления необнаруживаемых ошибок такая же, как и у кода с проверкой на четность, но помехозащищенность этого кода выше, так как он по- зволяет обнаруживать все ошибки, за исключением ошибок в «парных» элементах (элементах, стоящих на одних и тех же позициях в первой и второй комбина- циях). Данный код эффективен при действии пакетов ошибок. Пример. Определить характеристики кода с повторением для п = 6. Рабочие комбинации по кодовым расстояниям и коэффициенты ложных переходов, определенные по формулам (3.25) и (3.26), сле- дующие: d 1 2 3 4 5 6 dt 0 2 0 4 0 6 N (d) - 3 ~ 3 ~ 1 N(d) 6 15 20 15 6 1 0 0,2 0 0,2 0 I Таким образом, данный код позволяет обнаружить все ошибки нечетной кратности, 80% двукратных ошибок и 80% четырехкратных. Лишь все шестикратные ошибки приводят к ложным переходам ком- бинаций, которые остаются не обнаруженными. 3.8. Корреляционный код Разновидностью кода с повторением яв- ляется корреляционный код или код с удвоением элемен- тов, который характеризуется введением дополнительных символов для каждого разряда информационной части. Если в разряде информационной части стойТ 0, то в корреляционном коде этот разряд записывается симво- лами 01, если 1 — символами 10. Например, комбинация 10101 будет представлена в виде 1001100110. Показатель искажения кода—появление в «парных» элементах сочетаний вида 00 или 11 [130]. Характеристики корреляционного кода полностью совпадают с характеристиками кода с простым повторе- нием. Различие в помехоустойчивости кодированных 91
сигналов обнаруживается лишь для несимметричных каналов, у которых вероятности переходов 0 -* 1 и 1 ->0 различны, а также для каналов, имеющих различные вероятности искажения соседних символов по сравнению с другими возможными искажениями. 3.9. Инверсный код Особой разновидностью кода с повторе- нием служит инверсный код (код Бауэра) [12, 90, 130, 150]. Отличие его от кода с простым повторением за- ключается в том, что в тех случаях, когда исходная комбинация содержит четное число единиц, вторая ком- бинация в точности воспроизводит исходную. Если же исходная комбинация содержит нечетное число единиц, повторение происходит в инвертированном виде. Напри- мер, комбинации 01100 и ЮНО инверсным кодом пред- ставляются как 0110001100 и 1011001001. Кодовую комбинацию проверяют в следующей после- довательности. Сначала суммируют единицы первой комбинации. Если их число окажется четным, элементы дополнительной комбинации принимают в неизменном виде. После этого обе комбинации сравнивают поэле- ментно и при обнаружении хотя бы одного несовпаде- ния комбинация бракуется. Если же количество единиц первой комбинации нечетное, элементы второй комби- нации принимают в инвертированном виде. Затем, как и ранее, первую и вторую комбинации сравнивают по- элементно. Такое построение кода позволяет обнаружить прак- тически все ошибки, за исключением одновременного искажения двух, четырех и т. д. элементов в исходной комбинации и соответствующим им двух, четырех и т. д. элементов в повторяемой комбинации. Образующая и проверочная матрицы имеют вид 0 = |Б\, £л|; Н=» = |Е», Ё*|, где Ен — матрица, полученная из единич- 92 )
ной матрицы Ek путем замены единиц нулями, а нулей — единицами. Мощность кода Np = 2п/2. Коэффициент избыточности не зависит от числа элементов (/? = 0,5). Данный код имеет минимальное кодовое расстояние 2 при k = 2; 3 при k = 3; 4 при k > 4. Наиболее вероятным видом необнаруживаемых оши- бок является одновременное искажение двух символов в исходной комбинации и соответствующих им двух символов в повторяемой комбинации. Вероятность одно- временного искажения какой-либо пары символов в исходной комбинации Рг = С2/2р2 (1 — рэ)п/2-2. Вероятность одновременного искажения двух пар соответствующих символов, т. е. вероятность появления необнаруженной ошибки, Рн. о = [С^р2 (1 -рэ)л/2~2]2 - (С2/2)2р94. (3.27) Выражение для распределения рабочих кодов по ко- довым расстояниям в общем виде не получено. Поэтому, пользуясь свойством систематических кодов, определя- ем распределение кодовых расстояний для какого-нибудь одного кодового вектора и распространяем его на все остальные. Пример. Построить инверсный код для передачи семи сообщений и определить его характеристики. Количество информационных сим- волов fe = log2Wp=»3. Строим образующую матрицу! 11 0 0 0 1 II 0=010101. |0 0 1 1 1 0 | Суммируя строки образующей матрицы во всевозможных сочета- ниях, определяем остальные кодовые векторы инверсного кода: Vt = 1000H; Vg = 010101j Va = 001U0; К.= 110110; К* = 101101; Ke = 011011; V, = 111000. 93
Распределение кодовых расстояний для кодового вектора имеет вид ViV>VtVJ/iVtV,. 0 4 4 3 3 3 4 Отсюда Np (1) = Np (2) = Np (5) = Np (6) = 0; Np (3) = 3, !Vp(4)= 3. Коэффициенты ложных переходов из (2.6) Кл (1) = Кл (2) = (5) = = 7СЛ(6)=О| КЛ(3) = Д = О,15; Кл (4) == Д = 0,2. с0 С6 Таким образом, данный код имеет = 3 и обнаруживает все 1-, 2-, 5-, 6-кратные ошибки, 85% трехкратных ошибок и 80% — четырехкратных, 3.10. Код Хэмминга Одним из наиболее распространенных си- стематических кодов является код Хэмминга [132]. К ним обычно относятся коды с минимальным ко- довым расстоянием dMHH =3, исправляющие все одиноч- ные ошибки, и коды с расстоянием d^ =4, исправля- ющие все одиночные и обнаруживающие все двойные ошибки. Длина кода Хэмминга п<2'—1, (3.28) (г — количество проверочных разрядов). Из этого неравенства получаем 2' — l—r>k. (3.29) Формулу (3.29) можно привести к следующему виду: 9п 2к<~^, (3.30) где k — количество информационных разрядов. Это не- равенство позволяет определить длину кода при задан- ном числе информационных разрядов. В табл. 21 при- ведены параметры некоторых кодов Хэмминга. 94
Таблица 21 k г п d k Г п «“Т d 4 3 7 0,429 3 4 4' 8 0,5 4 И 4 15 0,267 3 11 5 16 0,312 4 26 5 31 0,161 3 26 6 32 0,188 4 57 6 63 0,095 3 57 7 64 0,109 4 120 7 127 0,055 3 120 8 128 0,063 4 247 8 255 0,031 3 247 9 256 0,035 4 502 9 511 0,0177 3 502 10 512 0,0195 4 1013 10 1023 0,0098 3 1013 И 1024 0,0107 4 Характерной особенностью проверочной матрицы кода с dMHH = 3 является то, что ее столбцы представляют собой любые различные ненулевые комбинации дли- ной г. Например, при г = 4 и п=я15, т. е. для кода (15,11), проверочная матрица может иметь следующий вид: Й1Б,11 — 0 0 0-0 0 001111111 1 0 0 0 1 1 110000111 1 0 110 0 110011001 1 10 10 1 0 10 10 10 10 1 Перестановкой столбцов, содержащих одну единицу, данную матрицу можно привести к 0 0 0 0 1 1 1 1 1 1 „ 0111000111 W1G.11= 10 110 110 0 1 110 110 10 10 виду 110 0 0 10 10 0 10 0 10 1 0 0 0 1 Использование такого кода позволяет исправить лю- бую одиночную ошибку или обнаружить произвольную ошибку кратности два. Если информационные и проверочные разряды кода нумеровать слева направо, то в соответствии с матри- цей получаем систему проверочных уравнений, с помо- щью которых вычисляем проверочные разряды: 95
«12 — «5®«6®«7® «8 ф«9 ф«юф «11‘, «13 = «2 ф «3 ф «4 ф «8 ф «9 ф «10 ф «1Г, (3.31) «14 = «1ф«зф«4ф«бф«7ф«10ф«п; «15 = «1 Ф «2 ф «4 Ф «5 ф «7 ф «9 + «11, где «12 — «15 — проверочные разряды; «i—«п— инфор- мационные разряды. В том случае, когда при передаче кодового слова возникает одиночная ошибка, окажутся невыполненны- ми те проверочные соотношения, в которые входит зна- чение ошибочного разряда. Например, если ошибка возникла в пятом информационном разряде, окажутся невыполнимыми первое и четвертое уравнения, т. е. синдром равен 1001 (совпадает с пятым столбцом мат- рицы Н). Отсюда получаем алгоритмы определения места одиночной ошибки: местоположение столбца матрицы Н, совпадающего с вычисленным синдромом, указывает место ошибки. Ясно, что вычисленное значе- ние синдрома обязательно совпадает с одним из столб- цов матрицы Н, так как в качестве столбцов выбраны все возможные двоичные г-разрядные числа. Хэмминг предложил использовать такое расположе- ние столбцов проверочной матрицы, чтобы номер i-ro столбца матрицы и номер разряда кодовой комбинации 1 соответствовал двоичному представлению числа i. В этом случае синдром, полученный из проверочных уравнений, является двоичным представлением номера разряда комбинации, в котором произошла ошибка. Для этого проверочные разряды должны находиться не в конце кодовой комбинации, а на номерах позиций, которые выражаются степенью двойки (2°, 2’, 22 ... 2Г~*), так как каждый из них входит только в одно из про- верочных уравнений. 96
Пример. Для г=3, п = 7 в качестве проверочной может быть выбрана следующая матрица: UjUaUst^UeUgU, 00011111 0110011- 1010101 В качестве проверочных разрядов выбираем первый, второй и четвертый. Чтобы закодировать сообщение 1101, нужно определить проверочные разряды в комбинации u4ua 1 u4 1 0 1. Из матрицы Н имеем и, = «3 ф и5 ф и7; и2 = и3 ф ueQ)u7; и4 = иБ ф и6 ф и7. Следовательно, uj=l, u8 = 0, u4 = 0 и закодированное сообще- ние имеет вид 1010101. Предположим, что шестой символ принят ошибочно, тогда будет получено сообщение 1010111. Синдром в этом случае имеет вид ПО, т. е. двоичное представление числа 6. Двоичный код Хэмминга с кодовым расстоянием dMHH = 4 получается путем добавления к коду Хэм- минга с с/мии = 3 одного проверочного разряда, пред- ставляющего собой результат суммирования по модулю два всех разрядов кодового слоя. Длина кода при этом п = 2Г разрядов, из которых (г -j-1) являются прове- рочными. Операция кодирования может выполняться в два этапа. На первом этапе определяется кодовая комби- нация с использованием матрицы Н, соответствующей коду с ймин=3, на втором — добавляется один прове- рочный разряд, в котором записывается результат сум- мирования по модулю два всех разрядов кодового сло- ва, полученного на первом этапе. Операция декодирования также состоит из -двух этапов. На первом вычисляется синдром, соответствую- щий коду с амвв=3, на втором — проверяется послед- нее проверочное соотношение. Результаты выполнения этих операций и соответствующие им выводы приве- дены в табл. 22. 4 7-2Б6 87
Таблица 22 Синдром До полнительиое контрольное соот- ношение Внводн Не равен нулю Не равен нулю Равен нулю Равен нулю i Выполняется Не выполняется Выполняется Не выполняется Произошла двойная ошибка Произошла одиночная ошиб- ка Ошибок иет Произошла тройная или бо- лее высокой кратности, но нечетная ошибка Проверочная матрица для (16, 11)-кода с d ' ' wib, п МИИ 4 может иметь вид Н = 000011111111000 011100011110100 101101100110010 110110101010001 0 0 0 0 • 111111111111111 1 Дополнительное проверочное соотношение, вводимое для увеличения минимального расстояния кода Хэм- минга, представим так» die — «1 ф из ф из ф щ ф и5 ф ф «6 ф U1 ф U8 ф «9 ф «Ю ф «II ф «12 ф «13 ф «14 ф «16» Учитывая (3.31), получаем «16 = «1 ф «2 ф «3 ф «4 ф «5 ф «6 ф «7 ф «8 ф «9 ф «10 ф ф «Ц ф «Б ф «6 ф «7 ф «8 ф «9 ф «10 Ф «11 ф «2 ф «3 ф ф «4 ф «8 ф «9 ф «Ю ф «11 ф «1 ф «3 ф «4 ф «в ф «7 ф ф «|0 ф «И ф «1 ф «2 ф «4 ф «в ф «Г ф «9 ф «11 == == «1 ф «2 ф «3 ф «Б ф «0 ф «8 ф «11. Система уравнений (3.31) и последнее соотношение для «1в позволяет записать проверочную матрицу для кода (16, 11); 98
#16,11 — 00001111111 01110001111 10110110011 110 110 10 10 1 11101101001 1 0 0 0 0 0 10 0 0 0 0 10 0 0 0 0 1 0 0 0 0 0 1 #rl- (3.32) Иногда при практическом использовании кода встре- чается задача получения укороченного кода с заданным минимальным расстоянием (dMHH=3 или 4). В этом слу- чае строится проверочная матрица для неукороченного кода с наименьшим значением г, удовлетворяющим сле- дующим условиям: 2'—1—r>k для кода с dMBB = 3; (3.33) 2r — r>k для кода с dMHH=4. (3.34) •Во втором случае число проверочных разрядов кода равно (г + 1). Затем в полученной матрице отбрасывают- ся все лишние столбцы подматрицы О*. г. Пример. Построить проверочную матрицу для кода Хэмминга с dMHH = 4, содержащего k = 10 информационных разрядов. Наимень- шее значение г, которое удовлетворяет неравенству (3.34), равно 4, Длина кода равна 16. Матрица для этого кода приведена в (3.32) В подматрице Dk г, содержащей 11 разрядов, вычеркиваем послед- ний столбец для экономии аппаратуры (обычно вычеркиваются столбцы с наибольшим количеством единиц). Проверочная матрица укороченного кода (15, 10) в этом случае имеет вид Я|6.10 ~ 0000111 0111000 10 110 11 110 110 1 1110 110 11110000 11101000 00100100 01000010 10000001 При использовании табл. 21 очень просто определяем, для какого из неукороченных кодов Хэмминга необходимо построить провероч- ную матрицу, по которой строится проверочная матрица укорочен- ного кода. Например, если fe = 30 и dMm=3, необходимо строить проверочную матрицу для кода, с k = 57 и dMBH = 3, т. е. кода (63, 57), и затем вычеркнуть из подматрицы О57 6 двадцать семь столбцов. 4* 99
Весовую характеристику кода Хэмминга удобно на' ходить с помощью функции f(x), позволяющей опреде* лить число кодовых векторов с различными весами [93]. Для кода с d. Для кода с ^мин /W = ттг В формулах (3.35), (3.36) число кодовых векторов веса w равно значению коэффициентов многочлена, стоящих перед Пример. Пусть задай код Хэмминга о dMHB=3 п = 7. Опреде- лить коэффициенты ложных переходов. Для этого кода согласно фор- муле (3.35) имеем f (х) = К» + х? + 7 (1 + х)’ (1 -х)*] = 1 + 7х»+ 7л* + А Следовательно, данный код содержит одно кодовое слово веса 0, семь слов веса 3, семь слов веса 4 и одно слово веса 7. Это значит, что распределение рабочих векторов по кодовым расстояниям дли данного кода следующее! Np (1) = Np (2) = Np (5) = Np (6) = 0; Np(3) =7, Np(4) = 7, Np (7) = 1. Коэффициенты ложных переходов Кл (1) - Кл (2) = К„ (5) - К„ (6)= 0; 7 7 Кл (3) = = 0.2* Кл (4) = -4 - 0.2J Кл (7) = Поэтому этот нод обнаруживает все одно-, дву-, кратные ошибки, 80% трехкратных и четырехкратных. 3.11. Код Голея мин — 3 __Л±Г (1 + х)л + п (1 + х) 2 (1—х) 2 . (3.35) -4 л—1 ___ л±Г (l-H)"+ «(!+*) » (1-х) ® л—1 1 Gl~' (3.36) пяти-, шести- Формула для определения количества проверочных разрядов г имеет следующий вид ($ 3.4); С° + Сл + ... 4- Ся = 2', где — количество исправляемых ошибок. 100
Таблица 23 Вес ко- дового слова Число кодовых слов этого веса код (23,12) | код (24,12) 0 1 1 7 253 0 8 506 759 11 1288 0 12 1288 2576 15 506 0 16 233 759 23 1 0 24 0 1 Голей заметил, что Си + Си + С’з = 211. Это говорит о том, что может существовать двоичный код с пара- метрами п = 23, г =» 11, k = п — г = 12, исправляющий все комбинации из трех или менее ошибок. Открытие этого кода принадлежит Голею. В табл. 23 приведены количество кодовых слов и их веса, входящих в коды Голея (23,12). Код (24,12) получается из кода (23,12) путем введения дополнительной проверки на четность [93]. 3.12. Код Рида — Маллера Коды Рида— Маллера (Маллер открыл коды, Рцд построил декоди- рующую схему) образуют класс двоичных системати- ческих кодов, имеющих раз- личные значения избыточно- сти R=r!n и значения мини- мальных кодовых расстояний ^мин- Эти коды характери- зуются следующими значе- ниями параметров [130]: длина кода и — 2т; (3.37) количество информационных разрядов k = 2№ (3.38) i—о минимальное кодовое расстояние d=2m~8, (3.39) где т >3—любое целое положительное число; 8 </и— порядок кода. Пример. Если /п = 4, то 8 может принимать значения 1, 2, 3. Определить параметры кода. _ Для 8 = 1 л = 24 = 16, d = 24-1 = 8; fe = C° + c{ ==14-4 = 5; r<=n—k— 16 — 5= П; fl = г/n = 11/16 яв 0,7. 101
Табляца 24 d п k Г К Я' 2 8 7 1 0,125 0,875 2 16 15 1 0,063 0,937 2 32 31 1 0,031 0,969 2 64 63 1 0,016 0,984 2 128 127 1 0,008 0,992 2 256 255 1 0,004 0,996 2 512 511 1 0,002 0,998 2 1024 1023 1 0,001 0,999 4 8 4 4 0.5 0,5 4 16 И 5 0.313 0,697 4 32 26 6 0,188 0,912 4 64 57 7 0,109 0,891 4 128 120 8 0,063 0,937 4 256 247 9 0,035 0,965 4 512 502 10 0,02 0,98 4 1024 1013 11 0,01 0,99 8 16 5 И 0,687 0,313 8 32 16 16 0,5 0,5 8 64 42 22 0,344 0,656 8 128 99 29 0,227 0,773 8 256 219 37 0,144 0,856 8 512 466 46 0,09 0,91 8 1024 968 56 0,055 0,945 16 32 6 26 0,813 0,187 16 64 22 42 0,656 0,344 16 128 64 64 0,5 0,5 16 256 163 93 0,363 0,637 16 512 382 130 0,254 0,746 16 1024 848 176 0,172 0,828 32 64 7 57 0,891 0,109 32 128 29 99 0,773 0,227 32 256 93 163 0,637 0,363 32 512 256 256 0.5 0.5 32 1024 638 386 0,377 0,623 64 128 8 120 0,938 0,062 64 256 37 219 0,855 0,145 64 512 130 382 0,746 0,254 64 1024 386 638 0,623 0,377 102
Продолжение табл. 24 d Л ft t R R" 128 256 9 247 0,965 0,035 128 512 46 466 0,91 0,09 128 1024 176 848 0,828 0,172 256 512 10 502 0,98 0,02 256 1024 56 968 0,945 0,055 512 1024 11 1013 0,989 0,011 Для 8 = 2 n=16; d = 24~2 = 4; k = С?+ С| + С2 = 1 + 4 + 4-6=11} г = 16— 11 = 5; J? =e/fe = 0,312. Для В = 3л=16; d = 24~3 = 2; fe = Cj+Cj-J-С^= Н 4- 44-64-4= 15; ,= 16 — 15=1; 7?s»0,07. Таким образом, в зависимости от порядка кода 6 можно получить коды (16,5), (16, 11), (16,15), харак- теризующиеся различными значениями избыточности и значениями минимального кодового расстояния. В табл. 24 приведены параметры кодов Рида — Малде- ра до п= 1024. Построение кодов Рида — Маллера сводится к сле- дующему. Вначале строится производящая матрица G, первая строка которой содержит п единиц. Далее сле- дует т строк, совокупность которых удобно рассматри- вать как (т х и)-матрицу, в качестве столбцов кото- рой выбраны двоичные числа (начиная с нуля). Номе- ра разрядов двоичных чисел удобно считать сверху вниз. Эти т строк составляют векторы первого поряд- ка 6. Далее идут строки векторов второго порядка, которые получаются из всех произведений двух строк первого порядка, затем — строки третьего порядка, являющиеся всеми произведениями трех строк первого порядка, и т. д. 103
Таким образом, если строится матрица G для кода порядка 8, то она содержит одну строку со всеми еди- ницами, т строк первого порядка, Ст строк второго по- рядка, Ст строк третьего порядка и т. д. В общем слу- Чае КОЛИчеСТВО строк Ст Ч~ Ст Ч* Ст Ч* • • • Ч* Ст = 1—0 и совпадает с количеством информационных разрядов k. Пример. Построить матрицу для кода Рида — Мал лер а второго порядка (8 = 2) и т = 3 (В < т). Первая строка содержит п = 2s еди- ниц (11111111). Строим матрицу строк первого порядка (3 X 8): 01234567 01010101 00110011 количество строи 00001111J сз = 3- Для дальнейшего построения строк необходимо иметь в виду, что, если перемножаются строки, например 01010101 и 00110011, резуль- тат получается путем поразрядного перемножения строю 0 10 10 10 1 *00110011 0 0 0 1 0 0 0 1- Далее построение матрицы сводится к получению строк второго порядка. Для этого перемножим первую и вторую строки, первую и третью строки и затем вторую и третью, В результате получим последующие три строки! 0 0 0 1 0 0 0 1- 00000101 0 0 0 0 0 0 1 1 количество строк с| = 3. Полностью построенная матрица G для кода Рида — Малдера второго порядка и т = 3 имеет вид 11111111 0 10 10 10 1 Q _ О О I 1 О 0 1 I 0 0 0 0 1 1 1 1 . 0 0 0 1 0 0 0 1 00000101 00000011 104
Производящую матрицу G кода Рида — Маллера можно привести к виду Gn * = |Ek, Cr. k| для того, чтобы де- кодирование производить методами, присущими всем систематическим кодам. Важнейшее свойство кодов Рида—Маллера состоит в том, что декодирование для них проводится простым способом. В этих кодах каждый из информационных символов Ukt может быть описан не менее чем d = 2m~8 независимыми проверочными уравнениями, аргументами которых являются символы tit кодового слова. Анализ результатов решения этих уравнений по принципу боль- шинства позволяет определить значение информационных символов Ukt- Тем самым при исправлении ошибок исклю- чается этап определения места ошибок, как это имело место в кодах Хэмминга. Поэтому в кодах Рида — Мал- лера можно использовать мажоритарный принцип деко- дирования [151]. Простота структуры производящей матрицы G этих кодов позволяет установить связь между информацион- ными символами Ukt и символами кодового слова щ. Это легко показать на примере. Рассмотрим код второго по- рядка для т = 4. Это код (16,11), одиннадцать информа- ционных символов которого Ufep Ukt, Ukit кодиру- ются с помощью производящей матрицы G, имеющей вид 0 = 1111111111111111 0101010101010101 0011001100110011 0000111100001111 0000000011111111 0001000100010001 0000010100000101 0000000001010101 0000001 10.0 00001 1 0000000000 1 1001 1 0000000000001111 «1 «з «в Щ и» Uli «13 «и «1 и4 ис Ug Ujo иц иы Uje ’ *0 «1 *2 *3 *4 *1*2 *1*3 *1*4 *2*3 *2*4 *3*4 “л, uki % % “ft, “ft. “ft, “ft. 4 “ft., “ft.. (3.40) 105
Матрица G (3.40) образуется с помощью векторов х0, хь х2, х3, х4, построенных указанным ранее способом и их произведений. В (3.40) показано также «соответ- ствие» между информационными символами и векто- рами xt, xtj. Кодовый вектор (закодированные информационные символы) имеет вид V = и^хо + “ft,Xi + “ftjXs + “*Лз + + иьъХ4 + Uk.XtX2 + Uk,XtX3 + И*,Х1Х4 + Uk,X2X3 + Uk^XSXf -f- + “ft,,^3X4 = f (Ut, “2, из.“ie)- Задача состоит в том, чтобы определить значение-и** по полученному кодовому вектору, несмотря на появив- шиеся, быть может, ошибки. Единицы в столбцах матри- цы G показывают, какие именно информационные символы Ukt определяют значение символов щ кодового слова. Например, из приведенной матрицы следует, что “1 = “*,; Ии = “*,©“*,; “з = “ft, Ф “ft,; “4 = “ft, Ф“й.Ф “5 = “*,©“»,; иъ — ukt фик,фuktф ик,‘, Ui = ик, ф uki ф ик, ф ик;, Ua = ик, ф ф uki ф Ukt ф Ф Uk, ф Uk, ф Uk;, Ug^Uk^Uk,-, “ю = “л1ф“йЬф“*,ф ©ч; “11 = “ft, ©“fti© “ft, Фч»; “12 = “ft, ©“ft,©“fti® ф “ft, Ф “ft, ф “ft. ф “ft,,; “13 = “ft, ф “ft. ф “ft. ф “fc„; “ 14 = = ukl ф Uk, ф “л, ф“ft, ф ф “ft. ф “л,,; «is = «л, Ф «fti® Ф Ф “ft.® “л.Ф “ft,, Ф«*„; «16 = и*. © «ft,® «fti® Ф “ft, © “ft, © “ft. ф “ft, ® “ft, ф “ft, Ф “ft,, Ф “ft,,. (3.41) Эти соотношения позволяют закодировать сообщение по известным информационным символам. Предположим, что исходное сообщение имеет вид 10001011011. Тогда закодированное сообщение (кодовый вектор) выглядит как 1111101001161100. Соотношения для определения инфор- мационных символов из кодового вектора можно полу- чить, решая уравнения (3.41) относительно ukf, т. е. определить 106
Ukt—f(Ui, и?......«1б); «*. = /(«1. «2.....«и); u*i = f(“b “2.....uw); “ft.. = f(“b «2, ...» И1б). В производящей матрице G пь ...........«16 представ- ляют собой столбцы этой матрицы. Поэтому общий прин- цип поиска проверочных соотношений заключается в на- хождении таких совокупностей столбцов, сумма которых по модулю два будет содержать только одну единицу в разряде, соответствующем отыскиваемому tz*f. Место- положение столбцов указывает, какие символы щ входят в данное соотношение. Например, в приведенной матри- це сумма первых четырех столбцов равна 1111 0 и*. 0 10 1 0 0 0 11 0 uki 0 0 0 0 0 uk. 0 0 0 0 0 uk, 0 0 0 1 = 1 uk. 0 0 0 0 0 ик, 0 0 0 0 0 uk, 0 0 0 0 0 “ft. 0 0 0 0 0 “ft.. 0 0 0 0 0 “ft.. “1и2“з“4 На основании этого можно записать проверочное соот- ношение Uk. = U1 ф «2 ф из ф щ. В справедливости этого равенства можно убедиться, подставляя в него значения иь tz2, из, ut из (3.41). По- лучим Uk, = Uk, ф Ukt Ф Uk, ф Uk, ф Uki Ф “ft. Ф “ft. Ф иЬ Ф ^Uk,~Uk,, так как Uk,, Uk,,'Uk, входят в правую часть 107
четное число раз. Выше было сказано, что каждый из информационных символов может быть описан d = 2W-8- уравнениями (в нашем примере d = 2*—2 = 4). Действи- тельно, Uk, можно получить еще тремя способами, а имен- но, складывая столбцы и5 ф и6 ф ш ф и8, «в ф «ю ф инф фИ12 и и1зф«нфи15®«1в. ф ф — ф '1111 0 '1111 0 1 1 1 г 0 “*1 0 10 1 0 0 10 1 0 0 1 0 1 6 “ki • 0 0 11 0 0 0 11 0 0 0 1 1 0 uki 1111 0 0 0 0 0 0 1 1 1 1 0 “kt 0 0 0 0 0 1111 0 1 1 1 1 0 uk. 0 0 0 1 = 1 0 0 0 1 = 1 0 0 0 1 = 1 uk, 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 uk, 0 10 1 0 0 10 1 0 0 1 0 1 0 uk> 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 uk. 0 0 11 0 0 0 11 0 0 0 1 1 0 uk.. 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 uk,t • «Би6и7ив U9UWU11U12 U13«14U15U16 Таким образом, из матрицы G получено четыре неза- висимых уравнения: Uk, = «i ф «2 ф «з ф Uk, = и8 ф фивф«7 ф«8‘> tlk. ~ «эф^юфИифны; Нй,=«1зф финфицфтмв- В общем случае для каждого должно быть не ме- нее 2т~8 независимых уравнений. Суммы, каких именно символов Ui кодового слова должны быть равны инфор- мационному символу Uk{, можно определить следующим образом. Назовем компоненту, соответствующую /-му нулю в векторе х{, и компоненту, соответствующую /-й единице в векторе xi, парными компонентами. Например, для векторов xi, х2» хз, матрицы (3.40) парные компоненты показаны на рис. 15. Тогда 2т—1 сумм парных компо- 108 '
нент используются для определения «*,+!. В приво- димом нами примере «1ф«2 = «зф«4 = «5® «в “ «7®«3 * и «9ф«10 = «и ф«12 = «13 ф«14 == «1бФ«16; Ukt = «1 ф «3 = «2 ф «4 = «5 ф «7 = «6 ф «8 = = «9 ф «11 == «Ю Ф «12 = «13 ф «15 — «14 ф «16! (3.42) «*4 S3 U1 ф «5 ~ «2 ф «6 — «3 ф «7 — «4 ф «8 “ = «9 ф «13 = «10 ф «14 = «И Ф «15 =* «12 ф «1б‘, «Л, == «1 ф«9 — «2ф «10 = «зф «11 = «4® «12 = Л = «5 ф «13 == «в ф «14 = «7© «15 = «8 ©«10- <4 «1 Щ Щ ив Ч» U-, U} ию ц„ Un Ug Ug О ~О~^Г 'J 00 11 00 11 X->1 Q 0 0 0 1 1 1 1 ОООО 111 1 ик, х*~ uKS Рис. 15. Парные компоненты для векторов первого порядка. Каждая из 2"*-2 сумм четырех компонент, исполь- зуемых для определения X(Xj, образуются некоторыми двумя парными компонентами вектора и парными для тех уже выбранных компонент компонентами вектора х{. 109
На рис. 16 показаны парные компоненты x{xf (см. мат- рицу 3.40), используемые для определения соответствую- щих информационных символов. Для этих 2т~2 парных компонент «fc, = «1 ф «2 ф «3 ф «4 = Ы8ф «6 ф «7 ф ив = = «эфЫ1оФ«11 Ф «12 =* «13 ф «14 Ф «15 ф «161 Uk, = «1 ф «2 ф «5 ф «6 = «3 ф «4 ф «7 Ф «8 = = «9 ф «10 ф«13 ф «14 = «11 ф «12 ф «15® «IB? Uk, =«1ф«2ф«9ф«10 = «зф«4ф«11фЫ12 = = «5 ф «6 Ф «13 ф «14 — «7 ф «8 ф «1бф «16-, (3.43) Uk, = и 1 Ф из ф «5 ф «7 = «2 ф U4 ф «6 ф «8 = = «9 ф «11 ф «13 ф «15 — «10 ф «12 ф «14 ф 1в; «*„ = «1 ф «зф «эф «11 = «гф «4 ф «10 ф «12 == = «5 ф «7 ф «13 ф «15 = «в Ф «8 ф «14 ф «16; «»п = «1 Ф «5 ф «9 ф «13 = «2 ф «6 ф «10 ф «14 = = «3 ф «7 ф «11 ф «15 = «4 Ф «8 ф «12 ф «16. Аналогично каждое соотношение для xlt является суммой некоторых парных компонент вектора xi, сложен- ной с суммой компонент вектора х{, парных к этим ком- понентам, и с суммой компонент вектора хг, парных к уже выбранным компонентам, так что в каждой сумме получается всего восемь слагаемых. Например, вектор Х1Х2Х3 имеет вид 0000000100000001. Из рис. 16 опреде- ляем компоненты Х|%2 и выбираем парные компоненты для х(Х2Хз. Получаем рис. 17, из которого видно, что Uk для вектора Х1Х2*з имеет следующие проверочные соотношения: «* = «1 ф «2 ф «з ф «4 ф «5 ф «в ф «7 ф и8‘, «А = «9 ф «10 ф «11 ф «12 Ф «13 ф «14 ф «15 ф «16- Таким образом, с помощью производящей матрицы G довольно просто установить связь между информацион- но
U,Uf UaUf Usu6 U1U» UjUu UfiUn иаи,ч UtjUg. /Os o> % XSX*= 0 0 0 0 0 0 0 00 0 0 0 11 1 1 )uK„ Рис. 16. Парные компоненты для векторов второго порядка. О О О 0 1 и, ut и3 ич Us Ц6 ц, Uf 0 0 0 0 0 0 0 1 Uf и,д ип ип ип Ufi, Ufj Uft, Рис. 17. Парные компоненты вектора третьего порядка. 111
ними символами Ukt и символами кодового вектора, но при этом сначала записываются уравнения для Ukt, соот- ветствующие векторам наивысшего порядка 8, затем — порядка (8—1) и т. д. Пример. Закодированное кодом Рида —Маллера (16, 11) сообще- ние имеет вид 1111101001101100. Определить исходное сообщение. Воспользовавшись любыми из соотношений (3.43), определим uk[ для векторов второго порядка: ukti = «j ф «6 ф «9 ф «13 = 1 ф 1 ф0ф ф1 = 1; ИЛ1О = «2 Ф «4 Фи1оФи12 = 1 Ф 1 Ф 1 Ф 0 = I» ukt = «эФ ф «Ц ф «13 Ф «15 = 0ф 1 ф 1 ®0=0; «J^ = Ul ф U2 ф Ug ф ф «10 = 1 ф 1 ф о Ф 1 = 1; Ukl = «1 ф «2 Ф «5 Ф «6 = I ф I Ф Ф 1 ф 0 = 1; = «| ф «2 Ф «з Ф «4 = IФ 1 Ф 1 ф 1 = 0. Нами найдены информационные символы —ик1{ (коэффициен- ты, соответствующие векторам второго порядка x^fl. Дальше опре- делять информационные символы по формулам (3.42) нельзя, так как выполняются не все соотношения. Это объясняется тем, что они вы- ведены только для матрицы, содержащей векторы первого порядка xt, и ие выполняются для всей матрицы (с учетом векторов второго порядка). Действительно, например, согласно (3.42) uk = П]фи2 = = «з Ф «4 = «в Ф «6 и т- Д- Складывая соответствующие столбцы матрицы кода (16, 11), получаем единицу не только в разряде, соот- ветствующем uk, но и в других разрядах. Поэтому закодированное сообщение необходимо преобразовать так, чтобы для него были спра- ведливы соотношения векторов матрицы первого порядка. Для этого к закодированному сообщению прибавляют векторы ик[х1х1 по моду- лю два: 111 1101001 10 1 100 — принятое сообщение 0000000000001 1 1 1 — «Л1/3*4 000000000011001 1— ufcl/2*4 0000000001010101 — Uk 0000010100000101— «^XjXg I 1 1 1 1 1 1 100000000 — преобразованное сообщение. 112
Согласно (3.42) определяем uftj — ukA ukf = us © uI6 = 1 ф 0 = 1; uk,~ “i Ф “a = 1 ® 1 =°; “fcj= “j Ф “3= 1 ® 1 = 0; uk,~ui ® © u2 = 1 ф 1 = 0. Для нахождения ufti необходимо снова вычислить ukfxt и сложить их с преобразованным сообщением. Если в результате сложения по- дучим вектор, содержащий все единицы, uk — 1, если полученный вектор содержит все нули, ик =0. Так как uk = uk =uk =0, то 000000001 1111 1 11— ukxt 111111110000000 0 — преобразованное сообщение * У 1111111111111111, т. е. uki= 1. Таким образом, исходное сообщение, выделенное из кодового сло- ва, имеет вид 10001011011. Ранее отмечалось, что коды Рида — Маллера исправ- ляют ошибки по принципу большинства. Сформулируем критерий большинства проверок. Известно, что каждый из информационных символов описывается d = 2m~s урав- нениями. Пусть значения d соотношений, которым удов- летворяет Uk(, обозначены Uklt, Uklt, uklt,..., Uktd и пусть d арифметическая сумма их = 2 uk{ (i = 2, ..., и). (3.44) p=i ₽ При отсутствии ошибок очевидно, что р; может прини- мать только два значения 0 и d: d d У Uk, =0, если Uk, =0; У iz*. =d, если uk, = 1. (3.45) р-1 ₽ Р=1 р При наличии ошибок критерий большинства имеет вид d d Ukf = 0, если 0 < uki < 4 ’ Uki = если S “% = ~2 ’ p=i p=i J d Ukl = l, если у < 2 uk(f < (3-46) где (=з,2, 3, ..., п. 113
При определении необходимо складывать векторы иь,Х2, Uki+lxt с кодовым вектором. В случае безошибочного приема 1/^=0, если получен вектор, со- стоящий из п нулей; Ukt = 1, если получен вектор, состоя- щий из п единиц. При наличии ошибки достаточен следующий критерий большинства проверок: ukl = 0, если количество единиц в полученном векторе < d; = 1, если количество единиц в полученном векторе > d. Пример. При передаче закодированного сообщения 1111101001101100 в седьмом разряде произошел сбой. Принятое сообщение имеет вид 1111100001101100. Найти исходное сообщение. Согласно (3.43) и кри- терию большинства (3.46) находим, что uk =1, ик = 1, ик =0, ukt = 1, ukt = 1, uk' = 1. Остальные uk[ определяем так же, как и в предыдущем примере. 3.13. Код Макдональда Чтобы понять принцип построения кодов Макдональда, вначале рассмотрим так называемое пред- ставление систематических (и, &)-кодов, записанных с по- мощью производящей матрицы G. Поскольку данная матрица имеет k строк (см. § 3.3) и чисто нулевой стол- бец может быть исключен из рассмотрения как беспо- лезный, существует всего 2ft— 1 различных типов возмож- ных столбцов. Поэтому код можно задать указанием числа столбцов каждого типа. Этот способ задания на- зывается модулярным представлением кода. Пусть М — специальная матрица размерности & х (2А—1), содержа- щая в качестве столбцов все возможные векторы, кроме нулевого. Тогда /-й столбец матрицы можно рассматри- вать как столбец типа /, а код может быть задан векто- ром, образованным 2ft— 1 положительными целыми числа- ми [93]: N = (ci, а2.....аз*—1), где at — число столб- цов типа i. 114 1
Например, если количество информационных симво- лов А = 3, то специальная матрица М содержит 23—1 различных типов столбцов: 2* — 1 — количество столбцов ООО 1111 011 0011 101 .0101 123 4567 k — количество строк. номера столбцов Если производящая матрица кода имеет вид п столбцов G = 0 111 10 11 110 1 k строк, -ч его модулярное представление N = (0, 0, 1, 0, 1, 1, 1), т. е. в этом коде исключены первый, второй и четвертый столбцы специальной матрицы М —k х (2*— 1), так как они отсутствуют в производящей матрице G данного кода. Для хода дальнейших рассуждений напомним понятие транспонированной матрицы. Матрицей, транспонирован- ной к матрице М размером k х (2*— 1), называется мат- рица, обозначаемая Мт размерности (2*— 1) X k, строка- ми которой являются столбцы матрицы М, а столбца- ми— строки матрицы М. Так, для приведенной ранее матрицы М матрица Мт выглядит следующим образом: 10 0 1 0 1 о 0 1 1 1 о о ^=101' 1 1 о 1 1 1 115
Если умножить транспонированную специальную матрицу М? размерности (2*—1) х k на производящую матрицу кода G размерности k х п, полученная матрица K=M*G ' (3.47) размерности (2*— 1) х п в качестве строк содержит все возможные ненулевые комбинации строк матрицы G. Таким образом, строками матрицы К являются все не- нулевые кодовые векторы. Пример. Код (5.3) задан следующей производящей матрицей! С = 10 0 11 0 10 10 0 0 10 1 Найти все кодовые комбинации этого кода. = 3 имеет вид Матрица Мт для = 0 0 1 0 0 10 1 0 1 0 0 10 10 0 1 1 0 1111 мт = 1 0 0 . Тогда К = Af’G = 10 0 11 1 0 1 10 110 1 1 0 110 0 1 1 1 1 1110 0 Модулярное представление кода N = (1, 1, 0, 1, 1, 1, 0), так как пропущены третий и седьмой столбцы специальной матрицы М. Важным частным случаем является матрица G, ко- торая содержит весь код, задаваемый специальной мат- рицей М, если ее рассматривать как производящую: G « М*М. (3.48) Например, если в качестве производящей матрицы кода используется специальная матрица М с k = 3 то полный набор всех ненулевых кодовых векторов получаем с помощью матрицы 116
0 0 1 10 10 10 1 0 1 0 0 1 10 0 11 0 1 1 0001111 1100110 G = МТМ = 1 0 0 X 0 110 0 11 == 0001111 - 1 0 1 10 10 10 1 1 0 ! 1 0 1 0 1 1 0 0 11110 0 1 1 1 1101001 Перейдем к рассмотрению кодов Макдональда. Ис- пользуя свойства матрицы G=AfTAf, Макдональд заме- тил, что многие двоичные (п, А)-коды, модулярное пред- ставление которых состоит из (2* — 1—S) нулей и сле- дующих за ними S единиц, обладают самым большим минимальным кодовым расстоянием dUBB. Различные случаи, для которых Макдональду уда- лось доказать максимальность минимального кодового расстояния, приведены в табл. 25 [93]. Т а б л и ц а 25 п ^мии Модулярное представление N _ 3 1 СЧ СО СЧ g 1 [ 1 1 Ч" А! « 1 СЧ СЧ СЧ СЧ сч W I т1 «II 1 сч « « 7 1 сч сч Д - СЧ сч 2ft—1 1, 1, 1 1, 1, 1 2*— 2 0, 1, 1 1, 1, Г 2*-3 о, о, 1 1, 1, Г 2“ — 1 2* । 2“ 0,0 0, 1, 1, 1, 1,..., 1, 1‘ где и = 2, 3, 4, ..., k — 1 2“ 2k — 2° — 1 0, 0, .. 0, 0. 1, 1, ,.1, 1, где и = 2, 3, 4, .... k — 1 117
Пример. Построить код Макдональда с количеством информа- ционных символов k = 5, имеющий минимальное кодовое расстояние dMHH = Пользуясь формулами табл. 25, находим, что этому усло- вию удовлетворяет код с параметрами k = 5, и = 4, для которого л = 25 — 24 — 1 = 15; амин = 24—23 - 1 = 7; г= 15 —5=10. Модулярное представление этого кода следующее: 2* = 16 ' 25 —2*—1=15 W = 0, 0.....0, 0, 1, 1......1, 1. Это говорит о том, что из специальной матрицы 0000000000000001111111111111111 0000000111111110000000011111111 0001111000011110000111100001111 0110011001100110011001100110011 1010101010101010101010101010101 М = необходимо вычеркнуть первые 16 столбцов. Полученная производящая матрица G кода Макдональда имеет вид 111111111111111 000000011111111 0 = 000111100001111 011001100110011 • 10101010101010 1- Умножив транспонированную матрицу Мт на матрицу G, получим все кодовые векторы (см. с. 132). Подсчитав количество единиц в каждой строке, находим, что данный код имеет 15 слов веса 8, 15 слов веса 7 и одно слово веса 15, т. е. действительно минимальное кодовое расстояние равно 7. В построенном таким путем коде нельзя указать, какие из разрядов являются информационными, а ка- кие— проверочными. Поэтому на практике для построе- ния схем кодирующих и декодирующих устройств мат- рицу G кода Макдональда приводят к виду G — | *| и корректировку ошибок производят путем вычисления синдрома. Эти коды ценны тем, что никакой код той же длины и с тем же числом информационных символов не может иметь большего минимального кодового рас- стояния [130]. 118
MTG = 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 ОШО 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 пою пои 11100 11101 НПО 11111 ♦ 111111111111111 000000011111111 X 000111100001111 = 011001100110011 101010101010101 101010101010101 011001100110011 110011001100110 000111100001111 101101001011010 011110000111100 110100101101001 000000011111111 101010110101010 011001111001100 110011010011001 000111111110000 101101010100101 011110011000011 110100110010110 111111111111111 010101010101010 100110011001100 001100110011001 111000011110000 010010110100101 100001111000011 001011010010110 П1111100000000 010101001010101 100110000110011 001100101100110 111000000001111 010010101011010 100001100111100 001011001101001 119
Таблица 26 к n dMUH я к п 3 3 3 3 «=2 3 4 4 4 4 «=2 4 4 u=3 4 5 5 5 5 u=2 5 5 «=3 5 7 2й—1 6 2й—2 5 2й—3 J 4 2й—2“ I 3 2й—2“—1 15 2й—1 14 2й—2 13 2fc—3 f 12 2ft—2“ l И 2й—2U—1 f 8 2й—2“ I 7 2ft—2"—1 31 2й—1 30 2й—2 29 2й—3 | 28 2й—2“ ( 27 2fe»-2“ -1 C 24 2*—2“ I 23 2й—2“—1 4 3 2 1 0 11 10 9 8 7 4 3 26 25 24 23 22 19 18 4 2ft“! 3 2*-1—1 2 2й-1—2 2 2ft-’—2“-1 1 2*“’— -12"-1-! 8 2*“1 7 2й—’—1 6 2 й-1—2 6 2й-1—2“~1 5 2й-1— —2й-1—! 4 2й-1 -2“-1 3 2й-1— —2й-1—! 16 2й-1 15 2й-1—! 14 2й-1—2 14 2й-1 -2й-1 13 2й-1— -2"-1 -1 12 2й—*—2“—1 11 2й-1— -2и->-1 0,5714 0,5000 0,4000 0,2500 0 0,7333 0,7143 0,6923 0,6667 0,6364 0,5000 0,4286 0,8387 0,8333 0,8276 0,8214 0,8118 0,7917 0,7826 0,4296 0,5000 0,6000 0,7500 0 0,2667 0,2957 0,3077 0,3333 0,3636 0,5000 0,5714 0,1613 0,1667 0,1723 0,1786 0,1852 0,2083 0,2174 120
Проб олжение табл. 26 k 7МВВ R k п 5 «=4 1 16 2*—2“ 11 8 2*“’—2“-’ 0,6875 0,3125 5 1 15 2*^-2“—1 10 1 у 0,6667 0,3333 6 63 2*-1 57 32 2*-' 0,9048 0,0952 6 62 2* -2 56 31 2*-*—1 0,9032 0,0968 6 61 2*-3 55 30 9*—1 9 0,9016 0,0984 6 «=2 г 60 2*—2“ 54 30 2^“^ ».2Ц~ 1 0,9000 0,1000 6 | 59 2*—2“—1 53 JI 1 сч *сч 1 Й 0,8983 0,1017 6 и=3 | 56 2*<—2“ 50 28 2^—1..-2ы~1 0,8929 0,1071 6 1 55 2*—2“—1 49 27 9л-1 —2“-’—1 0,8909 0.1091 6 м=4 г 48 2*—2“ 42 24 —у 2Ц—1 0,8750 0,1250 6 1 47 2*—2й—1 41 23 2*~1— ^-2“-1—1 0,8723 0,1277 СП е II СП | 32 2*—2“ 26 16 gt—i gu—1 0,8125 0,1875 6 1 31 2V2“_i 25 15 9*_ 1 —2“-*—1 0,8065 0,1935 7 127 2*—1 120 64 2*~* 0,945 0,055 7 126 2*—2 119 63 2ft—*—1 0,944 0,056 7 125 2*—3 118 62 2*~*—2 0,944 0,056 7 и=2 f 124 2*—2“ 117 62 2*-’1—2й"*1 0,9435 0,0565 7 I 123 2*—2"~1 116 61 2*-1— —2*~1—1 0,9431 0,0569 121
Продолжение табл. 26 k п r dMHH я k п 7 u=3 г 120 2ft—2“ 113 60 2*-*—2U—1 0,9417 0,0583 7 1 119 2*—2“—1 112 59 2*-1— _2"~>_ 1 0,9412 0,0588 7 и=4 | 112 2*—2“ 105 56 2*“’—2“~1 0,9375 0,0625 7 1 111 2fc—2“—1 104 55 2*-1— _2“-‘—1 0,9369 0,0631 7 14=5 г 96 2*—2“ 89 38 2*-1—2“_| 0,9271 0,0729 7 1 95 2*—2й—1 88 37 2*-1— —2“-’—1 0,9263 0,0737 7 u=6 г 64 2*—2° 57 32 2*“* _2“-1 0,8906 0,1094 7 1 63 2*—2“—1 56 31 2 V1— —г"”1—! 0,8889 0,1111 8 255 2к— 1 247 128 2*~1 0,9686 0,0314 8 254 2*—2 246 127 2*-1—1 0,9685 0,0315 8 253 2*—3 245 126 2*“'—2 0,9684 0,0316 8 и=2 г 252 2*—2“ 244 126 2*-1—2“-1 0,9683 0,0317 8 | 251 2fc—2“—1 243 125 2ft-1— —2“-1—1 0,9681 0,0319 8 «=3 | 248 2*—2“ 240 124 2*-4—2й-1 0,9677 0,0323 8 ( 247 2ft—2“—1 239 N3 00 I ю Г 0,9676 0,0324 8 и=4 Г 240 2fc—2“ 232 120 2Л-!—2“-’ 0,9667 0,0333 8 1 239 2fc—2“—1 231 119 2ft-!— —2“-1—1 0,9665 0,0335 ю II 3 00 | 224 2fc—2“ 216 112 2*_1—2“-1 0,9643 0,0357 8 1 223 2*—2“—1 215 111 2*-1— -2"-1-! 0,9641 0,0359 122
Продолжение табл, 26 к п Г ^мвв R h п 8 «=6 | 192 2й—2й 184 96 2й-1—2“-1 0,9583 0,0417 8 1 191 2й—2“—1 183 95 2й-1— —2“-’—1 0,9581 0,0419 8 «=7 ( 128 2й—2“ 120 64 2й-1—2"-1 0,9375 0,0625 8 1 127 2й—2“—1 119 63 2й-1— —2*-1—1 0,9370 0,0630 9 511 2й—1 502 256 2*-1 0,9824 0,0176 9 510 2й—2 501 255 2й-1—1 0,9823 0,0177 9 509 2й—3 500 254 2й-1—2 0,9823 0,0177 9 | 508 2й—2“ 499 254 2й-1—2“ 1 0,9823 0,0177 9 и=2 1 507 2й—2“—1 498 253 2й-1— 1 0,9822 0,0178 9 «=3 504 2й-2“ 495 252 2й-1—2“—1 0,9821 0,0179 9 «=3 503 2*_2“—1 494 251 2й-1— —2й-1—! 0,9821 0,0179 9 «=4 | 496 2й—2“ 487 248 2й-1—2“-’ 0,9819 0,0181 9 1 495 2й—2“—1 486 247 2й-1— —2“~‘—1 0,9818 0,0182 9 и=5 Г 480 2й—2“ 471 240 2й-1—2“~1 0,9813 0,0187 9 1 479 2й -2“ -1 470 239 2й-1— —2“-*—1 0,9812 0,0188 9 u—G | 448 2й—2“ 439 224 2й—*—2“—1 0,9799 0,0201 9 1 447 2 й—2“— 1 438 223 2й-1— -2“-’-1 0,9799 0,0201 9 и=1 Г 384 2й—2“ 375 192 2Й“‘—2“-1 0,9766 0,0234 9 1 383 2 й—2“—1 374 191 2й-1— —2“-*—1 0,9765 0,0235 123
Продолжение табл. 26 k п Г dMHB к k п 9 ( 256 2й -2“ 247 128 2*—*—2“—1 0,9648 0,0352 9 u=8 1 255 2й—2“—1 246 127 2*~ -2“-*-1 0,9647 0,0353 10 1023 2*—1 1013 512 2*~1 0,99023 0,0098 10 1022 2*—2 1012 511 2*-*—1 0,99022 0,0098 10 1021 2й—3 1011 510 2й-1—2 0,99021 0,00979 10 (1020 2*—2“ 1010 510 2*-‘—2“-* 0,99020 0,00980 10 “=2 11019 2й—2“— 1 1009 509 г*-1— —2“~' -1 0,99019 0,00981 10 ( 1016 2*—2“ 1006 508 2й-1—20-1 0,99016 0,00984 10 и=3 11015 2й—2“—1 1005 507 2й-’— —2U~’ -1 0,99015 0,00985 10 (1008 2й-2“ 998 504 2й-’—2й-1 0,99008 0,00992 10 «=4 11007 2й—2“—1 997 503 2й—*— —2U-’—1 0,99007 0,00993 10 ( 992 2*—2“ 982 496 2й-1 -2“-1 0,98992 0,01008 10 «=5 1 991 2й—2“—1 981 495 2й-1— ou-l , 0,98991 0,01009 10 | 960 2й—2° 950 480 2й_,-2“_| 0,98958 0,01042 и=6 10 1 959 2й—2“—1 949 479 2й-*— 1 0,98957 0,01043 10 | 896 2й—2“ 886 448 2й-1—2“-1 0,98884 0,01116 и=7 10 ( 895 2й—2“ -1 885 447 2й-*— —2“-*—1 0,98883 0,01117 10 и=8 768 2*—2“ 758 384 2й-‘—2“-‘ 0,98698 0,01302 10 ы=8 767 2й—2“—1 757 383 2й-’— —2й-1—1 0,98696 0,01304 10 ( 512 2й—2“ 502 256 2й-1—2““' 0,98047 0,01953 10 “=9 ( 511 2й—2“—1 501 255 2й- —2“-‘—1 0,98043 0.01957 124
Параметры некоторых кодов Макдональда приведены в табл. 26. Из таблицы видно, что с увеличением k быстро увеличивается длина кода п. Поэтому данный код целесообразно применять для небольших значений k. 3.14. Код Варшамова Код, предложенный Варшамовым {129], является типичным представителем систематических кодов. Его производящая матрица G = |E*Cr.*|, где Ek — единичная матрица информационных символов; С г. к — подматрица проверочных символов. Подматрица Cr, k строится исходя из следующих условий: 1. Каждая строка подматрицы должна содержать не менее d—1 единиц. (3.49) 2. Сумма любых / строк должна иметь не менее d — j единиц. (3.50) 3. Число столбцов подматрицы (число проверочных символов) определяется из выражения d-S 2' > 1 + 2 Ci.!. (3.51) <—1 Пример. Построить производящую матрицу кода Варшамова для п = 5, <1 = 3 я определить все кодовые слова. Из формулы (3.51) находим, что У? > 1 + С|, т, е. 2Г > 5, откуда г = 3. Количество информационных символов k = 5 — 3 = 2. Единичная матрица для Из условия (3.49) следует, что строки подматрицы Cr содер- жат н» менее двух единиц, а из (3.50) сумма строк в ней не менее одной единицы. Поэтому подматрица Cr k может иметь вид 011 1111. 125
Таким образом, производящая матрица кода Варшамова (5. 2) 1100111 выглидит следующим образом: 2j = I I. Сложив по модулю два первую и вторую строки, получим третью комбинацию кода 11100. Недостатком этого кода является то, что при боль- ших значениях k трудно строить подматрицу Сг, ь- Кро- ме того, данный код нельзя отнести к оптимальным. 3.15. Коды с малой плотностью прове- рок на четность Трудности, связанные с практической реализацией декодирования, заставляют искать специ- альные классы кодов, для которых существует простой метод декодирования. К таким кодам относятся коды с малой плотностью проверок на четность, которые впервые предложил Р. Галлагер [24, 25]. Эти коды опи- сываются проверочной матрицей, содержащей преиму- щественно нули и сравнительно небольшое число еди- ниц. Тем самым уменьшается количество символов, вхо- дящих в проверочные соотношения. Определим код с с малой плотностью проверок на четность как код (п, j, k) длиной п разрядов с k информационными раз- рядами и с проверочной матрицей, каждая строка ко- торой содержит не более / единиц. Используя понятие проверочной матрицы Н, условия существования кода (п, /, k) с малой плотностью про- верок на четность с d > 3 можно сформулировать сле- дующим образом: 1. Каждая из г—п—k строк матрицы Н содержит не более /' единиц. 2. Каждый из п = г + k столбцов отличается от дру- гих и содержит, по крайней мере, одну единицу. 3. Значение k является минимальным для данных п и j. Из условия 1 следует, что суммарное количество 126
единиц в матрице Н не превышает г/. Если учесть, что проверочная матрица систематического кода имеет вид H — \Dk,rEr\, т. е. последние г столбцов проверочной матрицы Н являются единичной подматрицей Ег и со- держат только по одной единице, то количество единиц в подматрице D*. r с k столбцами не превышает г/ — г = = г {] — 1). Так как все столбцы матрицы Н согласно условию 2 отличаются друг от друга, а г столбцов этой матрицы уже содержат по одной единице, оставшиеся k столбцов должны содержать, по крайней мере, по две единицы. Отсюда следует, что k • 2 не должно превы- шать г (/— 1) единиц: k < ~(3.52) Это неравенство является верхней границей для коли- чества информационных разрядов k. Если j = 2, то k < г/2. Другими словами, в этом слу- чае количество проверочных разрядов г, по крайней мере, в два раза превышает количество информационных разрядов k, т. е. г >26. Эта граница достигается в том случае, если, по крайней мере, г/2 различных столбцов содержит точно две единицы, т. е. С? г!2. Отсюда г > 2. Таким образом, для / = 2 и г>2 k = г/2 является оптимальным. Поэтому при / = 2 г = 2k для k > 1. Пример. Построить проверочную матрицу кода с малой плот- ностью проверок на четность, который имеет k = 3 и j = 2. Согласно (3.52) т = 2 • 3 = 6. Отсюда п = k + т = 9. Проверочная матрица кода (9, 2, 3) может быть записана в виде 100100000 100010000 о 010001000 , 010000100 F 001000010 001000001 KS Ег 127
Каждая строка этой матрицы содержит по две единицы, все столбцы отличны друг от друга. Мажоритарный принцип введения избыточности может быть за- дан с помощью производящей илн проверочной матриц. Минималь- ное кодовое расстояние в подобном коде равно трем. Это следует нз того, что строки производящей матрицы содержат три единицы. Действительно, производящая матрица, построенная из проверочной матрицы Н в предыдущем примере 0 = 100110000 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 содержит в каждой строке по три единицы. При нумерации информационных и проверочных разря- дов слева направо и использовании проверочной матри- цы Н в предыдущем примере можно каждый информа- ционный символ описать тремя независимыми уравне- ниями, первое из которых является тождеством: щ — иг, Ш = «2ц—i)+r, Ui = «2(<-i)+2- Если на входы мажоритар- ного Элемента подать значения Ui, ищ—»+1, игц—п+2, будет вычислено значение и по принципу большинства. Таким образом, в предположении, что вероятность искажения одновременно двух (трех) одинаковых символов ничтож- но мала, посимвольное декодирование по принципу большинства позволяет исправить значительное коли- чество ошибок (но не более k). Пусть / = 3, тогда k < г. Значение k < т может быть достигнуто, когда, по крайней мере, г различных столб- цов содержат точно две единицы. Это возможно, если С?>г, т. е. г > 3. Таким образом, для / = 3 и г>3 k=sr оптимально. Отсюда следует, что при /=3 r — k (для k > 3). (3.53) Пример. Построить проверочную матрицу кода а малой плот- ностью проверок иа четность, для которого / «= 3, k =» 4. Согласно (3.63) имеем г = 4, л = 4 -f- 4 = 8. 128
Тогда проверочная матрица кода (8, 3, 4) 11001000 Hs= 0 110 0 10 0 0 0 1 1 0 0 1 0' 1 0 0 1 0 0 0 1 Минимальное расстояние в этом коде равно трем, з Пусть j — 4, тогда k < у г. Это значение достигается в случае, когда С* > г, т. е. г > 4. Оптимальное значение информационных разрядов 3 -^г для четного г, k~ Л 1 -^г—у для нечетного г. Для нечетного г одна строка должна иметь /—1 еди- 3*5 1 ниц. Например, если г = 5, то k = — = 7, п = 12. Код (12, 4, 7) может быть проверочной матрицы: 110 0 задан с помощью следующей 0 0 11 0 0 0 0 10 10 0 10 1 0 0 1 1 0 0 0 0 0 0 1 0 10 0 0 1 1 0 0 0 10 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 Н = Если / = 5, то k < 2г. Любой столбец содержит две еди- ницы при Сг > 2г или г > 5. Отсюда для / = 5 2r = k (для k > 10). Например, для г = 5, 6 = 10, п = 15 проверочная матрица кода (15, 5, 10) имеет вид 1 1 1 1 1 0 0 0 0 0 0 10 0 0 0 0 10 0 0 0 0 0 1 1 1 0 0 0 н = 0 1 0 0 1 0 0 1 1 0 0 0 10 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 5 7-256 129
I Таблица 27 1 = 2 =3 ;=4 /=5 k Т п Г п fe п г п г п к п Г п Т п fe п Л п Г п fe п 3 6 9 0,6667 0,3333 3 6 0,5 0,5 4 8 12 0,6667 0,3333 4 8 0,5 0,5 5 10 15 0,6667 0,3333 5- 10 0,5 0,5 6 12 18 0,6667 0,3333 6 12 0,5 0,5 4 10 0,4 0,6 7 14 21 0,6667 0,3333 / 14 0,5 0,5 5 12 0,4167 0,5833 8 16 24 0,6667 0,3333 8 16 0,5 0,5 0,6 9 18 27 0,6667 0;3333 9 18 0,5 0,5 6 15 0,4 15 0,333 10 20 ,30 0,6667 0,3333 10 20 0,5 0,5 7 17 0,4118 0,5882 ь 0,667 11 22 33 0,6667 0,3333 И 22 0,5 0,5 18 0,333 12 24 36 0,6667 0,3333 12 24 0,5 0,5 8 20 0,4 0,6 6 0,667 13 26 39 0,6667 0,3333 13 26 0,5 0«5 9 22 0,4091 0,5909 0,333 14 28 42 0,6667 0,3333 14 28 0,5 0,5 0,6 7 21 0,667 15 30 45 0,6667 0,3333 15 30 0,5 0,5 10 25 0,4 0,333 16 42 48 0,6667 0,3333 16 32 0,5 0,5 11 27 0,4074 0,5926 8 24 0,667 17 34 51 0,6667 0,3333 17 34 0,5 0,5 0,6 0,333 0,667 18 36 54 0,6667 0,3333 18 36 0,5 0,5 12 30 °*4 -г 0,4063 9 27 19 8 >7 0,6667 0,3333 19 38 0,5 0,5 13 32 0,5937 20 40 60 0,6667 0,3333 20 40 0,5 0,5 0,6 10 30 0,333 0,667 21 42 13 0,6667 0,3333 21 42 0,5 0,5 14 35 0,4 33 0,667 22 44 66 0,6667 0,3333 22 44 0,5 0,5 15 37 0,4054 0,5946 И 0,333 23 46 69 0,6667 0,3333 23 46 0,5 0,5 0.333 0,667 24 4в 72 0,6667 0,3333 24 48 0,5 0,5 16 40 0,4 0,6 12 36 25 50 75 0,6667 0,3333 25 50 0,5 0,5 17 42 0,4048 0,5952 39 0,333 0.667 26 52 78 0,6667 0,3333 26 52 0,5 0,5 0,6 13 27 54 81 0.6667 0,3333 27 54 0,5 0,5 18 45 0,4 Продолжение табл. 27 ;=2 /-3 * п ? л fe п г Л Г п fe л Г Л f л fe в Г Л . г л fe л 28 56 84 0,6667 0,3333 28 56 0,5 0,5 19 47 0,4043 0,5957 14 42 0,333 0,667 29 58 87 0,6667 0,3333 29 58 0,5 0,5 3i 60 90 0,6667 0,3333 30 60 0,5 0,5 20 50 0,4 0,6 15 45 0,333 0,667 31 62 93 0,6667 0,3333 31 62 0,5 0,5 21 52 0,4038 0,5962 32 64, 96 0,6667 0,3333 32 64 0,5 0,5 J6 48 0,333 0,667 33 66 99 0,6667 0,3333 33 66 0,5 0,5 22 55 0,4 0,6 34 *8 102 0,6667 0,3333 34 68 0,5 0,5 23 57 0,4035 0,5965 17 51 0,333 0,667 35 7С 105 0.6667 0,3333 35 70 0,5 0,5 3< 72 108 0,6667 0,3333 36 72 0,5 0,5 24 60 0,4 0,6 18 54 0,333 0,667 3 -4 111 0,6667 0,3333 37 74 0,5 0,5 25 62 0,4032 0,5968 3; 76 114 0,6667 0,3333 38 76 0,5 0,5 19 57 0,333 0,667 3' 78 117 0,6667 0,3333 39 78 0,5 0,5 26 65 0,4 0,6 4 sO 120 0,6667 0,3333 40 80 0,5 0,5 27 67 0,4030 0,5970 20 60 0,333 0.667 41 <2 123 0,6667 0,3333 41 82 0,5 0,5 42 84 126 0,6667 0,3333 42 84 0.5 0,5 28 70 0,4 0,6 21 63 0,333 0,667 43 86 129 0,6667 0,3333 43 86 0,5 0,5 29 72 0,4028 0,5972 44 88 132 0,6667 0,3333 44 88 0,5 0,5 к 22 66 0,333 0,667 45 90 135 0,6667 0,3333 45 90 0,5 0,5 30 75 0,4 0,6 46 92 138 0,6667 0,3333 46 92 0,5 0,5 зГ 77 0,4026 0,5973 23 69 0,333 0,667 47 94 141 0,6667 0,3333 47 94 0,5 0,5 0,667 48 96 144 0,6667 0,3333 48 96 0,5 0,5 32 80 0,4 0,6 24 72 0,333 49 98 147 0,6667 0,3333 49 98 0,5 0,5 33 82 0,4024 0,5976 50 100 150 0,6667 0,3333 50 100 0,5 0,5 25 75 0,333 0.667 51 102 153 0,6667 0,3333 51 102 0,5 0,5 34 85 0,4 0,6 52 104 156 0,6667 0,3333 52 104 0,5 0,5 35 87 0,4023 0,5977 26 78 0,333 0,667
проОолженае табл. 27 k Н /-3 /=4 /=5 Г Л Г п k п г Л Г k Г Л / п k я Г Л Г * и я п п 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 106 108 ПО 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 159 162 165 168 171 174 177 180 гез 186 189 192 195 198 201 204 207 210 213 216 219 222 225 228 £31 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,6667 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 0,3333 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67' 68 69 70 71 72 73 74 75 76 77 106 108 ПО 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0«5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 90 92 95 97 100 102 105 107 ПО 112 115 117 120 122 125 127 0,4 0,4022 0,4 0,4021 0,4 0,4020 0,4 0,4019 0,4 0,4018 0,4 0,4017 0,4 0,4016 0,4 0,4016 0,6 0,5978 0,6 0,5979 0.6 ода 0,6 0^981 0,6 0,5982 0,6 0,5983 0,6 0,5984 0,6 0,5984 27 28 29 30 31 32 33 34 35 36 37 38 81 84 87 90 93 96 99 102 105 108 111 114 0,333 0,333 0,333 0,333 0,333 0,333 0,333 0,333 0,333 0,333 0,333 0,333 0,667 0,667 0,667 0,667 0,667 0,667 0,667 0,667 0,667 0,667 0,667 0,667 П родолжение табл. 27 /=2 /s=3 ;=4 ;=5 к Г Я Г я k я г Я Г л к п Г Я Г я k л Г Л Г я fe л 78 156 234 0,6667 0,3333 78 156 0,5 0,5 52 130 '0,4 0,6 39 117 0,333 0,667 79 158 237 0,6667 0,3333 79 158 0,5 0,5 53 132 0,4015 0,5985 80 160 240 0,6667 0,3333 80 160 0,5 0,5 40 120 0,333 0,667 81 162 243 0,6667 0,3333 81 162 0,5 0,5 54 135 0,4 0,6 82 164 246 0,6667 0,3333 82 164 0,5 0,5 55 137 0,4015 0,5985 41 123 0,333 0,667 83 166 249 0,6667 0,3333 83 166 0,5 0,5 84 168 252 0,6667 0,3333 84 168 0,5 0,5 56 140 0,4 0,6 42 126 0,333 0,667 85 170 255 0,6667 0,3333 85 170 0,5 0,5 57 142 0,4014 0,5986 86 172 258 0,6667 0,3333 86 172 0,5 0,5 43 129 0,333 0,667 87 174 261 0,6667 0,3333 87 174 0.5 0,5 58 145 0,4 0,6 88 176 264 0,6667 0,3333 88 176 0.5 0,5 59 147 0,4014 0,5986 44 132 0,333 0,667 89 178 267 0,6667 0,3333 89 178 0,5 0,5 90 180 270 0,6667 0,3333 90 180 0,5 0,5 60 150 0,4 0,6 45 135 0,333 0,667 91 182 273 0,6667 0,3333 91 182 0.5 0,5 61 152 0,4013 0,5987 92 184 276 0,6667 0,3333 92 184 0.5 0,5 62 46 138 0,333 0,667 93 186 279 0,6667 0,3333 93 186 0.5 0,5 155 0,4 0,6 94 188 282 0,6667 0,3333 94 188 0,5 0,5 63 157 0,4013 0.5987 47 141 0,333 0,667 95 190 285 0,6667 0,3333 95 190 0,5 0,5 96 192 288 0,6667 0,3333 96 192 0,5 0,5 64 160 0,4 0,6 48 144 0,333 0,667 97 194 291 0,6667 0,3333 97 194 0.5 0,5 65 162 0,4012 0,5988 / 98 196 294 0,6667 0,3333 98 196 0,5 0,5 49 147 0,333 0,667 99 198 297 0,6667 0,3333 99 198 0,5 0,5 66 165 0,4 0,6 100 200 300 0,6667 0,3333 100 200 0,5 0,5 67 167 0,4012 0,5988 50 150 0,333 0,667
Все рассмотренные коды имеют dMHB =^3 и могут быть получены из кодов Хэмминга с помощью укорачивания. В табл. 27 приведены параметры некоторых кодов этого класса с —— 3. . 3.16. Итеративный код Идея построения итеративных кодов при- надлежит Элайесу [144, 145]. Эти коды характеризуются . наличием двух или более систем проверок внутри каж- дой кодовой комбинации. Принцип построения итера- тивного кода проще всего показать на примере. Сначала информационные символы кодовой комбина- ции записываются в виде таблицы, которая, например, может иметь такой вид: 10 111 0 0 10 1 1110 0 0 10 0 1 1110 1. Затем к каждой строке таблицы и к каждому столб- цу дописываются проверочные символы в соответствии с каким-нибудь кодом Применим в качестве кода код с проверкой на четность: 1 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1. Полученная комбинация есть кодовая комбинация про- стейшего двумерного итеративного кода, проверочные разряды которого сосредоточены в нижней строке и пра- вом столбце. Каждый информационный разряд этого кода входит в комбинацию двух итерируемых кодов — 134
кодов с проверкой на четность. Передача одного сооб- щения комбинацией итеративного кода обычно происхо- дит по строкам последовательно, от первой строки к последней. Приведенный код является простейшим ите- ративным кодом с d = 4, .причем число кодовых комби- „ • кг? ,Л\ > । т2 (т -1) . т(т — I)2 нации веса ю = 4 W (4) = tn2 Ч-----------1-----g--- при т = I, где т — количество информационных симво- лов в строке; I — количество информационных символов в столбце. Этот код обнаруживает [90, 130| все ошибки крат- ностью до трех и все ошибки нечетной кратности. Не обнаруживаются четырехкратные ошибки, располагаю- щиеся в вершинах правильного четырехугольника, а также некоторые шестикратные, восьмикратные и т. д. ошибки (рис. 18). Количество четырехкратных ошибок, имеющих показанную на рис. 18 структуру, равно Сп,С„,. Отсюда получаем долю пеобнаруживаемых ошибок кратности 4—коэффициент ложных переходов /<л(4) = = С2п,С2п,/С'п, где п = «1П2. После преобразования форму- 6(”1 ~ ’) (п2 — *) 6 ла имеет вид Кл (4) = ---рг——----0. ~ ~ <2- (nln2 —2)("1П2-3) (п1П2Г п, *- о о о о о • о о о о о • л,—- о о о о о • о о о о о • 08008» 08008» о о о о о • О О О О О • 00880» 08080» о о о о о • о о о о о • 00800» о о о о о • ' 00880» о ® о ® о • о о о о о • 08008» о о о о о • 00808» О О 0 О О • •••••• • ••••• •••••• а б б Рнс. 18. Структуры ошибок, не обнаруживаемые простейшим двумерным итеративным кодом: а — ошибки кратности 4; б — ошибки кратности 6; а — ошибки кратности 8. 135
Необнаруживаемые ошибки кратности 6 расположены в трех столбцах, по две в каждом. Количество различ- ных столбцов первого типа равно C„t. Второй столбец может быть выбран 2(п,— 2) способами. Третий стол- бец однозначно определяется первыми двумя. Все три столбца могут быть выбраны С„, способами. Поэтому С2п • 2 (л, — 2) С3 I/ ____ Я, V 1______i Ал (°)---------Tg • ьп После преобразования (6) = 120(4,-1) (я,-2) (я2-1) (л2 — 2) _ л (я,я2— 1)(л,л2 -2) (я,я2 —3)(я,я2 —4)(я,я2 -5) ~ 120 ~ (П1Я2)8' С помощью подобных рассуждений можно определить Кл(8), Кл (Ю) и т. д. Метод исправления ошибок чрезвычайно прост: если не выполняется проверка для i-й строки и /-го стрлбца, то символ, находящийся на пересечении i-й строки и /-го столбца, заменяется на обратный. Могут быть обра- зованы многомерные итеративные коды, в которых каж- дый информационный разряд входит в комбинации трех, четырех и т. д. итерируемых кодов. Однако такие коды не получили большого распространения. Свойства итеративного кода полностью определяются параметрами итерируемых кодов. Длина кодовой ком- бинации п, число информационных разрядов k и мини- мальное кодовое расстояние d„„, выражаются через со- ответствующие параметры этих кодов: •Ч д Ь ft = П k = П k['9 ^ынв = П ^ыйв {9 (3.54) /«=>1 <»1 где th, ki, d«BH i—параметры итерируемых кодов; S — кратность итерирования; П — знак произведения. 136 I
Пример. Определить параметры двумерного итеративного кода, в котором в качестве кода по строкам используется код с провер- кой на четность с параметрами nj =5; fej = 4; = 2, а в качестве кода по столбцам — код Хэмминга в параметрами Па = 7; fe, = 4; 4Я=*3. Согласно формулам (3.54) п=п!Л2 = 35; fe = fejfc2=16; d = d]d2 = 6. К итеративным кодам применим матричный способ описания. Для получения производящей матрицы итера- тивного кода используем понятие векторного произве- дения. Векторное произведение вектора X = (х(, х2, . .., хЛ1) на вектор Y = (yif у2..уп,); Хх Y = [хь^ь у2, "•Уп), X2(yi, У2, .... Уп.), (У1, УЪ . . £/„,)], где Xiiyi, у2...Уп.) —Xtyt, Х1У2...Xiyn,. Пусть, например, заданы производящие матрицы ко- щ Ь{ ak. Векторное произведение этих Qi X Gb а2 х Gb производящих матриц G = GA х Gb = at, X Gb Oi X Q\ X b2 a\ X bk, a*. X bk, (3.55) Пример. Построить производящую матрицу итеративного кода, где в качестве итерируемых кодов используется код с четность (3.2) и производящей матрицей вида Gt = проверкой на 1 0 1 0 11’ 1 О I Согласно (3.55) имеем G = Gt X Gt = 1 0 1 О 1 1 1 0 1 О 1 1 1 0 1 О 1 1 О 1 1 X 137
где 1 О 1 х 1 О !.= 1 О 1 О О О 1 О 1; 101x011=01100001 1; 011X 101=0 0 010110 1; 011X011=00001101 1. Следовательно, производящая матрица итеративного кода 101000101 G = 0 1 1 0 0 0 0 1 1 000101101 000011011 После преобразования получим матрицу G в каноническом виде: 100010101 G = 010010011 001001101’ 0 0 0 1 0 1 0 1 1 которая порождает код с параметрами п = 9, k — 4, d = 4. Простейший итеративный код обладает довольно вы- сокими обнаруживающими способностями. При действии пакетных ошибок обнаруживается любой пакет ошибок длиной /4*1 и менее, где I — длина строки. Существенным недостатком итеративных кодов, ис- пользующих для проверок по строкам и столбцам коды с проверками на четность, является их сравнительно высокая избыточность, которая обычно составляет 15—20% и значительно превышает при прочих равных условиях избыточность циклических кодов. Однако кодирование и декодирование с помощью ЭВМ таких итеративных кодов обычно гораздо проще, чем циклических. Поэтому простейшие итеративные коды, несмотря на их высокую избыточность, применяются в системах пе- редачи данных, использующих программные способы по- вышения достоверности. 188
3.17. Коды с постоянным весом Данные коды относятся к классу блоч- ных неразделимых кодов, так как в них не представ- ляется возможным выделить информационные и прове- рочные символы. Все комбинации этого кода имеют оди- наковый вес (одинаковое количество единиц); Приме- ром является известный код «3 из 7» — семизначный код с постоянным весом 3. Одна из основных причин применения этих кодов — их преимущество при использовании в каналах связи, в значительной степени асимметричных. В случае пол- ностью асимметричного канала код с постоянным весом считается совершенным применительно к обнаружению ошибок, так как он обнаруживает все ошибки. Полно- стью асимметричным является канал, в котором имеет место только один вид ошибок, т. е. возможно, только преобразование нулей в единицы либо только единиц в нули. В двоичном симметричном канале (канал, в котором оба вида ошибок равновероятны) коды с постоянным весом обнаруживают все возможные сочетания нечет- ного числа ошибок, из которых они не выявляют только те, при которых преобразование нуля в единицу на одних позициях компенсируется преобразованием еди- ниц в нули на других. Кроме того, при заданной длине кодового слова оптимальный код с постоянным весом имеет обычно больше разрешенных комбинаций, чем разделимый код с эквивалентной обнаруживающей спо- собностью. Основной недостаток кода с постоянным весом — его неразделимость [119]. В кодах с постоянным весом обнаруживающая спо- собность обусловливается самим видом кодового слова, благодаря чему отделить проверочные знаки без преоб- разования кода невозможно. Ввиду такой неразделимо- сти обнаруживающая способность кода оказывается 139
неразрывно связанной с характером информационных знаков. А это, в свою очередь, приводит к невоз- можности легко изменить код в существующей системе. При использовании кода с постоянным весом обычно прежде всего определяется основной алфавит системы. Затем выбирается код, имеющий достаточное количе- ство кодовых слов. Далее, каждой букве алфавита со- поставляется кодовое слово с постоянным весом. Недо- статки такого закрепления кодовых слов особенно про- являются в случаях, когда буквы большей частью передаются группами. Поскольку при использовании неразделимых кодов избыточность заложена уже в каж- дой (закодированной) букве, повысить экономичность путем кодирования сразу целой группы букв оказывает- ся невозможным. Таким образом, разделимые коды обладают преимуществом по сравнению с нераздели- мыми. Оно состоит в большей гибкости и возможности повышения экономичности, особенно в тех случаях, когда передаваемая информация кодируется большими блоками. При построении n-разрядного кода с постоянным весом отношение единиц т к количеству нулей (п— т) выбирается таким, чтобы обеспечивалось необходимое количество «разрешенных» комбинаций. Общее количе- ство комбинаций может быть найдено как число соче- таний из п элементов по т: С™. Известно, что для любого числа п элементов спра- ведливо соотношение С™ = Сп~т. (3.56) Максимальное число «разрешенных» кодовых ком- бинаций для элементов кода с постоянным весом с уче- том соотношения (3.56) определяется выражениями п+1 n—1 Спмакс = С2 —Cns при п нечетном; п Си макс = С2 при п четном. 140
Очевидно, что во всех остальных случаях, когда. < т < п — 1 или 1< т < --л— при п нечетном, у<т<п—1 или 1 < т <у при п четном, количест- во «разрешенных» комбинаций С™ < С^иакш. Например, при применении кода «3 из 7» с m/(n — — щ) = 3/4 (4/3) количество комбинаций С? = Су = 35, во всех остальных случаях это количество меньше (С? = С® = 7; С? = С? =21). Поэтому из числа возмож- ных (N = 2" = 27 =128) отбирается 35 кодовых комби- наций, которые используются в качестве «разрешен- ных». Остальные 93 комбинации являются «запрещен- ными» и в приемнике не фиксируются. Избыточность рассмотренного кода R =1—=0,267. Другим примером кода с постоянным весом может служить код «4 из 8». Этот 8-элементный код обеспе- чивает 256 "возможных комбинаций, из которых исполь- зуются только комбинации, содержащие четыре единицы и четыре нуля. Данному коду присущи те же ограни- чения и такая же избыточность, что и коду «3 из 7», хотя количество используемых комбинаций в нем Q =70. Декодирование принятых комбинаций кода с посто- янным весом сводится к определению их веса. Если он отличается от заданного, это означает, что комбинация принята с ошибкой. При проверке на постоянство веса могут быть обнаружены ошибки любой кратности, за исключением ошибки «сдвига», когда одна из единиц комбинации преобразуется в нуль, а один из нулей — в единицу. Определим вероятность необнаружения ошибки сдви- га, обусловленной только одиночными преобразованиями единиц и нулей данной комбинации. Рассматривая слу- чай передачи посылок по симметричному каналу, когда 141
вероятность преобразования единицы в нуль равна ве- роятности преобразования нуля в единицу, замечаем [36], что вероятность преобразования одной из трех единиц в нуль равна Сзр9(1—р9)2, а вероятность преоб- разования одного из четырех нулей в единицу состав- ляет С<рэ(1—рэ)3. Пользуясь теоремой умножения вероятностей сов- местимых и независимых событий, получаем Рнеоб = Сзр9(1 — рз}2С\р3 (1 — р9)3 = 12рэ (1 — рэ)5. Очевидно, что вероятность обнаруживаемых ошибок равна разности между вероятностью Рь всех ошибок кодовой комбинации и вероятностью необнаруживаемых ошибок Рнеоб’. Роб « Pk — Рнеоз = 1 - (1 - Рэ)7 — 12р2э(1-рэ)5- В общем случае для «-элементной кодовой последова- тельности можно записать т Рнеоб = 2 С^тСп-тР^ (1 — Рэ)"~2'; (3.57) Роб = .1 - (1 -рау - 2 C^CLmpl1 (1 - рЭ)"“И. (3.58) 1=1 Однако, несмотря на простоту, преимущества кодов с постоянным весом невелики. Такие коды используют- ся только в системах, обнаруживающих ошибки. По сравнению с кодом с проверкой на четность для обес- печения той же способности обнаружения ошибок им необходима большая избыточность. Если источник ин- формации выдает случайную последовательность дво- ичных сигналов, то применение кодов с постоянным ве- сом затруднительно. Эти коды в основном используются для передачи буквенно-цифровой информации, которая всегда требует обязательного преобразования в дискрет- ную форму. 143
Код «3 из 7» широко применяется при частотной манипуляции в каналах с селективными замираниями, где вероятность ошибок смещения невелика. Пример. Найдем для 7-элементного кода отношение = PReOf,/PO6- 1 Используя формулы (3.57), (3.58), находим у = —--— । — (1 — Рэ) j 12₽э(’ -₽э)5 Для р3 = 1 • 10~Б-г) = 1/58332, г. е. одна необнаруженная ошибка приходится примерно на каждые 58 000 обнаруженных. Ip и 3.18. Коды Плоткина Коды Плоткина по эффективности дости- гают теоретической границы Плоткина (см. § 3.1). По- лучают их из матриц Адамара. Матрицей Адамара назы- вается ортогональная матрица размерности п х п, эле- ментами которой являются действительные числа 4-1 и —1, например: "-i: • 1 — 1 1 — — 1 — A матрица 2x2; 1 1 1 — 1 1 1 1 —матрица 4x4. W4 = 1 Ортогональной называется матрица, строки которой взаимно ортогональны (в данном случае над полем действительных чисел). Известна следующая теорема [93]: если существует матрица Адамара размерности п х п, то существует двоичный код из п символов, образованный 2л векто- рами, с минимальным кодовым расстоянием у л. С помощью матриц Адамара могут быть построены . коды с большим кодовым расстоянием: 143
при л четном| ^иин 2- (л — 1) при, п нечетном. (3.59) Кодовые векторы образуются строками матрицы Ада- мара при замене — 1 на 0, а затем строками, получае- мыми заменой всех единиц нулями, а нулей — единицами. Например, для матрицы 4x4 W4 = 1111 1—1 1—1 1 1-1-1 1-1—1 1 имеем восемь кодовых векторов (комбинаций): V, 1 1 1 1 Vs 0 0 0 0 V2 1 0 1 0 V6 0 1 0 1 V3 1 1 0 0 V\ 0 0 1 1 1 0 0 1 v6 0 1 1 o. Построим для этих комбинаций матрицу кодовых расстояний: V 1111 V. 1010 Vi 1100 vt 1001 0080 Vх. 0101 v, ООП V. 0110 Vt 1111 0 2 2 2 4 2 2 2 V2 1010 2 0 2 2 2 4 2 2 VB 1100 2 2 0 2 2 2 4 2 1001 2 2 2 0 2 2 2 4 Vt 0000 4 2 2 2 0 2 2 2 V. 0101 2 4 2 2 2 0 2 2 V7 0011 2 2 4 2 2 2 0 2 оно 2 2 2 4 2 2 2 0 Из матрицы видно, что кодовое расстояние для кода, образованного из матрицы Hit действительно не менее двух, т. е. соблюдается условие (3.59). 144
Известна теорема: если //-матрица Адамара имеет \Н Н размер n X п, то матрица п — является мат- IН — И рицей Адамара размерности 2n х 2п [93]. Многократно применяя эту теорему, можно построить матрицу Адамара //п=гт размерности 2mx2m для любого целого положительного т. Соответствующий ей код сов- падает с кодом Рида — Маллера первого порядка и с кодом Макдональда. Для других значений п двоичные Коды, получаемые с помощью матриц Адамара, не могут быть групповыми, поскольку число кодовых векторов не является сте- пенью двух. Для матриц Адамара доказано, что если п > 2, то п должно быть кратно четырем. Существует несколько методов построения матриц Адамара. Матрицы Адамара Нп можно построить следу- ющих порядков п [131]: а) п = 2Г; б) п = рг+ 1, если п кратно четырем; в) n = h (pr + 1), где Л > 2 — порядок матрицы Ада- мара; г) n = h (h — 1), где h — произведение чисел вида а), б); д) п = 92, 116, 172; е) n = h (h + 3), где h, (h + 4) — произведения чисел вида а), б); ж) n = hihz (р' + 1) р', где-Л1>1, Л2 > 1 — порядки матриц Адамара; и) n = hfas (s + ЗХ где h\ > 1, Л2 > 1 — порядки мат- риц Адамара, a s, (s-f-4) имеют вид рг+1; к) n = q (q + 2) + 1, где q, (q + 2) — степени простых чисел; л) п — произведение чисел вида а), б)..к). 146
Здесь р — нечетное простое число. Перечисленные выражения дают возможность строить матрицы Адамара размерности п для всех п, кратных четырем и не превосходящих 200, за исключением 184 и 188. В [65] приведена таблица натуральных чисел k, для которых существуют Нп-матрицы Адамара раз- мерности п ~ 4k (до п = 1000). Такие числа принято * называть правильными числами. Коды Плоткина имеют высокую корректирующую ~ способность (большое d). Однако им присущи все не- достатки неразделимых кодов. .Кроме того, при боль- шом числе разрядов п довольно трудно построить коди- рующие и декодирующие устройства. Поэтому при- кладное значение этих кодов пока невелико. Пример. Построить код Плоткина для п = 16 (Дмин — 8). Триж- ды применив приведенную теорему, строим матрицу Адамара Н1в из матрицы Адамара Н2: 146
1 1 1 1 1 1 1 1 1 1 1 '1 1 1 1 1 1 —1 1 —1 1 —1 1 —1 1 —1 1 —1 1 —1 11 1 —1 1 1 —1 —1 1 1 —1 —1 1 1 —1 —1 1 1 —1 —1 1 —1 —1 1 1 —1 —1 1 1 —1 —1 1 1 —1 — 1 1 1 •1 1 1 —1 —1 —1 —1 1 1 1 1 —1 —1 —1 —1 1 —1 1 —1 —1 1 —1 1 1 —1 1 -1 —1 1 —1 1 1 1 —1 —1 —1 —1 1 1 1 1 —1 —1 — 1 —1 1 1 1 —1 —1 1 —1 1 1 —1 1 —1 —1 1 —1 1 1 —1 1 1 1 1 1 1 1 1 —1 —1 —1 —1 —1 —1 -1 —1 « 1 —1 1 —1 1 —1 1 —1 —1 1 —1 1 —1 1 —1 1 1 1 —1 —1 1 1 —1 —1 —1 —1 1 1 —1 —1 1 1 1 —1 —1 1 1 —1 —1 1 —1 1 1 — 1 —1 1 * 1 —1 1 1 1 1 —1 -1 — 1 —1 —1 —1 -1 —1 1 1 1 1 l—l 1—1-1 1—1 1—1 1—1 1 1—1 1—1 1 1-1 —1-1 —1 1 1—1—1 1 1 1 1—1—1 1—1—1 1—1 1 1-1—1 1 1—1 1—1—1 1 Заменив в строках матрицы Адамара Н16 — 1 на 0, получим первые 16 векторов кода, а затем, заменив во всех строках единицы нулями, а нули единицами, — вторые 16 векторов. Таким образом, имеем 32 кодовые комбинации: 1. 1111111111111111 2. 1010101010101010 3. 1100110011001100 4. 1 00 1 1 00 1 100 1 1001 5. 1 1 1 10000 1 1 1 10000 6. 10 1 00 10 1 1 0 1 00 101 7. 1 1 0000 1 1 1 10000 1 1 8. 1001011010010110 9. 1 1 1 Г1 1 1 1 00000000 10. 1010 101001010 101 11. 1 1 001 100001 1001 1 12. 1001100101100110 13. 1 1 1 100000000 1 1 1 1 -14. 1010010101011010 15. 1 1 0000 1 1 00 1 1 1 100 16. 1 00 10 1 1 00 1 10 1 001 17. 0000000000000000 18. 0101010101010101 19. 00 1 1 00 1 1 00 1 100 1 1 20. 0 1 1 0 0 1 1 0 0 1 10 0 1 10 21. 0000 1 1 1 1 000 0 1 1 1 1 22. 0 1 0110 1 00 1 0110 1 0 147
23. 001 1 1 10 0 0 01 1 1 100 24. 01 10 1 00 1 01 1 0 1 001 25. 00000000 1 1 1 1 1 1 1 1 26. 0101010110101010 28. 01 1001 10 1 00 1 1 001 29. 0 0 0 01 1 1 1 1 1 1 10 0 0 0 30. 010 I 101010100101 31. 001 1 1 1 00 1 100001 1 27. 00 1 100 1 1 1 1 00 1 1 00 32. 0110 1 001100 1 0110 3.19. Код Бергера Коды Бергера (коды с суммированием) относятся к разряду несистематических кодов. Суще- ствует несколько вариантов построения кодов Бергера. В наиболее простом варианте кодирование происходит следующим образом: в информационной части кода подсчитывается число единиц, после чего формируются проверочные разряды, представляющие инвертирован- ную запись этого числа в двоичной форме. Возможен и другой способ, состоящий в том, что в качестве про- верочных символов используется двоичное число, соот- ветствующее количеству нулей в информационной части кода. Этот способ полностью эквивалентен первому, но его техническая реализация может оказаться проще. Таким образом, число проверочных разрядов г равно наименьшему целому числу, превышающему logs k, т. е. r>log2&. Например, сообщение 011010, закодирован- ное кодом Бергера, выглядит как 011010100. Коды Бергера предназначены для использования в асимметричных каналах связи, где возможно либо толь- ко преобразование нулей в единицы, либо наоборот [8, 90, 119]. Рассмотрим случай, когда единицы преобразуются в нули. Тогда при возникновении ошибки количество единиц, содержащихся в информационной части, умень- шается и число, равное количеству принимаемых еди- ниц, которое сравнивается с проверочными символами кода, оказывается меньше последнего. 148
Если при передаче единицы преобразовались в нули, то г принимаемых проверочных символов будут содер- жать больше нулей (чем было передано) и выделенное из информационных символов проверочное число будет больше, чем принятое проверочное число. Рассматривая характер ошибок, видим, что любые из них приводят к тому, что двоичное число, вычислен- ное по принимаемым информационным символам и за- тем инвертированное, всегда меньше числа, представ-' ляемого проверочными символами. При этом любые ошибки, состоящие в преобразовании единиц в нули, будут обнаружены. Это справедливо и для случая, когда нули преобразуются в единицы. Пример. 1. Подлежащие передаче информационные символы 011010 2. Двоичная запись количества единиц 011 3. Инвертированная двоичная запись 100 4. Переданное слово (закодированное) , 011010100 5. Слово, принятое с двумя ошибками 001010000 6. Двоичное число, полученное путем подсчета информа- ционных единиц 010 7. Инвертированное двоичное число принятых проверочных символов. 111 Таким образом, проверочное число, вычисленное по принимаемым информационным символам 010, меньше числа принятых провероч- ных символов 111. Преимущество кодов Бергера по сравнению с кода- ми с постоянным весом, которые также используются в асимметричных каналах, заключается в том, что они являются разделимыми кодами с очень простым алго- ритмом построения проверочной части. В симметричных каналах такие коды обнаруживают все одиночные ошибки и некоторую часть многократ- ных. Можно построить также .коды с лучшими обна- руживающими свойствами для симметричных, каналов [8, 22]. В таких кодах каждой информационной пози- ции приписывают различный вес, причем ни один вес 149
не является степенью двух (3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17 и т. д.). Проверочные знаки этого кода обра- зуются путем суммирования весов, соответствующих тем информационным разрядам, в которых расположе- ны единицы, затем происходит инверсия полученного числа. Такой код обладает всеми свойствами ранее опи- санного кода и, кроме того, обнаруживает в симметрич- ном канале все двойные ошибки. Количество проверочных символов его определяем из следующего выражения [8]: r>log2{[(^ + 1x)^±f±-1]-2[1 + l j, (3.60) где k — количество информационных символов, а р. оп- ределяется из соотношения 2*1-1 < k 4- р. < 2»1. (3.61-) Пример. Закодировать кодом Бергера, обнаруживающим двойные ошибки, сообщение 0110100001. _ Запишем распределение весов в данном сообщении: 1-й разряд — 3, 2-й—5, 3-й —6, 4-й —7, 5-й—9, 6-й — 10, 7-й —11, 8-й —12, 9-й—13 и 10-й—14. Следовательно, сумма весов (5+ 6-{- 9-)- 14) равна 34. Из (3.61) находим р.= 4, из (3.60)—г=7. Двоичная запись суммы весов для семиразрядной, проверочной части, имеет вид 0100010. Инвер+ированный -вид ее 1011101. Таким образом, полная последовательность выглядит как 01101000011011101 Можно построить коды, которые будут обнаружи- вать не только двойные, но и четверные и т. д. ошибки. Однако сложность построения таких кодов значительно возрастает с ростом кратности ошибок. Применение та- ких кодов не оправдано. 3.20. Непрерывные коды Коды, в которых операции кодирования и декодирования производятся непрерывно над после- довательностью посылок без деления их на блоки, назы- ваются непрерывными или рекуррентными. 150
К ним относятся цепной и сверточные коды [2, 23, 77, 139]. Они могут обнаруживать и исправлять слу- чайные ошибки и пачки ошибок. Цепной код. Это код, в котором после каждой ин- формационной посылки следует проверочная посылка. Последние формируются путем сложения по модулю два двух информационных посылок, отстоящих одна от другой на шаг сложения k [139]. Шаг сложения — это расстояние между двумя инфор- мационными посылками, образующими проверочную по- сылку. Пусть имеем последовательность информацион- ных посылок: ао, at, аг, ..., ак, a^i, ..., агь, агк+i, • • •• азь, аз*+1, .... Тогда последовательность проверочных посылок а0 ак = b0. *; а, р) ak+i = fci, *+ь ak+i & 02*4-1 = = 2*4-1! 02*4-1 (В °3*4-1 = ^2*4-1. 3*4-1- Итак, последовательность проверочных посылок: Ьо, *, bi, *4-1, . fe*4-i, 2*4-1, • ., £>2*4-1.3*4-1 ... В связи с тем что каждая информационная посылка участвует в фор- мировании двух проверочных посылок, а каждая про- верочная посылка формируется по двум информацион- ным, число проверочных посылок, сформированных за некоторое время, будет равно числу информационных посылок, поступивших за то же время на вход кодирую-- щего устройства. Поэтому избыточность цепного кода 1 равна у. Процесс декодирования принимаемой последователь- ности импульсов определяется принципом формирова- ния проверочных посылок: а) на приеме информационные и проверочные по- сылки разделяются и регистрируются независимо друг - от друга; б) из принятой последовательности информацион- ных посылок формируются контрольные посылки ана- 151
логично тому, как происходит формирование при пере- даче проверочных посылок; в) каждая контрольная посылка сравнивается с принятой из канала связи соответствующей прове- рочной посылкой (при отсутствии искажений в ка- нале связи сравниваемые контрольные и проверочные посылки совпадают; при наличии ошибок в прини- маемой последовательности сравниваемые соответ- ствующие контрольные и проверочные посылки не совпадают). Согласно принципу формирования проверочных посылок при шаге сложения k вся последовательность передаваемых в канал связи посылок разбивается как бы на k независимых цепей. В каждую цепь входят информационные и проверочные посылки, связанные друг с другом [139]. Корректирующие возможности цепного кода зависят от шага сложения k. Изменяя его, можно построить кодирующие и декодирующие устройства для обнару- жения и исправления пачек ошибок любой длительно- сти I [59]: l=2k. При шаге сложения k цепной код исправляет пачки ошибок длиной I при условии, что каждая провероч- ная посылка перед передачей в канал связи задержи- вается на время t и рядом расположенные пачки оши- бок разделены между собой защитным интервалом а, не содержащим ошибочных посылок. Эти зависимости определяются из соотношений а = 5k + 1; t = (3k -|- 1) т0, где то — длительность одной посылки. Для цепного кода существует понятие условной кодо- вой группы, длина которой равна сумме длительности пачки ошибок и защитного интервала [59]: п = 4/4-1. Данные некоторых непрерывных кодов, рассчитан- ных на исправление пачек ошибок разной длины, при- ведены в табл. 28. 152
Цепной код сравнитель- но просто, но ценой большой избыточности позволяет об- наруживать или исправлять пачки ошибок, возникаю- щие в каналах связи. Изме- няя величину шага сложе- ния, можно согласовать корректирующие возмож- ности кода с характеристи- ками канала связи, т. е. уве- личить или уменьшить до- пустимую частость ошибок [139]. Код с исправлением пачки ошибок длиной I по- сылок и интервалом между пачками а посылок может исправлять: любую одно- кратную ошибку в пределах условной кодовой группы из п посылок с вероятностью cW‘; двукратные ошибки с веро- ятностью С?рэ9"~2; трехкратные ошибки с веро- ятностью С?рэ9"~3; Z-кратные ошибки с веро- ятностью Cjpig""4. Таблица 28 Шаг сложе НИЯ k Длина пачки Ошибок 1 Защит - ный иитер вал а Длина ус- ловной КО- ДОВОЙ группы п 1 2 7 9 2 4 13 17 3 6 19 25 4 8 25 33 5 10 31 41 6 12 37 49 7 14 43 57 8 16 49 65 9 18 55 73 10 20 61 81 11 22 67 89 12 24 73 97 13 26 79 105 14 28 85 113 15 30 91 121 16 32 97 129 17 34 103 137 18 36 109 145 19 38 115 153 20 40 121 161 25 50 157 201 30 60 181 241 35 70 211 281 40 80 241 321 45 90 271 361 50 100 301 401 60 120 361 481 70 140 421 561 80 160 481 641 90 180 541 721 100 200 601 801 Предполагается, что все дву-, трехкратные и более высокого порядка ошибки распределены на интервале из I посылок, остальные п—I посылок не искажены. 163
Вероятность ошибки кодовой комбинации при бино- минальном распределении ошибок [59]: Рош = _ (с2„ - c*ci_i + d) Ргя+(d - dd-i+ +dd-i - d) p, - (d - dd_>+cfc„2_2 _ (3.62) -dd-i +d)pJ+ ... Пример. Определить вероятность ошибки кодовой комбинации в цепном коде, рассчитанном на исправление пачки ошибок длиной I = 4 посылки при вероятности искажения в канале связи единич- ной посылки рэ=10—*. По табл. 28 определяем л =17. Веро- ятность ошибки находим по формуле (3.62). Вычисляем коэффициенты С?7 - С{7С’6 + С* = - 130; с?7 - С}7С?6 + ф'16 - с? = - 1268, С* — С}7С?А + С?С?Ц — C?CL 4- Ci = — 6565. Подставив значения коэффициентов и р9, получим Рош =130-10~8— 1268- 10—1 + + 6565 10~16 яг 13 • 10~7. Сверточные коды. В основу построения сверточных кодов положен принцип, по которому проверочная по- следовательность сим- волов, получаемая на выходе кодирующего устройства (КУ), явля- ется линейной комби- нацией информацион- ных символов, посту- пающих на вход КУ. В общем случае 1 * Рис. 19. Кодирующее устройство свер- свеРтОчные КОДЫ MOiyT точного кода для скорости k/n. иметь произвольную скорость передачи k/n двоичных единиц на передаваемый символ. Кодирую- - щее устройство таких кодов содержит k входов и п выхо- дов (рис. 19). Предположим, что код разделимый. Тогда в каждый дискретный момент времени на вход КУ поступает k информационных символов, а с выходов считывается 154
п символов, из которых k символов повторяют инфор- мационные, а остальные п — k символов являются ли- нейными комбинациями информационных последователь- ностей и образуют проверочные последовательности. При необходимости передачи информации по одному каналу связи на выходе КУ включается специальная коммутирующая схема. Входные информационные последовательности мож- но представить в виде k полиномов: S(1> (х) = S^ + $V’x + sV’x2 + .. S<2> (x) = S(o2’ + S(2,x + S(22)x2 + .. (x) = So*1 + Sl**x + sV’x2 + ’ Выходные проверочные последовательности можно представить в виде п — k полиномов: C<i)(x) =С^Ч-С<11>х + С(2,)х2+ ' С<2> (х) = С(02) + С(2,х + С(22’х2 + .. (х) = + С^-^х + C(2n-fc>x2 + ... Определяющее свойство сверточного кода состоит в том, что проверочные последовательности в нем явля- ются линейными комбинациями информационных после- довательностей. Таким образом, проверочная последо- вательность символов ' С(/> (х) = S'"(х)(?(/> (х) + S<2> (х) (х) 4- ...+ + S<*>(x)Z</)(x), (3.63) где / = 1, 2, ..., п — k. Полиномы Gw>(x), (х), Z(/)(x) называются об- разующими полиномами. Если г — наибольшая из сте- пеней образующих полиномов, на которую умножается любая из входных последовательностей, то любой ин- формационный символ будет оказывать влияние на про- верочную последовательность (3.63) на протяжении не бо- 155
лее г + 1 тактов. В течение этого времени с выхода КУ будет считано т = п(г + 1) символов. Величину т назы- вают кодовым ограничением сверточного кода [130]. Для сверточных кодов со скоростью передачи kin коли- чество образующих полиномов k(n — k). Начальным кодовым словом сверточных кодов называется первая совокупность символов на выходах кодирующего уст- ройства. Минимальным расстоянием d сверточных кодов явля- ется наименьшее число символов, в которых различа- ются два начальных кодовых слова, не имеющих одина- ковых последовательностей информационных символов. Рассмотрим сверточный код со скоростью передачи fe/n = 1/2. Для такого кода количество образующих полиномов равно единице. Пусть г — степень образующего полинома G (х) — go + g\X + • • • + gx' этого кода. Если на вход КУ поступает информационная посдедователь- ность so, Si, s2, ..., то на выходе получаем две последо- вательности: информационную so, sb s2, ..., совпадаю-, щую с входной, и проверочную со, q, с2 .... Их можно представить в виде полиномов S (х) = so + six-}- s2x2 + ...; С (х) = со + С\Х + с2х2 + ..., где из (3.63) С (х) = G (х) S (х). Следовательно, кодирование информации заключается в вычислении произведения G(x) S (х), которое может быть осуществлено с помощью линейных фильтров без обрат- ных связей. Значения проверочных символов определя- ются выражением с, = goS/+ £is/—i + • • • + grSj~r. (3.64). Если на вход КУ поочередно поступают информацион- ные символы so, slt s2, ..., то проверочные сймволы с в соответствии с (3.64) будут со =g<A»; Ci = g&l + gSol ca = gos» + gxsi + g2s0; cr = go«r + gis,_! + . .. + g^sb. 156
Рассматриваемый код описывается бесконечной порож- дающей матрицей 1 ft 0 ft 0 ft... О о 6=00 1 go 0 ft 0 0 1ft 0 0 0 0 0 0 ... ° er О gr-l 0 ft О ft_2 о g,_{ о gr о ft_3 0 ft_2 О ft_! О ft (3.65) Любую заданную последовательность двоичных инфор- мационных символов можно закодировать с помощью матрицы (3.65), так как двоичные числа являются ли- нейными комбинациями соответствующих столбцов ма- трицы. Например, для входной информационной после- довательности ПО... в соответствии с (3.65) на выходе КУ получим 1, go, 1, go + g\, 0, gi + g2, .... Для вход- ной информационной последовательности 011 ... на выходе КУ будет 0, 0, 1, go, 1, go+gi, ... Из изло- женного следует, что сверточные коды полностью опре- деляются выбором образующих полиномов. При декодировании вследствие воздействия помех принятые последовательности могут отличаться от пе- реданных, т. е. S*(x) = S(x) + Etl}(x), С*(х)=С(х) + + Е<2>(х), где £('>(Х) =, + eV’x -J. е^х2 +,.. t Е<2>(х) = = а2 4- е<х + е’2>х2 + ... Последовательности £(1>(х) и Е(2>(х) образованы по- мехами и могут наложиться на информационные и про- верочные символы. Задача декодирования сверточных кодов состоит в обнаружении, а при необходимости и в исправлении искаженных символов. Заключается она в следующем. Принятую информационную последовательность S* (х) необходимо закодировать аналогично тому, как это делаем при передаче, и сложить по модулю два с принятой про- верочной последовательностью С*(х). В результате сло- жения получаем корректирующую последовательность 157
К (х) = S* (х) G (х) + С* (х) = Е<*> (х) G(x) + Е<2> (х), (3.66) г. е. значения корректирующей последовательности К(х) ko 4- k\x + fax2 ... определяются помехами. Рассмотрим схему декодирующего устройства (рис. 20) для сверточного кода, порождаемого полиномом G(x) = =go 4-gix 4- • - +grxr. После поступления на схему г информационных сим- волов s0, si, ..., s,_i в ячейках регистра сдвига кор- ректирующей последовательности будет записана по- следовательность . .., fe(, ko. При поступлении на Рис. 20. Структурная схема ДКУ сверточного кода, информационный вход символа s, вычисляется значение которое поступает в логическую схему (ЛС). Если алгоритм работы ЛС известен, то он позволяет вы- числить символ «’о0. Если 4'’= 1, значение принятого информационного символа so инвертируется и одновре- менно корректируется состояние ячеек регистра кор- ректирующей последовательности для исключения влия- ния ео". По такому же алгоритму вычисляются осталь- ные символы ?(1’. Если значения е{\} = 0, это значит, что 158
соответствующие им значения информационных симво- лов приняты правильно. Схема, приведенная на рис. 20, имеет следующие недостатки: 1) сложность реализации логической схемы; 2) возникновение «эффекта размножения ошибок» в регистре корректирующей последовательности из-за на- личия обратной связи. «Эффект размножения ошибок» заключается в том, что если при декодировании произошла ошибка (eJIJ оп- ределен неверно), то из-за наличия обратной связи все информационные символы, начиная с s/+i, будут деко- дированы неверно. Для устранения первого недостатка используются сверточные коды, допускающие мажоритарное декоди- рование. Чтобы исключить «эффект размножения оши- бок», можно использовать три метода, предложенные в работе [130]. 1. После передачи по информационных символов в тече- ние следующих г тактов кодируются нули. Поэтому после декодирования п (по + г) символов декодирующее устройство возвращается в исходное состояние (нуле- вое) и начинается процесс' декодирования для следую- щей группы символов. Здесь размножение ошибок воз- можно только на длине п(по4-/') символов, при этом л(Л уменьшится скорость передачи - — --- . 2. В процессе декодирования непрерывно контроли- руется количество исправляемых ошибок. Если иа ка- ком-либо интервале времени окажется, что это количе- ство превышает корректирующую способность кода, следует считать, что при декодировании произошла ошибка или интенсивность помех возросла настолько, что канал связи нельзя использовать. В этом случае производится повторная передача с момента фиксации огмеченного явления. 159
3. Переход к безсиндромному мажоритарному де- кодированию, заключающемуся в том, что значения символов определяются непосредственно по принятым символам без вычисления корректирующей последова- тельности (синдрома). При безсиндромном мажоритар- ном декодировании размножение ошибок исключено, так как в декодирующем устройстве отсутствует обрат- ная связь, необходимая для коррекции его состояния. В этом случае декодирующее устройство содержит г до- полнительных запоминающих ячеек. Сверточный код допускает мажоритарное декодиро- вание в случае, если образующий полином G (х) выбран таким образом, чтобы можно было получить систему разделенных относительно символа ?о’ контрольных со- отношений. В соответствии с выражением (3.66) значения сим- волов корректирующей последовательности вычисляются с помощью матричного уравнения |Ы1 ... М = ^1ЛП ... 4W ...е<2)|, где Ht — транспонированная контрольная матрица, опи- сываемая коэффициентами порождающего полинома: g0 ° о ... оо юо ... о g, Йо О ... 00 010 ... о g2 gi go ... 00 001 ... о grgr-tgr-2 . • • gtgo 000 ... 1 (3.67) Контрольная матрица строится для получения си- стемы разделенных относительно символа проверок. В таких сверточных кодах количество этих проверок должно быть равно числу ненулевых членов в порож- дающих полиномах. Разделенными проверками, т. е. контролирующими во”, являются строки матрицы (3.67), начинающиеся с ненулевых членов. Первая строка дает проверку отно- 160
f 1 ч «* сителыю символа ед , не контролирующую никакой другой символ помех. В остальных строках, дающих проверки относительно ед<0, ни один из ненулевых чле- нов, кроме члена при ео}, не должен повторяться дважды. Рассмотрим первый пример. Сверточный код со ско- ростью передачи 1/2 порождается полиномом G (х) =я = 1 + х6 + х7 + х9 + х10 + х1 *. Построим в соответствии с (3.67) транспонированную контрольную матрицу: 100000000000 100000000000 010000000000 010000000000 001000000000 001000000000 000100000000 000100000000 000010000000 000010000000 н= 000001000000 000001000000 1 100000100000 000000100000’ 110000010000 000000010000 011000001000 000000001000 101100000100 000000000100 110110000010 000000000010 111011100001 000000000001 Из контрольной матрицы находим шесть проверок, разделенных относительно символа ео\ так как порож- дающий полином содержит шесть ненулевых коэффици- ентов. Такими проверками будут строки матрицы, начи- нающиеся с ненулевых коэффициентов. В двух послед- них строках имеются повторяющиеся ненулевые коэффи- циенты. Для их исключения необходимо выбрать строки, начинающиеся с нулевых коэффициентов, и сложить их по модулю два с последними строками. Таким образом получим систему шести проверок, контролирующих сим- вол ео’: Al = So, Ag — S„ Лд = Sy, At ~ S8; Лв = S1^S3^S10; _ A e = S4 ф Sg ф Su. 6 7-256 161
В соответствии с этими данными строится схема де- кодирующего устройства. В декодирующих устройствах, построенных по прин- ципу реализации системы контрольных проверочных со- отношений, из-за наличия обратной связи возможен «эф- фект размножения ошибок». При безсиндромном мажо- ритарном декодировании размножение ошибок исключено, если в декодере отсутствует обратная связь, необходимая для коррекции его состояния. В этом случае вычислять корректирующую последовательность не требуется, а необходимо найти систему независимых уравнений, поз- воляющих вычислить значение информационного символа S/ по принятой совокупности информационных и прове- рочных символов. Такую систему уравнений можно получить из конт- рольной матрицы (3.68), которая отличается от (3.67) тем, что в ней учтено отсутствие коррекции содержимого декодирующего устройства: gr 8r-i Si 0 • • • 0 10 0 • • • 0 О gr ... gt g0 • •. О 0 1 0 ... О 6 6 ... 6 gr gr_! ...g0 6 6 о ... i st—r si—r—i • • • SI— 1 Si Sf+1 • • • S/+r cjC/+1 C/+2 ... Cl+r (3.68) С помощью контрольной матрицы (3.68) составляются уравнения для вычисления информационного символа S/. Для составления системы независимых уравнений необ- ходимо выбрать такие строки матрицы (3.68), чтобы пра- вые части уравнений не содержали общих членов. Рассмотрим второй пример. Сверточный код со ско- ростью передачи 1/2 порождается полиномом G(x) = 1 4- 162
+ Xs 4- х* + Контрольная матрица (3.68) имеет вид 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 а 1 1 1 0 0 1 0 0 а о 1 1 1 0 0 1 //♦ = 0 а о 0 1 1 1 0 0 0 а о 0 0 1 1 1 0 • S _5г ‘/—4 з Si—2 sj- i s/ S/4-i S/4-2 S/+3 0 с 1 0 0 0 0 0 0 с 0 1 0 0 0 0 0 с 0 0 1 0 0 0 0 с 0 0 0 1 0 0 • 1 с 0 0 0 0 1 0 0 1 0 0 0 0 0 1 • S/-H 5 4-5 С/ С/+1 С/+2 С1+3 C/+4 C/+S Из первой, четвертой и шестой строк данной матрицы составляем уравнения, правые части которых не содер- жат общих членов: 5/ = S/—5 + S/—4 + 5/_з + Cf, S/ = S;_2 + S/_i + «S/4-з 4- + С/4-3; S/ = S/+i + 5/4-2 + 5/4-5 + C/4-6- Добавляя к этим уравнениям тривиальное S/ = 5/, по- лучаем систему из' четырех независимых уравнений. В соответствии с этими уравнениями строим схему де- кодирующего устройства. Систематического набора пра- вил для построения сверточных кодов не существует. Наиболее подробно сверточные коды и параметры неко- торых кодов рассмотрены в работах [2, 23, 77, 130]. 6*
Глава ЦИКЛИЧЕСКИЕ коды 4 4. 1. Общие положения Циклические коды являются разновидно- стью систематических кодов и поэтому обладают всеми их свойствами. Первоначально они были созданы для упрощения схем кодирования и декодирования. Их эф- фективность при обнаружении и исправлении ошибок обеспечила им широкое применение на практике [30, 39, 51, 52, 54, 56, 62, 64, 68, 108, 152, 156]. Циклические коды более удобно рассматривать, пред- ставляя комбинацию двоичного кода не в виде последо- вательностей нулей и единиц, а в виде полинома неко- торой степени: F(x) = an-.i xn~l + ся_2 xa~2 + ... + atx + a0, (4.1) где x—основание системы счисления; а/ — цифры дан- ной системы счисления (в двоичной системе 0 и 1). Например, двоичная последовательность 01001 может быть записана в виде полинома от переменной х: F(x) = Ох* + 1х3 + Ох2 + Ох1 + 1х° = х3 + 1. (4.2) Представление кодовых комбинаций в форме (4.2) позволяет свести действия над комбинациями к действи- ям над многочленами. При этом сложение двоичных многочленов сводится к сложению по модулю два коэф- фициентов при равных степенях переменной х. Умноже- ние производится по обычному правилу перемножения степенных функций, однако полученные в этом случае коэффициенты при данной степени складываются по мо- 164
дулю два. Деление осуществляется по правилам деления степенных функций, при этом операции вычитания заме- няются операциями суммирования по модулю два. Например, действия сложения, умножения и деления над многочленами выполняются следующим образом: а) + **4-0+1 б) *я + х® 4” 0 + 1 +________*+ 1 . X________*+ 1 . х8+ **+-* * х3 + *® + 0 + 1 ’ х* + х8 + 0 + х х‘+0+х® + х+1 в) х* + 0+х® + х+1 |х + 1 **+Х8 |x»+*®+l‘ * + 1 х-Ь 1 О Основное свойство циклических кодов, определяющее их название, заключается в следующем. Если комбина- ция а0, alt at, .... Яо-i является разрешенной, то ком- бинация, получаемая из нее путем циклической переста- новки разрядов, т. е. комбинация an-i, а0, at.ап_2, также принадлежит этому коду. Представление комбинаций в форме (4.1), (4,2) удоб- но еще и тем, что упомянутая циклическая перестановка есть результат простого умножения данного полинома на х. Действительно, если одна из кодовых комбинаций вы- ражается полиномом V (х) = а0 + ахх + а2х2 + ... + + ап— |ХЛ-1, то новая комбинация за счет циклического сдвига будет иметь вид xV(x) — аох + atx* + ag Xs + ... + an-iJj?. Однако в последнем члене необходимо заменить х" на 1 (в противном случае длина кодовой комбинации превысит п). Следовательно, полученная комбинация V'(x) = xV(x) = a„_i + о0х + axxs + ... + ао-гх"”1 является циклическим сдвигом комбинации V'(x). . 165
4.2. Принцип построения циклических кодов Идея построения циклических кодов бази- руется на использовании неприводимых многочленов. Неприводимым называется многочлен, который не мо- жет быть представлен в виде произведения многочленов низших степеней, т. е. такой многочлен делится только на самого себя или на единицу и не делится ни на какой другой многочлен. На такой многочлен делится без остатка двучлен хп+ 1. Неприводимые многочлены в теории циклических ко- дов играют роль образующих полиномов. В приложении 2 представлены все неприводимые полиномы до 9-й сте- пени включительно, которые обознач ены Р/(хт), где i — порядковый номер неприводимого полинома данной сте- пени т при расположении по признаку возрастания со- ответствующих им двоичных чисел. Чтобы понять прин- цип построения циклического кода, умножаем комбина- цию простого fe-значного кода Q(x) на одночлен хг, а затем делим на образующий полином Р(х), степень ко- торого равна г. В результате умножения Q(x) на xt*cre- Л пень каждого одночлена, входящего в Q(x), повышается на г. При делении произведения xrQ(x) на образующий по- лином получается частное С(х) такой же степени, как и Q(x). Результат умножения и деления можно представить как <4.3) где R [х) — остаток от деления Q (х) хг на Р (х). Частное С(х) имеет такую же степень, как и кодо- вая комбинациям^ VM простого кода, поэтому С(х) является кодовой комбинацией этого же-простого fe-значного кода. Следует заметить, что степень остатка не может быть больше степени образующего полинома, т. е. его наи- высшая степень может быть равна (г— 1). Следователь- но, наибольшее число разрядов остатка R (х) не пре- вышает числа г. 166
Умножая обе части равенства (4.3) на Р(х) и произ- водя некоторые перестановки, получаем F (х) = С (х) Р (х) = Q (х) х' + R (х). (4.4) В (4.4) знак минус перед R (х) заменен знаком плюс, так как вычитгние по модулю два сводится к сложению. Таким образом, кодовая комбинация циклического n-значного кода может быть получена двумя способами [4]: (Т)) умножение кодовой комбинаций (?(Jt) простого ко- да а одночлен хт и добавление к этому произведению остатка R (х), полученного в результате деления про- изведения Q(x)xr на образующий полином Р(х); (jjf) умножение кодовой комбинации С(х) простого /г-зЙЙчного кода на образующий полином Р(х). При построении циклических кодов первым способом расположение информационных символов во всех комби- нациях строго упорядочено — они занимают k старших разрядов комбинации, а остальные (п — k) разрядов отводятся под .проверочные (контрольные). При втором способе образования циклических кодов информационные и контрольные символы в комбинациях циклического кода не отделены друг от друга, что за- трудняет процесс декодирования. Поэтому в основном- применяют первый способ построения циклического кода. Пример. Дано k = 4, и образующий полином третьей степени Р (х) = х8+ х8 + 1. Следовательно, кодовые комбинации цикличес- кого кода будут иметь по семь разрядов. Требуется записать произ- вольную кодовую комбинацию циклического кода (7,4) первым спо- собом. Возьмем произвольную четырехразрядную комбинацию 0111, т. e.Q (х)=х8 4- х 4- 1. Найдем произведение Q (х) хг = (х2 4- х 4- 1) X X х3 = х5 х4 4- х3. Произведем деление: Q (х) хг = х5 4- х4 4- х3 _ хз , j , 1 Р(х) xs4-x24- 1 . Р(х) ’ Следовательно, остаток R (х) = 1. Таким образом, в соответствии со сформулированным выше пра- вилом найдем комбинацию, принадлежащую циклическому коду (7.4); 167
F(x)= Q (x) xr + R (x) = xB + x* 4- xs 4- 1 или в двоичной форме F (1,0) = 0111 001. ~~к" - Операция образования циклического кода может непосредственно производиться при записи исходных кодовых комбинаций в виде двоичных чисел. Пример. Дано Л = 4 и образующий полином Р (1,0) = 1101. Следовательно, кодовые комбинации циклического кода будут иметь семь разрядов (k = 4, г = 3). Возьмем произвольное четырехразряд- ное двоичное число Q (1,0) = 0001. Найдем произведение Q(l,0)X X 1000 = 0001000. Произведем деление X9 0(1,0). юоо 0001000 Р(1,0) •“ 1101 • В результате деления получится остаток R (1,0) = 101. Следователь- но, комбинация циклического кода (7,4) запишется следующим об- разом: Таблица 29 F (1,0) = 0001000 4- 4- 101 = 0001 101 . к Пример. Дано Р (1,0) = = 1101 —образующий поли- ном. Построить циклический код из проотоГо четырехзна- чного кода вторым способом. В качестве исходной исполь- зуем простую комбинацию С (1,0) =0011, Операции умножения этой комбинации на’ образующий , полином Р (1.0) = 1101 запишется следующим образом) v 0011 ) х 1101 ( ООП ООП ООП ooioni Простой четырех- символь- ный код С(х) Образую- щий по- лином Р(Х) Циклический (7,4)-код F(x) - С(х)Р(к) 0 0 0 0 0 0 0 1 0 0 10 0 0 11 0 10 0 0 10 1 0 110 0 111 10 0 0 10 0 1 10 10 10 11 110 0 110 1 1110 1111 1101 0 0 0 0 0 0 0 0001101 0 0 1 10 10 0010111 0110100 0111001 0 10 1110 0 1 0 0 0 1 1 1101000 1100101 1110 0 10 1111111 1011100 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1001011 168
Итак, простую четырехсимвольную комбинацию С (1,0) = 0011 можно представить семисимвольиым циклическим кодом F(l, 0) = С (1,0) Р (1,0) = 0010111. Результаты расчетов для всего множества кодовых комбинаций этого кода сведены в табл. 29. 4.3. Матричное представление циклических кодов Циклический код, как и всякий система- тический код, однозначно определяется подобранными определенным образом k исходными кодовыми комби- нациями. Эти комбинации записываются в виде произ- водящей матрицы, состоящей из k строк и п столбцов. Для формирования строк производящей матрицы по первому способу образования циклического кода берут не произвольные комбинации неизбыточного кода Q(x), а лишь те из них, которые содержат единицу в одном разряде Qi(x), где i—1-i-k. Именно эти комбинации умножаются на х? и нахо- дится остаток от деления ' Равный ^оот' ветствующая строка матрицы записывается в виде Qi (х) xr + Rt (х). При этом вся матрица разбивается на две подматрицы (см. § 3.3): Gn. к = | El, Cr,k\, где El — единичная транспонированная матрица; Cr,k — подматри- ца с «числом столбцов г и строк k, образованная остат- ками от деления Rt(x). Такой способ дает возможность получить сразу производящую матрицу в каноническом виде. Производящая матрица дает возможность получить первые k комбинаций кода. Остальные 2* — k—‘1 комби- наций получаются суммированием по модулю два строк производящей матрицы во всех возможных сочетаниях. Последняя комбинация кода является нулевой. 169
Пример. Дано Р (х) = х* -J- х -J- 1 [Р (1,0) = 1011 ], п = 7, k = 4. Необходимо построить производящую матрицу. Поскольку k = 4, возьмем единичные векторы Q( (х): Q] =0001; Q2 = 0010; Q3 = 0100; Qt = 1000. Произведем необходимые операции в вектором Qx (х), , ь о. Qi И х' 0001 • 1000 учитывая, что г = п — k = 3: г1 — =------.—.— . . Р(х) 1011 Произведя деление, находим остаток Pi (х)->011. Следовательно, первая строка матрицы 0001011. После аналогичных операций с Qs, Qa, Qt имеем R2 (х) -► НО, Rs (х) -*111, Rt (х) -* 101. Окончательно получим следующую производящую матрицу в ка- ноническом виде: ^7,4 ~ 0-0 0 1 0 0 10 0 10 0 10 0 0 0 1 1 1 1 0 1 1 1 1 0 1 Сг.к Дополнительную матрицу Cr. k можно еще построить по остат- кам деления последней строки единичной транспонированной матри- цы, дополненной г-иулями, на выбранный образующий полином: 1000000 1011 01100 1011 1110 1011 101 |1011 I Ш О I 1 1 1 о 1 1 1 1 О 1 Если в процессе деления после при писывания к остатку очередно- го нуля получается число, у которого количество разрядов меньше, чем у делителя, остаток получается путем приписывания нуля к пре- дыдущему остатку справа. Строки полученной матрицы О7 4 являются четырьмя первыми комбинациями кода. Пятая комбинация является нулевой. Остальные 11 комбинаций найдем суммированием по модулю два всевозможных сочетаний строк производящей матрицы. Полученные разрешенные кодовые комбинации приведены в табл. 30. 170
Т аблица 30 Порядковый номер Кодовая комбинация Способ получе- ния Информационные разряды Проверочные раяряды 1 10 0 0 1 0 1 1 2 0 10 0 1 1 1 2 3 0 0 10 1 1 0 3 4 0 0 0 1 Q 1 1 4 5 110 0 0 1 0 1ф2 6 10 10 0 1 1 1 S 3 7 10 0 1 1 1 0 1ф4 8 0 110 0 0 1 2ф 3 9 0 10 1 1 0 0 2ф4 10 0 0 11 1 0 1 3®4 11 1110 1 0 0 1Ф2фЗ 12 10 11 0 0 0 1ф3^4 13 0 111 0 1 0 2ФЗ®4 14 110 1 0 0 1 1 © 2ф4 15 1111 1 1 1 1 ф 2 ф 3 ф 4 !6 0 0 0 0 0 0 0 Сумма всех 15 ком- бинаций При втором способе образования циклического кода производящая матрица Gn, k формируется путем умноже- ния образующего полинома Р(х) степени г на одночлен х*-1 и последующих k — 1 сдвигов полученной комбина- ции. Получающиеся при этом кодовые комбинации обла- дают свойствами цикличности, однако информационные и проверочные символы в них не разделены. Необходимо отметить, что при построении произво- дящей матрицы циклического кода каждый код можно представить в k — 1 различных вариантах, которые отличаются друг от друга длиной п, количеством инфор- мационных элементов k, а также пропускной способ- ностью при одинаковых корректирующих характерис- тиках. Эти варианты так называемых укороченных цик- лических кодов получаются вычеркиванием некоторого
количества последних строк и такого же количества столбцов слева в образующей матрице Сп к- При этом число проверочных элементов остается неизменным, а длина кода и число информационных элементов умень- шаются соответственно на количество, вычеркнутых строк и столбцов. Так. если в образующей матрице равное числу °15,П — 000000 0 0 0 0 1 0 0 1 1 000000 0 0 0 1 0 0 110 000000 0 0 10 0 110 0 000000 0 10 0 0 1 0 1 1 000000 1 0 0 0 0 0 10 1 000001 0 0 0 0 0 1 0 1 0 000010 0 0 0 0 0 0 1 1 1 000100 0 0 0 0 0 1 1 1 0 001000 0 0.0 0 0 1 1 1 1 010000 0 0 0 0 0 1 1 0 1 100000 0 0 0 0 0 I 0 0 1 вычеркнуть шесть последних строк слева столбцов, получим образующую и шесть первых матрицу 0 0 0 0 1 0 0 0 1 0 0 0 10 0 0 1 1 о Характеристика укороченного кода же, как и в (15, 11)-коде. Пример. Построить производящую матрицу полином имеет вид ха -f- х -f- 1. Первую строку из выражения Р (х) xk~x = 1011 1000 роченного циклического кода: Gg6 G9i5 уко- 0 1 1 0 0 1 о о 1 1 1 1 о 1 о 1 о о 1 1 0 0 0 0 0 0 остается такой G74. Образующий матрицы получаем 1011000, последующие k — 1 строк — путем циклического сдвига полученной комбинации. Таким образом, производящая матрица О74 1 о о о о 1 1 о О 1 о о 1 I о 1 о 1 1 о О о О О 1 о 1 1 172
В циклических кодах, как и во всех систематичес- ких, процесс кодирования сводится к определению г проверочных разрядов на основании известных k инфор- мационных. Каждый проверочный разряд находим с по- мощью проверочного соотношения, а определение всех г проверочных разрядов требует г проверочных соотно- шений, которые записываются одно под другим в виде проверочной матрицы Н. В циклических кодах провероч- ная матрица Н может быть найдена кроме известного способа построения (§ 3.3) с помощью так называемого проверочного полинома: Л W = CtA = fo + fox + ... + fox*, р (*) где Р~1 (х) — полином, сопряженный с образующим поли- номом Р (х), или обратный ему (подробнее см. § 4.4). В сопряженных полиномах члены расположены в об- ратном порядке. Так, полиномы 1101 и 1011 являются сопряженными. Если полином Л(х) представить в виде комбинации fo, b\, ..., bk, то проверочную матрицу можно построить следующим образом. Первая строка матрицы представляет собой комбинацию полинома h (х), дополненную (г — 1)-нулями. Последующие г — 1 строк матрицы строятся путем циклического сдвига первой строки. При таком построении проверочная матрица имеет вид Ьо^ ... Ьк 0 0 0 ... 0 0Ьо ... fo—jfoO 0 ... 0 0 0... bk-2bk-{bk о ... о 0 0 ... 0 0 bo bt ... bk *+1 173
Проверочная матрица, построенная в § 3.3, внешне может отличаться от матрицы, построенной с помощью проверочного полинома. Однако обе матрицы всегда могут быть сведены к одному виду. Пример. Дано Р (х) = х8 Ц- х 4- 1 Р (1, 0) = 1011], п = 7, k = 4. Необходимо построить проверочную матрицу с помощью провероч- ного полинома. Находим проверочный полином х’+ 1 10000001 «М-(хз + х + 1)-1 - Ц01 = 11101. Следовательно, проверочная матрица Я = 1110 10 0 0111010 0011101 4.4. Выбор образующего полинома Важнейшей задачей построения цикли- ческих кодов является выбор образующего полинома, удовлетворяющего заранее заданным условиям. Если код предназначен для исправления независимых оши- бок, таким условием является обеспечение заданного кодового расстояния d. В случае, когда код предусмот- рен для исправления пакетов ошибок, условием явля- ется длина b исправляемого или обнаруживаемого па- кета ошибок. Порядок нахождения полинома начинается с выбо- ра информационных разрядов k по заданному объему кода N=2h. Затем определяется наименьшая длина кодового слова п, обеспечивающая обнаружение или исправление ошибок заданной кратности. Для цикли- ческих кодов эта проблема сводится к нахождению нужного полипома Р(х). Образующий полином нужно выбирать, как уже отмечалось ранее, с учетом того, что его степень должна быть равна числу проверочных символов г. Помимо это- 174
го, полином Р(х) должен входить в качестве сомножи- теля в разложение двучлена x« + l=x2m-I + l. (4.5) Доказано [93], что любой двучлен типа (4.5) может быть представлен произведением всех без исключения непроводимых многочленов, степени которых являются делителями числа т (от 1 до т включительно). Следо- вательно, для любого т существует, по- крайней мере, один неприводимый многочлен степени т, входящий сомножителем в разложение двучлена хп + 1. Боуз и Чоудхури показали [20, 60], что для любых целых положительных чисел т, tK существует цикличе- ский код значности •n = 2m—1 (4.6) с кодовым расстоянием ^мин 2/н -f- 1. (4.7) При этом число проверочных символов г — п — k не пре- вышает величины mtK, т. е. г<т/и. (4.8) Такой код гарантированно исправляет ошибки кратности t„ и менее или обнаруживает ошибки кратности 2/и и менее. Кроме того, код обнаруживает все пакеты ошибок, длина которых равна или меньше г. Соотношения (4.6) — (4.8) могут быть использованы для выбора образующего полиномд. Следует отметить, что если имеются ошибки разной кратности, то в первую очередь необходимо устранить однократные ошибки, вероятность появления которых наибольшая. Поскольку в циклическом коде опознавателями оши- бок являются остатки от деления многочленов ошибок на образующий многочлен Р(х), то Р(х) должен обес- печивать требуемое число различных остатков при деле- 175
нии векторов ошибок с единицей в искаженном разряде (так как вектор одиночной ошибки имеет единицу толь- ко в искаженном разряде и нули во всех остальных разрядах). В качестве образующих многочленов, как уже упоминалось, выбираются неприводимые полино- мы, дающие наибольшее число остатков. При степени многочлена т=п— k он может дать 2n-ft—1 ненуле- вых остатков (нулевой остаток является опознавателем безошибочной передачи). Следовательно, необходимым условием исправления любой одиночной ошибки является выполнение нера- венства [Н7] 1 >с; = п, которое совпадает с (3.17). Пример. Дано количество информационных разрядов k = 4, ко- торое задается исходя из количества передаваемых сообщений N = = 2к. Необходимо определить образующий полином для циклического кода, обеспечивающего устранение однократных ошибок нли обнару- жение двукратных (/„ = 1, /0 = 2fH = 2). Из соотношения (4.7) опре- деляем минимальное кодовое расстояние dMIIB = 2?и -f- 1 == 3. По табл. 15 находим количество проверочных разрядов г — = f(k,d) = 3. Для построения циклического кода необходимо выбрать образую- щий полином Р (х) степени три. Пользуясь приложением 2, выби- раем един из двух имеющихся неприводимых полиномов третьей степени, например х3-|- х2-|- 1, в качестве образующего. Теперь для построения циклического кода остается умножить каждую простую четырехсимвольную комбинацию неизбыточного кода С (х) на обра- зующий полином. Покажем справедливость соотношения (4.8). Для этого определим значность кода п = k + г = 7. Образующий полином Р(х) должен входить в качестве сомножителя в разложение двучле- на xn+ 1. Так как п = 7, то этот двучлен имеет вид х7+ 1. Состав- ляющие его сомножители должны быть неприводимыми полиномами, степени которых являются делителями числа т. Из соотношения (4.6) определяем т = log2 (n + 1) = 3. К числам, на которые т = 3 делится без остатка, относятся единица и три. Следовательно, сомножителями двучлена х’ + 1 должны быть непри- водимые полиномы первой и третьей степени. Выписав из приложе- 176
иия 2 неприводимые полиномы указанных степеней, получим полное разложение двучлена х’ + 1 = (х + 1) (х3 х + 1) (х® + х® + 1). Определив число т, убеждаемся в справедливости соотношения r<mtB (3 = 3. 1). Обнаруживающая способность циклического кода определяется не только степенью образующего полино- ма, но и числом его членов [36]. Чем больше остатков может быть образовано при делении многочлена сооб- щения на образующий полином, тем выше корректирую- щая способность кода. Наибольшее число остатков, рав- ное 2”1—1 (исключая нулевой), может обеспечить толь- ко неприводимый многочлен степени т [Н8]. Для построения циклического (п, й)-кода, обеспе- чивающего обнаружение или исправление ошибок за- данной кратности, как уже отмечалось, прежде всего следует выбрать образующий полином степени г= =п — k. Он должен входить в качестве сомножителя в разложение двучлена хп + 1. Однако не всякий много- член степени г, входящий в разложение данного двучле- на, может быть использован для образования нужного (п, й)-кода. При построении дополнительной матрицы Cr, h по выбранному полиному необходимо также учиты- вать количество строк в цикле чередования провероч- ных разрядов и вес со каждой строки (количество еди- ниц). Рассмотрим на примере этот вопрос более подробно. Пример. Требуется построить циклический (п, &)-код с исправле- нием в кодовых комбинациях одиночных ошибок (<и = 1). Пусть общее число элементов п кодовой комбинации равно 15. Число проверочных разрядов определяем из соотношения (4.8) г < mtB. По выражению (4.6) т = log2 (п + 1) = 4. Следовательно, г = 4. Число информационных элементов k = п — г = 11. Для п = 15, m = 4 имеем x«4-l=x2m'~I + 1 = х15 + 1. Так как /п = 4 делится без остатка на 1, 2 и 4, то сомножителями полинома хг® + 1 должны быть все неприводимые полиномы 1-й, 2-й и 4-й степеней. Пользуясь таблицей неприводимых полиномов (приложение 2), получаем 177
xis 4- 1 = (x + 1) (x2 + X + l)(X*+*+1) (*4 + X3 + 1) (x* + + X3 + X2 + x -J- 1). Из всех сомножителей разложения двучлена х15 + 1 требуется выбрать один из сомножителей четвертой степени (г = 4). Чтобы установить, какой из трех сомножителей четвертой степени может быть использован в качестве образующего полинома, найдем для каждого из них дополнительную матрицу С4л1. Делением единицы с приписанными справа нулями иа полиномы Р1(х4) = х4 + х+. 1 -* ЮОП; Ра(х4) = х4 + х3 + 1 - 11001; ' р3(х4) = х4 + х3+ х2+ х+ 1 11111 получим соответственные подматрицы: 0 0 11 10 0 1 1111 0 110 ГО 1 1 0 0 0 1 110 0 1111 0 0 10 цикл 10 11 0 111 0 10 0 0 10 1 1110 10 0 0 А — е4.11 10 10 , С4.11 ~ 0 10 1 с” — , 4,11 — 1111 - 0 111 10 10 0 0 0 1 1110 110 1 в в в 1111 0 0 11 в в 110 1 0 110 в в в 10 0 1 110 0 в . Для исправления одиночных ошибок дополнительные матрицы должны выбираться таким образом, чтобы вес и каждой строки про- изводящей матрицы был не меньше трех единиц (т. е. кодового расстоиния) [36]. Каждая строка единичной транспонированной матрицы Ец имеет вес, равный единице, поэтому вес любой строки дополнитель- ной матрицы должен быть не менее двух единиц. Это требование будет выполнено, если в качестве образующего полинома для пост- роения циклического (15, 11)-кода выбрать /один из двух сомножи- телей: Ptlx*) или Р2(х*). Рассматривая дополнительную матрицу С4 j j, можно заметить, что цикл чередования ее строк (остатков) равен пяти, в то время как для (15, 11)-кода этот цикл должен быть равен числу информационных разрядов k— 11. Кроме того, из пяти строк матрицы только перваи строка имеет необходимый вес (tn = 2), 178
вес же остальных строк является недостаточным (tn = 1). Поэтому сомножитель Ps (х4) = х4 + х3 + х2 + х + 1 не может быть исполь- зован в .качестве образующего полинома для построения циклического (15, П)-кода. Выбрав в качестве образующего полинома один из многочленов (х4) или Рг (х4), можно построить производящую матрицу (15, 11)-кода. Матрицы С411. С4Л1 отличаются одна от другой.только поряд- ком чередования строк. Перестановка строк в дополнительной ма- трице приводит к 111 = 39916800 эквивалентным циклическим (15, 11)- кодам. Практически при выборе из огромного количества кодов, эквивалентных по корректирующей способности и избыточностй, оптимального варианта руководствуются экономичностью кодирующих и декодирующих устройстн. В общем случае при построении циклического (n, k)- кода с исправлением в кодовых комбинациях tK ошибок в качестве образующего полинома степени г выбирается произведение из tw сомножителей старших степеней, вхо- дящих в разложение двучлена вида х2'"-1 + 1 [36]. Пример. Требуется построить циклический (п, й)-код с исправле- нием в кодовых ксмбинациях двукратных ошибок = 2). Пусть общее число элементов кодовой комбинации п=15. Согласно (4.6) и (4.8) т = 4, г = 8. В этом случае двучлен х2”1-1 -]- 1 — Xя + 1 = = х1? + 1. Из предыдущего примера известно, что в разложение двучлена х13 + 1 в качестве сомножителей старшей степени входят полиномы Pi (х4) = х* + х + 1 -» 10011; Ря(х4) = х4 + х3+ 1 - 11001; Ps(x4) = x4+x34-x2+x+1 - 111П. Из трех возможных парных произведений полиномов четвертой сте- пени получим трн полинома восьмой степени: (г=8); Р{(х4)Р3 (х4) =х8+х7 + х6 + х4+ 1 - 111010001; Р2 (*4) Р3 (*4) = х8 + х4 + х2 + х + 1. -► 100010111; Р, (х4) Р2 (х4) = х8 ’+ х7 + хБ + х4 + х3 + х+ 1 -> 110111011. Чтобы выяснить, какой из трех полиномов восьмой степени может быть использован в качестве образующего, найдем для каждого из них дополнительную матрицу Cg7 (k = 15 — 8 = 7). Делением едини- 179
цы с приписанными справа нулями на 111010001, 100010111 и 110111011 _ находим соответственные дополнительные матрицы: 11010001 01110011 11100110 00011101 • ^8,7 — 00010111 00101110 01011100 10111000 • ^8,7 ~ 10111011 11001101 00100001 01000010 00111010 01100111 10000100 01110100 11001110 10110011 11101000 10001011 11011101 Для получения возможности исправления двойных ошибок до- полнительные матрицы должны выбираться таким образом, чтобы вес ю каждой строки производящей матрицы был не менее пяти единиц: 4мин = 2<н + 1 1361- Так как каждая строка единичной матрицы Е} имеет вес, равный единице, вес любой строки дополнительной матрицы должен быть не менее четырех единиц. Это требование будет выполнено, если в ка- честве образующего полинома дли построения циклического (l£j, 7)- кода выбрать одно из двух произведений: (х4) Р8(х*) или Р8(х*) х ХР8(х*). В дополнительной матрице С8 7 из семи строк третья, четвертая и пятая не обладают требуемым весом. Поэтому произведение Pi (а4) Ря (х4) не может быть использовано в качестве образующего полинома дли построения циклического (15, 7)-кода. Выбрав в качестве образующего полинома произведение Рг (х*) х X Р3 (х4), можно построить производящую матрицу циклического (15, 7)-кода, исправляющего все двойные и одиночные ошибки: 0 0 0 0 0 0 1 1 10 10 0 0 1 0 0 0 0 0 1 0 0 1110 0 1 1 0 0 0 0 1 0 0 1 110 0 1 1 0 G15.7 — 0 0 0 10 0 0 0 0 0 11 1 0 1 0 0 10 0 0 0 0 0 111 0 1 0 0 1 0 0 0 0 0 0 1110 1 0 0 1 0 0 0 0 0 0 1 1'1 (Г 1 0 0 0 При выборе образующего полинома необходимо отме- тить очень ценное свойство циклических кодов. Для этого введем понятие обратного полинома. 180
Обратными полиномами называются такие полиномы, которые образуются путем подстановки у вместо х в основной полином и умножения этого полинома на одно- член хт, где т — степень основного полинома. Напри- мер, основной полином степени т — 5 Р(х) =х5 + х2 + х+ 1 100111. Обратный ему полином Р~' (х) = х5 (х~5 4- х-2 + х-1 + 1). Выполнив операцию умножения и расположив члены по убывающим степеням, получим Р-1 (х) = хБ + х4 + х3 4-1 111001. Сравнивая выражения основного и обратного полино- мов, записанных в двоичной форме, видим, что нули и единицы в обратном полиноме расположены в обратном порядке по сравнению с основным полиномом. Следует заметить, что произведение некоторого поли- нома Р (х) на основной Pi (х) является взаимно-обратным произведению этого же полинома на взаимно-обратный полином РГ'(х): P(x)Pi(x), обратный Р(х)Р~’(х). Понятие об обратных полиномах является полезным для выбора образующих полиномов при построении цикли- ческих кодов. Например, если будет установлено, что полином Р (х) пригоден для построения циклического ко- да с заданными характеристиками, то и обратный ему полином Р-1 (х) будет также пригоден для построения циклического кода с теми же характеристиками. Эти коды отличаются только порядком расположения остат- ков. Например, матрицы остатков для основного поли- нома Р (х) = х3 4- * 4-1 ~ Ю11 и обратного ему полинома Р~’ (х) = х3 4- х2 4- 1 ~ 1101 имеют вид 0 1 1 1 0 1 с = 1 1 0 . С-1 = 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 161
Сравнивая эти матрицы, легко заметить, что строки у второй матрицы расположены в обратном порядке, причем разряды в этих строках также расположены в обратном порядке. Табличные и расчетные методы нахождения обра- зующих полиномов циклических кодов далеко не всегда позволяют однозначно выбирать наилучший полином для определенного типа канала и определенного харак- тера распределения ошибок. Поэтому широкое распро- странение получили машинные методы отбора наилуч- ших кодов и их образующих полиномов. Так, с помощью вычислительной машины произведен отбор образующих полиномов циклических кодов, более всего подходящих для обнаружения ошибок в телефонных каналах. Ука- занный отбор произведен на основании статистических данных распределения ошибок при передаче сигналов методом относительной фазовой модуляции (ОФМ) со скоростью 1200 бод. Вероятность ошибки (по импуль- сам) при этом составляла 10-4—10-5. Результаты отбо- ра приведены в табл. 31 [86]. Здесь также приведено ожидаемое время (средний период) между двумя необ- наруженными ошибками (Тн. о) в часах. Таблица 31 Длина кодо- вой комби- нации п Число провероч- ных раз- рядов г • Производящие ПОЛИНОМ Р (X) Период между двумя необ нар ужи- наемыми Ошибками ^и. О, 4 15 6 1 + х + xs + xs + хв 3 27 7 1 - - х - - х4 - - х7 . 41 63 8 1 - - х + Xs - - х# 4- х® 29 121 9 1 - - X - - X® - - X® >278 255 10 1--ха + х4+х’+х10 >278 487 11 1 + х-}-хя + х3 + х44-х?-|- + х® + х7 + х® + хи >278 1023 12 1 + X® + X* + Xе. + х1а >278 182
Продолжение табл. 31 Длина кодо- вой комбина- ции л Число провероч- ных раз- рядов г Производящий полином Р (X) Период между двумя необнаружи- ваемыми ошибками Гн. о» 4 1999 13 1 4- х2 4- *8 4-+ *’ + *’ + + X8 + X* + X11 + х12 + *“ >278 Ю 8 1 + х + х* + Xе 4- х8 143 35' 9 14-Х8- |- х*4- х84- х8 143 82 10 14-Х2- -х8 4-х8 4-х’4-хи >278 164 11 14-х2- 4-Xй f- х8 4- хв 4- х’ 4- х» 4- >278 511 12 1 + Xs 4- Хв 4- X8 4- X12 >278 1023 13 14- х 4- х8 4- *“ + >278 1647 14 14-х84-х44-х#4-хв4-х84- 4- х8 4-х10 4-х18 4- *“ >278 24 10 14-х2х8 4-х5 4-х8 4-х»-}- 4- х10 >278 47 11 14-х4-х24-х84-х*4-х?4- 4-х’4-х8 4-х" >278 127 12 1 + х 4- Xs 4- Xе 4- х’ 4- х8 4- 4- хи 4- х12 >278 290 13 14- х24- х$4- х8 4- х’4- хи4- 4- х18 >278 765 14 14- х2 4- х8 4- х8 4- хи >278 31 12 1 4-х-}- х84-х*4-хв4-х*4- 4- х8 -}- х114- х12 58 64 13 14-х4 + хи4 - х8 4- хв 4-х’ 4-х" 4- - X18 >278 165 14 14- х"4- хв4- х’4- х®4- х84- 4-х10 । Л.и + г124-х1* >278 363 15 14-х4 + *’ + 4-х18 -х2 4-х* 4-х? 4-х® 4- х8 4-х12 4-х18 4-хм 4- >278 819 16 14-х24-х84-х44-*’ + *’ + 4-х10 4-хи 4-х18 4-хм 4- х1В4- 4-хы >278 31 14 14-х8- 4- хи 1-х’4-х8 4-х8 4-хи 4- >278 99 15 14-х84-х44-х84-х84-х1,>4- 4-хи 4-х16- >278 183
Продолжение табл. 31 Длина кодо- вой комбина- ции п Число провероч- ных раз- рядов г Производящий поливом Р (х) «г Период между двумя необна Сужи- ваемыми ошибками Т'н. о, ч 144 16 1 + х-|-х24-л4 + х7+х«-|- 4- х8 + х10 + х11 + х12 + х1» + + Xй + X16 + Xм >278 50 16 1 + Xs -J- х4 4- х® 4- х8 + хи 4- 4-х13 4-х1» >278 4.5. Способ коррекции ошибок циклическими кодами Важным свойством циклических кодов является то, что все они строятся с помощью образующе- го полинома Р (х). Приведем методику построения цикли- ческого кода. Образующий полином Р(х) принимает участие в образовании каждой кодовой комбинации, по- этому комбинация кода делится на образующий поли- ном без остатка. Однако без остатка делятся только те многочлены (комбинации), которые принадлежат данному коду, т. е. образующий полином позволяет выбрать разрешенные кодовые комбинации из всех воз- можных. Если же при делении принятой кодовой ком- бинации циклического кода на образующий многочлен будет получен остаток, значит, имеет место ошибка. Таким образом, остатки от деления принятой комбина- ции на образующий полином являются опознавателями ошибок циклических кодов. Но данные остатки еще не указывают непосредственно на место ошибки в кодо- вой комбинации. В циклических кодах идея исправления ошибок осно- вывается на следующем. Ошибочная комбинация после 184
определенного числа циклических сдвигов «подгоняет- ся» под остаток таким образом, чтобы в сумме с остат- ком она давала бы исправленную комбинацию. Остаток при этом представляет собой разницу между искажен- ными и правильными символами, а единицы в остатке стоят на местах искаженных разрядов в «подогнанной» циклическими сдвигами комбинации. «Подгоняют» иска- женную комбинацию до тех пор, пока число единиц в остатке не будет равно числу ошибок в коде. При этом, естественно, число единиц может быть равно числу ошибок tK, исправляемых данйым кодом (код исправ- ляет три ошибки и в искаженной комбинации три ошиб- ки) или меньше tB (код исправляет три ошибки, в при- нятой комбинации — одна ошибка). Таким образом, для обнаружения и исправления ошибочного разряда производят следующие опера- ции [133]. 1) Принятую комбинацию делят на образующий полином; 2) Подсчитывают количество единиц в остатке (вес остатка ю). Если <в < t„, где t„ — допустимое число исправ- ляемых данным кодом ошибок, принятую комбинацию складывают по модулю два с полученным остатком. Сумма дает исправленную комбинацию. Если ш > 4, то 3) производят циклический сдвиг принятой комбина- ции влево на один разряд. Комбинацию, полученную в результате циклического сдвига, делят на образующий полином Р (х). Если в результате повторного деления <и < то целимое суммируют с остатком, затем 4) производят циклический сдвиг вправо на один разряд комбинации, полученной в результате суммиро- вания последнего делимого с последним остатком. По- лученная комбинация уже не содержит ошибок. Если после первого циклического сдвига и последующего де- ления остаток получается таким, что его вес со > /в, то 185
5) повторяют операцию п. 3 до тех пор, пока не бу- дет достигнуто u> < tn. В этом случае комбинацию, по- лученную в результате последнего циклического сдвига, суммируют с остатком от деления этой комбинации на образующий многочлен, а затем 6) производят циклический сдвиг вправо ровно на столько разрядов, на сколько сдвинута суммируемая с последним остатком комбинация относительно приня- той комбинации. В результате получим исправленную комбинацию. Пример. При передаче комбинаций 1001110 циклического кода, исправляющего одиночные ошибки (ta = 1), полученного с помощью образующего полинома Р (х) = Xs + х -|- 1, произошла ошибка в четвер- том разряде. Принятая комбинация имеет вид 1000110. Процесс исправления ошибки следующий. 1. Делим принятую комбинацию на образующий полином: 10001101 1011 1011 |---- 1111 1011 1000 1011 ' 11. • . 2. Сравниваем вес полученного остатка ш с числом исправляемых ошибок /в = 1, т. е. to > /н. 3. Производим циклический сдвиг принятой комбинации на один разряд влево и деление на Р (х): 4. Повторяем п. 3 а) 0011010 I 1011 | 1100 1011 с 111 1011 I на Р (х): 0001101 I 1011 1011 |------- 110 . до тех пор, пока не будет получено to < ta- б) ‘ 1011 0110100 I 1011 I 1100 1011 ю ' ‘И 1110 ; 1011 101 в) 1101000 I 1011 ЩН |---------- 1100 1011 1110 „ t 1011 1010 1011 1 188
5. Складываем по модулю два последнее делимое с последним остатком: _1101000 W 1 1101001. 6. Производим циклический сдвиг комбинации, полученной в ре- зультате суммирования последней делимого с последним остатком, вправо на четыре разряда (так как перед этим мы четырежды сдвига- ли принятую комбинацию влево): 1110100 0111010 -<• 0011101 -» 1001110.Как видим, последняя комбинация соответствует передан ной, т. е. не содержит ошибки. 4.6. Способы определения количества вариантов В{п, не обнаруживаемых циклическими кодами ошибок Одиночные ошибки в n-элементной кодо- вой комбинации можно представить в виде одночлена Е(х)=х', где степень i может принимать целые поло- жительные значения 0, 1, 2, ... , п— 1. Все возможные варианты одиночных ошибок в n-элементном коде пред- ставим в виде транспонированной единичной матрицы Еп порядка п. При этом крайний правый столбец в данной матрице представляет собой элементы нуле- вой степени х, т. е. х°, которые соответствуют первой позиции (разряда) «-элементного корректирующего кода. Каждый последующий столбец матрицы соответ- ствует кодовому элементу, степень которого на единицу больше элементов предыдущего столбца. Наконец, эле- менты первого столбца слева соответствуют (п — 1) сте- пени х, т. е. n-му разряду этого кода. К матрице ошибок Е* приписывается справа мат- рица остатков от деления одночлена ошибок х* на об- разующий полином Р(х) степени г. Матрица остатков содержит г столбцов и п строк. Матрица остатков, в свою очередь, может быть разбита на две подматрицы. В пер- вую подматрицу должны быть включены г первых строк, представляющих собой остатки от деления одночлена 187
ошибок х', степень которых не превышает число (г— 1), на образующий полином Р (х) степени г. В данном случае сами одночлены х‘ представляют собой остатки от деления, так как степень образующего полинома Р(х), равная г, больше степени г—1, которую может иметь одночлен ошибок, расположенный в г пер- вых строках матрицы. Из совокупности всех таких остат- ков можн» образовать транспонированную единичную матрицу Етг порядка г. Остальные k строк приписанной матрицы остатков образуют вторую подматрицу остатков от деления х( степени i > (п — k) на полином Р (х). Как известно, из этих остатков составлена дополнительная матрица Сг. ь производящей матрицы Gn. k циклического (п, /г)-кода. Составленная таким образом матрица М из трех подматриц отображает все варианты одиночных ошибок и остатки от деления кодовых комбинаций, содер- жащих указанные одиночные ошибки. В общем случае эта матрица имеет следующую структуру [59]: М(2л—*). п = (4.9) псг,к где верхний индекс указывает на кратность ошибок, нижний — на число столбцов и строк матрицы (4.9). В качестве примера рассмотрим построенную указан- ным способом матрицу М’ю, 7 для циклического (7,4)-кода с образующим полиномом Р (х) = х3 + х2 + 1: ^10.7 — х6 *5 X* X3 X2 X1 х° 0 0 0 0 0 0 1 00000 10 0000100 000 1 000 0010000 01 00000 1000 000 0 0 1 0 1 0 1 0 0 1 2 3 4- (4.10) 5 6 7 1 0 1 1 1 1 0 1 1 1 1 0 • 7654 321 е3 е 2 Cj J88
Для наглядности матрица (4.10) в соответствии с мат- рицей (4.9) разделена пунктирными линиями на подматри- цы. Под столбцами матрицы ошибок написаны цифры, ука- зывающие номера позиций кодовой комбинации; столбцы матриц остатков обозначены соответственно ei, ег, ез. Цифры справа указывают номера строк матрицы (4.10). Из структуры матрицы видно, что каждому одночле- ну ошибок х{ соответствует вполне определенная комби- нация из трех переменных elt характеризующая остаток от деления одночленов х1 на образующий полином Р (х). Общее количество таких остатков, исключая нулевой, 2'—1=23—1=7. Таким образом, матрица остатков в рассматриваемом (7,4)-коде содержит все семь возмож- ных комбинаций из трех элементов. Как известно, наличие остатков от деления в цикли- ческом коде свидетельствует об ошибках в принятой кодовой комбинации. В данном случае нас интересуют кратность и количество вариантов необнаруживаемых ошибок. Для решения этой задачи можно воспользо- ваться матрицей (4.10). Действительно, все одиночные ошибки обнаруживаются циклическим (7.4)-кодом. Об этом свидетельствуют ненулевые остатки, записанные в матрице (4.10). Данным кодом обнаруживаются так- же все двойные ошибки. В этом легко убедиться, если произвести поэлементное сложение остатков любых двух строк матрицы (4.10) по модулю два. При сложе- нии любых двух строк левой подматрицы Етп получим соответствующий вариант полинома двукратной ошибки Е(х)=х1 4- х1, при сложении этих же строк в двух правых подматрицах — остаток от деления Е (х) на образующий полином Р(х). Нетрудно убедиться, что - в результате такого сложения во всех случаях получает- ся сумма остатков, не равная нулю. Это свидетельствует о том, что данный код обнаруживает все двукратные ошибки. 189
Возможны два способа определения количества вариантов не обнаруживаемых кодом ошибок с помо- щью матрицы М. Первый способ определения. Ранее был показан спо- соб определения количества двукратных необнаружи- ваемых ошибок. С помощью матрицы (4.10) мо^до . легко определить также количество вариантов трех- кратных и всех более высокой кратности необнаружи- ваемых ошибок. Для этого сложим элементы трех строк матрицы (4.10) по модулю два в различных соче- таниях. Полученная сумма при сложении строк левой транспонированной единичной подматрицы Е’ укажет на ошибочные три разряда кодовой комбинации, сумма трех строк правых подматриц — на наличие или отсут- ствие ошибок. Так, если сумма трех строк правых под- матриц не равна нулю, данный вариант трехкратной ошибки кодом обнаруживается; если сумма равна нулю, ошибка не обнаруживается. При сложении элементов первых трех строк матрицы (4.10) имеем ошибки остатки (левая подматрица) (правая подматрица) 0000001 001 ©0000010 010 0000100 100 0000111 111 где ф—символ суммирования по модулю два. Следовательно, трехкратная ошибка вида Е (х) — х2 + 4-х + 1 0000111, где поражены три первых разряда, рассматриваемым кодом обнаруживается, так как сумма остатков не равна нулю. Если произвести сложение по модулю два элементов других строк, например 1, 2 и 6, получим нулевой оста- ток. Действительно, ошибки остатки 0000001 001 ©0000010 010 0100000 011 0100011 000 190
Таким образом, трехкратная ошибка вида Е (х) =хБ + + х + I = 0100011 данным кодом не обнаруживается. Легко проверить, что данный полином ошибок Е (х) — = 0100011 совпадает с разрешенной кодовой комбинацией. Рассматривая матрицу остатков, нетрудно заметить, что нулевые суммы получатся при сложении одной стро- ки остатка весом ш = 2 с двумя соответствующими стро- ками остатков, имеющих вес <о = 1. Таких вариантов три: (1, 2, 6), (1, 3, 4), (2, 3, 7), где в скобках указаны номера суммируемых строк. Нулевые строки получаются при суммировании элемен- тов двух строк из нижней подматрицы с одной строкой верхней подматрицы: (2, 4, 5), (3, 5, 6), (1, 5, 7). Наконец, один нулевой остаток получается при суммировании трех строк из нижней подматрицы (4, 6, 7). Таким образом, из общего количества 35 тройных ошибок (7, 4)-кодом не обнаруживается Вт =7 вариантов. Аналогичным образом можно найти количество ва- риантов нёобнаруживаемых четырехкратных ошибок, если производить суммирование элементов четырех строк. Нулевые остатки получаются при суммировании следующих строк: (1, 2, 3, 5), (1, 2, 4, 7), (1, 3, 6, 7), (1, 4, 5, 6), (2, 3, 4, 6), (2, 5, 6, 7), (3, 4, 5, 7); всего семь вариантов. Наконец, (7,4)-кодом не обнаружива- ется единственная семикратная ошибка (1, 2, 3, 4, 5, 6, 7), соответствующая искажению всех элементов кодо- вой комбинации. Таким образом, мы нашли все воз- можные варианты необнаруживаемых ошибок цикличе- ским (7,4)-кодом, общее число которых равно 24—1 = = 15. Из примера видно, что отыскание количества вариан- тов t-кратных ошибок сводится к отысканию таких t-строк матрицы (4.10), сумма остатков (проверочных элементов) которых равна нулю. В общем случае для п-элементного кода, обнаруживающего /о-кратные ошибки, необходимо 191
п произвести всего 2 Сп сложений строк матрицы (4.10) в различных сочетаниях от /о+ 1 до п. При нахождении нет необходимости в выражении (4.10) приписывать транспонированную единичную мат- рицу В примере она приводится только для обосно- вания метода и пояснения характера ошибок в «-элемент- ной кодовой комбинации. Второй способ определения. Второй, более простой, способ определения количества вариантов В„ необна- руживаемых ошибок рассмотрим на примере укорочен- ного циклического (10,6)-кода, полученного из (15,11)- кода путем вычеркивания пяти нижних строк и пяти левых столбцов из производящей матрицы Gib.ii- Мат- рица остатков укороченного (10,6)-кода с приписанной сверху единичной подматрицей остатков имеет вид 1 0 0 0 1 2 0 0 10 3 0 10 0 4 10 0 0 5 0 0 11 6 0 110 7 110 0 8 10 11 9 0 10 1 10 10 10 (4.11) Слева обозначены номера строк матрицы. Данным ко- дом обнаруживаются -все однократные и двукратные ошибки, так как проверочные комбинации (шесть нижних строк) имеют вес ш > 2. Необнаруживаемые ошибки определяем согласно сле- дующему правилу. Первый шаг. Выпишем в табл. 32 номера строк матрицы (4.11), при сложении которых получаются ну- 192
левые суммы. В первом столбце таблицы показаны но- мера этих нулевых сумм, в трех последних — номера строк матрицы, при сложении которых получается нуле- вая сумма. Таким образом, рассматриваемый укороченный цик- лический (10,6) -код не обнаруживает девять вариантов трехкратных ошибок из В?о =120 возможных. Второй шаг. Произведем сложение всех возможных комбинаций из двух строк табл. 32. При этом будем пользоваться следующим правилом: если каждый номер строки матрицы (4.11), записанный в последних трех столбцах табл. 32, при сложении участвует четное чис- ло раз, то из результатов суммирования данная строка вычеркивается. Так, при сложении строк (1), (2) имеем (1) 1 2 51 (2) ф 1 3 9) СлаГаеМые (1, 2) 2 3 5 9 сумма. Слева в скобках указаны номера суммируемых строк табл. 32, справа — соответствующие им номера строк исходной матрицы остатков (4.11). Здесь первая стро- ка представлена четное число раз, поэтому она должна быть вычеркнута. .Т а б л и ц а 32 Легко проверить, что при сло- жении четырех строк (2, 3, 5, 9) матрицы (4.11) действительно получается нулевая сумма, что и следовало ожидать, так как при сложении каждой строки дважды получается нулевой полином ошибок. В результате суммирования любых строк табл. 32 получим нулевые суммы четырех или ше- сти строк исходной матрицы (4.11), что свидетельствует о не- № ц/п Номера сум- мируемых строк матрицы остатков (4.11) 1 1 2 5 2 1 3 9 3 1 8 10 4 2 3 6 5 2 4 10 6 34 7 7 4 5 8 8 5 6 9 9 6 7 10 Итого 9 вариантов 7 7-266 193
Таблица 33 Номер сум- мируемых етрок табл. 32 Номер сум мируемых строк матрицы (4.И) (1. 2) 2 3 5 9 (1. 3) 2 5 8 10 (1. 4) 13 5 6 (1. 5) 1 4 5 10 (1. 7) 12 4 8 (1. 8) 12 6 9 (2. 3) 3 8 9 10 (2. 6) 14 7 9 (3. 9) 16 7 8 (4. 5) 3 4 6 10 (4. 6) 2 4 6 7 1 (4. 9) 2 3 7 10 (6. 7) 3 5 7 8 (7. 8) 4 6 8 9 (8. 9) 5 7 9 10 (1. 2, 6. 7) 2 7 8 9 Итого • 16 вариантов Таким образом, обнаружении четырехкратных и шестикратных ошибок. Нулевые суммы запишем соответственно в табл. 33, 35. Произведем аналогии* ное сложение трех любых строк табл. 32, результаты сложения с нулевыми сум- мами запишем соответствен- но в табл. 34, 36, 38. Наконец, выполним сло- жение четырех строк табл. 32, результат сложения с нулевыми суммами запишем в табл. 37. Как видно из таблиц 32—38, укороченный цикли- ческий (10,6)-код имеет все- го 2к—1 = 2е — 1 = 63 ва- рианта необнаруживаемых ошибок. ~ найдены все варианты не- обнаруживаемых ошибок циклическим (10,6)-кодом. Все остальные возможные варианты ошибок в количестве (2”—1) — (2*—1) = = (210— 1) — (2е — 1) = 1023— 63 = 960 этим кодом обнаруживаются. Из рассмотренного примера видно, что второй спо- соб определения количества вариантов необнаруживае- мых ошибок имеет явные преимущества по сравнению с первым способом. Во-первых, при определении вари- антов приходится складывать значительно меньше строк. Так, -при определении количества вариантов шестикратных ошибок по второму способу пришлось складывать только две строки вместо шести. Во-вторых, для нахождения всех ошибок не потребовалось сумми- ровать комбинации из пяти и более строк. Все вариан- 194
Таблица 34 Номер сум мируемых с* рок табл. 32 Номер сум- мируемых строк матриц» (4.11) (1. 2, 5) 3 4 5 9 10 (I. 2, 6) 2 4 5 7 9 (1. 2, 7) 2 3 4 8 9 (1, 3. 4) 3 5 6 8 10 (1, 3, 8) 2 6 8 9 10 (1, 3, 9) 2 5 6 7 8 (1, 4, 6) 1 4 5 6 7 (1. 4. 7) 1 3 4 6 8 (1, 4, 9) 1 3 5 7 10 (1. 5, 8) 1 4 6 9 10 (1. 6, 7) 1 2 3 7 8 (1. 8, 9) 1 2 7 9 10 (2, 3, 6) 4 7 8 9 10 (2. 3, 9) 3 6 7 8 9 (2. 6, 7) 1 5 7 8 9 Итого 15 вариантов Таблица 36 Номер сум- мируемых строк табл. 32 Номер сум- мируемых строк матрицы (4.11) (1. 2, 3) (1. 2, 9) (1. 3, 6) (1. 4, 5) (1. 6, 8) (1, 7. 8) (1, 7. 9) 1 2 3 5 8 9 10 2 3 5 6 7 9 10 2 3 4 5 7 8 10 1 2 3 4 5 6 10 123467 9 1 2 4 5 6 8 9 1 2 4 6 7 8 10 Итого - • 7 вариантов Таблица 35 Номер сум- мируемых строк табл 32 Номер сум- мируемых строк матрицы (4.11) (1,6) 1 2 3 4 5 7 (1. 9) 1 2 5 6 7 10 (2. 5) 1 2 3 4 9 10 (2. 7) 1 3 4 5 8 9 (2, 9) 1 3 6 7 9 10 (3, 4) 1 2 3 6 8 10 (3,Й 1 3 4 7 8 10 (3, 8) 1 5 6 8 9 10 (4. 7) 23456 8 (Ь, 8) 2 4 5 6 9 10 (6, 8) 3 4 5 6 7 9 (7. 9) 4 5 6 7 8 10 Итого 12 вариантов Таблица 37 Номер сум- мируемых строк табл. 32 Номер сум- мируемых строк матрицы (4,11) (1. 2, 3, 6) (1, 2. 3, 9) (1, 2, 7, 9) 1 2 4 5 7 8 9 10 1 23 5 6 7 8 9 234 6 7 8 9 10 Итого 3 варианта Таблица 38 Номер сум- мируемых строк табл. 3? Номер сум мируемых строк матрицы (4 11) (2, 7, 9) 13456789 10 Итого • • • 1 вариант 7* 195
ты необнаруживаемых ошибок были найдены при испы- тании двух, трех и четырех строк табл. 32. В [59] приведены сведения о корректирующих спо- собностях некоторых циклических кодов. 4. 7. Циклические коды с минимальным кодовым расстоянием Простейший циклический код с <2миВ = 2 позволяет обнаруживать одиночные ошибки и ошибки нечетной кратности. Образующий полином этого кода имеет вид х+ 1. Среди неприводимых многочленов, входящих в разложение x"4-l, данный полином является много- членом наименьшей степени (1-й). Таким образом, при любом числе информационных разрядов необходим только один проверочный разряд. Значение символа этого раз- ряда обеспечивает четность числа единиц в любой разре- шенной кодовой комбинации. Полученный циклический код с проверкой на четность способен обнаруживать не только одиночные ошибки в отдельных разрядах, но и ошибки в любом нечетном числе разрядов. Пример. Построить циклический код с dMI1H = 2 для k = 3. По- скольку образующий полином х-|- 1 является полиномом 1-й степени, число проверочных разрядов г = 1. Следовательно, я = й-|-г = 4. Для построения циклического кода строим производящую матрицу £’ = £з = О 0 1 О 1 о 1 о о Для построения дополнительной матрицы Cj 3 находим остатки от деления последней строки единичной.транспонированной матрицы, дополненной г нулями, на выбранный полином; 1000 111 П тп ю и 10 • 11 1 196
Таким образом, дополнительная матрица С, к имеет вид . 1 ci, k~ ^1. з = 1 1 001 I Теперь строим производящую матрицу Gft+1> к — С4_ 3 = 0101 100 1 Строки данной матрицы G4_ 3 являются тремя первыми комбина- циями кода. Остальные из 2к — 1 разрешенных комбинаций могут быть получены суммированием по модулю два всевозможных сочета- ний строк матрицы G4 3. Полученные разрешенные кодовые комби- нации приведены в табл. 39. Таблица 39 Порядковый иомер Кодовая комбинация Способ получения Информационные разряды Проверочные разряды 1 0 0 1 1 2 0 1 0 1 3 1 0 0 1 4 0 1 1 0 1 ®2 5 1 0 1 0 1©3 6 1 1 0 0 2® 3 7 1 1 1 1 - 1©2®3 8 0 0 0 0 Сумма всех семи ком- • бинаций Известный интерес представляет рассмотрение следую- щего простейшего кода с = 2, образованного с по- мощью неприводимого полинома второй степени х2 + + X + 1. Общий вид производящей матрицы циклического кода, образованного . полиномом Р (х) = х2 4- х + 1, G*+2, k = = (El, Cr, отличается структурой дополнительной мат- рицы Cr, k, имеющей два столбца. Легко убедиться, что при делении на данный обра- зующий многочлен одночленов, выражающих строки 197
единичной матрицы (для нахождения дополнительной матрицы Сг, к), образуется, три вида остатков: 11, 01 и 10. Следовательно, вес каждой комбинации получен- ного (k + 2, k) -кода будет не менее двух. Минимальное кодовое расстояние между двумя любыми комбинация- ми также равно двум. Но такими же величинами харак- теризуется и простейший код с одной проверкой на чет- ность, образованный двучленом первой степени (% + 1). Однако корректирующая способность обоих кодов не- одинакова. Рассматриваемый код имеет большую избы- точность и позволяет обнаруживать не только любые ошибки нечетной кратности, но и любые парные смеж- ные ошибки, а также все ошибки, разделенные одним неискаженным элементом [122]. 4.8. Циклические коды Хэмминга Циклические коды с минимальным ко- довым расстоянием dMluI=3 являются разновидностью кодов Хэмминга. Эти коды способны исправлять оди- ночные ошибки или обнаруживать все одиночные и двойные ошибки. В отличие от групповых кодов Хэм- минга в циклических кодах проверочные разряды разме- щаются в конце кодовой комбинации. Длина кодовой комбинации выбирается из условия п=2г—1. Образую- щим полиномом может быть любой неприводимый по- лином степени г. Неприводимые полиномы до девятой степени включительно представлены в приложении 2. Сведения о неприводимых полиномах более высоких степеней приведены в работе [93]. Разновидностью кодов Хэмминга являются также циклические коды с dMHH = 4, которые строятся на ос- нове образующих полиномов для кодов dMHB = 3. Цикли- ческие коды Хэмминга с dMIiB = 4 обладают большей кор- ректирующей способностью по сравнению с такими же кодами, но с dMBI1 = 3 и способны обнаруживать ошибки кратности to = 3 и менее. 198
Образующий полином циклического кода с dMHH= 4 есть произведение двучлена х 4- 1 на неприводимый по- лином, который пригоден как образующий для кода с с/мин — 3. Длина кодовой комбинации выбирается из условия п = 2т—1; число проверочных разрядов г = ' = m-f-l. Так, при п — 1 образующий полином имеет вид (х + Г) (х3 + х + 1) = х4 + л? + л? + 1. С помощью этого полинома можно образовать код длиной n-f-l=8 с числом проверочных разрядов г = т+1 =4. В табл. 40 приведены параметры кодов Хэмминга до п=512. В общем случае многочлены кодов, способных ис- правлять одиночные, двойные, тройные и т. д. ошибки, можно определить, базируясь на следующем указании Хэмминга. 1. По заданному k определяем число проверочных разрядов п—k, необходимое для исправления одной ошибки, и строим (и, Л)-код. 2. Рассматривая (п, 6)-код как некорректирующий n-разрядный код, определяем И] — п дополнительных разрядов для обеспечения исправления одной ошибки в этом коде и строим код (пь и). 1 3. Повторяя данную процедуру t раз, можно полу- / чить код, исправляющий независимые ошибки кратно- [ сти до t включительно. Однако код, построенный таким образом, оказыва- ется неоптимальным с точки зрения числа проверочных символов при заданном k. В этом отношении более совершенен код Боуза — Чоудхури — Хоквингема, кото- ( рый обеспечивает минимальное число проверочных сим- волов при заданном k. 199
Образующие полиномы /Чт®) (см, приложение 2) Pi tf) Pi С*3) (х+1) + д + д g£ <е <о g£ си^ gg а?£ 1 SS «££ gg а< gg (Г'Г' *g fe еэ Н cug Ос1 оГ- гг-о? Д . Си д д^ US —У Да, о? - еч^ си /гС,^'“'г~'4 X оК Й Й сСоГ ££ ° S си», gg га га а. а. £$ СО Ф а, а. gg а,^ gg g<7 а з Ла'1+ о-Х 5^д gs^g^? ^Д^дЛ <3^ S3 ^сй3^0- J&gcCbg Jgg^gg <gg°?gg т ^gg^gg со”4м s ««< «си - * ^Ъ-cgg g/зx/s -^а. а, д^си си Л(^) Pt (**) ssi с£х ^ggggg ' со Ю п О 1ft ^WSaV О? см о г- о UO U0 оо 0,734 0,687 О со оЗ оо о o'4 0,905 0,890 ю оо со о о о о ою г-о о о оо 3 S OJ о о о оо о см о U0 о о СОСО СО *-< см со оо СО ОО оо ио о о — О —' оо ю см £8 о со 0,030 0,035 0,017 0,019 L со x^UO Ш СО СО Ь- Г-00 ООО о о С г- оо ио со —< см со со со м< СО О' Ь-00 см см •—< •—< ЮСО ю ю см см см ио ио * ’’Г.* — 26 57 120 247 502 200
4.9. Коды Боуза — Чоудхури — Хоквингема (БЧХ) Данные коды являются разновидностью циклических кодов. Рассмотрим один из способов нахождения образую- щего полинома для кодов БЧХ. Он определяется по за- данному кодовому расстоянию и длине кодовой комби- нации. Длину кодовой комбинации кодов БЧХ находим из выражения [86] n = 2m—1, (4.12) где т — любое целое число. Таким образом, величина п может быть равна 3, 7, 15, 31, 63, 127, 255, 511, 1023 разрядам и т. д. Количество проверочных разрядов кода г<-?-У) • (4лз) Следовательно, число информационных разрядов /г>(2т — 1) — (4.14) Параметры кодов БЧХ (до п=255), вычисленные по формулам (4.12) — (4.14), приведены в табл. 41 с ука- занием кодового расстояния и числа информационных символов. Образующий полином кода Боуза — Чоудхури — Хок- вингема является наименьшим общим кратным (НОК) так называемых минимальных полиномов пц (х), где i = = 1, 3, 5, .... d — 2—порядок полинома Р (х) = = НОК {/щ (х) /Пз (х) ... tnd-2 (х)}. Вычисленные значения минимальных полиномов для степени т = 2-т-10 приведены в табл. 42 [86]. Значения т((х) даны в таблице в восьмеричной системе счисления. Так, полином 19-го порядка для степени т — 10, записанный в таблице числом 2773, представ- ляет следующую двоичную последовательность: 201
Таблица 41 п А Г а k/n 7 4 3 3 0,57 15 11 4 3 0,73 15 7 8 5 0,47 15 5 10 7 0,33 31 26 5 3 0,84 31 21 10 5 0,68 31 16 15 7 0,52 31 11 20 11 0,35 31 6 25 15 0,19 63 57 6 3 0,9 63 51 12 5 0,81 63 45 18 7 0,72 63 39 24 9 0,62 63 36 27 11 0,57 63 30 33 13 0,48 63 24 39 15 0,37 63 18 45 21 0,29 63 16 47 23. 0,25 63 10 53 27 0,16 63 7 56 31 0,11 127 120 7 3 0.95 127 113 14 5 0,89 127 106 21 7 0,84 127 99 28 9 0,78 127 92 35 11 0,72 127 85 42 13 0,67 127 78 49 15 0,61 127 71 56 19 0,56 127 64 63 21 0,50 - 127 57 70 23 0,45 127 50 77 27 0,39 127 43 84 29 0,34 127 36 91 31 0,28 127 29 98 43 0,23 127 22 105 47 0,17 127 15 112 55 0,12 127 8 119 63 0,06 255 247 8 3 0,97 255 239 16 . 5 0,94 202
Продолжение табл. 41 п k Г d kfn 255 231 24 7 0,91 255 223 32 9 0,87 • 255 215 40 11 0,84 255 * 207 48 13 0,81 255 199 56 15 0,78 255 191 64 17 0,75 255 187 68 19 0,73 - 255 179 76 21 0,70 255 171 84 23 0,67 255 163 92 25 0.64 255 155 100 27 0,61 255 147 108 29 0,58 255 139 Н6 31 0,55 255 131 124 37 0,51 255 123 132 39 0,48 255 115 140 43 0,45 255 107 148 45 0,42 255 99 156 47 0,39 255 91 164 51 0,38 255 87 168 53 0,34 255 79 176 55 0,31 255 71 184 59 0,28 255 63 192 61 0,25 255 55 200 63 0,22 255 47 208 85 0,18 255 45 210 87 0,18 255 37 218 91 0,15 255 29 226 95 0,11 255 21 234 111 0,08 255 13 242 119 0,05 255 9 246 127 0,04 2 7 7 3 010 11] 111 ОН ’ а многочлен этого полинома записывается как х10 + х8+ 4-x74-x6-j-x5 4-x4 + x3 4-x+l,B работе [93] приведена таблица до т ~ 16. 203
Для нахождения образующего полинома кода дли- ной п ~ 2т—1 разрядов с кодовым расстоянием d не- Таблица 42 Поря- Минимальные полиномы при величине степени т ДОК поли- нома i • 2 3 4 Б 6 7 9 10 1 7 13 23 45 103 211 435 1021 2011 3 — — 37 75 127 217 567 1131 2017 5 — — 07 67 147 235 763 1461 2415 7 — —— у 111 367 551 1231 3771 9 — — —— 015 277 675 1423 2257 11 — * ' 155 325 747 1055 2065 13 —. — -— — — 203 453 1167 2157 15 — — —— а™ - — — 727 1541 2653 17 — —— — Г* ' -— — 023 1333 3515 19 — — —. *— 313 545 1605 2773 21 — — — 007 345 613 1027 3753 23 — 1 1 — -—. — —— — 543 1751 2033 25 •— .— — — 433 1743 2443 27 — — — — —— — 477 1617 3573 29 •— — — — — .— 1553 2461 31 — — у—- — —- 3043 33 — — — —— —-- „ 0075 35 — — — — — — .— 1401 3023 37 •— — ,— — —— — 537 1157 3543 39 •— •— - —— .— —— 1715 2107 41 — — — — — — 1563 2745 43 — у— .— — 703 1713 2431 45 — — — — .— — 471 1175 3061 47 —- —— — — л 1 3177 49 3525 51 — — ,— — — —- 037 1725 2545 53 — — — — — —- — 1225 2617 55 >— — — — .— — 1275 3453 57 3121 обходимо выписать из таблицы все значения минималь- ных м полиномов, соответствующие заданному т, цо по-
рядка d — 2 включительно. Если данный порядок в таблице отсутствует, следует взять ближайший меньший. Пример. Пусть необходимо построить код длиной п = 15 (т = 4) с d = 7. Следоватедьно, образующий полином Р (х) = т^х) т8(х)т8(х). По табл. 41Л1аходим минимальные полиномы: mi (х) = 23 или 10011 =? + *+ 1"; т8 (х) = 37 или 11111 *®4-х2 + х 4- 1; ms(x) = 07 или 111~ ха + к 4- 1. Умножив полученные минимальные полиномы, определим обра- зующий полином заданного кода БЧХ: Р (х) — 10100110111. Путем построения производящей матрицы можно убедиться в том, что полученный код действительно имеет кодовое расстояние, равное семи. Коды БЧХ обладают нечетными значениями мини- мального кодового'расстояния dKm. При желании кодо- вое расстояние можно увеличить на единицу, применив образующий полином, равный произведению образую- щего полинома кода БЧХ на двучлен (х 4- 1). Так, в рассмотренном коде с d=7 минимальное кодовое рас- стояние можно повысить до восьми, если использовать образующий полином Р (х) = (х 4 1) (х1® 4- Xе 4- X» 4- х* 4- х® 4- X 4-1); Р (х) = X» 4- х1® 4- х® 4- Xs 4- х® 4- х* 4- х8 4-1. т. е. Р (1,0) = 111101011001. Такой способ увеличения минимального кодового расстояния применим к любым систематическим кодам с нечетным минимальным кодовым расстоянием. Для этого в циклических кодах изменяется образующий полинОм, а в других систематических кодах вводится дополнительная проверка на четность, охватывающая все информационные разряды. При рассмотрении кодов БЧХ - отметим следующие закономерности. Число кодов, различающихся по своей корректирующей способности и имеющих общую длину кодовой комбинации п = 2т — 1, на две единицы меньше числа всех неприводимых многочленов, на которые раз- 205
лагается двучлен x3'n~I -f- 1. Например, определим коли- чество циклических кодов для п — 15. Так как полу- ненный многочлен х1Б + 1 не является простейшим, то т = 4 есть старшая степень неприводимого многочлена, на который раскладывается двучлен х1Б+1. Теперь из приложения 2 необходимо выписать все неприводимые многочлены степени 4 и неприводимые многочлены тех степеней, показатели которых являют- ся делителями числа 4, т. е. 1 и 2. Таким образом, степень двучлена х1Б + I складывается из сумм степе- ней всех неприводимых многочленов, число которых равно единице— для первой степени, единице — для второй степени и трем — для четвертой степени. Вы- писав все эти многочлены, найдем разложение двучлена х1Б+ 1 ==(х + 1)(х2 + х+ l)(x4 + x-f- 1)(х4+х3 + 1) X X (X4 .+ х3 + X2 + X + 1). Как видно из разложения, количество неприводимых многочленов равно пяти, а следовательно, число цик- лических кодов для п=15 равно трем, что подтверж- дается табл. 41. Следующим важным свойством кода БЧХ является соотношение между максимальным кодовым расстоя- нием и числом т: Ймако=2'"-‘-1. (4.15) Для предыдущего примера при п = 15 (т = 4) dMaK0 = = 24-1—1 = 7, что действительно подтверждается табл. 41. Кроме того, следует заметить, что число информацион- ных разрядов, которое может быть использовано при заданном числе т и при максимальном кодовом рас- стоянии, выражается как (m-j-l). В приводимом нами примере для dMaK0 = 7 k = 5. 206
4.10. Код Файра Наиболее известным циклическим ко- дом, исправляющим одиночные пачки ошибок, является двоичный код Файра, причем для этого требуется не- большое число проверочных символов. Образующий полином данного кода [93] P(x)=q(x) (х° + 1), где q(x)—неприводимый многочлен степени t, принадле- жащий степени т\ с — простое число, которое не делит- ся на т без остатка. Многочлен q(x) принадлежит некоторой степени т, если т — наименьшее положительное число такое, что двучлен х™ + 1 делится на q(x) без остатка. Для любо- го t существует, по крайней мере, один неприводимый многочлен ?(х) степени t, принадлежащий показателю степени m = 2‘ —1. (4.16) Например, если q(x) =№ 4- х2 + 1 (/ = 3), то т — 2' — — 1 = 7 и число е может принимать значения, которые не делятся на семь, т. е. 15, 16, 17, 18, 19, 20, 22, 23 И Т. д. Длина кода Файра равна наименьшему общему крат- ному чисел с и т, т. е. п = НОК(е, т). (4.17) Число проверочных символов r=^c + t. (4.18) Число информационных символов k — п—с — L (4.19) Можно получить код меньшей длины с тем же чис- лом проверочных символов, если пользоваться методом получения укороченных циклических кодов, рассмотрен- ным с § 4.3. При использовании кодов Файра можно исправить любую одиночную пачку ошибок длины Ь или меньше и одновременно обнаружить любую пачку 207
ошибок длины I > Ь или меньше, если [93] с > b + + I — 1 и t>b. Если применять эти коды только для обнаружения ошибок, можно обнаружить любую комбинацию из двух пачек ошибок, длина наименьшей из которых не пре- восходит t, а сумма длин обеих пачек не превосходит с +1, а также любую одиночную пачку ошибок с дли- ной, не превосходящей числа проверочных символов г — с +1. Пример. Код Файра порождается полиномом Р (х) = (х* + х + + 1) (х7 + 1) = *ц + х® + хч + х* + х + 1. Определить параметры кода. Так как / = 4, с =7, то, используя формулы (4.16)' — (4.19), по- лучаем m = 2« — 1 = 15; и = НОК (7,15) = 7 - 15= 105; г=4+7= = 11; k= 105 — 11 =94. Этот код может быть использован, например, для исправления пачки ошибок длины Ь=4 или меньше и обнаружения любой пачки ошибок длины I < 4 или для исправления пачек ошибок длины b = 2 или меньше и обнаружения пачек ошибок длины I < 6. Если использовать этот код исключительно для обнаружения ошибок, можно обнаружить любую одиночную пачку ошибок длины < (4+7) и любую комбинацию из двух пачек ошибок, длина наименьшей из которых не превосходит t = 4, а сумма длин не превосходит с + 1 = 8. 4.11. Коды Абрамсона В предыдущем параграфе было отмечено, что коды Файра образуют наиболее известный класс кодов, исправляющих пачки ошибок. Эти коды пригодны для целой области длин пачек ошибок и длин самих кодов. Известны коды, требующие меньшее число про- верочных символов, чем коды Файра. К ним относятся коды Абрамсона. Длина кодовой комбинации кодов Аб- рамсона п = 2Л — 1, где h — степень неприводимого много- члена Pi (х). Образующий полином Р(х) = (1 + х)Р!(х). Число ин- формационных символов k = 2h — h — 2. 208
Эти выражения справедливы для минимального кодо- вого расстояния <2мин = 4, что позволяет корректировать все одиночные и все смежные двойные ошибки. Кроме того, Абрамсоном [140, 149] был найден класс кодов, позволяющих исправлять пачки ошибок длиной b = 3 и менее (одиночные, двойные смежные и тройные смежные). В этом случае, если длина кода п — наиболь- шее целое число, удовлетворяющее неравенству [93] 2n~k > 1 + 4п, то образующий полином представляется в виде произведения двух многочленов [140, 149]: Р (х) = = (1 + х + х2) Р2 (х), где Рз(х)'—неприводимый многочлен четной степени, превышающей два (четыре, шесть, восемь и т. д.). В работе [93] приведены образующие полиномы кодов Абрамсона, исправляющие три соседние ошибки и обла- дающие минимальной избыточностью: (х2 + х+1)(х4 + х+1); (х2 + х+ 1)(х® 4-х+ 1) (х2 + х + 1) (х6 + х5 + х2 + х + 1); (х2 + х + 1) (х8 + х7 +• 4- х2 + х'+ 1); (х2 + х + 1) (х8 + х5 + х3 + х + 1). В работе [154] показано, что при выполнении опре- деленных условий образующий полином вида Р (х) = = Pi (х) Р2(х), гДе (х) и Р2(х)— неприводимые много- члены, порождает циклические коды, исправляющие пачки ошибок. Число проверочных символов этих кодов r = mi+m2, где mi — степень многочлена Pi (х); — степень многочлена Р2(х). Такие коды получили название кодов Миласа— Абрамсона. 4.12. Коды Рида — Соломона При некоторых условиях циклические коды Рида—Соломона (PC) являются частным случаем кодов БЧХ [93]. Коды PC обладают огромной корректи- рующей способностью и позволяют исправлять несколько пачек ошибок [14]. 8 7-256 , 209
Предположим, что задан корректирующий код о основанием т > 2, в комбинациях которого можно ис- правлять ошибки кратности tB. Допустим, что каждому символу этого кода поставлена во взаимно-однрзначное соответствие некоторая позначная двоичная комбинация. Тогда полученный таким образом двоичный код может исправлять пачки ошибок длиной b = п, (1И—1)4-1 и менее [18). Код с указанными свойствами образуется в том случае, если основание т = 2а, длина п₽о(2“ — — 1) и образующий полином Р (х) = (х — <ц) (х — а2) ... (х — (4.20) где а — примитивный элемент поля GF(2a) (93). Коды указанного типа носят название кодов Рида — Соломона [106]. Из (4.20) степень многочлена Р (х) рав- на d — 1. В результате получается код длины п с d—1 проверочными разрядами и минимальным расстоянием d. То обстоятельство, что коды PC при любой задан- ной скорости имеют наибольшее возможное минималь- ное расстояние, делает их привлекательными с точки зрения практического использования. В то же время структура этих кодов допускает относительно простую техническую реализацию, поэтому практическое приме- нение не только желательно, но и возможно [128]. 4.13. Компаундные коды Многие системы передачи и хранения информации могут подвергаться возмущениям, вызы- вающим одновременно пакетные и независимые иска- жения. Для борьбы с такого рода' помехами коды, ис- правляющие только пакеты ошибок или только незави- симые ошибки, являются малоэффективными. Один из подходов к решению этой проблемы — использование ко- дов, исправляющих как независимые ошибки, так и па- кеты ошибок. Такие циклические и укороченные цикли- 210
ческие коды получили название компаундных кодов. Они получены путем умножения образующего полинома ко- да Файра на образующий многочлен кода БЧХ [104]. В справочной литературе компаундные коды обычно обозначаются ФхБЧХ. Исправляющая способ- ность компаундных кодов колеблется в очень больших пределах 7и=5-=-21 и Ь= =3 -т-20. В табл. 43 приве- дено несколько компаунд- ных кодов со значительной кодовой длиной и высокой исправляющей способностью для независимых ошибок. Из приведенных кодов коды (381, 325), (1023, 902), (1023, 872) укороченные циклические, остальные — цик лические. Среди компаундных кодов немало таких, которые по параметрам п, k, d совпадают с кодами БЧХ. К их чис- лу относится большинство из кодов с длиной, равной или меньшей п=255. Сравнение компаундных кодов с кодами, исправляю- щими только пакеты оши- бок, показало, что компаунд- ные имеют большее количе- ство проверочных разрядов, причем эта разница тем больше, чем больше способ- ность компаундных кодов исправлять независимые ошибки. Если учесть, что Таблица 43 Л k а ь 73 55 5 6 127 106 7 5 341 301 9 16 381 325 9 25 341 291 11 23 381 311 13 30 341 286 13 24 381 297 15 40 1023 902 17 56 1023 888 19 64 1023 872 21 72 приведенных в литературе Таблица 44 Л k d ь 73 46 9 127 92 11 151 91 11 28 151 106 7 20 151 121 5 12 381 297 15 40 381 311 13 30 381 325 И 25 8* 211
для коррекции независимых ошибок кодам, исправляю- щим пакеты ошибок, необходима дополнительная избы- точность, компаундные коды, которые обладают боль- шой исправляющей способностью как для независимых ошибок, так и для пакетов ошибок, можно считать оп- тимальными. Сложность декодирующего устройства компаундных кодов того же порядка, что и декодирующих устройств кодов БЧХ, ввиду чего многие из полученных кодов можно использовать в реальных системах кодирования. В табл. 44 приведены оптимальные компаундные коды, исправляющие независимые ошибки [104]. Под оптимальными кодами, корректирующими неза- висимые ошибки, здесь понимаются коды, у которых скорость передачи не меньше скоростй~передачи любых других известных кодов с той же длиной кодовой ком- бинации и корректирующей способностью. 4.14. Мажоритарные циклические коды Под мажоритарными циклическими ко- дами принято понимать такие циклические коды, ко- торые позволяют при декодировании использовать прин- цип решения по большинству (мажоритарный принцип). Этот принцип часто позволяет найти йростое решение задачи исправления многократных ошибок. Такое деко- дирование основано на возможности для некоторых цик- лических кодов выразить значение какого-либо одного символа несколькими независимыми способами в виде линейной комбинации других символов. Независимость способов понимается в том смысле, что никакие два выражения не зависят от одних и тех же символов. Для правильного декодирования символа достаточно иметь 1 независимых выражений (f— количество исправ- ляемых ошибок), определяющих данный символ через все остальные, а решение о том, каков был определяю- 212
щий символ до передачи, принимать по большинству зна- чений, даваемых каждым отдельным выражением. Параметры некоторых из известных М (n, k) -кодов при малых значениях длины кодовой комбинации сов- падают с параметрами кодов БЧХ. С ростом длины кодовой комбинации скорость передачи М (п, /г)-кодов становится меньше, чем скорость передачи кодов БЧХ, причем эта разница тем значительней, чем больше длина кодовой комбинации. Однако аппаратурная реализация М (n, k)-кодов предпочтительна по сравнению с кодами БЧХ. К их достоинствам следует отнести и то, что они способны исправлять не только ошибки кратности /и, но и некоторые сочетания более высокой кратности. • Рассмотрим алгебраические особенности циклических кодов [130]. Пусть Н — проверочная матрица цикличе- ского (п, /г)-кода. Все возможные линейные комбинации строк матрицы Н задают совокупность проверочных соотношений (уравнений) для рассматриваемого кода. Выберем т проверочных соотношений, содержащих на первой слева позиции единицу: (Л/, о. Л<, ь •••> hi, п-0, i = l, 2, ..., т, где Л/,о=1. Пусть S = (so, Si, S2, ..., sn—i) — кодовое слово. Тогда должны выполняться следу- ющие т контрольных соотношения: sohi,o + s\ht,i+ ... п—«I 4- Sn-iht, n-i — 2 si^‘i 0 п0 модулю два, i = 1, 2,..., tn. Так как /11,0=1,.эти уравнения можно решить от- п—1 носительно символа $о: = у, Sjhijt ж = 1, 2, ..., tn. i—i К данной системе уравнений можно добавить три- виальное уравнение SoO)=So- Таким образом, получено (т +1) уравнений для декодирования символа So. Из определения циклического кода следует, что рассмот- ренные соотношения также декодируют все остальные символы. Следовательно, в общем случае sL0) = s„ а = 0» 1, п— I; 213
'£si+Jii,h 1 = 1, 2, (4.21) . tn, где индексы при s суммируются по модулю п. Пусть каждый столбец, исключая первый слева мат- рицы Но, в качестве вектор-строк которой выбраны упомянутые т векторов, содержит не более X единиц. Тогда алгоритм мажоритарного декодирования, основан- ный на решении (m-j-l) уравнений системы (4.21), по- зволяет исправлять любые t или менее ошибок, где t = [т/2Х]. Квадратными скобками обозначена операция округления до ближайшего меньшего целого числа. Число X называют показателем связности системы конт- рольных соотношений. Если Х = 1, то говорят о системе разделенных контрольных соотношений. Пример. Полином Р (х) = № -J- х2 4- 1 образует циклический (7, 4)-код Хэмминга. Необходимо получить уравнения, определяющие значения декодируемых символов. Рассмотрим систему Х-связанных контрольных соотношений для данного кода. Проверочная матрица кода, построенная известным способом: 1110 10 0 0 1110 10 110 10 0 1 Л. Л2 ha Н = Из данной матрицы получим матрицу Яо, вектор-строки которой задают контрольные соотношения с показателем связности X = 2- hi hi 4- ha h3 ha 4- h3 Яо = 11 10 10 0 10 01110 1 10 10 0 1 1010011 Таким образом, в данном случае получаем пять уравнений, опре- деляющих значение декодируемого символа s0: 4“’ — s0’ И)" = S1 Ф ®2 Ф ®4 ’ = S3 ® S4 ф Sg> S<3> = Sj ф Sj ф Sgj SjJ1 = Sj ф Sg ф Sg. 214
При этом любая одиночная ошибка нарушит ее более двух уравне- ний и безошибочное значение символа s0 определяется с помощью мажоритарного элемента на пять входов. Остальные символы декоди- руем аналогично: s<0) = Si; sP> = s1+£+s2+f4-s4+(; sjf» = s3+(+ s4+i.+ s5+i:' sj3) = s j+f + s3+£ + s6+i; s<4) = s2+i + sB+/ + s6+j, где индексы суммируются по модулю п = 7. Для количественной оценки корректирующей способ- ности кода, реализуемой в конкретной схеме мажори- тарного декодирования, вводится понятие реализуемого кодового расстояния 8. При этом имеет место очевидное неравенство [157] 8 < d, где d — минимальное расстояние. Дальнейшим обобщением понятия X-связанных конт- рольных соотношений является понятие квазиразделен- ных соотношений. Система контрольных соотношений называется квазиразделенной, если в каждое соотноше- ние входит одно и то же подмножество символов s/t, S],, .. ., siN и любой символ st, i #=/,(> = 1, 2, ..., N) входит не более чем в одну проверку. Из этого опреде- ления следует, что система из -у квазиразделейных конт- рольных соотношений позволяет вычислить сумму $/, 4- + $/, + ••• 4-8/л(т+ 0 независимыми способами (вклю- чая тривиальное соотношение). Например, контрольные соотношения s0 + si + So + Ss = 0, «о + «i + «4 + «6 = О являются квазиразделенными и позволяют двумя неза- висимыми способами вычислить сумму so + sp Учитывая тривиальное соотношение s6 + «i = $о + Si, получаем три независимых соотношения: So Ч- Si = So Ч- Sjj So Ч" «1 = Sz 4- so 4- si — s< Ч* Мажоритарное декодирование циклических кодов с квазиразделенными контрольными соотношениями суще- ственно отличается от декодирования кодов с Х-связан- ными соотношениями. В последнем случае на выходе 215
мажоритарного элемента появляется переданная после- довательность символов (s0, Si. ..sn-i). При квази- разделенных соотношениях на выходе мажоритарного элемента получаем последовательность (со, С\, ..., cn-i), где Ci = Sjt^i + S/,^.1 + ... + SjN+i, i' = 0, 1, ..., n — I (4.22) (суммирование индексов производится по модулю п). Поэтому возникает задача вычисления переданной по- следовательности (so, «в s2, .... s„_i). В общем случае она решается с помощью последовательного разделения системы кв аз иразд елейных соотношений. На первом шаге вычисляем сумму (4.22), причем можно считать, что значения с0, Ci, ..., cn—i вычисляем точно. Второй шаг разделения заключается в образовании новых соот- ношений с использованием со, Ci, .... cn—i и т. д. до тех пор, пока полученные соотношения не окажутся разделенными или Х-связанными относительно некото- рого символа кодового слова. Пример. Дай циклический (15, 11)-код с J = 3, для которого справедлива следующая система квазиразделенных соотношений; «о 4* 4* Sj -J- s7 + $з + s6 + Sg -f- = 0; So 4" sf + + s7 4- s( 4“ s. 4“ sxo + ®i4 = 0. (4-23) Необходимо произвести разделение системы квазиразделенных соотношений для построения схемы декодирования. Из системы (4.23) получаем уравнения 41>== s0+f 4- «1+(- 4* «г-н 4- Sy+f; cj2) = s3+14- s^ 4- s8+i 4- s, 1+z; 43> = s4+z + s6+z + sio+z + SU+Z’ позволяющие достоверно вычислить c0, q, ..., Cf4, если количество ошибок не превышает корректирующей способности кода. Можно видеть, что справедливы следующие соотношения: с0 = So4- si + sa + 4- s7; ci = Sj 4- s7 4- sfi 4- s0; ca = s6 + s, 4- s10 4- s13, позволяющие получить систему разделенных относительно символа s0 контрольных соотношений: so = so • = со 4* si 4“ s2 4“ s7; 6q3* = Cj 4- c2 4- sio 4" Sfi 4- sis- В табл. 45 [130] приведены параметры некоторых циклических кодов, допускающих мажоритарное декодирование. В заключение необходимо отметить, что кроме некоторых кодов БЧХ, мажоритарное декодирование допускают коды Хэмминга с d = 3. 216
Таблица 45 (л, *)-код г Образующий полином Система контрольная соотношений (номера символов, входящих в соотношения) (7. 4) 3 1 + х*Ч-* 8 0 12 4 0 13 6 (31, 15) 6 1+х*+хб+ +хв+х7+, ч-^ч-^ч- 4-х« 01 2 5 И 18 19 03 9 16 17 29 30 0 4 10 12 15 23 24 ’ 0 6 13 14 26 27 28 07 8 20 21 22 25 (63, 41) 8 1+х24-х*+ Ч-**Ч-*7Ч- +х*8+х“Ч- -f-xi74-xi84- 4-х1<Ч-ха+ +Х23 0 1 2 6 7 12 26 3 8 13 18 27 32 35 48 0 1 2 6 7 12 26 4 14 16 24 33 36 52 54 0 1 2 6 7 12 26 5 11 17 25 31 34 47 62 0 1 2 6 7 12 26 9 19 28 38 41 45 49 56 0 1 2 6 7 12 26 10 22 30 39 43 46 50 61 0 1 2 6 7 12 26 15 23 37 40 44 51 53 55 0 1 2 6 7 12 26 20 21 29 42 57 58 59 60 (63, 37) 9 +х2Ч-х<Ч -Х10+х12- -Х18+*М- -х184-хи- +xa4-jr2e н F Н 0 1 4 16 21 23 29 53 0 2 8 32 42 43 46 58 0 3 15 20 22 28 52 62 0 5 7 13 37 47 48 51 0 6 30 40 41 44 56 61 0 10 11 14 26 31 33 39 0 12 17 19 25 49 59 60 0 24 34 35 38 50 55 57 (73, 45) 10 1+х84-хв-1 4-х*4-хы- -хиЧ-хм- -x15-f-xle- -xle+xs(’- _Л23+д-М. -x“+x«- Ч-Х28 0 1 3 7 15 31 36 54 63 0 2 6 14 30 35 53 62 72 0 4 12 28 33 51 60 70 71 0 5 23 32 42 43 45 49 57 0 8 24 29 47 56 66 67 69 0 9 19 20 22 26 34 50 55 0 10 11 13 17 25 41 46 64 0 16 21 39 48 58 59 61 65 0 18 27 37 38 40 44 52 68 217
Глава 5 ОЦЕНКА И ВЫБОР КОДОВ У 5.1. Вероятность ошибки при передаче информации избыточными кодами по каналам с независимыми ошибками При проектировании систем передачи информации оценка достоверности обмена информацией определяется допустимой вероятностью искажения сооб- щений Рош. При этом указывается вероятность искаже- ния двоичного символа передаваемого сообщения рэ. Если в случае действия независимых ошибок в ка- нале связи рэ — вероятность искажения двоичного сим- вола, то (1—рэ) — вероятность отсутствия искажения. Тогда для двоичной последовательности, содержащей п символов [27, 28]: а) вероятность правильно принятой последователь- ности Рпр = (1-Рэ)п; (5.1) б) вероятность ошибки в принятой последователь- ности Л>ш = 1—(1—Рэ)'’- (5.2) Эту формулу можно записать в следующем виде: Рош = С'прэ — СпР2а + С3прэ — ... ± C'pL (5.3) где С1п = Г|ейJZ7jr Для р9<1 Рош^пра. (5.4) Использование избыточных кодов позволяет исправ- лять или обнаруживать в зависимости от кодового рас- стояния ту или иную кратность ошибок. Поэтому для оценки эффективности кодов необходимо знать вероят- 218
ность появления в кодовой комбинации ошибок любой кратности. При независимых ошибках вероятность i-кратных ошибок (5.5) где i = 1, 2, 3 и т. д. — кратность ошибок. Для кодов, исправляющих ошибки кратности до t, вероятность исправления Р яап ~ Рошг ИЛИ Риап — 2 (^прз (1—рз) • (5.6) Прием кодовых слов, исправляющих ошибки, в общем случае может сопровождаться следующими ситуациями. 1. Кодовое слово принято без ошибок (правильно) (вероятность этого события Рпр). 2. Кодовое слово принято с ошибкой (вероятность Рош). Очевидно, что Рош 4~ Рпр ~ 1 • (5.7) 3. Кодовое слово принято с ошибкой, которая ис- правляется с вероятностью РИоп. 4. Кодовое слово принято с ошибкой, которая ие исправляется данным кодом. Вероятность этого собы- тия Рв. о- Отсюда Рош РИСП “Ь Ря. о- (5.8) Из (5.8) следует, что вероятность появления неисправ- ляемых ошибок Р В. О е РОШ РИОН- (5.9) Используя выражения (5.2), (5.6), получаем ' Р«_о~1-(1-р.)п-2 С'р1(1-р.)п-‘. (5.10) i—1 Эта формула позволяет вычислить вероятность неис- правляемой ошибки при передаче информации о помо- щью кода, исправляющего (-кратные ошибки. 219
Для кодов, обнаруживающих ошибки, характерны следующие ситуации: 1. Кодовое слово принято без ошибок с вероятно- стью Р пр • 2. Кодовое слово принято с ошибкой, которая обна- руживается. Вероятность такого события Ро,о. 3. Кодовое слово принято с ошибкой, которая с ве- роятностью Ри_ о не обнаруживается. При этом Рош = — Ро. о + ₽а. о- Поскольку искаженные комбинации, ко- торые обнаруживаются приемным устройством, потреби- телю не выдаются, то вероятность получения ошибочных комбинаций потребителем оценивается только как Ри.о. При использовании кода, обнаруживающего ошибки, вероятность такого события [32, 57, 59, 60] п Рн.о = 2 №(<»)Рэ(1-Рэ)'’_', (5.11) i*=d где 1Г(<й) — весовая характеристика кода (число слов кода веса ы или, иначе, число вариантов, не обнаружи- ваемых данным кодом ошибок); d — минимальное кодо- вое расстояние. Методы определения W (ы) для общего случая очень громоздки. Более простые методы известны лишь для очень немногих кодов. Некоторые результаты по оценкам весовых характе- ристик систематических кодов получены в работе [57], где доказано, что если двоичный (л, Л)-код имеет за- данное расстояние d, для его весовой характеристики справедлива оценка 1Г(Ш) = 0, i < d; ct-t i>d (5.12) d — 1 2 С учетом условий (5.12) получено [57] 220 I
Pa 0<h~Ат7Г-р-2 С1+<Р»(1-Р,)л+/~/- (*’“₽») Cn+<L i=0 «+< 1 - 2 СисРэ(1-Рэ)л+'“' . (5.13) Ьчг+1 J Правая часть этого выражения при 0<рэ<0,5 ограничена сверху своим значением р3 = 0,5, поэтому в любом канале с независимыми ошибками 2* (5.14) Эта оценка довольно точна для коротких кодов с небольшой избыточностью. Для длинных кодов с боль- шой избыточностью удобно следующее выражение [57]: (Я / а \в«—4 4) (1-4) , (5.16) где k — число информацйонных символов; d—минималь- ное кодовое расстояние. ' В [27, 59, 60, 87] приводится приближенная оценка вероятности необнаруженной ошибки: РИ. о « р 2 С‘р* С1 - Р’Г'*’ <5Л6) где г — число проверочных разрядов кода; d—мини- мальное кодовое расстояние. В большинстве случаев при расчетах Ри. 0 исполь- зуется выражение (5.16). 5.2. Вероятность ошнбкн прн передаче информации по каналам связи с па- кетным распределением ошибок В § 5.1 были приведены соотношения для определения вероятности ошибки при передаче информации по каналам связи с независимыми ошибка- ми. Однако на практике каналы связи обычно характе- 9 Г-266 221
ризуются зависимостью вероятности искажения после- дующего передаваемого символа от искажения предыду- щего (имеют память). При этом расчеты, проведенные по формулам § 5.1, дают значения вероятности ошибки, иногда значительно отличающиеся от реальных. Такое несоответствие объясняется влиянием на прохождение сигналов сезонных и суточных изменений метеоусловий, наличием промышленных помех, меняющих свою интен- сивность в течение суток и дней недели, взаимных по- мех и т. д. [17, 81, 86, 120]. Все это приводит к па- кетному характеру ошибок в каналах передачи инфор- мации. При таких условиях нахождение вероятности ошибок довольно затруднительно и связано с исследо- ванием реальных характеристик каналов связи. В работах [72, 73] приведены приближенные фор- мулы для расчета вероятности ошибок при пакетном их распределении: . Рт~Ь 2 l + (5.17) ’ v ’ 2 к"! где ь — длина пакета ошибок; ръ—условная вероят- ность появления пакета ошибок длиной Ь\ ра— вероят- ность искажения двоичного символа; q — плотность оши- бок в пакете, равная отношению числа ошибок в паке- те к длине этого пакета Ь. Выражение (5.17) определяет вероятность ошибки при передаче последовательности, содержащей п сим- волов. Для кодов; обнаруживающих пакеты ошибок, веро- ятности Рн.о и Ро. о вычисляют по формулам [72] * мвко п 1 Рэ V h ,п-(2/й+1)1 hpb . Ри.о—77^ 2j 1+—ь--------------nss—’ <5Л8> ’ • 2 bpb 222
Рэ я b мака л —1\ ьРь ] b макс 2 ьрь 1 ЬРь ' Ь мако 2 ьРь 1 (5.19) Здесь Ik — длина обнаруживаемого пакета ошибок. Все необходимые данные для расчета получаем в ре- зультате проведения экспериментов по определению характера распределения ошибок или из ранее полу- ченных статистических данных, касающихся каналов аналогичного типа. Сделана попытка описать реальные каналы связи с помощью всего лишь двух параметров — вероятности искажения двоичного символа р3 и показателя группи- рования ошибок а [100, 102]. Экспериментальные значения этих параметров для ряда каналов приведены в табл. 46. Таблица 46 № п/п Канал Модуляция Ско- рость пере- дачи, бит/с ₽э а 1 Кабельный теле- фонный Фазоразност- ная (ФРМ) 1200 3,08.10-4 0,615 2 Радиорелейный телефонный Частотная (ЧМ) 1200 7,04-10~4 0,545 3 Радиотелегр афный КВ-канал it—» 75 1,37 .Ю”2 0,449 4 Тропосферный телефонный Частотная (ЧМ) 1200 6,34.10-4 0,439 5 Радиорелейный телефонный То же 1200 1,3-10~3 0,33 9* 223
Приближенные формулы для определения Ри. 0 имеют следующий вид [99, 101]. 1. Для кодов, исправляющих ошибки, (5.20) где t — кратность исправляемой ошибки. 2. Для кодов, обнаруживающих ошибки, Р“-о~р(7)’~В- (5-21) где d—минимальное кодовое расстояние; г—число проверочных символов. 3. Для кодов, исправляющих и обнаруживающих 2 , Х1_ ошибки, Рв. о ~ — UTZTi) Ра" Эти формулы дают неплохие результаты, если число ошибок е в комбинации из п символов удовлетворяет условию е < 0,Зп. 5.3. Основные методы повышения до- стоверности передачи информации избыточными кодами При передаче информации простым безыз- быточным кодом достоверность приема в основном опреде- ляется типом канала и видом помех в нем. В большинстве случаев получающаяся достоверность недостаточна. Ее не- обходимо повысить, чтобы вероятность ошибочного при- ема сообщения потребителем была намного меньше, чем вероятность ошибок в сообщении без принятия специ- альных мер. Один из путей повышения достоверности — примене- ние избыточного кода. Все известные избыточные коды можно использовать в следующих режимах: а) исправление ошибок; б) обнаружение ошибок; 224
в) исправление и обнаружение ошибок. Режим исправления ошибок обычно применяется в том случае, когда в канале связи имеют место незави- симые ошибки или короткие пачки ошибок [22, 127]. Исправление же пачек ошибок, веса которых соизмеримы с длиной кодовой комбинации, приводит к неоправдан- ным затратам оборудования на кодирующие и декоди- рующие устройства. Коды, предназначенные для исправления ошибок, даже при относительно высокой избыточности могут обеспе- чить исправление ошибок, вес которых численно не пре- вышает 20—25% длины, кодовой комбинации, тогда как даже при биномиальном распределении наиболее часты ошибки с весом, близким к 50% длины кодовой комби- нации. Поэтому при необходимости непосредственного исправления целесообразны лишь методы, которые по- зволяют отделить проверочные импульсы от информа- ционных на время, превышающее, вероятную длину пач- ки ошибок. Повышение достоверности с помощью кодов, пред- назначенных для обнаружения ошибок, достигается введением обратного канала связи. В этом случае при- нятая по прямому каналу кодовая комбинация анализи- руется, чтобы определить, принадлежит ли она к числу разрешенных комбинаций. Разрешенная комбинация поступает потребителю после отбрасывания провероч- ных разрядов. В случае обнаружения ошибки по обрат- ному каналу посылается сигнал запроса, по которому передающее устройство повторяет передачу информа- ции. В силу этого передающее устройство должно хра- нить информацию об отправленных сигналах в течение времени, достаточного для анализа комбинации прием- ным устройством и получения возможного запроса об ошибках. Системы с обратным каналом называют системами с обратной связью. По своей природе они адаптивны, 225
так как число повторений зависит от состояния канала связи и автоматически поддерживается на уровне, необ- ходимом для надежного прохождения сообщений. Большинство специалистов [15, 18, 19, 22, 23, 27, 32, 35, 40, 44, 55, 59, 60] считают, что наиболее рацио- нальны такие системы передачи информации, в которых избыточные коды используются для обнаружения оши- бок. Они обладают следующими преимуществами: а) обнаруживающая способность кода при одной и той же избыточности всегда выше исправляющей [5, 6, 16, 18, 27, 41, 74]; б) число логических операций, которое должно вы- полняться декодером для обнаружения ошибок, значи- тельно меньше числа необходимых операций для их исправления. Единственный недостаток систем с обратной свя- зью — уменьшение скорости передачи информации. Однако это заметно только при плохих состояниях канала связи. Если состояние канала связи характери- зуется таким распределением групп ошибок, когда ве- роятность появления коротких и весьма длинных оши- бок существенно больше вероятности появления других групп, эффективно использование режима с исправлением ошибок малой кратности и обнаружением остальных ошибок [72, 73]. Таким образом, выбор метода повышения достовер- ности передачи информации зависит от многих факто- ров: требуемой достоверности приема, допустимой ско- рости передачи, вида ошибок в канале связи и т. д. В работе [84] найден критерий эффективности метода повышения достоверности: Кэф = 1ое2|. (5.23) Pouik В этом выражении а= -------выигрыш в защите от оши- •шп 226
бок, где PQWk — вероятность ошибки в сообщении без избыточности; Р0Ш/1 — вероятность ошибки в сообщении с у С избыточностью; g = gu + g0 = + р, — избыточность, *n где gK — информационная избыточность; ga— схемная избыточность, Vk—суммарная скорость передачи ин- формации; Уп — полезная скорость ввода информации (без избыточности) потребителю; р. — весовой коэффициент, приводящий информационную и схемную избыточности к эквивалентным технико-экономическим показателям; Спд — объем аппаратуры передачи информации и аппа- ратуры повышения достоверности в эквивалентных еди- ницах (число элементов со своими весовыми коэффициен- тами); Со — объем аппаратуры передачи информации без применения мер повышения достоверности. Информационная избыточность gH выражается по- разному для различных методов повышения достовер- ности. Для кодов, исправляющих ошибки, £и = 1 + . (5.24) Для систем с обнаружением ошибки и последующим переспросом Второй множитель (5.25) означает, что из любых N со- общений МР‘Ошп передаются с ошибками, а значит, пов- торяются, т. е. избыточность увеличивается. Сравним использование кода Хэмминга (7,4) с исправ- лением одиночных ошибок и того же кода для обнару- жения двойных ошибок с переспросом, если вероятность сбоя одиночного символа р9 = 10~2. При биноминальном характере распределения ошибок Роцц = 1 -(1 -р9у = 1 - (1 - 1О-2)7 ^0,07. 227
Информационная избыточность а) для случая исправления Яи.-(1+т) = (1+4) = 1.75; б) для случая обнаружения «' "(* + т)(т+-)-,’К(тД5?\ - 1,88. \ / \ °шл/ \ / Схемная избыточность зависит от объема устройств. Примем [84] get = 1,5 для случая исправления ошибок, gc, = 2,5 для случая их обнаружения. Тогда S\ = £и, + gc,. — 3,25; gt = gB, + get — 4,38. Вероятность ошибки в сообщении без избыточности Рош* = 1 — (1 — p»)ft = 1 — (1 — 10-2)4 0,04. Вероятность ошибки в сообщении с использованием кода (7, 4), исправляющего одну ошибку, Р 1ошя = 1 -(1 -РэУ*-П-Pa (1 -рэУ 1 = = 1 — (1 — 10-2)7 — 7,10~2 (1 — 10-2)6^ 0,003. Вероятность ошибки при использовании этого же кода для обнаружения двойных ошибок из (5.11) с учетом (3.35) Р2ош„ = 1РЪ (1 - рУ + W (1 - рУ + р^ 0,67 • 10-ь. Находим выигрыш в защите от ошибок __ гош* _ 0,04 ____ ош* _ 0,04 01 р „ооз 1^* ^2 р —ь 5000, Чош„ °-00d г2вш„ 0,67 . 10 Q. 13 Критерий эффективности К1эф = log2 — = log2j£25 ~ 2; „ , а2 , 6000 о Кгэф = log2 — = log2 Y38 ~ Ю»2. & 2 * Таким образом, в данном случае использование (7, 4)- кода Хэмминга в режиме обнаружения ошибок гораздо целесообразнее, чем в режиме исправления. 228
5.4. Условия целесообразности приме* нения избыточных кодов Применение избыточных кодов для пере- дачи информации должно повысить достоверность по сравнению с передачей без использования избыточности при том же времени передачи сообщений и той же мощности сигналов. Найдены условия, которым должен удовлетворять при этом избыточный код [126, 127]. В качестве меры сравнения избыточного и неизбыточного кода использо- вана эквивалентная вероятность ошибки Р'. Для канала с независимыми ошибками, по которому передается информация с помощью безызбыточного кода с k инфор- мационными символами длительностью то, вероятность ошибочного приема символа [88] р, = 0,5 —Ф(7Л), (5.26) .. Ео P0zo где h*=Tj- = -jr.-отношение энергии элемента сигнала ”0 /vo к спектральной плотности помехи; у — коэффициент, за- висящий от способа передачи элементарных сигналов; »(«)“[/ Некоторые значения рэ приведены в табл. 47 [88]. Применение избыточного кода означает увеличение длины кодовой комбинации по сравнению с безызбыточ- ным кодом. Здесь возможны два случая: I) увеличение п производится при сохранении прежней длительности передачи комбинации (ткода — &"о = const); 2) увеличение п производится при сохранении прежней длительности символа (т0 = const). Для первого случая Л2кода = ^-* = 4Л2 (5.27) IV Q Г* и рв кода в 0,5 — Ф (]/ k/n^h), (5.28) 229
Таблица 47 где Рэкода — вероятность ошибочно- го приема в кодированной после- довательности. Во втором случае Лкода = h И р3 кода = Рэ- . (5.29) Эффективность избыточного кода оценивается с помощью эквивалент- ной вероятности ошибочного при- ема одного символа такого кода [88]: р9 = %, (5.30) где Рош = 2 С‘пр9(1 — р9)п-', если код используется в режиме обнару- п жения ошибок; Рош — 2 С!р9'(1 - <=ж — рэ)п~1, если ошибки кратности t исправляются кодом. Сравнивая величину р9 с вероят- ностью ошибки символа для безы- збыточного кода, определяемой вы- ражением (5.26), можно установить, при каких условиях применение из- быточного кода позволяет повысить помехоустойчивость приема. Такое сопоставление должно проводиться при некоторых одинаковых условиях (например, при одинаковой полосе занимаемых частот или одинаковой длительности кодовой комбинации). Пусть передача безызбыточным четырехразрядным кодом (й = 4) ха- рактеризуется вероятностью ошибки на символ р9 = 10~2. В соответст- вии с формулой (5.26) и табл. 47 230
находим, что эта вероятность достигается при st; 2,33. При использовании избыточного кода Хэм- минга (7, 4) с d — 3, исправляющего одну ошибку или обнаруживающего две ошибки, введение избыточности вводится за счет сокращения длительности символа безыз- быточного кода. Тогда в соответствии с выражениями (5.27), (5.28) Л20Да = W и р9кода = 0,5-Ф (]/% X X 2,33) ^3,75- 10-2. В режиме обнаружения ошибок эквивалентная веро- ятность ошибочного приема одного символа 2 Ф» кода (»-₽. кода)7”' р’в = —---------у-----------^2,3 - 10-*. В режиме исправления ошибок 2 ^7Ps кода (1 ~~ Рэ кода) £э = —----------у----------3,5- 10-3. Отсюда видно, что использование кода Хэмминга является эффективным, так как р9 в обоих случаях меньше р9, но эффективность кода с обнаружением оши- бок выше (2,3 • 10~4 < 3,5 • 10~3). Для пакетного распределения ошибок условие целе- сообразности использования избыточного кода записы- ваем в виде неравенства [73] 1 231
где t — кратность исправляемой ошибки; Ъ—длина па- кета ошибок; q— плотность ошибок в пакете; k — коли- чество информационных символов; рь — условная веро- ятность появления пакета ошибок длиной Ь. Расчеты, произведенные по последней формуле |72], позволяют сделать вывод, что условия в случае пакет- ного распределения ошибок гораздо жестче, чем в слу- чае независимых ошибок. Если преобладающая длина пакетов ошибок в канале связи больше кратности кор- ректируемых кодом ошибок, применение такого кода не повысит достоверность, даже если вероятность не будет зависеть от длительности символа. 5.5. Рекомендации по выбору кодов Использование избыточных кодов для повышения достоверности передачи информации тре- бует от проектировщика систем передачи знания и уче- та различных факторов, анализируя которые, можно выбрать код: распределение ошибок в канале связи; допустимая вероятность ошибок кодовой последователь- ности; обеспечение заданной скорости передачи инфор- мации; сложность алгоритмов кодирующих и декоди- рующих устройств; обеспечение заданной надежности. Одним из основных факторов, без которого невоз- можно сделать правильный выбор кода, является харак- тер распределения ошибок в канале связи. С этой целью в табл. 48 приведены коды и их корректирующие спо- собности. Из таблицы видно, что большинство избыточ- ных кодов исправляет только независимые ошибки. Лишь небольшая группа кодов позволяет исправлять пакеты ошибок. Число кодов; которые позволяют обнаруживать па- кеты ошибок, значительно больше благодаря высоким обнаруживающим способностям циклических кодов. 232
Абсолютное большинство специалистов [32, 152, 40, 41, 42, 44, 55, 59, 63, 75, 91] склоняются к единому мне- нию, что наиболее рациональными следует считать та- Таблипа 48 Ошибки независимые пакеты Кел обнару- живаемые исправ- ляемые обнару- живаемые исправ- ляемые С одной проверкой на ность С простым повторением Корреляционный Инверсный Хэмминга Голея Рида — Маллера Макдональда Варшамова С малой плотностью пр рок на четность Итеративный Хэмминга БЧХ Мажоритарный Файра Абрамсона Мил ас а— Абрамсона Рида — Соломона Компаундный Плоткина С постоянным весом Бергера Цепной Сверточный .... v w д циклические 9 ? н - и и и - н н н н F F И * и н - 4 И к кие системы передачи информации, в которых избыточ- ные коды используются только для обнаружения оши- бок. Причина этого заключается в том, что в реальных 333
каналах часто наблюдаются пачки ошибок длиной в несколько десятков и даже сотен символов и для их исправления потребовался бы код с длиной кодовой комбинации, измеряемой тысячами и даже десятками тысяч разрядов, что технически трудно осуществимо. Знание характера распределения ошибок в кана- ле еще не говорит о том, что такие ошибки присущи только этому каналу, а не использованному при иссле- дованиях модему, и могут изменяться только при изме- нении скорости передачи, мощности сигнала и т. п. Ха- рактер ошибок в значительной степени .зависит от использованного модема. Поэтому разработчику систем передачи информации всегда необходимо выбор модема и кода рассматривать как единую задачу и отыскивать ее оптимальное решение [57]. После выяснения характеристик канала связи даль- нейший выбор кода определяется допустимой вероятно- стью ошибки. По этому параметру отбираются коды, у которых вероятность необнаруженной ошибки Рк. 0 мень- ше Рошдоп- Для сравнения различных кодов в этом слу- чае рекомендуется пользоваться выражениями, приве- денными в § 5.1—5.4. Для обеспечения заданной скорости передачи инфор- мации требуется выбирать код с минимально необходи- мым числом проверочных разрядов, обеспечивающих Т’н.о- При этом нельзя забывать о том, что обнаружи- вающие свойства определяются не только числом про- верочных разрядов, но и видом проверочных соотноше- ний, а для циклических кодов — образующим полино- мом. Широкое распространение получили методы отбо- ра кодов, основанные на моделировании реальных по- токов с помощью ЭВМ для определения вида провероч- ных соотношений или вида образующего полинома [29, 82, 90, 92]. Кроме того, при выборе кода необходимо учитывать сложность кодирующих и декодирующих устройств и их надежность.
235
Продолжение приложения 1 Тип (я; *)- кода Номера проверочных разрядов 1 2 3 4 5 6 7 & 9 10 24; 14 1236 78910 1245 13568 1478 П 2356 24689 34789 5678912 10 И12 1314 1J1213 7910 9101214 121314 7910 111214 14 1213 25; 15 12367 12457 135689 147811 23567 24689 34789 56789 101112 131415 891011 91015 101214 121314 91012 . 111214 15 12 121314 1315 26; 16 12367 12457 1356 1478 2356 24689 34789 56789 £314 891011 9101516 8910 Ш213 79J0J2 11J214 15 121_6 101112 1_516 12131416 1214 14 1315 1236 1245 1356 1478 2356 24689 34789 56789 £0Н 1314 27; 17 78910 791015 8910 111213 791012 П£21_4 15 1216 1_217 £51617 Ц1213 1617 1214 14 1315 17 141617
П родолжение приложения 2 Кг п/п Кодовое обозначение Условное обозначение 26 10010001 X - X1 ' +1 Р«(х7) 27 10011101 X - X- ‘ч-х 1 + х2 4-1 Р=(х7) 28 10100111 X -X1 5--х »4-х-к1 Рв(х71 29 10101011 X Нх1 -- ха4-х 4-1 30 10111001 X -X >--х*4- х84-1 Рв(х) 31 10111111 X кх 5--х* + X9 4- х2 4- х 4-1 Р.(х7) 32 11000001 X - X е--1 Рю (X7) 33 11001011 X -Xе -к X ’4-x-kl Рц Н 34 11010011 X J Нх х*4- х 4-1 Р12(х7) 35 11010101 X Их’ -- х< 4- х24-1 ₽1з(х’) 36 11100101 X \~ х -X 5 4- х24-1 Ри (X ) 37 11101111 X к X* + Xе 4- х8 4- х2 -к х 4-1 Р1п(х’) 38 11110001 X - Xе -к Xе -к X* -к 1 Рю (X ) 39 11110111 X -X1 >4-Xе -к х* 4- х2 -к х 4- * Рц (X7) 40 11111101 X hx‘ 4-Xs 4-х* 4-х? 4-х2 4-1 Рм(х’) т = = 8 41 100011011 X4-! Ь х8Ч М4-1 Pffx8) 42 100011101 X8 - X4- -X8- -х24-1 Р2 (х9) 43 100101011 X8 - X5- -Xs- -х+ 1 р3 (X8) 44 100101101 х«Н - с8- -х3- -X2-- 1 р4 х!) 45 100111001 хв - X5- -х*- -X8-- 1 Р6(х^) 46 100111111 Xе -| X6 - кх’- -х8--х24- х-Ь 1 Ре (X8) 47 101001101 Xs - Xе- -х8- к X2 - - 1 Р,(Х8) 48 101011111 хв - Xе-, -Xе- - х3 - - х2 4- х 4-1 Ре (Xе) 49 101100011 X8- Xе-, -Xе — НХ4- 1 Рв(х8) 50 101100101 Xs -1 Xе- н X6 - -х24- 1 Pjo (X8) 51 101101001 хв - Xе- Нх8-, (-Х8 4- 1 Рй (X8) 52 101110001 Xе- Xе- -х5- -Xе 4-1 Р12 (X9) 53 101110111 Xs Н Xе - -Xе- гх4 4-х2 4-х 4-1 Pit (X9) 54 101111011 хв -| Xе- -Xе- - х*4- х8 4- х -|-1 Pf<(x8) 55 110000111 хв- - х’- -X2- -х4- 1 Рю (X9) 56 110001011 хв - x’-J -X8- -х+ 1 Рю (X9) 57 110001101 X8-! х’-| -X8- -х2-}- 1 Р17 (х*) 58 110011111 х8Н х’-| -Xе 4 - х8 х2 4- х 4-1 Рю (<) 59 110100011 х8-, - х’- г Xе- -х4-1 Р1.(*9> 60 110101001 X8- х’- -Xе- -х84-1 Р20 (X8) 61 110110001 X8- х’- t-хЧ -х* 4-1 p2f (Xе) 238
Продолжение приложения 2 № п/п Кодовое обозначение F (х Условное обозначение 62 110111101 л«4 -Х’4 - х54- X4 4-Х3+ X24-1 Р22 (х8) 63 111000011 v8_| -х’- - Xе 4- х 4 - 1 Р23 (хе) 64 111001111 кх’- - хе - - х8 4 - X2 -- X + 1 ^4 (Xй) 65 111010111 Xs 4 -хе--х44-х2--х-|-1 Р2з (х8) 66 111011101 кх’- - Xе - - X4 - - х8 - - X2 + 1 Рп (Xе) 67 111100111 -х’- - хе — х5 4- х2 - - х 4-1 Р21 (Xе) 68 111110011 Xе- -х’- - хе--х8-1 - X4 - - X 4- 1 Р2в(хе) 69 111110101 Л«4 кх’- - Xе - - Xs - - X4 - - X2 4- 1 Р2в(хе) 70 111111001 Xе 4 |-х’4 4 хе 4- х* - 4 X4 4- X8 4-1 Рзв(хе) т = 9 71 1000000011 X»- кх - к 1 Pf<x8) 72 1000010001 -л4- -1 Рз (Xе) 73 1000010111 Xе- -ж4- - X2 4- X 4-1 Р3(х2) 74 1000011011 Xе- -ж4- - х3 4- х 4-1 Р4(х2) 75 1000100001 Xs- -х6- -1 Р5(х2) 76 1000101101 Xе- - х6 - - X8 - - X2 - Ре (Xе) 77 1000110011 X»- -X5- - X1 - X 4 Р1 (X2) 78 1001001011 X»- -Xе- -х3--х4-1 Рз(^ 79 1001011001 -Xе-, - х4 - - X3 - -1 Ра (х«) 80 1001011111 х«- -Xе- - X4 - - X8 - -х24-х4-1 Ли (X2) 81 1001100101 X»- -Xе- - Xе - - X2 - -1 Р11 (Xе) 82 1001101001 х»- -Xе- - Xе - - х3 - -1 Р12 (X2) 83 100-1101111 х6- -Xе- -х5--х3- - х2 4- х 1 Р13 (X6) 84 1001110111 x°-J - Xе - 4 xs 4- х4 - - х2 -j- х 4-1 Р14 (X2) 85 1001111101 х6- -Xе- - Xе - - X4 - - X8 4- X2 4-1 Р» (х2) 86 1010000111 Xе- -ж’- -х2--х4- 1 Рм (х2) 87 1010010101 Х°п -ж’- -х4--х24- 1 Рк(х) 88 1010011001 X6- -х’н - X4 - - X8 - Н 1 Р1В(X ) 89 1010100011 X6- -ж’- - х6 - - х -}- 1 Р1в(х) 90 1010100101 Xs- -х’- - х" - - х - -1 Рзо (X2) 91 1010101111 х“- -х’к - Xs - - Xs - - х2 4- X 4-1 Ря (X2) 92 1010110111 х2- -х’- - Xе - - х4 - - X2 4- X + 1 Р22 (Xs) 93 1010111101 Xе- -ж’- 1- Xе - - X4 - -X2 4-х2-|-1 Р23 (х2) 94 1011001111 X*- -х’- - Xе --Х8- - х2 4- х 4-1 Р24 (X2) 95 1011010001 X»- 1-Х7- - хе - - X4 - -1 Р25 (X2) 96 1011011011 X»- -ж’ — - Xе - - X4 - -л* 4- х-Ь 1 Р2» (X2) 97 1011110101 X® - -ж’- - хе 4- & - - X4 4- X2 4-1 Р27(х°) 239
Продолжение приложения 2 № п/п Кодовое обозначение F(xm} Условное обозначение 98 1011111001 х® + х> + Xе + х8 + х‘ ч-х’л- 1 Pts (хе) 99 1100000001 Xе - - X9 - -1 Рц (Xе) 100 1100010011 хе--х8-| -х*-|-х4- 1 Рм х® 101 1100010101 х8--х8-| - -I- х’Ч- 1 Р»1 (X J 102 1100011111 Xя - - х8 -| |-х4-|-х’ + х,+ х(-{-1 Pts М 103 1100100011 Xs - - х8 - - х8 4- х + 1 Р»3 (Xs) 104 1100110001 Xе-- X8-] l 4- х* 4- 1 Рц(х») 105 1100111011 х»--хв- -х8-|-х4--хв4-х4- 1 Р36(х“) 106 1101001001 Xе - - Xе - - Xе 4- X» - -1 Ря (Xs) 107 1101001111 х’.-х'Ч hx8--x84-x*4-x4-1 108 1101011011 X® - - X8 - - х* - - х* 4- хя 4- х 4 1 P»(xs) 109 1101100001 Хе--Х8-1 -х*--х»4-1 Рт (Xs 110 1101101011 х»4-х8- Ьх4-|-х84-х34-х4-1 111 1101101101 х”--хя- -X8--Xs 4-X» 4-х» 4-1 Psi (х“) 112 1101110011 х*--х*- - х8 - - х» 4- х* 4- х 4- 1 Pit (Xе) 113 1101111111 X* - - X8 + х* 4- х« + х* + X» 4- X* + р« (Xs) 4-x-f-i 114 1110000101 X* - - X8 - -х’- Х8-- 1 P*4(XS) 115 1110001111 хе--х8- - х7 4- х8 - - х2 4- х 4- 1 (Xе) 116 1110100001 X* - - Xе - - X7 4- Xs - - 1 Р« (Xе) 117 1110110101 X9 - - X8 - - х7 4- х5 4- х* 4- Xs -|-1 PiAx”) 118 1110111001 X* - - Xе -1 |-х7--х84-х44-х84- 1 p«(^) 119 1111000111 ^--х8- -х’--хв--х24-х4- 1 р« (Xе) 120 1111001011 Xе + Xs- -х74-х°4-х84-х4-1 Рм(х6) 121 1111001101 Xе - - Xе - к х7 - - х8 -|- х3 4- х2 4-1 PBi(xe) 122 1111010101 х* - - X8 - -Х74-484-Х*4-Х34- 1 РИ(ХВ) 123 1111011001 X* - - Xе -1 1-х74-х4--х14-х84-1 (Xе) 124 1111100011 Xе - - Xе - -Х7--Хв--Х84-Х-|- 1 РМ (Xs) 125 1111101001 Xs - - X8 Н (-х7-|-х6 - - х8 4-**4-1 Рм(х®) 126 ШПИОН х’-'Х8- -х74-х«--х84-х‘4-х84- Р«(хе) 4-х+ 1
Список литературы 1. Автоматизированные информационные системы. Под ред. В. А. Иль* ина. М., изд. ВЗПИ, 1970. 359 с. 2. Азаров В. В. Использование рекуррентного кода при блоч- ной передаче двоичных сообщений.-— «Вопросы радиоэлектрони- ки», 1966, сер. XI, вып. 2, с. 19—23. 3. Андре Анго. Математика для электро- и радиоинженеров. Пер. с фр. М., «Наука», 1967. 780 с. 4. Артеменко Е. А., Кедрус В. А., Терентьев С. Н. Основы теории прохождения сигналов и ее приложение к теле- механике. Харьков, изд. ХВКИУ, 1975. 448 с. 5. Базилевич Е. В. Передача данных. М., «Связь», 1969. 286с. 6. Балагин И. Я., Кудряшов В. А., Семенюта Н. Ф. Передача дискретной информации и телеграфия. М., «Транспорт», 1971. 352 с. 7. Банерджи Р. Б. О построении групповых кодов.— В ин.: Теория кодирования. Под ред. Э. Л. Блоха. М., с. 121—138. 8. Бергер Дж. О кодах с суммированием, обнаруживающих па- кеты ошибок.— В кил Теория кодирования. Под ред. Э. Л. Бло- ха. М„ 1964, с. 116—120. 9. Березюк Н.Т., Шилов В. И. Элементы алгоритмической теории вычислительных систем. Харьков, нзд. ХВКИУ, 1968. 140 с. 10. Березюк Н. Т. Один метод оптимизации управляющих вы- числительных алгоритмов,—В кн.: Системы управления летатель- ных аппаратов. Вып. 1, Харьков, 1972, с. 55—58. 11. Березюк Н. Т., Шилов В. И., Шаронов В. Б. Мас- совое обслуживание и синтез вычислительных систем. Харьков, изд. ХВКИУ, 1970. 144 с. 12. Б ер лек ем п Э. Алгебраическая теория кодирования. Пер. с англ. М., «Мир», 1971. 477 с. . 13. Б е р м а н С. Д. К теории групповых кодов.!— «Кибернетика», 1967, № 1, с. 31—39. 14. Блох Э. Л. Видоизмененные процедуры использования кодов Рида — Соломона для построения кодов, исправляющих пакет ошибок.—В кн.: Теория передачи информации. М., «Наука», 1964, с. 32 -34. 15. Блох Э. Л. Помехоустойчивость систем связи с переспросом. Изд-во АН СССР, 1963. 172 с. 16. Блох Э. Л., Попов С. В., Турин В. Я. Модели источ- ника ошибок в каналах передачи цифровой информации. М., «Связь», 1971, 812 с. 241
17. Б ом штейн Б. Д., Киселев Л. К., Моргачев Е. Т. Методы борьбы с помехами в каналах проводной связи. М., «Связь», 1975. 284 с. 18. Бородин Л. Ф. Введение в теорию помехоустойчивого коди- рования. М., «Сов. радио», 1968. 408 с. 19. Бородин Л. Ф. Эквидистантные и другие оптимальные и близкие к оптимальным коды.?—«Радиотехника и электроника», 1960, т. 5, вып. 6, с. 19—26. 20. Б о у з Р. К.. Р о й - Ч о у д х у р и Д. К. Об одном классе дво- ичных групповых кодов с исправлением ошибок.?— В кн.: Кибер- нет. сб. Вып. 2., М., 1961, с. 112—118. 21. В ар шамов Р. Р. Оценка числа сигналов в кодах с коррек- цией ошибок.—«Докл. АН СССР», 1957, т. 117, № 5, с. 739—741. 22. Возенкрафт Дж., Джекоб И. Теоретические основы тех- ники связи. Пер. с англ. М., «Мир», 1969. 640 с. 23. Возенкрафт Дж., Рейфен Б. Последовательное декоди- рование. Пер. с англ. М., ИЛ, 1963. 156 с. 24. Г а л л а г е р Р. Коды с малой плотностью проверок иа четность. Пер. с англ. М„ «Мир», 1966. 144 с. 25. Г ал лагер Р. Дж. Теория информации и надежная связь. Под ред. М. С. Пи иск ер а и Б. С. Цыбакова. Пер. с англ. М., «Сов. радио», 1974. 719 с. 26. Г и т и с Э. И. Преобразователи информации для электронных цифровых вычислительных устройств. М., «Энергия», 1970. 399 с. 27. Горбунов Е. С. Сравнение некоторых помехоустойчивых ко- дов.— «Электросвязь», 1956, № 12, с. 42—47. 28. Гордеев Н. В. О выборе длины кода для симплексного ка- нала передачи данных.— «Тр. учеб, ин-тов связи». 1975, вып. 72, с. 19—25. 29. Гуров В. С., Емельянов Г. А., Етрухин Н. И. Передача дискретной информации и телеграфия. М., «Связь», 1969. 559 с. 30. Д м и т р н е в О. Ф. Класс составных циклических кодов с прос- той реализацией.— «Радиотехника», 1964, № 4, с. 68—78. 31. Дроздов Е. А.. Пятибратов А. П. Автоматическое пре- образование н кодирование информации. М., «Сов. радио», 1964. 543 с. 32. Евстифеев Ю. С. Эффективная оценка обнаруживающей спо- собности групповых кодов в каналах без памяти.— «Вопросы ра- диоэлектроники», 1974, сер. ТПС, вып. 11, с. 77—82. 33. Емельянов Г. А., Шварцман В, О. Передача дискрет- ной информации и основы телеграфии. М., «Связь», 1973. 384 с. 34. 3 а р е н и и Ю. Г. Корректирующие коды для передачи и пере- работки информации. Киев, «Техника», 1965, 170 с. 242
35. Заренпн Ю. Г., Иносов В. Л. Коды в технике. Киев, «Техника», 1964. 184 с. 36. Зелиг ер Н. Б. Основы передачи данных. М., «Связь», 1974. 200 с. 37. Зел и г ер А. Н. Сравнительный анализ систем связи.— «Во- просы радиоэлектроники» 1969. сер. ТПС, вып. 2, с. 50—54. 38. Зиновьев В. А., Леонтьев В, К- О совершенных ко- дах.,—«Проблемы передачи информации», 1972, т. 8, вып. 1, с. 26—35. 39. 3 о л о т н и к Б. М. О построении циклических кодов с посто- янным весом.— В кил Материалы III конф, по теории передачи и кодирования информации. Ташкент, 1967, с. 3—12. 40 Зюко А. Г. Помехоустойчивость и эффективность систем свя- зи. М., «Связь», 1972. 359 с. 41. Зюко А. Г. Элементы теории передачи информации. Киев. «Техника», 1969. 298 с. 42. Зюко А. Г., Коробов Ю. Ф. Теория передачи сигналов. М., «Связь», 1972. 280 с. 43. И л ь и н В. А. Телеуправление и телеизмерение. М., «Энергия», 1974. 408 с. 44, Катков Ф. А. Телеуправление. Основы теории. Киев, Гостех- издат УССР, 1963. 232 с. 45. Катков Ф. А., Попов А. Б. Частотные системы телеуп- равления по занятым каналам связи. Киев, Гостехиздат УССР, 1963. 89 с. 46. Катков Ф. А., Ди дык Б. С., Стулов В. А. Телеме- ханика. Киев, «Вища школа», 1974. 248 с. 47. Келлер Ф. Е. Графы кодов, кодирующие и декодирующие устройства. М., «Энергия», 1972. 97 с. 48. К и р и л о в Н. Е. Помехоустойчивая передача сообщений по линейным каналам со случайно изменяющимися параметрами. М., «Связь», 1971. 256 с. 49. Киселев-Гусев В. В. Коды, локализующие ошибки.— В кн.: Материалы Юбилейной науч.-техн, конф. Вып. 4, 1967. с. 217—220. 50. К л о в с к и й Л. Д. Теория передачи сигналов. М., «Связь», 1973. 376 с. 51. Когновнцкий О. С. Основы циклических кодов. Л., ЛЭИС, 1972. 88 с. 52. Колесник В. Д., Мирончиков Е. Т. Декодирование циклических кодов. М., «Связь», 1968. 252 с. 53. Колесник В. Д., Мирончиков Е. Т. Некоторые цик- лические коды и схемы декодирования по большинству.,—«Проб- лемы передачи информации», 1965, вып. 2. с. 3—17. 243
54. Колесник В. Д., Мирончиков Е. Т. О классе цикли- ческих кодов, имеющих мажоритарную схему декодирования.— В кн.: Системы обработки и передачи информации.— «Тр. Ле- нингр. ин-та», 1966, вып. 48, с. 149—159. 55. К о п н и ч е в Л. Н. Принципы построения аппаратуры для пе- редачи дискретной информации. М., «Связь». 1972. 155 с. 56. Коржик В. И. Одна оценка dMHH для циклических кодов. — «Проблемы передачи информации», 1966, вып. 2, с. 78—79. 57. К о р ж и к В. И., Финк Л. М. Помехоустойчивое кодирова- ние дискретных сообщений в каналах со случайной структурой. М„ «Связь», 1975. 272 с. 58. Котельников В. А. Теория потенциальной помехоустойчи- вости. М., Госэнергоиздат, 1956. 151 с. 59. К о т о в П. А. Выбор кодов для систем передачи информации дискретными сигналами.—«Тр. ВКАС», 1966. 195 с. 60. К о т о в П. А. Повышение достоверности передачи цифровой информации. М., «Связь», 1966. 184 с. 61. Кричевский Р. Е. Связь между избыточностью кодирова- ния и достоверностью сведений об источнике.— «Проблемы пере- дачи информации», 1968, т. 4, вып. 3, с. 48—57. 62. Куликовский О. В., Батаев В. М. Применение кодов, исправляющих ошибки при дискретной передаче цветных поли- графических изображений.— «Тр. учеб, ин-тов связи», 1973, вып. 63, с. 158-165. 63. Л ат хи Б. П. Системы передачи информации. М., «Связь», 1971. 320 с. 64« Л е в е н шт е й н В. И. Двоичные коды с исправлением выпаде- ний и вставок символа.— «Проблемы передачи информации», 1965, т. 1, вып. 1, с. 12—25. 65. Ле в е и шт е й и В. И. Применение матриц Адамара к одной задаче кодирования.— «Проблемы кибернетики», 1965, вып. 5, с. 123—136. 66. Л е щ у к И. А. Основы передачи дискретной информации и те- леграфии. Одесса, изд. ОЭИС, 1969. 199 с. 67. Лившиц Б. С., Фи длин Я. В., Харкевич А. Д. Теория телефонных и телеграфных сообщений. М., «Связь». 1971. 304 с. 68. Малов В. С., Дмитриев В. Д. Кодо-импульсные телеиа- мерительные системы. М., «Энергия», 1964. 192 с. 69. Мальков В. И., Мартынов Ю. М. Информация и связь в системах управления. М., «Московский рабочий», 1973. 216 с. 70. Мартынов Ю. М. Обработка информации в системах пере- дачи данных. М., «Связь», *1969.' 200 с. 244
71. Мартынов Ю. М. Эффективность использования каналов связи в системах передачи информации с запросом.,—«Электро- связь», 1964, № 1, с. 17—24. 72. Мельников Ю. Н. Достоверность информации в сложных системах. М., «Сов. радио», 1973. 192 е. 73. Мельников Ю. Н. Об условиях целесообразности примене- ния корректирующих кодов в каналах с групповыми ошибками. — «Электросвязь», 1967, Ns 12, с. 20—24. 74. М е ш к о в е к и й К. А., К и р и л л о в Н. Е. Кодирование в технике связи. М., «Связь», 1966. 324 с. 76. М е ш к о в с к и й К. А., Ч е р к у н о в А. И. Класс двоичных кольцевых несистематических кодов, корректирующих ошибки. — «Вопросы радиоэлектроинки», 1965, сер. X, вып. 3, с, 72—75. 76. Мнтюшкнн А. Г. Телемеханика в энергосистемах. М„ «Энер- гия», 1975. 352 в. 77. Мэсси Дж. Пороговое декодирование. М., «Мир», 1966. 208 с. 78. Назаров М. В.. Кушвинов Б. И., Попов О. В. Тео- Йия передачи сигналов. М., «Связь», 1970. 368 с. аумов П. А., Чанцов С. Д. Курс телеграфии. Ч. 2, М., Связьнздат, 1961. 295 о. 80. Новик Д. А, Эффективное кодирование. М., «Энергия», 1965. 235 с. 81. Обнаружение и исправление ошибок в дискретных устройствах. Под ред. В. С. Толстякова. М., «Сов. радио», 1972. 287 в. ,82. Об оценке эффективности корректирующих кодов.— «Труды. Экономика и эксплуатация морского транспорта». М., «Транспорт», 1970. с. 45—49 Авт.: А. Г. Бруссер, П. С. Кочетов, Н. Е. Перл и др. 83. Обсуждение состояния теории кодирования и вопросов практи- ' ческого использования кодов.— В кн.» Кибернет. сб. Вып. 9, М.. 1964, с. 90—108. 84. Ольддероге Г. Б. Критерий сравнения различных методов • повышения достоверности цифровой информации, передаваемой по каналам связи с помехами.— «Электросвязь», 1967, № 7 с. 10—13. 85. Основные термины в области передачи данных и их епределения. — «Электросвязь»; 1968, № 1, с. 71—75. 86 Основы передачи данных по проводным каналам связи. М„ «Связь», 1964. 312 с. Авт.: В. С. Гуров, Г. А. Емельянов, Н. Н. Етрухии и др. 87. Оценка вероятности обнаруженной ошибки для двоичных линей- ных кодов.— «Тр. учебн. ин-тов связи», 1966, вып. 29, с. 143— 148. Авт,| Э. Л. Блох, О, В, Попов, Л. Ф, Жигулин и др. 245
88- Пенин П. И. Системы передачи цифровой информации. М„ «Сов. радио», 1976. 368 с. 89- Передача данных. М., «Связь», 1969. 177 с. Авт.: Е. В. Базиле- вич, В. С. Гуров, Н. Н. Етрухин и др. 90. Передача дискретной информации и телеграфия. М., «Связь», 1974. 526 с. Авт.: В. С. Гуров, Г. А. Емельянов, Н. Н. Етру- хин и др. 91. Передача информации с обратной связью. М., «Связь», 1976.352 с. Авт.: 3. М. Каневский, М. И. Дорман, Б. В. Токарев и др. 92. Передача цифровой информации. Под ред. С. И. Самойленко. Пер в англ. М., Изд-во иностр, лит., 1963. 279 с. 93. Питерсон У. Коды, исправляющие ошибки. Пер. с англ. М„ «Мнр», 1964. 340 с. 94. Питерсон У. Кодирование и исправление ошибок Боуза-Чо- удхури.— В кн.: Кибернет. сб. Вып. 6. М., 1963, с. 25—54. 95. Плоткин М. Двоичные коды с заданным линейным расстояни- ем.—В кнл Кнбернег. сб. Вып. 7. М., 1963, с. 60—73. 96. Попов О. В., Жигулин Л. Ф. О борьбе с выпадениями и вставками сообщений при двусторонней передаче цифровой ин- формации с переспросом.— В кн.: Передача цифровой информа- ции пв каналам с памятью. М., 1970, «. 125—133. 97. Поспелов Д. А. Логические методы анализу и синтеза схем. М., «Энергия», 1968. 228 •. 98. П у г а ч е в В. С, Введение в теорию вероятностей. М, «Наука», 1968. 368 с. 99, Пу ртов Л. П., Замрий А. С., Захаров А. И. Выбор корректирующих кодов для систем с переспросом по эксперимен- тальным данным распределения ошибок в каналах связи.— «Элек- тросвязь», 1969. № 11, с. 21—30. 100. Пу ртов Л. П., Замрий А. £., 3 а х а р о в А. И. Ос- новные закономерности распределения ошибок в дискретных ка- налах связи.— «Электросвязь», 1967, № 2, с, 1—8. 101. Пу ртов Л. П., Замрий А. С., Захаров А. И. Расчет некоторых характеристик систем передачи данных с учетом рас- пределения ошибок в реальных каналах.— «Электросвязь», 1967, № 7, с. 1—9. 102. Пу ртов Л. П., Замрий А. С., Шаповалов И. Ф. Характер распределения ошнбон в телеграфных каналах при передаче дискретных сигналов,— «Электросвязь», 1965, № 6, о. 31—41. 103. Райнес Р. А., Горяйнов О. А. Телеуправление. М. - Л., «Энергия», 1965. 536 в, 104. Рахматкариев Э. У. Анализ избыточности помехоустой- чивых кодов.— В кн.: Кодирование в сложных системах. М., . 1974. с. 115—153. 246
105. Рид И. С. Кллсс кодов о исправлением нескольких ошибок и схема декодиponiuiiiH. - В кн.: Кибернет. сб. Вып. 1. М., 1900. с. 189—205. 106. Рид И. С., Соломон Г. Полиномиальные коды над не№> торыми конечными нолнми.— В кн.: Кибернет. сб. Вып. 7. М., 1963, с. 74-79. 107, С а г а л о в и ч 10. Л. Кодирование состояний и надежность автоматов. М., «Связь», 1075. 208 с. 108. Самойленко С. И. Помехоустойчивое кодирование. М„ «Наука», 1966. 239 о. 109. Серви некий Е. Г. Оптимизация ристем передачи дискрет- ной информации. М., «Связь», 1974. 335 с. ПО. Сер вннский Е. Г. Помехоустойчивость дискретных систем связи. Киев, изд. КНИГА, 1968. 122 е. 111. Сигорский В. П. Математический аппарат инженера. Киев, «Техника», 1975. 768 с. 112. Синтез вычислительных алгоритмов управления и контроля. Киев, «Техника», 1975. 245 с. Abt.s Н. Т. Березюк, И. В. Кузь- мин, К. К. Фурманов и др. 113. С м и р и о в В. А. Приближенные методы расчета помехоустойчи- вости н искажений в системах передачи информации. М., «Связь», 1975. 96 с. 114. Солодов А. В. Теория информации и ее применение к зада- чам автоматического управления и контроля. М., «Наука», 1967. 432 с. 115. Статистика ошибок при передаче цифровой информации. Под рсд. С. И. Самойленко. Пер. с англ. М., «Мир», 1966. 304 с. 116. Стейн С., Джонс Дж. Принципы современной теории свя- зи и нх применение к передаче дискретных сообщений. Пер. с англ. М., «Связь», 1971. 376 е. 117. Супрун Б. А. Первичные коды. М., «Связь», 1970. 161 с. 118. Темников Ф, Е., Афонин В. А., Дмитриев В. И. Теоретические основы информационной техники. М., «Энергия», 1971. 424 с. 119. Теория кодирования. Под ред. Э. Блоха. Пер, е англ. М., «Мир», 1964. 257 с. 120. Теория связи. Под ред. Б. Р. Левина. Пер. с англ. М., «Связь», 1972. 392 с. 121. Теплое Н. Л. Помехоустойчивость систем передачи дискрет- ной информация. М., «Связь»,-1964. 359 с. 122. Удалов А. П., Супрун Б. А. Избыточное кодирование при передаче информации двоичными кодами. М„ «Связь», 1964. 270 с. 247
23. Ф а н о Р. Передача информации. Статистическая теория связи. М., «Мир», 1965. 438 е. 124. Файнотейи А. Основы теории информации. М., Изд-во иностр, лит., 1960. 140 с. 125. Фини Л. М., Коржик В. И., Осмоловский С. А. Универсальное кодирование для произвольных каналов с обрат- ной связью.?— «Проблемы передачи информации», 1974, № 4, с. 26—29. 126. Финн Л. М. О применяемости бинарных корректирующих ко- дов в каналах передачи дискретной информации, —«Радиотехни- ка», 1961, т. 16, № 10, с. 3—9. 127. Финк Л. М. Теория передачи дискретных сообщений. М., «Сов. радио», 1970. 728 с. 128. Форни Д. Каскадные коды. М., «Мир», 1970. 207 с. 129. Харкевич А. А. Борьба с помехами. М„ Физматгиз, 1963. 275 о. 130. Хетагуров Я. Н., Руднев Ю. П. Повышение надежнос- ти цифровых устройств методами избыточного кодирования. М., «Энергия», 1974 . 272 с. 131. Холл М. Комбинаторика. Под ред. А. О. Гельфонда и В. Е. Та- раканова. Пер. с англ. М., «Мир», 1970. 424 с. 132. Хемминг Р. В. Коды с обнаружением и исправлением оши- бок.— В кн.1 Коды с обнаружением и исправлением ошибок.— М., 1956. с. 7—23. 133. Ц ы м б а л В. П, Задачник по теории информации и кодирова- нию. Киев, «Вища школа», 1976. 276 а. 134. Ц ы м б а л В. П. Теория информации и кодирования. Киев, «Вища школа», 1973. 232 с. 135. Четвериков В. Н. Преобразование и передача информации в АСУ. М., «Высшая школа», 1974. 320 с. 136. Шастова Г. А. Кодирование и помехоустойчивость передачи телемеханической информации. М., «Энергия». 1966. 454 с. 137. Шеннон К. Е. Работы по теория информации и кибернетике. М., Изд-во иностр, лит.. 1963. 829 с. 138. Шеннон К. Е. Статистическая теория передачи электричес- ких еигналов.— В кил Теория передачи электрических сигна- лов при наличии помех. Под ред. Н. А. Железнова. М., Изд-во иностр, лит., 1953, с. 7—87. 139. Шля п обе рек ий В. И. Основы техники передачи дискрет» ных сообщений. М., «Связь», 1973. 480 с. 140. Шляпоберский В. И. Элементы дискретных систем связи. М„ Военнздат. 1962. 256 с. 248
141. Ш л я п об с рек и й В. И., Чеку лае в С. А. Построение кодирующих и декодирующих устройств на интегральных схе- мах.— «Электросвязь», 1974, № 11, с. 60—65. 142. Штарьков Ю. М. Об одном методе построения корректиру- ющих кодов и схем мажоритарного декодирования,—В кил Пе- редача цифровой информации по каналам с памятью. М., 1970, с. 93—100. 143. Штарьков Ю. М. Последовательное применение разделен- ных проверок при мажоритарном декод ироваиии.—В кн.1 Пе- редача-цифровой информации по навалам с памятью. М.а 1970, с. 101—111. 144. Элиас П. Безошибочное кодирование.—Вкн.:Кодыс обнаружени- ем к исправлением ошибок. Под ред. А. М. Петровского. Изд-во иноотр. лит., 1956, с. 59—71. 145. Элиас П. Кодирование и декодирование.—В кн.1 Лекции по теории систем связи. Под ред. Е. Дж. Багдади. Пер. о англ. М., 1964, с. 289—317. 146. Юрген с он Р. И. Передача информации и методы борьбы С помехами в телемеханике. Л., изд. ЛЭТИ, 1968. 131 е. 147. Юргенсон Р. И. Помехоустойчивость цифровых систем пе- редачи телемеханической информации. Л., «Энергия», 1971. 250 с. 148. Я г л о м А. М„ Я г л о м И. М. Вероятность и информация. М„ «Наука», 1973, 512 е. 149. Abramson N. М. A class of Systematic Codes for Non — In dependent Errors.—<JRE Trans Jnform. Theory», 1959, Decent ber, p. 150—157. 150. Berlecamp E. R. The Numeration on information Symbol in BCH Codes. «BSTJ», 1967, N 8, p. 1861—1880. 151. Weiss E. Generalized Reed — Muller Codes.—«Information and Control» 1962, N 3, p. 213—222. 152. Zetterberg E. Cyclic Codes from Irreducible Polynomials for Correction of Multiple Errors.— «IRE Trans. Inform. Theory», N 1, p. 13—20. 153. Massey J. L. Inform Cades.— «IEEE Trans. Inform. Theory», 1966, N 2, p. 132—135. 154. Mel as S, M. A cycle code for error correction.— «IBM J. Res. and Developm», 1960, N 4, p. 364—366. 155. Neuman. A note on Cycle Permution Error Correction Codes.— «information and Control», 1962, N 1, p. 71—86. 156. Prange E. The Use of Information Sets on Decoding Cyclic Codes.—«IRE Trans. Inform. Theory», 1962, N 5, p. 5—9. 157. Rudolph L. D. A class of Majority Logic Decodable Codes,— «IEEE Trans. Inform. Theory», 1967, N 2, p. 305—307. 249 i
ОГЛАВЛЕНИЕ Предисловие • ......................... Глава I. Общие сведения ................................ 1.1. Двоичная система счисления • •................. 1.2. Сведения из теории матриц ... ................ 1.3. Некоторые сведения из теории вероятности....... 1.4. Элементы теории информации .................... 1.6. Структурная схема передачи информации.......... 1.6. Помехи и ошибки в каналах связи ............... 1.7. Передача информации по каналу без помех........ 1.8. Передача информации по каналу с помехами ... Глава 2. Неизбыточные коды ........................ . , 3 5 5 7 Я 16 19 27 30 32 2.1. Кодирование информации. Основные понятия .... 32 2.2. Классификация двоичных кодов ....................36 2.3. Основные характеристики кодов................... 38 2.4. Основы построения неизбыточных кодов. ..... 43 2.5. Простые равномерные коды ...................... 46 2.6. Двоично-десятичные коды..........................53 2.7. Самодополняющиеся двоично-десятичные коды ... 55 2.8. Отраженные коды................................. 56 2.9. Неравномерные коды Шеннона — Фано и Хаффмена . 60 Глава 3. Избыточные коды и принципы использования избыточности....................................... 64 3.1. Общие положения........................... .... 64 3.2. Связь корректирующей способности кода с кодовым расстоянием.......................................... 67 3.3. Основы матричного построения систематических ко- дов . . 74 3.4. Методы исправления ошибок....................... 80 3.5. Понятие об оптимальных кодах.................... 87 3.6. Код с одной проверкой на четность................88 3.7. Код с простым повторением....................... 90 3.8. Корреляционный код ............................ 91 250
3.9. Инверсный код.................................. 3.10. Код Хэмминга................................. 3.11. Код Голея .................................... 3.12. Код Рида—Маллера............................. 3.13. Код Макдональда............................... 3.14. Код Варшамова................................. 3.15. Коды с малой плотностью проверок на четность • • 3.16. Итеративный код .............................. 3.17. Коды с постоянным весом....................... 3.18. Коды Плоткина............................. 3.19. Код Бергера................................... 3.20. Непрерывные коды.............................. Глава 4. Циклические коды ........... • 4.1. Общие положения................................ 4.2. Принцип построения циклических кодов........... 4.3. Матричное представление циклических кодов .... 4.4. Выбор образующего полинома .................. • • 4.5. Способ коррекции ошибок циклическими кодами . . . 4.6. Способы определения количества вариантов В1п, не об- наруживаемых циклическими кодами ошибок............ 4.7. Циклические коды с минимальным кодовым расстоя- нием .............................................. 4.8. Циклические коды Хэмминга..................... 4.9. Коды Боуза Чоудхури-Хоквингема (БЧХ).......... 4.10. Код Файра..................................... 4.11. Код1»' Абрамсона.............................. 4.12. Коды Рида—Соломона............................ 4.13. Компаундные коды.............................. 4.14. Чажоритарные циклические коды................. Глава *. Оценка и выбор кодов.......................... 5.1, Вероятность ошибки при передаче информации из- быточными кодами по каналам с независимыми ошиб- ками .............................................. 5,2. Вероятность ошибки при передаче информации по каналам связи с пакетным распределением ошибок • • 5.3. Основные методы повышения достоверности передачи информации избыточными кодами - 5.4. Условия целесообразности применения избыточных кодов ... ................. 5.5. Рекомендации по выбору кодов.................. Приложения............................................. Список литературы...................................... 92 94 100 101 114 125 126 134 139 143 148 150 164 164 166 169 174 184 187 196 198 201 207 208 209 210 212 218 218 221 224 229 232 235 241
Николай Тимофеевич Березюк Анатолий Григорьевич Андрущенко Сергей Семенович Мощицкий Валерий Иванович Глушков Марьян Михайлович Бекеша Владимир Александрович Гаврилов КОДИРОВАНИЕ ИНФОРМАЦИИ ДВОИЧНЫЕ КОДЫ Редактор Н. И, Юркевич Обложка художника В. А. Овчинникова Художественный редактор А, С. Романова Технический редактор Л. Т. Момот Корректоры Л. А. Федоренко, Л. П. Пипенко, Н. С. Калинина. Информ, бланк Ха 3419. Одано в набор 20. 06. 77. Подписано в печать 1. 11. 77. EU Б0240. Формат 70x108/32. Бумага гипогр. № 3. Лит. гари. Выс. печать. Ц усл. печ. л., 12 уч. изд. л. Тираж И ООО экз. Изд. № 491. Зак. № 7-266. Цена 70 к. Издательство при Харьковском государственном уиивер ситете издательского объединения «Вища школя» 40003. Харьков, 3, Университетская, 16. Харьковская книжная фабрика «Коммунист» республи- канского производственного объединения «Полиграфкии- га» Госкомиздата УССР. 310012, Харьков, 12, Энгельса, И.

ИОДИРОВАНИЕ ИНФОРМАЦИИ