Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Толстоусов, Г. Н. Прикладная теория информации учеб. пособие

.pdf
Скачиваний:
9
Добавлен:
19.10.2023
Размер:
4.97 Mб
Скачать

п, - разрядная кодовая комбинация может быть представлена

как вершина

гь -мерного

единичного куба. Случай гъ = 3

может

быть представлен наглядно

(рис. 1 4 .2 ). В этом пространстве

су­

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

ного вектора помехи.

Тогда

для построения

обнаруживающего ко­

 

 

да расстояние между раз­

 

 

решенными кодовыми комби­

 

 

нациями, называемое кодо­

 

 

вым расстоянием, должно

 

 

быть не меньше двух (на­

 

 

пример, кодовые комбина­

 

 

ции 000; ІОІ;

ОН; П О ).

 

 

Для построения

корректи­

 

 

рующего кода кодовое рас­

 

 

стояние должно

быть не

 

 

меньше трех (например,

 

 

000,

I I I или 001, ПО и

 

 

т.Д.).

 

Рис. 14.2

 

 

 

 

 

§ 15. Помехоустойчивые

коды

 

Систематические

коды Cs] . Изучение

конкретных

способов

помехоустойчивого кодирования начнем с систематических кодов.

Остановимся кратко на

общих принципах построения система­

тических

кодов. Если

обозначить информационные

символы буквами

С ,

а

контрольные

- буквами

6 ,

то любую кодовую комбина­

цию,

содержащую к

 

информационных и

Ъ контрольных символов,

можно

представить

последовательностью С1г Сл

Ск

.tez,

где

с

и

е в двоичном коде

принимают значения 0 или

I .

69

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

 

e^vL jC ^o C j^® ...

®oCjnCK-JE0c£/ t Cc,

ш

где

J- = 1 , 2 , . .. ,

Ъ ;

oCjc - коэффициенты, равные 0

или I;

otji

Z 0 и ©

- знаки

суммирования по модулю два:. Значения

выбираются по определенным правилам, установленным

для

данного вида кода.

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

образуется по правилу (15.I ) вторая группа контрольных символов

 

е - - £

оіп d

 

J

£ t f о

і

Затем производится

сравнение

обеих групп контрольных символов

путем их суммирования по модулю.два:

/г,

 

t>

 

Ше ; е " ...е {

( я #

^

•>.

 

Полученное число К

называется контрольным числом или синдро­

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

X j-e j(В e f

» в следовательно, и контрольное числоЛГ

будут равны нулю; При появлении ошибок некоторые значения X

могут оказаться равными I . В этом случае X £ о,что и позволя­

ет обнаружить ошибки.

Таким образом, контрольйоѳ

число К оп­

ределяется путем

Z

проверок на четность.

 

Для исправления

ошибок знание одного факта

их возникнове­

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

70

что позволяет по известному контрольному числу определить ме­

сто положения ошибок и исправить

их.

 

 

Контрольное

число

записывается в двоичной

системе,по­

этому

общее

количество различных

контрольных чисел,

отличающих­

ся от

нуля,

равно

<2*-/

. Очевидно, это количество должно

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

ких ошибок равно K+Z, , В этом

случае должно выполняться ус­

ловие

 

і ък+ г .

(;fS.5)

формула (15,3) позволяет при заданном количестве информационных символов К определить необходимое число контрольных символов Ъ , с помощью которых исправляются все одиночные ошибки.

Код с четным числом единиц. Инверсный код. Рассмотрим не­ которые простейшие систематические коды, применяемые только для обнаружения ошибок. Одним из кодов подобного типа является код с четным числом единиц. Каждая комбинация этого кода содержит помимо информационных символов один контрольный символ, выбира­ емый равным 0 или I - так, чтобы сумма единиц в комбинации' всегда была четной. Примером могут служить пятиэначные комбина­ ции кода Бодо, к которым добавляется шестой контрольный символ: ІОІОЦ и 0X100,0. Правило вычисления контрольного символа можно

выразить на основании (15.1)

в следующей форме:

Сі

Отсюда вытекает,

что для любой комбинации сумма всех

символов по

модулю два будет

равна Нулю (

2L0 - суммирование по модулю):

 

к

 

(м )

 

e ® Z .c ^ o .

Это позволяет в декодирующем устройстве сравнительно просто производить обнаружение о'іэдйіок путем проверки на четность. На­ рушение четности имеет место при появлении однократных, трехкра­ тных и в общем случае ошибок нечетной кратности, что и дает возможность их обнаружить. Появление четных ошибок не изменяет четности суммы (15 .4), поэтому такие ошибки не обнаруживаются,

К достоинствам кода следует отнести простоту кодирующих и

71

декодирующих устройств, а также малую избыточность jU=4f(-l+K) » однако последнее определяет и его основной недостаток - сравни­ тельно низкую корретирующую способность.

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

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

на 0. При декодировании происходит сравнение принятых информаци­ онных и контрольных символов. Если сумма единиц в принятых ин­ формационных символах четная, то соответствующие друг другу ин­ формационные и контрольные символы суммируются по модулю два. В противном случае происходит такое же суммирование, , но с инвер­ тированными контрольными символами. Другими словами, в соответ­

ствии с (15.2) производится

% проверок

на четность. Ошибка

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

Анализ показывает,

что

при

К

5

наименьшая кратность

нѳобнаруживаемой ошибки

^

= h.

Причем

 

не обнаруживаются толь­

ко те ошибки четвертой кратности, которые искажают одинаковые номера информационных и контрольных символов. Например, если передана комбинация 10100,10100, а принята 10111,10111, то та­

кая

четырехкратная

ошибка

обнаружена не будет, так как здесь

все

значения X'j равны 0 .

0

 

Инверсный код

обладает

высокой обнаруживающей способностью,

однако она достигается ценой сравнительно большой избыточности,

которая, как нетрудно определить, составляет величину

ju, = 0 ,5 .

Коды Хеыминга. К этому типу кодов обычно относят

система­

тические коды с кодовым расстоянием

& = 3, которые

позволяют

исправить все одиночные ошибки.

 

 

Рассмотрим построение семизначного кода Хемминга, каждая

комбинация которого содержит четыре

информационных и три конт­

72

рольных символа. Такой код, условно

обозначаемый "7 .4", удов­

летворяет

неравенству (15.3) и имеет

и зб ы то ч н о сть ^= ^^ -

-jß- .

Если

информационные символы с

занимают в комбинации

пер­

вые четыре места, то последующие три контрольных символа обра­ зуются по общему правилу (15.I) как суммы:

ej =оС}1с, Q tL ji сх © ot^ C l© оLjvC„. (G *)

Декодирование осуществляется путем трех проверок на четность

(15.2):

 

 

 

 

 

 

 

 

Ä , = e / © 6 / = e / © g o06,t C i,

1

 

 

Ъ - - е ± е е ^ е ; @ £ ^ с : ,

У

«xeJ

Так как

X j

равно 0 или I ,

то

всего монет быть

восемь конт­

рольных

чисел

Х=*£,х,грс3

: 000, 100,

010, 001, ОН, НО и

I I I . Первое

из

них имеет место

в случае

правильного приема, а

остальные семь появляются при

наличии искажений

и должны ис­

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

Если искажен один из контрольных символов

или

' »

то, как следует из (15 .6), контрольное число

примет соответст­

венно одно из трех значений: 100, 010 или 001. Остальные четы­ ре контрольных числа используются’ для выявления* ошибок в инфор­ мационных символах. Порядок присвоения контрольных чисел оши - бочным информационным сиволам может устанавливаться любой, на­ пример, как показано в табл. 15 .I . Нетрудно показать, что это­ му распределению контрольных чисел соответствуют коэффициенты

°^с , приведенные

в табл.

15.2.

 

 

Таблица

_ „

 

 

 

 

 

15.I

Искаженный символ

С-і

Cz

С*

Сц

Ь

Контрольное число

“ 0Т Г

IOI

1IQ

III

100

010 001

73

Таблица 15.2

 

об// = 0

= I

<*rt = I

oiiif

= I

е*

=

I

oCjjl= 0

i

= I

oCz‘z

- I

е5

°бзѵ =

^

= I

o(-3i

- 0

0СЗѴ

~ I

Если подставить коэффициенты оС^

в выражение (15 .6),

то

получим

 

 

 

 

 

 

х= е',® сІ® С ь@ с;, 1

 

 

 

Лз=е3'®с,'®с±®с«. ,

 

 

 

При искажении одного из информационных символов становятся

 

равными единице те

суммы сс

, в

которые

входит

этот символ.

 

Легко проверить, что получающееся

в этом

случае

контрольное

чи­

сло JC=ä;f СС^х3

согласуется с

табл.

15 .1. Нетрудно заметить

что первые четыре

контрольные

числа табл. I5 .I

совпадают со

 

столбцами табл. 15 .2. Это свойство дает возможность при выбран­

ном распределении

контрольных

чисел составить таблицу коэффици­

ентов

otji

, Хаким образом,

при одиночной ошибке можно вычи­

слить

контрольное

число, позволяющее по табл. 15 .I определить

тот символ кодовой комбинации, который претерпел искажения. Исправление искаженного символа двоичной системы состоит в про­ стой замене 0 на I или I на 0.

Здесь был рассмотрен простейший способ построения и деко­ дирования кодовых комбинаций, в которых первые места отводились информационным символам, а соответствие между контрольными чи­ слами и ошибками определялось таблицей. Вместе с тем существует более изящный метод отыскания одиночных ошибок, предложенный впервые самим Хеммингом. При этом методе код строится так, что контрольное число в двоичной системе счисления сразу указывает номер искаженного символа. Правда в этом случае контрольные символы необходимо располагать среди информационных, что усло­ жняет процесс кодирования. Для кода »7.Ф" символы в комбинации должны размещаться в следующем порядке:S^e^C^e^C^-CgCf ,

А*(х)

а контрольное число вычисляться по формулам

х 1= е / ©

с ' 0 с? ® с ', 1

 

Яя.=еі® с 'а ѳ с 6'® сJ,

Ш:з)

Так, если

произошла ошибка б информационном

символе Cs ' ,

то контрольное

число

Х.= х,х^рс3= Ю І, что соответствует чис­

лу 5 в двоичной системе.

В заключение отметим, что в коде "7.4" при появлении мно­ гократных ошибок контрольное число также может отличаться от нуля. Однако декодирование в этом случае будет проведено непра­ вильно, так как оно рассчитано на исправление лишь одиночных ошибок.

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

мер, ОН, НО, Ю І.

 

 

 

 

Комбинации

п,

-разрядного двоичного циклического

кода

удобно

представлять

в виде

полиномов степени

( л -4) ,

коэффи­

циентами которого

являются

символы кодовой комбинации. Например:

ОН = 0

I X ' + I Х°

= X + I ; НО =

Л>

; ЮІ =

=I .

Другое важное свойство циклического кода заключается в том, что построение кодовой комбинации возможно путем умножения ком­

бинации первичного кода на некоторый порождающий полином

<Z(x):

А(х,)=А *(х) С(х.).

Например, кодовая комбинация первичного кода А* = х. = ю при порождающем полиноме Сг(х) -= х + I образует следующую кодовую комбинацию циклического кода:

А(х)-A*(x)Qlx.) =xfxi-i)=x*-+x~ НО.

75

Эти свойства циклического кода приводят к сравнительно не­ сложным техническим средствам кодирования и декодирования, что объясняет широкое применение кода.

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

® 101

Ѳ 011

w

II I

^ I O I

 

010

HO

Определим операцию умножения. При умножении полиномов по обыч­ ным правилам с приведением подобных членов по модулю два может

нарушиться свойство цикличности, т .е .

может быть получен поли­

ном степени выше, чем

- I . Поэтому операция умножения ве­

дется но следующим правилам:

 

 

 

 

1. Полиномы перемножаются по обычным правилам с приведени­

ем подобных членов по модулю два.

 

 

П/

2. Если старшая степень полученного полинома не превышает

- I ,

то этот

результат является

окончательным.

п

3. Если старшзя степень полученного полинома превышает

- I ,

то этот полином делится на

 

+ I , и результатом ум­

ножения считается остаток от деления.

 

 

 

 

Действительно, один такт циклического переиоса эквивален­

тен

умножению не

X

. Но кодовая комбинация

+

О о

после у м н о ж е н и я ^ . , +ah.iXn'+'...+CL0)x должна в ре­

зультате

циклического

переноса образовать коыоимацию

получим

, + djx, + CCn.-i

• Выполняя действия, указанные в п .І-3 ,

 

 

 

 

 

 

 

a n.-1x '+ a n.-z.xп +... ä 0 X

І Л І £ / _

 

Ѳ а.п.<хлч.ал -<

 

I

a «-i

 

 

 

 

 

 

Ä / w -о с т а т о к .

Видно, что остаток равен искомой комбинации.

 

 

Рассмотрим требования, предъявляемые к порождающему поли­

ному

Сг(зо) . Во-первых, все комбинации

циклического кода

76

/4)должны долиться на него без остатка, так как имеет мес­ то соотношение

А(ос.)~А*(х)'£(х).

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

 

 

Ас(х,) -X*

 

 

A jfr)

 

 

 

 

 

х л +і

~L

х л+і ’

 

 

 

где

С = 0,

если

степень

 

полинома Аі(х) сс*

меньше

п -

I,

либо

С = 1 ,

если

степень

полинома А^(х) зс к больше

/2. -

1;

Аі

- остаток

от деления.

 

 

 

 

 

Следовательно, можно

записать

 

 

 

 

A *(x)x*‘£(x}-C(x°+/)+A;(x)

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

-Ы * > -А У х )* * -С

ж * ) '

 

 

 

 

а ( х )

{

 

 

6

 

 

 

 

Кодовая комбинация Ajfa) будет делиться без остатка на

 

порождающий полином Сг(х)

,

если

I будет делиться без

остатка на £г(х) . Следовательно, порождающий полином<т(х)

 

должен быть одним из делителей полинома

I . Например,для

трехразрядного циклического кода порождающий полином должен

 

быть одним из

делителей

X +

I .

Имеем

 

 

 

Х А+ І=(х +і)(эс,^4-Х + *);

ВЫбйійМ

<т(х) = Х+1.

s

Пусть имеем первичную кодовую комбинацию

А*(х)= И -Х.+1,

77

тогда соответствующая комбинация циклического кода будет

A{x )=A"G=(x +'I)(x .+4)=X'*-+ X ч-х +4= Х*-+І= Л>/.

Можно убедиться, что остальные кодовые комбинации, полученные из ІОІ циклической перестановкой, будут делиться на(f-(x)~jc+S

без остатка. Следовательно, при Сг(х) - . £ + / кодовые комбина­ ции могут быть получены как с помощью циклической перестановки, так и с помощью умножения первичных комбинаций на порождающий полином.

Если порождающий полином не является делителем зоА+4 , а равен, например,

£(йС.)=Х ,

ТО при А*(х) в I I получим

А(х.)~(х.+і)х. - -НО.

Здесь кодовая комбинация ІОІ, получаемая циклической переста­

новкой, на порождающий полином

х

без

остатка не

де­

лится.

 

 

 

комбинация Ъ(х)

Любая принятая

по каналу

связи кодовая

может быть представлена в виде суммы по модулю два передаточ­

ной комбинации А(х,) и вектора

помехи N(x.)

:

 

 

В(х>) -А (х ,)® М х ).

 

 

 

 

При делении В(х) на порождающий полином Сг(х.) ошибка мо­

жет быть обнаружена,

если вектор помехи

А/(х)

не делится

н а ,

(г(х)без остатка.

Исправлено

может быть столько ошибок,

сколь­

ко разных остатков будет получено при делении различных полино­

мов А/(х)

на порождающий полином Сг(х) . Пусть степень порожда­

ющего полинома

 

 

 

/тг - а - к ,

 

где

К -

разрядность первичной комбинации (до внесения избы­

 

п> -

точности);

 

 

разрядность циклического кода.

 

Тогда

наибольшая разрядность

остатков будет пь~ I . Наи­

большее число различных остатков

будет равно Z -■/ (исключая нуле-

76

Соседние файлы в папке книги из ГПНТБ