
книги из ГПНТБ / Гойхман Э.Ш. Основы теории передачи информации в автоматизированных системах управления
.pdfОтличие заключается лишь в том, что информационных символов может быть любое количество, т. е. в /г-значной кодовой комбина ции п—1 позиций отводится под информационные символы, на по следней (п-й) позиции располагается контрольный.
5.2.2. Семиэлементный код
Как известно, с помощью семиразрядного двоичного кода' мож но образовать 27 = 128 различных комбинаций. Их можно разбить на группы в зависимости от соотношения символов «1» и «О» в каждой комбинации. В результате получим следующую таблицу.
Таблица 5.2
Количество! |
Пример |
Число возможных |
колич. 0 |
кодирования |
комбинаций |
07 |
ооооооо |
1 ' |
16 |
0100000 |
7 |
2/5 |
0010100 |
21 |
3/4 |
1101000 |
35 |
4 3 |
1011100 |
35 |
5,2 |
1011101 |
21 |
6/1 |
1011111 |
7 |
7/0 |
1111111 |
1 |
В семиэлемептном коде, применяемом для обнаружения оши бок, используются только комбинации с определенным соотноше нием единиц и нулей.
На практике наибольшее распространение получили коды с со отношением 3/4 и 4/з- Для этих кодов количество возможных ком бинаций, как видно из таблицы 5.2, равно 35. Этот код обеспечи вает обнаружение всех ошибок, за исключением тех случаев, когда несколько единиц превратятся в пули, а столько же нулей в еди ницы. Такие ошибки называют ошибками смещения.
Вероятность необнаруженной ошибки для семиэлсментного ко да определяется формулой
РН0= С \С 'яр \1 - р у + С \ С \ р \1 - р ) Ч С \ С * яр% 1-р) = = \2 р % 1 -р у > + \8 р '(\-р )4 4р<‘(\- Р ),
где |
|
|
|
|
р—вероятность искажения символа; |
|
|||
С \С ' г—количество |
вариантов трансформации „1" в |
„0“ и „0“ |
||
в „1“; |
вариантов |
трансформации двух |
единиц в |
|
СУС32—количество |
||||
два нуля и двух нулей в две единицы; |
|
|||
СДСз8—соответственно трех единиц и трех нулей. |
|
|||
Вероятность обнаруженной |
ошибки |
|
||
где |
|
что |
кодовая комбинация |
принята |
(1 —р )1—вероятность того, |
||||
без искажения. |
|
|
|
|
210
Вотличие от шестиэлементного кода, в этом коде все семь сим волов используются и для передачи информации, и для проверки. Поэтому для преобразования обычного пятиэлементного" кода в семиэлементный и обратно необходимы специальные преобразо ватели.
§5.3. Циклический код
Впоследнее время разработан новый класс помехоустойчивых кодов — циклические коды, которые могут применяться как в ка честве обнаруживающих, так и в качестве корректирующих.
Название этого класса кодов произошло от основного их свой ства, котор'ое ‘заключается в следующем: если кодовая комбина
ция ао. «ь Й2-. о-п принадлежит коду А, то-комбинация ап, ао, а\, а2... а п -ь полученная циклической перестановкой элементов, так же принадлежит коду А.
Рассмотрим принцип построения этого кода. Цифры двоичного кода можно рассматривать как коэффициенты многочлена пере менной х. Например, записанное в двоичном коде сообщение 1001101 может быть представлено следующим многочленом:
1. х'Ч-0 ■ +0 ■.v Ч -1 • х А-И ■ -1-0 • * -И =*'* + + х2 + 1.
При таком представлении кодов полученные многочлены рассмат риваются в соответствии с законами обычной алгебры, за исклю чением того, что сложение осуществляется по модулю 2, т. е.
1 • х " = 0; 0■ х а-\ 0• х«=0.
Принцип же обнаружения ошибок при помощи циклического кода заключается в следующем: в качестве «разрешенных» кодо вых комбинации принимаются такие комбинации, которые делят ся без остатка па заранее выбранный исходный многочлен. Если па приемном конце это условие не соблюдается, то это означает, что принятая комбинация искажена.
Кодирование в данном случае может быть осуществлено прос тым перемножением кодовой комбинации, подлежащей передаче на исходный многочлен. Однако удобнее применять несколько иной метод, при котором в полученной кодовой комбинации ин формационные и поверочные символы имеют вполне определенные места.
Циклический код строится следующим образом: исходя из того, какое количество ошибок необходимо обнаруживать в каждой ко довой комбинации, выбирается исходный многочлен Р(х) степени к, где к = п—т — число поверочных символов в кодовой комби-, нации.
Показатель степени исходного многочлена к характеризует код с точки зрения обнаружения Групповых ошибок. Можно показать
121, что циклический код с исходным многочленом степени к об наруживает 100% групповых ошибок длительностью не более к.
211
При большей длине групповых ошибок часть из них.пе будет об наружена.
Под групповой ошибкой будем понимать группу посылок, в ко торой первые и последние символы искажены. Промежуточные символы могут быть искаженными или неискаженными. Примеры групповых ошибок в четыре символа:
\ О О Ж Ш В 1 1 , *
l O Q W O t i H
Кодирование сообщения осуществляется в следующем порядке: многочлен G(x), отображающим двоичный код числа, умножается на х к. При этом длина
кодовой комбинации G(x) увеличивается на к |
разрядов, которые |
предназна |
чены для поверочных символов. |
|
|
Произведение д(х) х к делят на исходный |
многочлен Р(х) и |
остаток от |
этого деления R(x) складывают с произведением |
G (x)xK. Полученная кодовая |
комбинация, описываемая многочленом F(x)~G{x) х к-\-R{x), делится без остат ка па исходный многочлен. При таком методе построения коэффициенты при высших степенях х являются обозначениями информационных символов, а ко эффициенты при низших степенях—поверочными.
На приемном конце принятая комбинация [G(x)xi< -| R(x)}' делится на ис ходный многочлен Р(х).
Если деление осуществляется без остатка, то ошибки нет либо произошла сшибка, которая не может быть обнаружена. Если же принятая комбинация не делится на исходный многочлен, то произошла ошибка.'
П р и м е р 5..1. Рассмотрим код |
с /г=15, т = 1 0 , /с=5, для которого исполь |
зуется исходный многочлен Р (х)—хъ- |
|
Для кодирования сообщения |
ЮООЮОИЛ, соответствующего многочлену |
G(x)=x'l+ x ,-\-xt -ir I, разделим G(x)x:' на Р(х):
( x ^ + x ^ + x i + x -): (X - (~л‘4 j-x2+ \) = х'-,+ х !'-\-х‘-^х^+ хг+ х 4 -1 .
Остаток R(x)—1 -j-x.
В результате кодовый многочлен F(x) = G(x)x:'-\rR(x) будет иметь вид
F(x) - (хи + х 'Ц - х ’+ х г‘) -Н * + 1).
В двоичном коде этому многочлену соответствует кодовая комбинация
1000100101 |
00011 |
информационные |
-поверочные |
символы |
символы. |
Способность циклического кода обнаруживать ошибки зависит от того, ка кой выбран исходный многочлен. Так, например, для P (x)—xs-\~x*-\-\; к = 9; ,ныакс“ б02 имеется возможность обнаруживать две ошибки при любом их рас положении в кодовой комбинации, все ошибки длительностью в 9 и менее сим волов и 99,8% более длительных искажений [2]. Выбор исходного полинома производится для каждого конкретного' случая отдельно.
* Крестом показаны искаженные посылки.
212
В случае применения циклического кода в качестве корректирующего места искаженных символов определяются путем анализа остатка, получившегося пос ле деления принятой кодовой комбинации на исходный многочлен.
Большим достоинством циклических кодов является простота кодирования и декодирования. Кодирующие и декодирующие устройства в этом случае пред ставляют собой регистры с обратными связями. На рис. 5.2 показана схема ко дирующего устройства с исходным многочленом Р (х )= а'я+ х+1.
7" - триггер
—срегмосгпор по
Рис. 5.2
В регистре с обратными с е я з я м и производится деление передаваемой кодо вой комбинации на исходный многочлен. При помощи линии задержки произво дится смещение передаваемой кодовой комбинации на к символов (в данном случае к==3), что равносильно умножению многочлена, отображающего переда ваемую кодовую комбинацию, на х'с .
Схема работает следующим образом.
Передаваемая кодовая комбинация последовательно подается на вход ре гистра и линии задержки. Ключ К2 находится в положении /, ключ К\ — в по ложении «включено».
После того как последний импульс с выхода линии задержки передан в ли нию связи, ключ К2 переключается в положение 2, a Ki — в положение «выклю чено» и содержимое регистра (остаток от деления) передается в линию связи.
На приемной стороне при помощи подобной же схемы производится деле ние полинома, отображающего, принятую кодовую комбинацию, на исходный многочлен
Р(х )= х * + х + 1.
§5.4. Коды для корректирования ошибок
5.4.1.Код Хе.мминга для исправления одиночной ошибки
Код Хэмминга, как и циклический, относится к классу система тических кодов.
Под систематическим кодом следует понимать код, в котором символы могут быть принципиально разделены на информацион ные и поверочные. При этом места поверочных и информацион ных символов в кодовой комбинации вполне определенные.
Рассмотрим принцип построения этого кода.
213
Пусть в /г-разрядиом коде для передачи информации исполь зуется т символов. Остальные п—т = к символов являются пове рочнымиКаждая из к поверочных посылок.образуется в резуль тате одной проверки на четность (суммирования по модулю два) определенного сочетания информационных символов. Таким обра зом, сумма охваченных одно# проверкой информационных и соот ветствующего поверочного символов всегда является четным чис лом. Позиции поверочных символов вполне определенные.
На приемном конце кодовая комбинация также подвергается к проверкам на четность. При этом каждая проверка охватывает не только соответствующие информационные символы, но и сфор мированные в результате их же проверки на четность поверочные символы. Поэтому при неискаженной передаче каждая проверка в кодовой комбинации даст четное число. При искажении симво лов в результате каждой проверки получается нечетное или четное число в зависимости от того, была ли обнаруживаемая ошибка на проверяемых позициях i/ли пет. Результаты проверок записываются справа палево. Если при проверке получается нечетное число, за писывается единица, четное — ноль. Таким образом получается к-разрядпое число, которое называют поверочным числом.
Потребуем, чтобы это число указывало номер позиции, па ко торой произошло искажение.
Искажение может иметь место на любой из п позиций либо вообще отсутствовать. Любое из п+1 возможных событий долж но отображаться /с-разрядным поверочным числом. Это возможно
лишь в случае соблюдения неравенства 2К п-М. Учитывая, что
2"
ство дает возможность’ определять максимальное число информа ционных символов для данного значения п или минимальное число п для данного количества информационных символов-.
Результаты расчета даны в таблице.
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 5.3. |
п |
з |
4 5 |
6 |
7 |
8 |
9 |
10 11 12 13 14 |
1-3 |
|||||
т |
1 |
1 |
2 |
3 |
4 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
к |
2 |
|
з |
3 |
з |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
|
|
|
|
|
|
|
|
|
|
|
Определим номера позиций, которые необходимо проверять в каждой из к проверок.
Если при первой проверке обнаружена ошибка, то в первом разряде поверочного числа £>удет единица. Поскольку поверочное число должно представлять собой записанный в двоичном коде помер позиции искаженного символа, в первую проверку должны включаться позиции, номера которых в двоичпом^коде имеют еди
ницу в |
младшем |
разряде. Следовательно, согласно таблице |
5.3, |
в первую проверку должны быть включены 1, 3, 5, 7 и т. д. |
(не |
||
четные) |
позиции |
(см. таблицу 5.4). |
|
214