1 / 38

Циклические коды. CRC и БЧХ коды

Циклические коды. CRC и БЧХ коды. Тихоокеанский Государственный Университет Кафедра “ Вычислительная техника ” Дисциплина “ Сети ЭВМ ” Преподаватель Шоберг А. Г. Содержание. ** Блочные и линейные коды. ** CRC код. -- CRC код. Базовые определения. -- Вычисление CRC.

Download Presentation

Циклические коды. CRC и БЧХ коды

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Циклические коды. CRCи БЧХкоды Тихоокеанский Государственный Университет Кафедра “Вычислительная техника” Дисциплина “Сети ЭВМ” Преподаватель Шоберг А. Г.

  2. Содержание **Блочные и линейные коды **CRC код -- CRC код. Базовые определения -- Вычисление CRC -- Коррекция ошибок ** БЧХкод -- БЧХкод. Базовые определения -- Построение и реализация кода ** Выводы

  3. Блочные и линейные коды • * Блоковый код представляет собой множество последовательностей симво- лов, именуемых кодовыми словами. • * В общем случае элементы кодового слова выбираются из алфавита с q элементами. На практике наиболее широко используются коды, содержащие два элемента (О и 1), такие коды называются двоичными (q = 2).

  4. * Относительно большой класс блоковых кодов составляют линейные коды. Для них по сравнению с общим случаем блоковых кодов значительно упрощается операция декодирования. * Линейные коды представляют собой подпространство Vk линейного прост- ранстваVJ и обладают следующим важным свойством: сумма (определенная для этого пространства) двух кодовых слов также является кодовым словом.

  5. * Большим подклассом линейных кодов являются линейные цик- лические коды, представите- лями которых являются коды CRC, БЧХ, Рида-Соломона и др..

  6. CRC код. Базовые определения • ** Cyclic Redundancy Code (CRC) – циклический избыточный код ** • * CRC – это значение, которое вычисляется для некоторого блока данных, например, для каждого файла во время архивации. • * При развертывании файла архиватор сравнивает это значение со вновь вычисленным CRC распакованного файла.

  7. * Если они совпадают, то существует очень большая вероятность того, что этот новый файл получился идентичным исходному. При использовании CRC32 вероятность пропустить изменение данных составляет всего 2-32.

  8. * Основная идея состоит в том, чтобы представить файл, как одну огромную строку бит, и поделить ее на некоторое число; Оставшийся в результате остаток и есть CRC. *Всегда будет оставаться остаток (правда, иногда он может оказаться равным нулю), который лишь на один бит меньше делителя Пример: 9/3=3, остаток = 0; (9+2)/3=3, остаток = 2.

  9. ВычислениеCRC • *Вычисление CRC использует особый вид вычитания и сложения, своего рода "новую арифметику". Компьютер "забывает" делать перенос при вычислении каждого бита. • *Заём при вычислении также "забывают" сделать. Это напоминает операцию "Исключающее ИЛИ" (eXclusive OR, или более привычно - XOR), чем оно фактически и является. • *Пример CRC-арифметики:

  10. *Для вычисления CRC нам необходимо выбрать делитель, который с этого момента мы будет называть полиномом. Степень полинома (W – Width) – это номер позиции его старшего бита, следовательно, полином 1001 будет иметь степень "3", а не "4". *Обратите внимание, что старший бит всегда должен быть равен 1, следовательно, после того, как Вы выбрали степень полинома, Вам необходимо подобрать лишь значения младших его битов.

  11. РЕЗУЛЬТАТ:1101011011111 Здесь необходимо упомянуть 2 важных момента: 1. Операция XOR выполняется только в том случае, когда старший бит последовательности равен “1”, в противном случае мы просто сдвигаем ее на один бит влево. 2. Операция XOR выполняется только с младшими W битами,так какстарший бит всегда в результате дает “0”.

  12. Коррекция ошибок *Процедуракоррекцииошибокпредполагаетдвасовмещенныепроцесса: обнаружениеошибки иопределение места. Послерешенияэтихдвухзадач,исправлениетривиально–надоинвертироватьзначениеошибочногобита. *Вназемныхканалахсвязи,где вероятностьошибкиневелика,обычноиспользуетсяметоддетектирования ошибокиповторнойпересылкифрагмента,содержащегодефект.Для спутниковыхканаловсбольшимизадержкамисистемыкоррекцииошибокстановятсяпривлекательными.

  13. * Код Хэмминга представляет собой блочный код, который позволяет выявить и исправить ошибочно переданныйбит в пределах переданного блока. ОбычнокодХэммингахарактеризуется двумя целымичислами, например, (11,7) используемый при передаче 7-битных ASCII-кодов. * Такая запись говорит,чтоприпередаче7-битногокодаиспользуется4контрольныхбита(7+4=11).При этом предполагается, что имела местоошибка в одном бите и что ошибка в двух илиболеебитах существенно менее вероятна.

  14. * Приэтомпредполагается,что имела место ошибка в одном бите и что ошибка вдвухили болеебитахсущественноменеевероятна.Сучетомэтогоисправлениеошибкиосуществляетсясопределеннойвероятностью. Например,пустьвозможныследующиеправильные коды (все они, кроме первого и последнего, отстоят друг от друга на расстояние 4): *Приполучениикода00000111нетруднопредположить,чтоправильное значениеполученногокодаравно00001111.Другиекодыотстоят от полученного на большее расстояние Хэмминга. *Рассмотримпримерпередачикодабуквыs=0x073=1110011сиспользованием кода Хэмминга (11,7).

  15. *Символами “*” помечены четыре позиции, где должны размещаться контрольные биты. Эти позиции определяются целой степенью 2 (1, 2, 4, 8 и т.д.). *Контрольная сумма формируется путем выполнения операции XOR (исключающее ИЛИ) над кодами позиций ненулевых битов. В данном случае это 11, 10, 9, 5 и 3. Вычислим контрольную сумму: *Таким образом, приемник получит код:

  16. *Просуммируем снова коды позиций ненулевых битов и получим нуль: * Нуатеперьрассмотримдваслучаяошибокводномизбитовпосылки, например,вбите 7(1вместо0)ивбите5(0вместо1).Просуммируемкоды позиций ненулевыхбит еще раз.

  17. *В общем случае код имеет N=M+C бит и предполагается, что не более чем одинбитвкодеможетиметьошибку.Тогдавозможно N+1 состояниекода (правильное состояние и n ошибочных).Пусть М=4, а N=7, тогда слово-сообщение будетиметьвид: M4, M3, M2, C3, M1, C2, C1.Теперьпопытаемсявычислить значенияС1,С2,С3.Дляэтогоиспользуютсяуравнения,гдевсеоперации представляютсобой сложение по модулю 2: *Дляопределениятого,доставленолисообщениебезошибок,вычисляем следующие выражения (сложение по модулю 2):

  18. *Результат вычисления интерпретируется следующим образом: *Описанная схема легко переносится на любое число n и М.Числовозможныхкодовых комбинаций Мпомехоустойчивого кода делится на n классов,гдеN –числоразрешенныхкодов.Разделениенаклассы осуществляетсятак,чтобывкаждыйклассвошелодинразрешенныйкоди ближайшиекнемзапрещенныекоды. *Если код принят с ошибкой, он заменяется ближайшим разрешенным кодом. При этом предполагается, что кратность ошибки не более qm.

  19. *Можнодоказать, чтодля исправления ошибок с кратностьюнеболее qmm (какправило,оновыбираетсяравным D =2qm + 1).Втеориикодирования существуютследующиеоценкимаксимальногочисла N n-разрядных кодов с расстоянием D. *Для кода Хэмминга это неравенство превращается в равенство.ВслучаекодаХэммингапервыеkразрядовиспользуютсявкачестве информационных, причем k=n - log2(n+1), откудаследует(логарифм по основанию 2), что k может принимать значения 0, 1, 4, 11, 26, 57 и т.д., это и определяет соответствующие коды Хэмминга (3,1); (7,4); (15,11); (31,26); (63,57) и т.д..

  20. БЧХкод. Базовые определения ** Коды Боуза - Чоудхури - Хоквингхема (БЧХ-коды) – втеории кодированияэто широкий класс циклических кодов, применяемых для защитыинформации от ошибок. ** * Отличается возможностью построениякодасзаранее определёнными корректирующими свойствами, а именно, минимальным кодовым расстоянием. * Коды Боуза-Чоудхури-Хоквингема (БЧХ) – класс циклических кодов, исправляющих кратные ошибки, т. е. две и более (d0 >= 5).

  21. * ТеоретическикодыБЧХ могут исправлять произвольное количест- во ошибок. * Но при этом существенно увеличивается длительность кодо- вой комбинации, что приводит к уменьшению скорости передачи данных и усложнению приемо-передающей аппаратуры.

  22. *Методика построения кодов БЧХ отличается от обычных цикличес- ких, в основном, выбором опреде- ляющего полинома P(х). * Коды БЧХ строятся по заданной длине кодового слова n и числа исправляемых ошибок S, при этом количество информационныхразря- довk не известно пока не выбран определяющий полином.

  23. * ДляпониманияматематическойструктурыБЧХ–кодовнеобходимо ознакомиться с некоторыми новыми понятиями линейной алгебры. * В общем случаеэтипонятиясправедливыдлямножествамногочленовс коэффициен-тами изполяGF(q),гдеq – простоечисло. * Посколькунас интересуют в первую очередь двоичные коды, мы ограничимся случаем q = 2.

  24. * Есливкачестве образующего многочлена идеала g(x) взятнеприводимыймногочленстепенит,принадлежащийпоказателюстепени n (n = 2m - 1), то общее число классов вычетов, включая идеал, равно 2m.

  25. * Зададимоперациисложенияиумножениядляполученныхклассов вычетов: где ((r1(х)) – класс вычетов по модулю многочлена g(x)содержащий элементr1(х). * При этом совокупность классов вычетов образует конечное поле. Оно насчитывает 2m элементов, обозначается GF(2m) и называется расширением поля степени m над GF(2m). Единичным и нулевым элементами поля являются классы вычетов соответственно (1) и (0).

  26. * При этом совокупность классов вычетов образует конечное поле. Оно насчитывает 2m элементов, обозначается GF(2m) и называется расширением поля степени m над GF(2m). Единичным и нулевым элементами поля являются классы вычетов соответственно (1) и (0). * Нетрудно убедиться в том, что для любого ненулевого элемента поля (ra(х)) в нем найдется обратный ему элемент (ra(х)), удовлетворяющий равенству:

  27. Построениеи реализация кода * Процесс выбора образующегомногочленакода Боуза - Чоудхури - Хоквингема, рассчитанного на исправ- ление единичных ошибок, ничем не отличается от рассмотренного ранее. * Основноеотличиезаключаетсяв интерпретации опознавателей ошибок.

  28. * Вданном случае ими считаются различные степени примитивно- го элемента поля GF(2m), постро-ение сиспользованиемвыбран- ного неприводимогомногочленаg(x)степениm,принадлежащего показателю степени n = 2m - 1.

  29. * При возникновении двух ошибок построенный код позволяет определить только сумму s опознавателей этих ошибок * Для однозначного определения ошибок необходимо еще одно независимое уравнение. Возможно использование степенных функций от ξ. Однако квадраты опознавателей не приводят к желательному результату, поскольку второе уравнение с учетом сложения по модулю два оказывается квадратом первого. Действительно, * Если использовать кубы опознавателей, то уравнения оказываются независимыми: * Такой подход допускает обобщение на случай исправления 3- и 4-кратных ошибок и т. д.. При этом к полученным уравнениям соответственно добавляются уравнения с опознавателями в пятой, седьмой степенях и т. д.

  30. * Коснемся подробнее случая исправления двойных ошибок. Проведем преобразование второго уравнения * Поскольку известны сумма и произведение опознавателей, то на основании теоремы Виета можно составить уравнение, для которого опознаватели являются корнями:

  31. * На практике оказывается удобнее использовать многочлены, корнями которых являются не опознаватели ошибок, а их мультипликативные обратные элементы. * Для случая исправления двойных ошибок левая часть уравнения преобразуется к виду: * При возникновении ошибки: * При отсутствии ошибок:

  32. * В общем случае образующий многочлен кода Боуза - Чоудхури – Хоквингема представляет собой наименьшее общее кратное (НОК) примитивного и минимальных многочленов: * Вчастности,длякодасn =15,рассчитанногонаисправлениедвойных независимыхошибок, получаем: * Рассмотрим процедуру кодирования с использованием кода БЧХ на конкретном примере.

  33. ** Пример: Построить 15-разрядный код БЧХ, исправляющий две ошибки в кодовой комбинации (т. е. n = 15, S = 2)** Решение: Определим количество контрольных mи информационных разрядов k m<= hS. - Определим параметр h из формулы n = 2h-1, h = log2(n+1) = log216 = 4, при этом: m <= hS = 4*2 = 8;k = n-m = 15-8 = 7. - Таким образом, получили (15, 7)-код.

  34. 2. Определим параметры образующего полинома: -количество минимальных многочленов, входящих в образующий L = S = 2; -порядок старшего (все минимальные - нечетные) минимального многочлена = 2S - 1 = 3; -степень образующего многочлена = m <= 8.

  35. 3. Выбор образующего многочлена. - Из таблицы для минимальных многочленов для кодов БЧХ (см. приложение 4) из колонки 4 (т. к. l = h = 4) выбираем два минимальных многочлена 1 и 3 (т. к. = 3): M1(x) = 10011; M2(x) = 11111. - При этом: P(x) = M1(x)*M2(x)=10011*11111=111010001= = x8+ x7+ x6+ x4+1.

  36. 4. Строим образующую матрицу. Записываем первую строку образующей матрицы, которая состоит из образующего полинома с предшествующими нулями, при этом общая длина кодовой комбинации равна n = 15. Остальные строки матрицы получаем в результате k-кратного циклического сдвига справа налево первой строки матрицы.

  37. * Строки образующей матрицы представляют собой 7 кодовых комбинаций кода БЧХ, а остальные могут быть получены путем суммирования по модулю 2 всевозможных сочетаний строк матрицы. * Процедура декодирования, обнаружения и исправления ошибок в принятой кодовой комбинации такая же, как и для циклических кодов с d0 < 5

  38. Выводы **Циклические коды CRC и БЧХ в целом обеспечивают большую гибкость с точки зрения возможности реализации кодов с необходимой способностью обнаружения и исправления ошибок. Как следствие этого можно отметить, что данные коды являются помехоустойчивыми.** **Однако следует отметить, что способность исправления ошибок данных кодов не столь велика. Коды CRC и БЧХ предназначены больше для обнаружения ошибок с использованием иных средств и методов их исправления.**

More Related