Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Реализация действий над элементами поля

Деление многочленов | Реализация операций умножения и деления многочленов в поле двоичных чисел | Матричное представление циклических кодов | Принципы обнаружения и исправления ошибок циклическими кодами | ЦИКЛИЧЕСКИЕ КОДЫ, ИСПРАВЛЯЮЩИЕ ПАЧКИ ОШИБОК (КОДЫ ФАЙРА) | ЦИКЛИЧЕСКИЕ КОДЫ БЧХ | Принципы исправления ошибок кодами БЧХ | ЦИКЛИЧЕСКИЕ КОДЫ РИДА—СОЛОМОНА | Кодированиеи декодирование кодов PC | Построение кодов Рида-Соломона |


Читайте также:
  1. III. ПОСЛЕДОВАТЕЛЬНОСТЬ ОДИНОЧНЫХ ЗАВЕРШЕННЫХ ДЕЙСТВИЙ В ПРОШЛОМ
  2. Quot;О порядке действий машиниста при сработке ЭПК (ЭПВ)".
  3. Административный (внесудебный) порядок обжалования решений и действий (бездействия) Федеральной службы по труду и занятости, территориальных органов и их должностных лиц.
  4. Алгоритм выполнения трудовых действий при приемке молочных товаров
  5. Алгоритм трудовых действий по определению товароведных характеристик
  6. Анализ альтернатив, выбор, реализация и оценка стратегии
  7. АФФЕКТИВНАЯ КЛАССИФИКАЦИЯ НАМЕРЕНИЙ-И-ДЕЙСТВИЙ

При построении кодирующих и декодирующих устройств циклических кодов, особенно БЧХ и Рида—Соломона, должны быть реализованы операции умножения и деления в поле GF(2k). Рассмотрим реализационные основы таких действий над элементами конечного поля Галуа.

Пусть задан примитивный полином k - йстепени над про­стым полем GF (2):


Квадратной матрице F соответствует характеристический поли­ном f (λ), представляющий собой определитель характеристи­ческой матрицы [λЕF], где Е — квадратная единичная мат­рица k-го порядка, т. е. f (λ) =│ λ ЕF│. Корни полинома f (λ) λ 1, λ 2, … λ k,называемые характеристическими числами, являются решением векового [9] уравнения │ λ ЕF│ = 0.

Как видно из этого уравнения, одним из корней полинома f (λ) является сопровождающая матрица F. Действительно, если в характеристический полином f (λ) вместо λ подставить F, то получим f (F) = │FEF│ =0, Тем самым доказана тео­рема Гамильтона—Кэли [9], в соответствии с которой всякая квадратная матрица F является корнем своего характеристиче­ского полинома f (λ).

С другой стороны, легко проверить, что заданный прими­тивный полином Р (х) в точности совпадает с характеристиче­ским полиномом f (X) при подстановке х = λ, т. е. f (λ) = Р (λ). Отсюда следует, что матрица F является также корнем поли­нома Р (х), т. е. Р (F) = 0. Последнее условие приводит к важ­ному следствию, заключающемуся в том, что множество эле­ментов поля GF(2k) построенного по примитивному полиному Р (х), изоморфно множеству полиномов — вычетов по модулю P(F). Другими словами, любому элементу amполя GF(2k), выраженному через степенной базис

 

где. а — первообразный элемент поля, а коэффициенты а, eGF(2), взаимнооднозначно соответствует многочлен

 

приведенный по модулю Р (F). Указанное свойство позволяет достаточно просто реализовать умножение и деление элемен­тов поля GF (2к) в векторной форме. Рассмотрим эти действия.

6.4.1. Умножение элементов поля

Пусть необходимо умножить элемент аi на элемент aJ. С этой целью выразим эти элементы поля GF (2k) через степен­ной базис следующим образом:

 

 


Тогда произведение aiaj=am=c0+c1a+c2a2+…+ck-1ak-1 может быть реализовано в векторной форме следующим обра­зом:

 

(a0a1…ak)Fj=(a0a1…ak)[b0E+b1F+…bk-1Fk-1]=

 

Напомним, что для двоичных кодов сложение производится по mod 2.

Структурная схема умножителя в соответствии с алгорит­мом (6.24) представлена на рис. 6.8.

Рис. 6.8. Структурная схема умножителя произвольных элементов поля G F(2k)

Рассмотрим конкретный пример.

Пусть поле GF (24) образовано примитивным полиномом Р (х) = 1+x+x 4. Сопровождающая матрица F этого полино­ма и ее степени F2 и F3 имеют вид

 

 


Необходимо произвести умножение двух элементов аi и аj, принадлежащих полю GF (24).

Выразим аi и аjчерез базис {1, а, а2, а3} следующим образом:

Таким образом, векторная форма записи элементов аi и аj будет соответственно [а] = 0, аь а2, a3] и [b] = [bо, b1, b2, b3]. Заменив элемент поля aJ на Fj, равный Fj =b0E+b1F+b2F2+b3F3, найдем произведение (aiaj )= со +c1a+c2a2+c3a3 в векторной форме, используя алгоритм (6.24), а именно

Учтем, что для данного полинома Р (х) и его матрицы F имеют место равенства:

 

Тогда вектор [c]=[c0,c1,c2,c3], соответствующий произведению aiaj, будет равен поэлементной сумме по модулю два

Функциональная схема существенно упрощается, если необходимо произвольный элемент поля ai умножить на константу aj. Пусть для рассматриваемого выше примера необходимо производить умножение на а5. Тогда произведение аia5 в векторной форме будет выражаться следующим образом:


Функциональная схема такого умножителя представлена на рис. 6.10.

Рис 6.9. Функциональная схема умножения произвольных элементов поля G F (24) с образующим многочленом Р(х) = 1 + х + х4

Другой распространенный в настоящее время алгоритм ум­ножения элементов поля GF (2k) основан на применении опе­раций логарифмирования и антилогарифмирования в полях GF (2k) [4, 6].

Рис. 6.10. Функциональная схема ум­ножения произвольного элемента аi поля GF(24) на константу a5

 

Если некоторый элемент поля β=ai принадлежит полю GF(2k), то логарифм элемента β по основанию a€GF (2k) есть показатель степени i, а именно: Log β = log ai=i, i≥0. Тогда, умножение aiaj= am может быть реализовано по сле­дующему алгоритму, представленному на рис. 6.11.



 


Рис. 6.11. Структурная схема умножителя произволь­ных элементов аi и аj в поле GF(2k) с использо­ванием логарифмировании и антилогарифмирования

Особенностью данного алгоритма является то, что комби­нациям из k нулей или k единиц на выходе арифметического сумматора должно соответствовать появление на выходе ан-тилогарифматора одинакового элемента, а именно а0 = 1.

Логарифмирование и антилогарифмирование реализуется чаще всего табличным способом.


6.4.2. Деление элементов поля

В теории циклических кодов часто встречающейся операцией является деление произвольного элемента aiна некоторый эле­мент aj, где ai, aiGF (2k). Вместе с тем на практике деле­ние элементов заменяется умножением элемента ai на a-j, т. е.

где a-j —элемент поля, обратный элементу аj. Напомним, что для любого элемента аj в поле GF (2k) всегда существует и обратный ему a-j, которые связаны равенством aja-j= 1. Та­ким образом, реализация деления осуществляется по той же схеме, что и умножение (рис. 6.9) с той разницей, что один из сомножителей является обратным элементом a-j. Рассмот­рим способы обращения элементов поля GF(2k).

Один из способов основан на свойстве полей Галуа, кото­рое заключается в том, что ненулевые элементы поля GF (2k) образуют циклическую мильтипликативную группу порядка 2k — 1, т. е. для любого ненулевого элемента аj справедливо

равенство (аj)2k-1 = 1. Отсюда получается (аj)2k-2 =


= (aJ)-1 = a-j. Для вычисления (2k —2)-й степени элемента β можем воспользоваться одним из следующих двух равенств:

 

 

(β)2k-2={[(β2β)2β]2… β }2= β -1 (6.27)

Характерной особенностью равенства (6.26) является то, что обращение элемента β может быть реализовано аппарат­ным путем за один шаг (такт), тогда как равенство (6.27) мо­жет быть реализовано за (k —1) последовательных этапов. Вместе с тем реализация последнего значительно проще. На каждом этапе необходимо осуществить умножение текущего значения на β и возведение результата в квадрат. Если элементβ выразить через базисные элементы поля 1, а, а2,..., аk-1 в виде β = а0 +a1a+a2a2+…ak-1ak-1, то на основании свойств (1.4) и (1.5) возведение в квадрат в поле GF (2*) со­ответствует выражению


Тогда операцию возведения в квадрат в векторной форме мож­но записать

(a0a1a2…ak-1)[X] = (b0b1b2…bk-1),

где [X] — квадратная матрица k-го порядка, строки которой представляют собой двоичные векторы элементов поля

Пример. Построить матрицу [X]и схему возведения в квад­рат, если конечное поле GF (24) образовано примитивным по­линомом Р (х) = 1+x+x4

Выразим элементы поля а0, а2, а4, а6 через базис {1, а, а2 а3} в виде аi = с0 + с1а + с2а2 + c3а3, где с€GF (2):

 

Из векторов (с0 с1 с2 с3) указанных элементов составим матрицу [X]:


Пусть элементу аi соответствует вектор 0 а1 а2 а3). Для возведения аi в квадрат произведем умножение вектора 0 а1 а2 а3) на матрицу [X]:



 


Логическая схема возведения в квадрат в поле GF (24) с

образующим полиномом Р(х) = 1 + х +x4 представлена на рис. 6.12.

Для проверки возведем эле­мент а5 в квадрат. Так как a5 = a +а2, то для получения элемента (а5)2 выполним ум­ножение вектора элемента а5 на матрицу [X], т. е.

 

 

 

Рис. 6.12. Функциональная схе­ма

возведения в квадрат про­извольного элемента аi в по­ло GF(24)

Полученный вектор (1110)соответствует элементу (а5)2 = a10 поля GF (24).


 


Дата добавления: 2015-07-16; просмотров: 72 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Использование кодов Рида—Соломона для исправления стираний| МАЖОРИТАРНОЕ ДЕКОДИРОВАНИЕ ЦИКЛИЧЕСКИХ КОДОВ

mybiblioteka.su - 2015-2024 год. (0.018 сек.)