КАТЕГОРИИ: Архитектура-(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) |
CRC коды 2 страница
Наименьшее положительное целое z, для которого βz = 1, равно одному из делителей 2m-1. Это число z называют порядком элемента. Примитивными элементами поля являются все такие элементы β = αi, 0 ≤i≤ 2m- 2, для которых i взаимно просто с числом 2m-1. Неприводимый многочлен называют примитивным, если его корни имеют максимальный порядок, т.е. 2m — 1. Все корни неприводимого многочлена имеют одинаковый порядок. Периодом многочлена называют наименьшее число z, при котором р(х) делит бином xz— 1, z|(2m - 1). Период неприводимого многочлена совпадает с порядком его корней. Пример 27. Примитивный полином р(х) =х3 + х + 1 порождает поле GF(23). Примитивный элемент поля обозначим α, р(α) = α3+ α + 1 = α + 1+ α + 1 = 0. В таблице показаны три способа представления элементов поля GF(23).
Для сложения элементов в GF(2m) наиболее удобно векторное представление. При этом используются поразрядное сложение по модулю два. Однако для умножения в поле наиболее удобно степенное представление. В этом случае умножение сводится к сложению показателей степени элементов по модулю 2m-1. Действительно, так как равенство αn= 1, n= 2m— 1, выполняется для всех элементов поля, то αn+1 = α, αn+2 = α2, и т.д. Таким же способом находим, что α-1= α-1+n= αn-1. В Примере 27 α-1 = α6. В общем случае, обратный элемент β-1 = αb элемента β = αk определяется из сравнения b + k ≡ 0 mod(2m — 1). Таким образом, b = 2m - 1-k. Наконец, для реализации сложений в степенном представлении полезно использовать равенство р(α) = 0. Например, в Примере 27 имеем α3 = α3 + (α3 + α + 1) = α + 1. Полиномиальное представление может быть удобным, когда требуется реализация вычислений по модулю некоторого полинома. Примером этого может служить декодирование циклических кодов, где требовалось вычисление xi mod g(x). Примечание: На самом деле, наиболее естественным представлением элементов конечного поля являются вычеты, т.е. остатки от деления по модулю неприводимого многочлена. В этом случае арифметика поля определяется как сложение, умножение и деление многочленов по неприводимому модулю. Если р(х) примитивный многочлен, то примитивным элементом поля вычетов по модулю р(х) является многочлен х. Иначе, все ненулевые элементы поля могут быть записаны как вычеты xi mod p(x), где i=0,1,...,2m-2. Дополнительного пояснения требует только операция деления, или точнее, вычисление обратного элемента по неприводимому модулю. Пусть f(x) некоторый (ненулевой) вычет, тогда его обратным элементом называется решение сравнения Решение этого сравнения можно найти с помощью алгоритма Евклида для вычисления наибольшего общего делителя многочленов или вычисления подходящей дроби для отношения [р(х) /f(x)J. Таблицы логарифмов и антилогарифмов (степеней) Удобным способом реализации умножений и сложений в конечном поле является применение таблиц с различной интерпретацией их входного адреса. Эти таблицы позволяют легко переходить от полиномиального к степенному представлению элементов поля и наоборот. Таблица антилогарифмов (точнее, степеней) A(i) удобна для реализации сложения. Выходом таблицы является двоичный вектор, записанный как целое число, A(i), соответствующее элементу αi. Таблица логарифмов (или индексов) L(i) удобна для реализации умножения в конечном поле. Эта таблица выдает значение показателя степени примитивного элемента альфа, αL(i) соответствующего двоичному вектору, представленному целым числом i. Справедливо следующее равенство Рассмотрим пример использования таблиц для реализации арифметики конечного поля. Пример 28. Рассмотрим поле GF(23) с порождающим многочленом р( α )= α3 + α + 1 и α7= 1. Таблицы логарифмов и антилогарифмов имеют вид:
Примечание. В приведенной таблице имеются две особых точки. Нулевой элемент конечного поля не может быть представлен степенью примитивного элемента. Так что в столбце «Антилогарифм» не должно быть нулевого элемента поля, а в столбце «Логарифм» нулевому элементу поля не должно быть сопоставлено какое-либо число. Таким образом, при работе с этими таблицами требуется специальная проверка на нулевой элемент поля в результате вычислений или в исходных данных. Рассмотрим вычисление элемента γ = α(α3 + α5)3 в векторной форме. Учитывая свойства поля GF(23), находим последовательно: С использованием таблиц эти вычисления выглядят следующим образом: Таблицы логарифмов и степеней (антилогарифмов) используются для реализации арифметики конечного поля и GF(2m). Соответствующие компьютерные программы доступны на ЕСС веб сайте для моделирования алгоритмов кодирования и декодирования кодов БЧХ и PC с арифметикой в GF(2m). Сами алгоритмы рассматриваются в следующих ниже разделах. Дополнительные свойства GF(2m) Минимальным многочленом фi(х) элемента αiназывается многочлен минимальной степени, корнем которого является данный элемент поля. Следующие свойства минимальных многочленов легко могут быть доказаны. Минимальный многочлен фi(х) элемента αiимеет двоичные коэффициенты и является неприводимым над GF(2) = {0,1}. Более того, корнями этого многочлена являются αi, α 2i, α4i,..., ατ, где τ = 2к и kделит m. Эти элементы называются сопряженными с αiэлементами поля. Степени сопряженных элементов поля образуют циклотомический смежный класс Очевидно, что степень минимального многочлена равна числу элементов (мощности) соответствующего циклотомического смежного класса, т.е. Циклотомические смежные классы (называемые также циклическими множествами) обладают свойством расщепления множества вычетов целых чисел Zn по модулю п = 2т - 1. Таким образом, циклотомические смежные классы не пересекаются. Иначе, их пересечение , является пустым множеством, а их объединение равно всему множеству, т.е. . Пример 29. Циклотомическими множествами по модулю 7 являются: Примитивный элемент αполя GF(2m) (как и все другие) удовлетворяет уравнению α п = 1. Все ненулевые элементы поля являются некоторой степенью примитивного элемента. Таким образом, бином степени п = 2т - 1 имеет следующее разложение на неприводимые двоичные сомножители в двоичном поле: где М число циклотомических классов, и следующее полное разложение на сомножители первой степени в поле GF(2m) (3.9) Важно отметить, что степень минимального многочлена фi(x) равна мощности (т.е. числу элементов множества) циклотомического класса Сi. Отсюда следует способ нахождения всех неприводимых делителей бинома (хп + 1): Найти все циклотомические классы по модулю 2т - 1. Для каждого циклотомического класса Cs вычислить минимальный многочлен (3.10) Этот способ может быть использован для построения порождающих многочленов циклических кодов. Пример 30. Рассмотрим поле GF(23), порождаемое примитивным многочленом р(х) = х3 + х + 1. Корни каждого из делителей бинома х7 + 1 = (х+1)() показаны в таблице. Так (x+α)(x+ α2)(x+ α4) = x3+x+1, а (x+α3)(x+ α6)(x+ α5) = x3+x2 +1 с учётом того, что α6 =1+α2, α3 =1+α и т.д. (смотри таблицу в примере 27). Покажите, что имеет следующие циклотомические классы С0={0}; С1= {1,2,4,8}; C3={3,6,12,9}; C5={5,10}; C7={7,14,13,11}
Примитивные многочлены до степени
3.3. Двоичные коды БЧХ Коды БЧХ это двоичные коды, конструкция которых определяется заданием их нулей, т.е. корней порождающего их многочлена: БЧХ код с кодовым расстоянием dmin ≥2td+1 является циклическим кодом, порождающий многочлен g(x) которого имеет 2td последовательных корней в точках a b, a b+1,…, a b+ δ, где δ = 2td -1. Таким образом, порождающий многочлен двоичного (n, k, dmin) кода БЧХ имеет вид а длина и размерность кода равны, соответственно, Двоичный БЧХ код, заданный таким образом, имеет конструктивное кодовое расстояние равное 2td + 1. Однако, следует заметить, что истинное кодовое расстояние может быть больше конструктивного. Пример 31. Над полем GF(23), порождаемым примитивным многочленом р(х) = х3 + х + 1, для параметров td = 1 и b= 1 многочлен порождает двоичный (7,4,3) код БЧХ. На самом деле, это двоичный циклический код Хемминга! Заметим, что вес Хемминга этого порождающего многочлена равен 3 и, следовательно (в данном случае, но не всегда), конструктивное и истинное расстояние кода совпадают. Пример 32. Рассмотрим поле GF(24), порождаемое примитивным многочленом , и параметры td = 2,b=1. Тогда многочлен порождает двоичный (15,7,5) код БЧХ, исправляющий две ошибки. Пример 33. В поле GF(24), порождаемом примитивным многочленом р(х) = х4 + х + 1, и параметры td = 3,b= 1, многочлен порождает двоичный (15,5,7) код БЧХ, исправляющий три ошибки. Рассмотрим нижнюю границу минимального расстояния кодов БЧХ известную как граница БЧХ. Это полезно не только тем, что позволяет оценить корректирующие способности кода в общем случае, но и тем, что выделяет особые свойства кодов БЧХ. Напомним, что элементы a b, a b+1,, a b+ δ, где δ = 2td-1, являются корнями порождающего многочлена g(x) и что все кодовые слова v кода БЧХ, ассоциированные с полиномами v(x), кратны порождающему многочлену кода. Следовательно (3.11) Таким образом, на основании (3.11), все кодовые слова удовлетворяют следующей системе 2td уравнений (в матричной форме) (3.12) Соответственно, проверочная матрица двоичного БЧХ кода имеет вид (3.13) Эта проверочная матрица обладает следующим свойством: любая ее 2td * 2td подматрица, т.е. образованная любыми 2td столбцами, является матрицей Вандермонда. Следовательно, любые 2td столбцов проверочной матрицы линейно независимы. Отсюда следует, что минимальное кодовое расстояние этого кода удовлетворяет неравенству d > 2td + 1. Этот результат можно интерпретировать следующим образом: Граница БЧХ. Если порождающий многочлен g(x) циклического (n,k,d) кода имеет zпоследовательных корней, например, ab,ab+1,...,ab+z, тo d≥2z+ l. 3.4. Полиномиальные коды Класс циклических полиномиальных кодов включает циклические коды Рида-Маллера, коды БЧХ и Рида-Соломона, коды над конечными геометриями. Задание полиномиальных кодов связано с наложением условий на их корни (нули) следующим образом. Пусть а примитивный элемент поля GF(2ms). Пусть s положительное целое число и b делитель 2s — 1. Тогда ah является корнем порождающего полинома g(x) полиномиального кода порядка µ, если и только если b делит h и где для любого целого i, функция Wa(s) определена как (a(s) = 2s) - иначе вес целого числа i, т.е. Согласно этому определению коды БЧХ и Рида-Соломона являются полиномиальными с параметрами b = т = 1. Коды Рида-Маллера является подкодами полиномиальных кодов с параметром s=1. Коды над конечными геометриями возникают как дуальные к полиномиальным кодам. Ниже даются свойства нулей конечно-геометрических кодов. Евклидово геометрические (ЕГ) коды Пусть а примитивный элемент поля GF(2ms). Пусть h неотрицательное целое меньше 2тs-1. Тогда аh является корнем порождающего многочлена g(x) ЕГ кода порядка (µ,s), длины 2ms-1, если и только если
Для s = 1 ЕГ коды совпадают с циклическими РМ*m,µ, кодами и, следовательно, ЕГ коды можно рассматривать как обобщенные коды РМ (Рида-Маллера). Проективно геометрические (ПГ) коды Пусть а примитивный элемент поля GF(2(m+1)s). Пусть h неотрицательное целое меньше 2(m+1)s - 1. Тогда ah является корнем порождающего многочлена g(x) ПГ кода порядка (µ,s), длины (2тs — 1)/(2s - 1), если и только если h делится на 2s - 1 и 3.5. Декодирование двоичных БЧХ кодов Главной идеей в декодировании БЧХ кодов является использование элементов конечного поля для нумерации позиций кодового слова (или, эквивалентно, в порядке коэффициентов ассоциированного многочлена). Такая нумерация показана на Рисунке 20 для вектора r = (r0, r1 ,..., rn-1), соответствующего многочлену r(x). Позиции ошибок могут быть найдены из решения системы уравнений в поле GF(2m). Эти уравнения можно получить, вводя многочлен ошибок е(х) и учитывая нули кода а j для b ≤ j < b + 2td - 1, как показано ниже. Пусть r(x) = v(x) + е(х) представляет полином, ассоциированный с принятым словом, где многочлен ошибок определен как (3.14) где v ≤ td число ошибок в принятом слове. Множества и называют значениями ошибок и локаторами ошибок, соответственно, где ej {0, 1} для двоичных БЧХ5 кодов и GF(2m). Рис. 20. Нумерация позиций кодового слова элементами поля GF(2m) Синдромы определены как значения принятого полинома r(х)в нулях кода: Это определение эквивалентно s = Нr, где проверочная матрица Н определена в (3.13). Введем многочлен локаторов ошибок (3.15) корни которого равны обратным величинам локаторов ошибок. Тогда справедливо следующее соотношение между коэффициентами многочлена локаторов ошибок и синдромами: (3.16) Решение ключевого уравнения, представленного в (3.16), требует довольно интенсивных вычислений в процедуре декодирования БЧХ кодов. Известны следующие методы решения ключевого уравнения: 1. Алгоритм Берлекемпа-Мэсси (ВМА) Этот алгоритм был предложен Берлекемпом и Мэсси. По числу операций в конечном поле этот алгоритм обладает высокой эффективностью. ВМА обычно используется для программной реализации или моделирования кодов БЧХ и PC. 2. Евклидов алгоритм (ЕА) Из-за высокой регулярности структуры этого алгоритма его широко используют для аппаратной реализации декодеров БЧХ и PC кодов. 3. Прямое решение Этот алгоритм, предложенный Питерсоном, находит коэффициенты многочлена локаторов ошибок прямым решением системы (3.16) как системы линейных уравнений. В литературе часто используется термин PGZ (Питерсон-Горенштейн-Цирлер) декодер. В действительности, так как сложность обращения матрицы растет как куб корректирующей способности кода, прямой алгоритм может быть использован только для малых значений td. 3.5.1. Общий метод декодирования для БЧХ кодов На Рисунке 21 показана блок-схема декодера БЧХ кодов (как двоичных, так и недвоичных). Декодер состоит из логических схем и обрабатывающих блоков, реализующих следующие задачи: · Вычислить синдромы, вычисляя значения принятого полинома в нулях кода (3.17) · Найти коэффициенты многочлена локаторов ошибок σ(х). Рис. 21 Архитектура БЧХ декодера Рис. 22. Пример схемы вычисления синдрома. · Найти обратные величины корней σ(х), т.е. позиции ошибок j1, j2, …, j; · Найти значения ошибок (этап ненужный для двоичных кодов); · Исправить принятое слово на вычисленных позициях для вычисленных значений ошибок. Одним из преимуществ использования арифметики над конечным полем GF(2m) является возможность применения относительно простых логических схем и вычислительных блоков. Например, на Рисунке 22 показана схема вычисления синдромов Sj. Умножение в поле GF(2m) также реализуется относительно простой логической схемой. 3.5.2. Алгоритм Берлекемпа-Мэсси (ВМА) Алгоритм Берлекемпа-Мэсси лучше всего рассматривать как итеративный процесс построения минимального линейного Рис. 23. ЛРОС с отводами σ1, σ 2,..., σ v и выходом S1, S2,..., S2v. регистра (сдвига) с обратной связью (ЛРОС), аналогичного показанному на Рисунке 23, который генерирует известную последовательность синдромов S1 S2,...S2td. Целью ВМА является построение многочлена (обратной связи) σ (i+1)(х) наименьшей степени, удовлетворяющего следующему уравнению, выведенному из (3.16): (3.18) Решение этой задачи эквивалентно условию, что многочлен является многочленом обратной связи ЛРОС, который генерирует ограниченную последовательность синдромов. Несовместность (рассогласование, расхождение, различие) на i -ой итерации, определенная как является мерой соответствия синдромной последовательности и генерируемой ЛРОС и содержит корректирующий множитель для вычисления σ (i+1) на следующей итерации. Возможны два случая: (3.19)
• Если di = 0, то уравнение (3.18) удовлетворяется с равенством • Если di ≠ 0, то решение на следующей итерации имеет вид (3.20) где является решением на m-ой итерации такое, что —1 < т≤ 1, максимальна. Итеративное вычисление σ(i+1)(.х) продолжается, пока не удовлетворятся одно или оба условия: либо i ≥ i+1,+td-1 либо i = 2td- 1. Начальными условиями алгоритма являются: (3.21) Заметим также, что в Алгоритме Берлекэмпа-Мэсси используются программные инструкции (если — то). По этой причине ВМА не слишком удобен для аппаратной реализации. Тем не менее, по числу операций в конечном поле GF(2W) этот алгоритм весьма эффективен. Пример 34. Пусть С двоичный (15,5,7) код БЧХ, исправляющий три ошибки из Примера 33. Для проверки вычислений и просто для справки приводится степенное и векторное представление элементов поля GF(16), порожденное примитивным многочленом р(х) = 1 + х + х4: Таблица элементов поля GF(24), р(х) = 1 + х + х4: Порождающий многочлен кода С равен g(x) = х10 + х8 + х5 + х4 + х2 + х + 1. Предположим, что информационный полином равен u(х) = х + х2 + х4. Тогда соответствующее ему кодовое слово равно Пусть принятое слово равно r(x) = 1+х + х2+х3 + х4 + х6 + х8 + х11 + x14, соответствующее вектору r(х) =v(х)+e(х), полученному в результате передачи слова v по ДСК. (Вектору е соответствует многочлен ошибок е(х) = 1 + х6 + х12. Хотя декодеру этот вектор ошибок неизвестен, он используется здесь для упрощения вычисления синдромов.) Синдромы равны: Алгоритм Берлекемпа-Мэсси (ВМА): • Итерация 0: Инициализация. • Итерация 1: • Итерация 2: • Итерация 3: • Итерация 4:
Дата добавления: 2014-11-29; Просмотров: 1759; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |