Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Циклические коды

 

Циклические коды – это разновидность линейных блочных кодов и предназначены они для обнаружения и исправления ошибок.

Любое m разрядное число можно представить в виде многочлена

F(x) = am-1xm-1 + am-2xm-2 + … + a1x1 + a0x0.

Здесь коэффициенты a1, a2, …, am-1 равны "0" или "1".

Для двоичных кодов это будет иметь вид

F(x) = am-12m-1 + am-22m-2 + … + a121 + a020.

Например, кодовую комбинацию 1111 можно записать

F1 = x3 + x2 + x + 1,

а для 1001

F2 = x3 + 1.

Такое представление двоичных чисел более компактно. Над многочленами можно производить любые алгебраические операции (умножение, деление и т.д.) за исключением сложения и вычитания, которые заменяются на суммирование по модулю два.

F1(x) Å F2(t) = x2 + x.

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

Построение циклических кодов основано на представлении первичного кода в виде многочлена степени m-1 f(x) и представления в виде многочлена степени r-1 r(x) проверочного кода. Тогда многочлен циклического кода равен

F(x) = f(x)xr + r(x).

Умножение f(x) на xr необходимо, чтобы сдвинуть информационные элементы на r разрядов влево и тем самым освободить справа r разрядов для записи r проверочных элементов.

Построенный таким образом многочлен F(x) должен делиться без остатка на образующий многочлен M(x) степени r, т.е.

,

или с учетом правил двоичной алгебры

.

Отсюда видно, что многочлен проверочных элементов r(x) является остатком от деления f(x)xr на М(х). Так как максимальная степень остатка всегда по крайней мере на единицу меньше степени делителя, становится ясно, почему степень образующего многочлена выбирается равной r.

Пример: пусть задана m=5 пятиэлементная комбинация первичного кода 10000 = f(x) = x4. Требуется построить циклический код, имея в виду возможность исправления однократных ошибок (т.е. d0=3). Этому условию удовлетворяет r=4. Возьмем в качестве образующего многочлена М(х)=х4+х+1 и разделим на

 

 

Тогда циклический код F(x)=f(x)xr+r(x)=100000101.

При приеме комбинации циклического кода f(x) ее принадлежность к разрешенной или запрещенной определяется отсутствием или наличием остатка от ее деления на образующий многочлен М(х). Для исправления ошибок нужно, чтобы остатки от деления, т.е. r(x) служили синдромами ошибки. То есть каждому варианту ошибки должен соответствовать свой остаток. Для этого необходимо правильно выбрать образующий многочлен М(х). Обычно в качестве М(х) выбирают неприводимые многочлены, которые могут быть представлены в виде произведения многочленов низших степеней. Пример таких многочленов показан в таблице 1.2.

Таблица 1.2.

r Неприводимые многочлены
  х + 1
  х2 + х + 1
  х3 +х + 1 х32 + 1
  х4 +х + 1 х43 + 1 х43 + х2 +х + 1

 

Однако не всегда неприводимый многочлен сможет служить в качестве образующего многочлена. Это можно продемонстрировать на примере.

Рассмотрим пример построения циклического кода (9,5) для комбинации первичного кода х4=10000=f(x). Число проверочных элементов r=4 при d0=3. Следовательно образующий многочлен М(х) имеет степень r=4. Для r=4 из таблицы имеются три неприводимых многочлена. Построим для каждого из них циклический код.

 

F(x) = f(x) xr + r(x) = 100000101 – циклический код.

F(x) = 100001110.

F(x) = 100001000.

Как видно для примера 1 вес кодовой комбинации V1 = 3 = d0, для 2 – V2 = 4 > d0, а для 3 – V3 = 2 < d0. Это значит, что третий неприводимый многочлен М3(х) не может быть использован в качестве образующего для циклического кода, исправляющего одиночные ошибки (d0=3).

 

<== предыдущая лекция | следующая лекция ==>
Простейшие помехоустойчивые коды | Кодеры и декодеры циклических кодов
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 490; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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