Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Аппаратурная реализация циклических кодов




Декодирование циклических кодов

Для обнаружения и исправления ошибок принятая комбинация делится на образующий многочлен g(х). Если остаток R(х) = 0, значит, комбинация принята без ошибок. Наличие остатка свидетельствует о том, что комбинация принята искаженной. Значение остатка совпадет с одним из опознавателей матрицы Н, который и укажет на местоположение ошибки по вектору ошибок.

1011

1011

1011

011 - ошибка в четвертом разряде

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

1011

1011

1011

1011

010 - ошибка во 2-м контрольном разряде

Существует более общий алгоритм обнаружения и исправления ошибок:

1. Принятая комбинация делится на образующий многочлен g(x). Если остаток R(x)<>0 то определяется вес остатка w. Если вес остатка равен или меньше числа исправляемых ошибок t (w<=t), то принятую комбинацию складывают по модулю 2 с остатком и получают исправленную комбинацию.

2. Если w>t, то производится циклический сдвиг на один символ влево и полученная после такого сдвига комбинация снова делится на образующий многочлен. Если вес полученного остатка w<=t, то циклически сдвинутую комбинацию складывают с остатком и затем после сложения циклически сдвигают в обратную сторону вправо на один символ (возвращают на прежнее место). В результате получаем исправленную комбинацию.

3. Если после циклического сдвига на один символ по прежнему w>t, то производят дополнительные циклические сдвиги влево. При этом после каждого сдвига осуществляется деление сдвинутой комбинации на g(x) и проверяется вес остатка. При w<=t сдвинутую комбинацию складывают с остатком и производят обратных циклических сдвигов вправо столько, сколько было сделано влево.

Пример 5.7. Необходимо проверить принятый код 1101110, для g(x)=1011 и t=1.

1. Принятый код 1101110 делим на g(x), находим остаток R(x)=111, w=3

2. Код 1101110 сдвигаем влево на один разряд, получаем 1011101. Делим на образующий многочлен g(x). Находим остаток R(x)=101, вес w=2

3. Снова производим сдвиг влево, получаем 0111011. Делим на g(x). Остаток R(x)=001. w=1

4. Складываем сдвинутую комбинацию с остатком 0111011+001=0111010

5. Производим два циклических сдвига вправо

0111010 -> 0011101 ->1001110

В результате получили исправленную комбинацию.


 

Циклические коды реализуются с помощью сдвиговых регистров. Схема кодирования (образуется с помощью деления на образующий многочлен):

Рис. 5.7. Схема кодирования

Ключи к1 и к2 первоначально замкнуты, а ключ к3 – разомкнут. Исходная комбинация через ключ к1 поступает на выход и через входной сумматор на сдвиговый регистр, где и образуется контрольные символы. Затем ключ к2 замыкается, а к1 и к3 размыкаются. Контрольные символы подаются на выход в след, за информационными символами.

Рис.5.8. Схема кодирования методом деления на образующий многочлен g(x)=x3+x+1

 

   
Вх      
       
       
       
       

Пример 5.8. Пусть на вход подается комбинация 1101. Последовательность деления представлена в таблице. В результате на выходе будет получена комбинация 1101001

 

 

   
Вх      
       
       
       
       

Пример 5.9. Пусть на вход подается комбинация 1001. В результате деления будет получена комбинация 1001011

Схема декодирования (образуется с помощью деления на образующий многочлен):

 

Рис.5.9. Схема декодирования циклического кода. АО - анализатор ошибок.

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

Рис.5.10. Пример схемы декодирования методом деления на полином

Пример 5.10. Пусть декодирующий регистр построен методом деления на образующий полином .

Пусть на вход подается комбинация 1101001

   
Вх      
       
       
       
       
       
       
       

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


 

Теперь пусть на вход подается комбинация с ошибкой 1100001

   
Вх      
       
       
       
       
       
       
       

В результате получился не нулевой остаток 110. Отключим ключ и начнем выводить комбинацию из буферного регистра. На четвертом такте

   
     
---      
       
       
       
       

анализатор ошибок подаст на выходной сумматор сигнал исправления. Ошибка будет исправлена.


Для исправления многократных ошибок используется произведение образующих многочленов:

Таблица 5.3. Неприводимые полиномы

   
g(x) Полином g(x) полином
g(x) x+1 g1(x6) x6+x+1
g(x2) x2+x+1 g2(x6) x6+x3+1
g1(x3) x3+x1+1 g3(x6) x6+x5+1
g2(x3) x3+x2+1 …………… ……………
g1(x4) x4+x+1 g1(x7) x7+x+1
g2(x4) x4+x3+1 g2(x7) x7+x3+1
g3(x4) x4+x3+x2+x+1 g3(x7) x7+x3+x2+x+1
g1(x5) x5+x2+1 …………… ……………
g2(x5) x5+x3+1 g1(x8) x8+x4+x3+x+1
g3(x5) x5+x3+x4+x+1 g2(x8) x8+x4+x3+x2+1
g4(x5) x5+x4+x2+x+1 …………… ……………
g5(x5) x5+x4+x3+x+1 g1(x9) x9+ x+1
g6(x5) x5+x4+x3+x2+1 g2(x9) x9+x4+ 1

 

 





Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 783; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.