П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4063 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6717 раз(а).

Учебник HTML.
Просмотров 3688 раз(а).

Руководство по PHP5.
Просмотров 5958 раз(а).

Хостинг через призму DNS.
Просмотров 4766 раз(а).

Подборка текстов стандартных документов.
Просмотров 56212 раз(а).

Учебник PHP - Самоучитель
Просмотров 3654 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8236 раз(а).

Внешние атаки...
Просмотров 4507 раз(а).

Учебник PHP.
Просмотров 3149 раз(а).

SSI в примерах.
Просмотров 156 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 3. Кодирование информации
9. Циклические коды.

К числу эффективных кодов, обнаруживающих одиночные, кратные ошибки и пачки ошибок, относятся циклические коды (CRC - Cyclic Redundance Code). Они высоконадежны и могут применяться при блочной синхронизации, при которой выделение, например, бита нечетности было бы затруднительно.

Один из вариантов циклического кодирования заключается в умножении исходного кода на образующий полином g(x), а декодирование - в делении на g(x). Если остаток от деления не равен нулю, то произошла ошибка. Сигнал об ошибке поступает на передатчик, что вызывает повторную передачу.

Образующий полином есть двоичное представление одного из простых множителей, на которые раскладывается число Xn-1, где Xn обозначает единицу в n-м разряде, n равно числу разрядов кодовой группы. Так, если n = 10 и Х = 2, то Xn-1 = 1023 = 11*93, и если g(X)=11 или в двоичном коде 1011, то примеры циклических кодов Ai*g(Х) чисел Ai в кодовой группе при этом образующем полиноме можно видеть в следующей табл. 3.1.

Основной вариант циклического кода, широко применяемый на практике, отличается от предыдущего тем, что операция деления на образующий полином заменяется следующим алгоритмом: 1) к исходному кодируемому числу А справа приписывается К нулей, где К - число битов в образующем полиноме, уменьшенное на единицу; 2) над полученным числом А*(2К) выполняется операция О, отличающаяся от деления тем, что на каждом шаге операции вместо вычитания выполняется поразрядная операция "исключающее ИЛИ": 3) полученный остаток В и есть CRC - избыточный К-разрядный код, который заменяет в закодированном числе С приписанные справа К нулей, т.е.

С= А*(2К)+В.

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

.П р и м е р. Пусть А = 1001 1101, образующий полином 11001.

Так как К = 4, то А*(2K)=100111010000. Выполнение операции О расчета циклического кода показано на рис. 3.2.

Таблица 3.1
Число Циклический код Число Циклический код
0 0000000000. 13 0010001111
1 0000001011 14 0010011010
2 0000010110 15 0010100101
3 0000100001 16 0011000110
5 0000110111 18 0011000110
6 0001000010 19 0011010001
..... ........ ....... .......

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

Рис. 3.2. Пример получения циклического кода

Общепринятое обозначение образующих полиномов дает следующий пример:

g(X) = X 16 + X 12 + X 5 + 1,

что эквивалентно коду 1 0001 0000 0010 0001. Этот полином используется в протоколе V.42 для кодирования кодовых групп в 240 разрядов с двумя избыточными байтами. В этом протоколе возможен и образующий полином для четырех избыточных байтов

g(X) = X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10 + X 8 + X 7 + X 5

+ X 4 + X 2+ 1.




[ Общее Содержание ]   

[ Назад ] [ Содержание раздела ] [ Вперед ]



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru