Читайте также:
|
|
Помехоустойчивость кода может быть повышена путем установления определенных зависимостей между элементами кодовых комбинаций. Примером такого кода является корреляционный код, который строится следующим образом.
Каждый элемент двоичного кода на все сочетания передается двумя символами, причем 1 преобразуется в 10, а 0 в 01. Вместо комбинации 1010011 передается 10 01 10 01 01 10 10.
Таким образом, корреляционный код содержит вдвое больше элементов, чем исходный (И = 1). На примере ошибка обнаруживается в том случае, если в парных элементах будут содержаться одинаковые символы, т.е. 11 или 00 (вместо 10 и 01). При правильном приеме вторые (четные) элементы отбрасываются, и остается первоначальная комбинация.
Код обладает высокой помехоустойчивостью, т.к. ошибка не обнаруживается, лишь когда два рядом стоящих различных символа, соответствующих одному элементу исходной кодовой комбинации, будут искажены так, что 1 перейдет в 0, а 0 в 1.
Инверсный код. В таком коде для увеличения помехоустойчивости к исходной n -разрядной комбинации по определенному правилу добавляется еще n - разрядов. В линию посылается удвоенное число символов. Правило образования кода следующее: если в исходной комбинации четное число единиц, то добавляемая комбинация повторяет исходную, если нечетное, то в добавляемых разрядах все 0 превращаются в 1, а 1 в 0 (т.е. комбинация инвертируется по отношению к исходной). Пример:
k | m | Инверсный код n = k+m |
Прием инверсного кода осуществляется в два этапа. На первом этапе суммируются единицы в первой основной группе символов k’.
Если принятое число информационных k’ символов число четное, то контрольные символы m инвертируются. После этого на втором этапе контрольные символы m сравниваются с символами k’, и при наличии хотя бы одного несовпадения вся переданная комбинация n = k+m элементов бракуется. Это поэлементное сравнение эквивалентно сложению по модулю
2. При отсутствии ошибок в обеих группах символов их сумма будет равна нулю:
1) 1110001 2) 1100001 3) 1110001
1110001 0001110 1111001
0000000 1101111 0001000
нет ошибок есть ошибки есть ошибки
1. - нет ошибок, сумма равна нулю.
2. - ошибка в пятом разряде, код был проинвертирован, сумма теперь ≠0.
3. - Ошибка в четвертом разряде проинвертированного кода, сумма ≠0.
Обнаруживающие возможности инверсного кода достаточно велики. Этому, в частности способствует метод построения кода. Добавление m символов приводит к увеличению минимального кодового расстояния.
Непомехозащищенные коды |
Отличительный особенностью непомехозащищенных кодов является наличие в их составе кодовых комбинаций, которые отличаются друг от друга лишь в одном разряде. Типичным кодом такого типа является двоичный код на все сочетания. Например, комбинации 0010 и 0011 отличаются друг от друга лишь в младшем разряде. Если помеха исказит первую комбинацию, то будет принят сигнал 0011 и будет принят сигнал и будет неясно, то ли пришла первая искаженная комбинация, то ли принята вторая неискаженная. Можно найти еще целый ряд комбинаций в том же коде, которые отличаются друг от друга только в одном разряде. Комбинации 0101 и 0111 - в 2-ом разряде комбинации 1110 и 0110 - в 4ом разряде и т.д. Есть различия в двух и больше разрядах, например, комбинации 1111 и 0001. Есть для каждой комбинации соседние комбинации, отличающиеся на один разряд: для 1111 имеем 0111, 1110, 1101, 1011. Все это делает двоичный код на все сочетания непомехозащищенным. Непомехоустойчивым или непомехозащищенным кодом называется код, в котором искажение одного разряда кодовой комбинации не может быть обнаружено. Иногда эти коды называются обыкновенными кодами. Рассмотрим примеры двоичных непомехозащищенных кодов. Двоичный код на все сочетания. Этот код полностью выражается двоичной системой счисления. Общее число комбинаций N = 2n / Единично-десятичный код. Каждый разряд десятичного числа записывается в виде соответствующего числа единиц. При этом разряды разделяются интервалами. Этот код неравномерный, хотя и может быть преобразован в равномерный путем приписывания в каждом разряде слева нулей, доводящих общее число символов в каждом разряде до 10. 11 111 1111 - 234 111 11111 11 - 352 Например, в первой строке записано число 234, при записи равномерным кодом оно примет вид 0000000011 00000000111 0000001111 Двоично-десятичный код. Каждый разряд десятичного числа записывается в виде комбинации двоичного кода. Двоично-десятичный код, в котором каждый разряд десятичного числа записывается точным двоичным числом, обозначается 8-4-2-1. в этом случае каждый разряд двоичного числа выражается 23-22-21-20. Сотни Десятки Единицы 00 0000 0000 0 Число единиц, или «вес» кода, в каждой комбинации доходит до 3. Иногда применяются другие двоично-десятичные коды, например код 2-4-2-1, т.е. 21-22-21-20. Этот код удобен при его инвертировании, т.к. инвертированный код всегда дополняет основной до числа 9, что также в ряде случаев имеет значения. Например, если инвертировать 1011 (цифра 5), то получится комбинация 0100, соответствующая цифре 4. 00 0000 0001 1 00 0000 0010 2 00 0000 0011 3 00 0000 0100 4 00 0000 0101 5 00 0000 0110 6 00 0000 0111 7 00 0000 1000 8 00 0000 1001 9 00 0001 0000 10 00 0001 0001 11 00 0001 0010 12 00 0001 0011 13 00 1001 1001 99 01 0000 0000 100 01 0000 0000 101 01 1001 1001 199 11 1001 1001 399 Число-импульсный код. Иногда его называют единичным или унитарным кодом. Кодовые комбинации отличаются друг от друга числом единиц. 00000 - пример пятиразрядного кода. Очевидно N = n Код Морзе. Относится к числу неравномерных кодов, в которых кодовые комбинации отличаются различной длительностью. В коде Морзе сигналы (буквы и цифры, условные знаки) передаются в виде точек и тире. Точка может быть записана как 1 и передаваться одним импульсом. Тире записывается тремя строчными импульсами (без интервала между ними). Интервал между точкой и тире означает нули. Одна кодовая комбинация (буква или цифра) отдельна от другой интервалом из совокупности трех нулей. Если длительности 1 и 0 одинакова и равны τ, то самая короткая комбинация (буква Е) по продолжительности равна 4τ, а самая длительная - 22 τ (цифра 0). В среднем длина кодовой комбинации равна примерно 9, 5τ. Различная длина кодовых комбинаций при передаче букв и цифр А - 10111 (· -) является недостатком кода Морзе, впервые Н - 11101 (- ·) примененного в 1844 году. С - 10101 (· · ·) Т - 111 (-) 1 - 1011101110111 (· - - -) 5 - 101010101 (· · · · ·) Код Бодо. Равномерный пятиэлементный телеграфный код. Максимальное число комбинаций N=25=32 Код Бодо передается без разделительных знаков А - 10000 Б - 00110 В - 01101 Г - 01010 |
Список литературы:
1) Блейхут Р. Теория и практика кодов, контролирующих ошибки
2) Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. Теория кодов, исправляющих ошибки
3) Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение
4) http://esis-kgeu.ru/
5) http://ru.wikipedia.org/
Дата добавления: 2015-08-10; просмотров: 386 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Коды с обнаружением ошибок | | | Экологическая обстановка |