Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга для рефератов.doc
Скачиваний:
7
Добавлен:
27.09.2019
Размер:
617.47 Кб
Скачать

Выявление недостоверной информации

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

Под кодом будем понимать совокупность двоичных цифр, соответствующих символу. Коды, позволяющие обнаруживать и исправлять искажения, возникающие при передаче, хранении или преобразовании информации, называются корректирующими. Предположим, что нам для передачи, хранения и обработки наших сообщений достаточно иметь алфавит, содержащий N символов, а система управления и связи может воспринимать сообщения, имеющие алфавит, состоящий из N0 символов, причем N0 > N.

Примером может служить телеграфная связь. По телеграфу можно передавать все буквы русского и латинского алфавитов и цифры от 0 до 9, всего N0 символов. Мы же передаем такие сообщения, которые используют только буквы — N символов. В процессе передачи код каждого из N символов может подвергаться искажению. Искаже­ния заключаются в том, что код каждого символа-буквы может превратиться в код любого другого символа-буквы или символа-цифры. При получении в нашем примере на приемной стороне кода символа-буквы мы не можем сказать, исказился передаваемый символ или нет. Если же мы получаем на приемной стороне код символа-цифры, очевидно, что произошло искажение кода передаваемого символа, так как код символа-цифры передан быть не мог. Это следует из условий примера. Теперь мы можем зафиксировать факт искажения информации или, как обычно говорят, можем обнаружить ошибку.

Код каждого передаваемого символа-буквы может в ре­зультате искажений превратиться в код одного из N0 сим­волов, которые могут восприниматься системой. Так как мы можем передавать код N символов-букв, то число раз­личных искажений при передаче может бытьN-N0. Одна­ко мы можем обнаруживать искажения, заключающиеся в переходе кода символа-буквы в код символа-цифры. Таких искажений может быть для кода каждого символа-буквы N0-N. Поскольку на передаче используется N символов-букв, то мы можем обнаруживать N× (N0-N) искажений. Таким образом, доля обнаруживаемых среди всех возможных искажений равна:

.

Очевидно, что если нам для передачи необходимо N символов, а фактически может передаваться N0>N сим­волов, то в коде символов заложена избыточность. Чтобы обнаружить искажение символа, можно использовать следующий метод. Запомнить коды всех N символов, которые могут появиться в системе. Затем появляющийся код символа сравнивать с каждым из N кодов символов. Если код хотя бы одного из N символов с ним совпадает, считается, что в принятом коде символа искажения не обнаружены, если же среди кодов N символов нет сов­падающего с появившимся, то последний считается иска­женным. Такой метод обнаружения искаженных кодов символов достаточно громоздкий, так как нужно каждый раз прибегать к сравнению запомненных символов с при­нятым. При большом N это становится затруднительным. На практике используется другой метод, заключающийся в том, что в код символа при его передаче вводятся благо­даря избыточности дополнительные признаки. Проверка наличия этих признаков в появившемся символе позволя­ет судить о наличии искажений в нем.

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

Код с контролем на четность относится к системати­ческим кодам, т. е. кодам, содержащим информационные и проверочные двоичные цифры. Символы, являющиеся цифрами 0÷9, представляются в этом коде в виде четы­рехразрядных чисел (табл. 1). К каждому двоичному числу приписывается дополнительный пятый контроль­ный двоичный разряд, который является избыточным. Правило выбора двоичной цифры в контрольном разряде такое: 1— если число единиц в четырех двоичных разря­дах нечетное, 0 — если число единиц четное. Признаком отсутствия искажений в коде символа является наличие четного числа единиц.

Таблица 1 - Кодирование символов с контролем на четность

Символ

Код

Код с контролем

на четность

Символ

Код

Код с контролем

На четность

0

0000

00000

5

0101

01010

1

0001

00011

6

0110

01100

2

0010

00101

7

0111

01111

3

0011

00110

8

1000

10001

4

0100

01001

9

1001

10010

Для этого кода характерным является то, что искаже­ние одной двоичной цифры в любом разряде ведет к нару­шению четности. К нарушению четности ведет также искажение трех или пяти двоичных цифр. Однако, если в двух или четырех двоичных разрядах произойдет иска­жение двоичных цифр, то искажение в коде символа не будет обнаружено. Для приведенного кода с контролем на четность N0=32,N=10. Для принятого в коде мето­да обнаружения искажений N=16, и соответственно

.

Комбинации двоичных цифр 10101, 10110, 11001, 11010, 11100, 11111 же будут рассмат­риваться как коды искаженных символов, поскольку основ­ной признак — четность числа двоичных единиц — в коде присутствует. Эти комбинации при необходимости могут быть использованы, например, для обозначения признака окончания слова, конца сообщения и т. п. Если же в их использовании нет необходимости, то для снижения до 10 необходимо вводить дополнительные проверки кодов появившихся символов на их соответствие названным комбинациям двоичных цифр.

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

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

Вероятность появления искажений, которые не будут обнаружены, в кодах с контролем на четность, содержа­щих 5 двоичных цифр, обозначим через Р0. Будем счи­тать, что искажения двоичных цифр независимы. Тогда вероятность появления необнаруженных искажений опре­деляется для нашего кода по формуле

.

В коде «2 из 5» представляются обычно символы в виде цифр 0÷9. Это так называемый код с постоянным весом. Весом кода принято называть количество единич­ных двоичных разрядов, которое он содержит. Характер­ной особенностью этого кода является наличие двух единичных двоичных разрядов в коде каждого из симво­лов. С помощью такого кода может быть представлено

символов (табл. 2).

Обнаружение искажений в коде символа осуществля­ется путем проверки в нем числа единиц. Для кода «2 из 5», как и для кода с контролем на четность, характерно то, что искажение одной двоичной цифры в любом разряде ведет к отклонению числа единиц от двух в коде символа. В самом деле, появление новой единицы вместо нуля приводит к трем единицам, а ее исчезновение — к одной единице в коде символа.

Таблица 2 - Кодировка символов кодом«2 из 5»

Символ

Код

Символ

Код

0

00011

5

01010

1

00101

6

10010

2

01001

7

01100

3

10001

8

10100

4

001100

9

11000

Аналогично можно доказать, что искажения трех любых двоичных цифр, а также в некоторых случаях двух двоичных цифр приводит к отклонению числа единиц от двух в коде символа. Не могут быть обнаружены в коде символа такие искаже­ния двоичных цифр, которые приводят к одновременной замене 0 на 1 и 1 на 0 в одной или двух парах двоичных разрядов — это так называемые искажения смещения. Например, если код 01100 будет преобразован в резуль­тате искажений в код 10010. Здесь произошла замена 1 па 0 и 0 на 1 во 2-м и 1-м, а также в 3-м и 4-м двоичных разрядах. Таким образом, код «2 из 5» обнаруживает искажение в одном из двоичных разрядов кода символа, а также виды искажений, которые приводят к изменению числа единиц в коде символа. Для кода «2 из 5» число N=10, a N0=25= 32.

Доля обнаруживаемых искажений для кода «2 из 5» выше, чем для кода с контролем на четность с рассмотрен­ным для него методом обнаружения искажений. Код «2 из 5» используется для представления цифровой ин­формации в автоматизированных системах обработки цифровой информации. Вероятность появления необнару­женных искажений определяется формулой

При этом считается, что искажения двоичных цифр про­исходят независимо.

Код «3 из качественно обладает свойствами, близ­кими к свойствам кода «2 из 5». Он используется тогда, когда необходимо передавать более 10 символов, напри­мер, в системах передачи информации с обратной связью для передачи по каналу обратной связи тестового сигна­ла. По наличию трех двоичных единиц в коде определяют отсутствие искажений в прямом канале. Для этого кода

Для кода «3 из 7» доля обнаруживаемых искажений среди всех возможных искажений наибольшая в сравнении с кодами «2 из 5» и с контролем четности.

Вероятность появления необнаруживаемых искажений для кода «3 из 7» при условии независимости искажений каждой двоичной цифры определяется по формуле:

При независимых ошибках двоичных, цифр нужно так выбирать разрешенные коды символов, чтобы наиболее часто встречающиеся комбинации искаженных двоичных цифр приводили к преобразованию разрешенных кодов символов в неразрешенные. В этом случае обнаружива­ющая способность кода будет тем выше, чем большим количеством двоичных цифр отличаются разрешенные коды между собой. Например, коды двух цифр, использу­ющие код «2 из 5» 01100 и 01010, отличаются, между собой двумя двоичными цифрами (3-я и 4-я при счёте слева направо).

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

Кратность q обнаруживаемых искажений двоичных цифр в коде символа связана с кодовым расстоянием и следующим соотношением:

d=q+1

Если, например, код символа имеет кодовое расстояние, равное 2, то q=1 и, следовательно, в таком коде может быть обнаружено искажение одной двоичной цифры. Существуют коды символов, позволяющие не только обнаруживать искажение двоичных цифр, но и исправ­лять эти искажения.

Предположим, что нам известны комбинации иска­женных двоичных цифр, которые должны быть исправ­лены. Естественно, что код символа, содержащий эти комбинации искаженных двоичных цифр, не должен быть разрешенным кодом. Кроме того, неразрешенные коды символов, содержащие разные комбинации искаженных двоичных цифр, подлежащих исправлению, должны отли­чаться друг от друга. Нетрудно заметить, что число таких различных неразрешенных кодов будет равно Nо — N. Следовательно, максимальное количество рассматриваемых комбинаций двоичных цифр не может превышать N0N. Принцип исправления определенных заранее искаженных комбинаций двоичных цифр состоит и том, что при полу­чении неразрешенного кода символа производится отож­дествление его с определенной комбинацией искаженных двоичных цифр. После выявления такой комбинации двоичных цифр легко осуществить восстановление разре­шенного кода символа, который вследствие воздействия помех был превращен в неразрешенный. Поскольку мы можем обнаруживать N (N0 — N), а исправлять N0N искажений кодов символов, то доля исправляемых иска­жений равна

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

d 2q+1.

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

Рассмотрим для примера корректирующий код, ис­правляющий однократные ошибки. Одним из таких кодов является код Хэмминга.

Хэмминг предложил способ построения систематиче­ского кода, который при кодовом расстоянии, равном трем, исправляет однократные искажения. Кодовая ком­бинация состоит из п разрядов, в которых записать двоичные цифры. Разряды делят на информационные, в которых двоичными символами записано передаваемое сообщение, и контрольные, предназначенные для реализации корректирующих свойств кода. Код строится таким образом, чтобы двоичное число, которое образуют запи­санные в контрольных разрядах двоичные цифры, указы­вало, в каком из разрядов при передаче произошла ошибка. Таким ошибочным разрядом может быть любой разряд ко­довой комбинации как информационный, так и конт­рольный. Контрольные разряды в коде Хэмминга располо­жены на 1, 2, 4, 8, 16... местах кодовой комбинации; ос­тальные разряды являются информационными.

В каждом контрольном разряде записываем результат сложения по модулю 2 двоичных цифр в определенных информационных разрядах. Для 1-го разряда суммиру­ем по модулю 2 цифры в 3, 5 и 7-м разрядах; получаем 0. Для 2-го разряда суммируем 3, 6 и 7-й разряды; полу­чаем 1, и для 3-го — 5, 6 и 7, получаем 0. Полная кодовая комбинация имеет вид 0110011.

Предположим, что в процессе передачи произошло искажение в 3-м разряде слева в результате чего вме­сто 1 принят 0 и кодовая комбинация имеет вид 0100011.

Проверка на приемном конце заключается в сумми­ровании по модулю 2 нескольких групп-разрядов и за­писи результатов в виде двоичного числа. В провероч­ные группы входят соответственно в первую —1, 3, 5, 7 разряды; во вторую — 2, 3, 6, 7; в третью — 4, 5, 6, 7 разря­ды. В результате трех проверок получаем число 011, указывающее в двоичной форме, что ошибки произошла в третьем разряде. Значение цифры в этом разряде надо заменить на обратное, после чего получаем правильную комбинацию.

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

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

Корректирующие коды, обладающие таким свойст­вом, называются арифметическими. Код Хэмминга так­же является арифметическим кодом. Он успешно применяется при кодировании информации в ЭВМ.

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