устройство для коррекции ошибок в полиномиальной системе классов вычетов с использованием псевдоортогональных полиномов
Классы МПК: | G01F11/08 диафрагменного или сильфонного типа G06N3/02 использующие модели нейронных сетей |
Автор(ы): | Калмыков Игорь Анатольевич (RU) |
Патентообладатель(и): | Государственное образовательное учреждение высшего профессионального образования "Северо-Кавказский государственный технический университет" (RU) |
Приоритеты: |
подача заявки:
2005-05-05 публикация патента:
27.02.2007 |
Устройство относится к вычислительной технике для контроля и исправления ошибки при передаче информации и для проведения арифметических операций в расширенных полях Галуа GF(2 v). Техническим результатом является повышение скорости обнаружения и коррекции ошибок. Устройство содержит блок памяти, сумматор, блок вычисления синдрома ошибки, который является двухслойной нейронной сетью, содержащей нейроны, образующие первый слой, и второй слой нейронов. 6 табл., 2 ил.
Формула изобретения
Устройство для коррекции ошибок в полиномиальной системе классов вычетов с использованием псевдоортогональных полиномов содержит вход устройства, блок памяти, предназначенный для хранения весовых коэффициентов, при этом блок памяти подключен к четвертому входу сумматора, выход которого является выходом устройства, отличающееся тем, что в его состав дополнительно введен блок вычисления синдрома ошибки, входы которого подключены к входам устройства, а выходы соединены с входами блока памяти и с первыми тремя входами сумматора, при этом блок вычисления синдрома ошибки представляет собой двухслойную нейронную сеть, первый слой которой содержит пятнадцать нейронов, второй слой нейронной сети содержит восемь нейронов, при этом первый слой нейронной сети предназначен для записи контролируемого числа, представленного в полиномиальной системе классов вычетов, а второй слой предназначен для вычисления синдрома ошибки, причем входы нейронов упомянутого первого слоя являются входом блока вычисления синдрома ошибки, выходы нейронов упомянутого второго слоя являются выходами блока вычисления синдрома ошибки, при этом на входы нейронов с первого по седьмой упомянутого первого слоя поступают остатки по рабочим основаниям упомянутого контролируемого числа, на входы нейронов с восьмого по пятнадцатый упомянутого первого слоя поступают остатки по контрольным основаниям упомянутого контролируемого числа, входы первого нейрона упомянутого второго слоя соединены с выходами первого, второго, седьмого и восьмого нейронов упомянутого первого слоя, входы второго нейрона упомянутого второго слоя соединены с выходами третьего, четвертого, седьмого и девятого нейронов упомянутого первого слоя, входы третьего нейрона упомянутого второго слоя соединены с выходами первого, второго, третьего пятого, шестого и десятого нейронов упомянутого первого слоя, входы четвертого нейрона упомянутого второго слоя соединены с выходами первого, третьего, шестого, седьмого и одиннадцатого нейронов упомянутого первого слоя, входы четвертого нейрона упомянутого второго слоя соединены с выходами третьего, пятого, седьмого и двенадцатого нейронов упомянутого первого слоя, входы пятого нейрона упомянутого второго слоя соединены с выходами второго, шестого и тринадцатого нейронов упомянутого первого слоя, входы седьмого нейрона упомянутого второго слоя соединены с выходами первого, второго, четвертого, шестого, седьмого и четырнадцатого нейронов упомянутого первого слоя, входы восьмого нейрона упомянутого второго слоя соединены с выходами второго, третьего, четвертого, шестого и пятнадцатого нейронов упомянутого первого слоя.
Описание изобретения к патенту
Устройство относится к области вычислительной техники, в частности может быть использовано как для контроля и исправления ошибки при передаче информации, так и при проведении арифметических операций в расширенных полях Галуа GF(2v ).
Известно устройство для обнаружения и исправления ошибок (СССР №714399, 08.02.1980, G 06 F 11/08), содержащее регистр, два блока модульной свертки, предназначенных для вычисления остатков числа по контрольным основаниям, два модульных сумматора, предназначенных для вычисления синдрома ошибки по первому и второму контрольному основаниям, блок памяти, предназначенный для хранения констант, третий сумматор, предназначенный для получения исправленного числа путем суммирования ошибочного числа с константой ошибки.
Недостатком устройства является низкое быстродействие вследствие отдельного последовательного применения блоков модульной свертки, предназначенных для вычисления остатков числа по контрольным основаниям и сумматоров, для вычисления синдромов ошибки по первому и второму контрольным основаниям.
Техническим результатом, достигнутым при осуществлении заявленного изобретения, является повышение скорости обнаружения и коррекции ошибок.
Указанный технический результат достигается за счет применения полиномиальной системы классов вычетов (ПСКВ), в которой в качестве основания системы используется минимальные многочлены p i(z), i=1, 2, ..., k+r, определенные в расширенных полях Галуа GF(2v) и нейросетевых технологий, а также применения псевдоортогональных полиномов, определяемых в данной ПСКВ.
Особенность ПСКВ состоит в том, что независимость обработки информации по основаниям ПСКВ позволяет не только повысить скорость и точность обработки, но также и обеспечить обнаружение и коррекцию ошибок в процессе функционирования вычислительного устройства класса вычетов. Если на диапазон возможного изменения кодируемого множества полиномов наложить ограничения, то есть выбрать k из n оснований ПСКВ (k<n), то это позволит осуществить разбиение полного диапазона Рполн(z) расширенного поля Галуа GF(pv) на два непересекающихся подмножества.
Первое подмножество называется рабочим диапазоном и определяется выражением
Многочлен A(z) с коэффициентами из поля GF(p) будет считаться разрешенным в том и только том случае, если он является элементом нулевого интервала полного диапазона P полн(z), то есть принадлежит рабочему диапазону A(z) Pраб(z).
Второе подмножество GF(рv), определяемое произведением r=n-k контрольных оснований
задает совокупность запрещенных комбинаций. Если A(z) является элементом второго подмножества, то считается, что данная комбинация содержит ошибку. Таким образом, местоположение полинома A(z) относительно двух данных подмножеств позволяет однозначно определить, является ли кодовая комбинация A(z)=( 1(z), 2(z), ..., k+r(z)) разрешенной или содержит ошибочные символы.
В основу математической модели определения позиционной характеристики - нормированного следа полинома A(z) положена китайская теорема об остатках, согласно которой
где и - ортогональный базис i-го основания; m i(z) - вес ортогонального базиса.
С другой стороны A(z) можно представить в виде суммы ортогональных полиномов , у которых все остатки равны нулю за исключением основания pi(z)
Тогда на основании равенств (3) и (4) очевидно, что
Если положить условие, A(z) Рраб(z), то справедливо
Согласно китайской теореме об остатках полином можно представить в виде
Тогда каждое слагаемое выражения (6) представляет собой
где - ортогональный базис безизбыточной системы оснований ПСКВ.
Наряду с ортогональными полиномами в модулярных кодах нашли широкое применение псевдоортогональные полиномы, которые представляют собой ортогональные полиномы, у которых нарушена ортогональность по нескольким основаниям
Известно, что если в псевдоортогональных полиномах нарушена ортогональность по контрольным основаниям, то данные полиномы являются ортогональными полиномами безизбыточной системы оснований полиномиальной системы классов вычетов .
Для получения псевдоортогональных полиномов проведем расширение системы оснований p1(z), ..., pk(z) на r контрольных оснований p k+1(z), ..., pk+r(z) и представим ортогональные полиномы в виде
Выражение (8) определяет значения псевдоортогональных полиномов, у которых нарушена ортогональность по контрольным основаниям.
Подставив выражение (8) в равенство (6), и учитывая, что в процессе выполнения операции не бывает выход за пределы Pраб(z), получаем
Следовательно, справедливо
Таким образом, на основании выражения (9) и воспользовавшись значениями псевдоортогональных полиномов, определяемых равенством (8), можно вычислить значения остатков по контрольным основаниям согласно
Затем на основании полученных значений и значений k+1(z), ..., k+r(z), поступающих на вход устройства коррекции ошибок, можно определить синдром ошибки согласно выражению
Если синдром ошибки равен нулю, т.е.
то исходный полином A(z) Pраб(z) является разрешенным и не содержит ошибки. В противном случае модулярная комбинация является запрещенной. Тогда в зависимости от величины синдрома ошибки осуществляется коррекция ошибки, т.е.
где (0, ..., (z), ..., 0) - вектор ошибки модулярного кода; i(z) - глубина ошибки по i-му модулю; .
Структура устройства представлена на фигуре 1. Устройство состоит из регистра 2, предназначенного для хранения остатков по рабочим и контрольным основанием ПСКВ в течение времени обнаружения ошибки, вход которого соединен со входом 1 устройства, блока вычисления синдрома ошибки 3, входы которого соединены с выходами регистра 2, блокам памяти 4, предназначенного для хранения констант - векторов ошибки, входы которого подключены к выходам блока вычисления синдрома ошибки 3, сумматора 5, осуществляющего исправления ошибки путем суммирования исправленной (ошибкой) комбинации кода ПСКВ с вектором ошибки, первый, второй и третий входы которого соединены соответственно с тремя первыми выходами регистра 2 по которым передаются остатки рабочих оснований, а четвертый вход соединен с выходом блока памяти 4, выход сумматора 5 является выходом 6 устройства.
Работа устройство для коррекции ошибок в полиномиальной системе классов вычетов с использованием псевдоортогональных полиномов осуществляется следующим образом. На вход 1 устройства для коррекции ошибок в ПСКВ подается контролируемое число, представленное в полиномиальной форме
где i(z) - остаток полинома A(z) по модулю pi(z); p1(z), p 2(z), ..., pk(z) - рабочие основания системы ПСКВ; рk+1(z), p k+2(z) - контрольные основания. Данный код записывается в регистр 2. Затем с выхода регистра 2 код ПСКВ в двоичном виде поступает на вход блока вычисления синдрома ошибки 3, который представляет собой двухслойную нейронную сеть. Модулярный код ПСКВ A(z)=( 1(z), 2(z), ..., k(z), k+1(z), k+2(z)) записывается нейронами первого слоя блока вычисления синдрома ошибки 3. С выхода нейронов первого слоя сигналы в двоичном виде поступают на второй слой нейронной сети, который осуществляет вычисление синдрома ошибки согласно выражению (11). С выхода нейронов второго слоя значение синдрома ошибки в двоичном коде k+1(z), ..., k+r(z) подается на вход блока 4 памяти, где осуществляется выбор оттуда соответствующей константы ошибки. Эта константа ошибки поступает на четвертый вход сумматора 5, где суммируется со значением A(z)=( 1(z), 2(z), ..., k(z)), представленным по рабочим основаниям, поступившим с выходов регистра 3 на первые три входа сумматора 5. Исправленное значение A(z) согласно равенству (12) с выхода сумматора 5 подается на выход 6 устройства.
В качестве примера рассмотрим расширенное поле Галуа GF(2 4), в котором определены следующие основания:
p 1(z)=z+1; р2(z)=z 2+z+l; p3(z)=z4 +z3+z2+z+1; p 4(z)=z4+z3+1; p5(z)=z4+z+1, где p1(z), p2(z), р 3(z) - рабочие основания, p4(z), p5(z) - контрольные основания ПСКВ. Тогда согласно выражению (1) имеем Pраб(z)=z 7+z6+z5+z 2+z+1.
В полной системе оснований ПСКВ поля GF(2 4) определены следующие ортогональные базисы:
Используя сравнимость ортогональных базисов безызбыточной и полной системы по рабочему диапазону, определим значения ортогональных базисов безызбыточной системы оснований p1 (z)=z+1; p2(z)=z2 +z+1; p3(z)=z4+z 3+z2+z+1. Тогда
На основании полученных значений определим все псевдоортогональные полиномы для ПСКВ GF(24), учитывая невозможность выхода за пределы рабочего диапазона Рраб (z)=z7+z6+z 5+z2+z+1. Полученные значения представлены в таблице 1.
Таблица 1 Псевдоортогональные полиномы ПСКВ поля GF(24) | |
Основание ПСКВ | Пседоортогональный полином |
p1(z)=z+1 | (1, 0, 0, z3+z+1, z) |
p2(z)=z 2+z+1 | (0, 1, 0, z2 +z+1, z3+1) |
(0, z, 0, z3+z, z2 +z+1) | |
(0, z+1, 0, z 3+z2+1, z3+z 2+z) | |
p 3(z)=z4+z2+z 2+z+1 | (0, 0, 1, z3 +z2+1, z3+z) |
(0, 0, z, z+1, z2 +z+1) | |
(0, 0, z+0, z 3+z2+z, z3+z 2+1) | |
(0, 0, z 2, z, z3) | |
(0, 0, z2+l, z3+z 2+z+1, z) | |
(0, 0, z 2+z, 1, z3+z2 +z+1) | |
(0, 0, z2 +z+1, z3+z2, z 2+1) | |
(0, 0, z 3, z2, z+l) | |
(0, 0, z3+1, z3+1, z3+1) | |
(0, 0, z3+z, z2+z+1, z 2) | |
(0, 0, z 3+z+1, z3+z, z3 +z2+z) | |
(0, 0, z2+z2, z 2+z, z3+z+1) | |
(0, 0, z3+z2+1, z 3+z+1, 1) | |
(0, 0, z 3+z2+z, z2+1, z3+z2) | |
(0, 0, z3+z 2+z+1, z3, z2 +z) |
Если полином A(z) Pраб, то справедливо
где левая часть равенства представлена по рабочим основаниям p1(z), p2 (z), р3(z), средняя часть равенства - получена на основании выражения (10), а правая - модулярная комбинация системы оснований p1(z), р 2(z), p3(z), p4 (z), p5(z) расширенного поля Галуа GF(2 4), поступившая на вход устройства для коррекции ошибок в полиномиальной системе классов вычетов с использованием псевдоортогональных полиномов. Тогда согласно (11) имеем
В противном случае
Полученный результат свидетельствует, что поступившая на вход устройства модульная комбинация A(z) содержит ошибку, которую необходимо подвергнуть коррекции. В таблице 2 представлены значения вектора ошибки (0, ..., i(z), ..., 0) - модулярного кода для различных значений синдрома ошибки для ПСКВ поля GF(2 4).
Таблица 2 Значения вектора ошибки модулярного кода поля GF(24) | ||
Основание ПСКВ | Значение вектора ошибки | |
4(z) | 5(z) | |
0 | 0 | (0, 0, 0) |
z3+z+1 | z | (1, 0, 0) |
z 2+z+1 | z3+1 | (0, 1, 0) |
z 3+z | z2+z+1 | (0, z, 0) |
z 3+z2+1 | z 3+z2+z | (0, z+1, 0) |
z3+z 2+1 | z3+z | (0, 0, 1) |
z+1 | z2+z+1 | (0, 0, z,) |
z3+z 2+z | z3+z 2+l | (0, 0, z+1) |
z | z3 | (0, 0, z2) |
z3+z2+z+l | z | (0, 0, z2+1) |
1 | z3 +z2+z+1 | (0, 0, z 2+z) |
z3 +z2 | z 2+1 | (0, 0, z2+z+1) |
z2 | z+1 | (0, 0, z3) |
z3+1 | z3+l | (0, 0, z 3+1) |
z2 +z+1 | z2 | (0, 0, z3+z) |
z3+z | z 3+z2+z | (0, 0, z3+z+1) |
z 2+z | z3+z+1 | (0, 0, z3+z 2) |
z3 +z+1 | 1 | (0, 0, z 3+z2+1) |
z2+1 | z 3+z2 | (0, 0, z 3+z2+z) |
z3 | z 2+z | (0, 0, z3+z 2+z+l) |
Пусть на вход 1 устройства подается полином A(z)=z5+z 4+z, значение которого в модулярном коде представляется A(z)=(1, z+1, z3+z2 , 0, z2+z4+1).
Тогда согласно выражению (8) и данных, представленных в таблице 1, получаем следующие псевдоортогональные полиномы А i(z):
Согласно выражению (10) определяем значения остатков по контрольным основаниям:
Согласно выражению (11) определяем синдром ошибки:
Из блока памяти 5 в соответствии с 4(z)=0, 5(z)=0 выбирается величина (0, 0, 0), которая складывается с A(z)=(1, z+1, z3 +z2), в сумматоре 6 с образованием на выходе
Допустим, что в принятой комбинации произошла ошибка по третьему основанию и ее глубина равна 3(z)=z2+z. Тогда имеем
Тогда согласно выражению (8) и данных, представленных в таблице 1, получаем следующие псевдоортогональные полиномы Ai(z):
Согласно выражению (10) определяем значения остатков по контрольным основаниям:
Согласно выражению (11) определяем синдром ошибки:
Из блока памяти 5 в соответствии с 4(z)=1, 5(z)=z3+z 2+z+1 выбирается величина (0, 0, z2 +z), которая складывается с A(z)=(1, z+1, z3 +z) в сумматоре 6 с образованием на выходе
Ошибка в модулярном коде исправлена.
Блок вычисления синдрома ошибки представлен на фиг.2. Блок вычисления синдрома ошибки имеет 5 входов, по первым трем из которых подаются остатки 1(z), 2(2), 3(z) по рабочим основанием p 1(z), p2(z), р3 (z), по четвертому и пятому поступают остатки 4(z) и 5(z) по контрольным основаниям p 4(z) и p5(z). Блок вычисления синдрома представляет собой двухслойную нейронную сеть. Первый слой содержит 15 нейронов. Входы нейронов 7, 8-9, 10-13 подключены соответственно к первому, второму и третьему входу блока вычисления синдрома ошибки. Входы нейронов 14-17 и 18-21 подключены соответственно к четвертому и пятому входам блока вычисления синдрома ошибок. На входы нейронов 7, 8-9, 10-13 в двоичном виде поступают остатки 1(z), 2(z), 3(z) по трем рабочим основаниям ПСКВ. На нейроны 14-17 поступает двоичный код 4(z) по первому контрольному модулю p4(z)=z4+z 3+1. На нейроны 18-21 в двоичном коде поступает в двоичном коде 5(z) по второму контрольному модулю p5(z)=z4+z+1. Старшие разряды остатков полинома 1(z), 2(z), 3(z), 4(z), 5(z) записываются соответственно в нейроны 7, 8, 10, 14, 18 первого слоя. Второй слой нейронной сети содержит 8 нейронов, выполняющих базовую операцию согласно выражению (11), причем первые четыре нейрона 22-25 определяют значение 4(z), остальные нейроны 26-29 определяют значение 5(z). Входы нейрона 22 второго слоя соединены с выходами нейронов 7, 8, 13, 14 первого слоя. Входы нейрона 23 второго слоя соединены с выходами нейронов 9, 10, 13, 15 первого слоя. Входы нейрона 24 второго слоя соединены с выходами 7, 8, 9, 11, 12, 16 нейронов первого слоя. Входы нейрона 25 второго слоя соединены с выходами 7, 9, 12, 13, 17 нейронов первого слоя. Входы нейрона 26 второго слоя соединены с выходами 9, 11, 13, 18 нейронов первого слоя. Входы нейрона 27 второго слоя соединены с выходами 8, 12, 19 нейронов первого слоя. Входы нейрона 28 второго слоя соединены с выходами 7, 8, 10, 12, 13, 20 нейронов первого слоя. Входы нейрона 29 второго слоя соединен с выходами нейронов 8, 9, 10, 12, 21 нейронов первого слоя. Старшие значения синдрома ошибки 4(z) и 5(z) соответственно вычисляются в нейронах 22 и 26. Выходы нейронов второго слоя являются выход блока вычисления синдрома ошибки.
Рассмотрим процесс работы блока вычисления синдрома ошибки на примерах. Пусть на вход устройства коррекции ошибки был подан модулярный код A(z)=(1, z+1, z 3+z2, 0, z2 +z+1). Данный код поступает на входы нейронов первого слоя блока вычисления синдрома ошибки. Сигналы на выходе нейронов первого слоя представлены в таблице 3.
Таблица 3 Сигналы на выходе нейронов первого слоя | |||||||||||||||
Нейроны | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
Сигнал на выходе | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Сигналы с выходов нейронов первого слоя поступают на соответствующие входы нейронов второго слоя. В таблице 4 представлены значения сигналов на входе и на выходе нейронов второго слоя. Символ «-» соответствует отсутствию связи между нейронами второго и первого слоя.
Таблица 4 Сигналы на выходе нейронов второго слоя | ||||||||||||||||
Нейроны | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | выход |
22 | 1 | - | 1 | - | - | - | 0 | 0 | - | - | - | - | - | - | - | 0 |
23 | - | - | 1 | 1 | - | - | 0 | - | 0 | - | - | - | - | - | - | 0 |
24 | 1 | 1 | 1 | - | 1 | 0 | - | - | - | 0 | - | - | - | - | - | 0 |
25 | 1 | - | 1 | - | - | 0 | 0 | - | - | - | 0 | - | - | - | - | 0 |
26 | - | - | 1 | - | 1 | - | 0 | - | - | - | - | 0 | - | - | - | 0 |
27 | - | 1 | - | - | - | 0 | - | - | - | - | - | - | 1 | - | - | 0 |
28 | 1 | 1 | - | 1 | - | 0 | 0 | - | - | - | - | - | - | 1 | - | 0 |
29 | - | 1 | 1 | 1 | - | 0 | - | - | - | - | - | - | - | - | 1 | 0 |
Допустим, что в принятой комбинации произошла ошибка по третьему основанию и ее глубина равна 3(z)=z2+z. Тогда имеем
Данный код поступает на входы нейронов первого слоя блока вычисления синдрома ошибки. Сигналы на выходе нейронов первого слоя представлены в таблице 5.
Таблица 5 Сигналы на выходе нейронов первого слоя | |||||||||||||||
Нейроны | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
Сигнал на выходе | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Сигналы с выходов нейронов первого слоя поступают на соответствующие входы нейронов второго слоя. В таблице 6 представлены значения сигналов на входе и на выходе нейронов второго слоя.
Таблица 6 Сигналы на выходе нейронов второго слоя | ||||||||||||||||
Нейроны | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | выход |
22 | 1 | - | - | - | - | 0 | 0 | - | - | - | - | - | - | - | 0 | |
23 | - | - | 1 | - | - | 0 | - | 0 | - | - | - | - | - | - | 0 | |
24 | 1 | 1 | - | 0 | 1 | - | - | - | 0 | - | - | - | - | - | 0 | |
25 | 1 | - | - | - | 1 | 0 | - | - | - | 0 | - | - | - | - | 1 | |
26 | - | - | - | 0 | - | 0 | - | - | - | - | 0 | - | - | - | 1 | |
27 | - | 1 | - | - | - | 1 | - | - | - | - | - | - | 1 | - | - | 1 |
28 | 1 | 1 | - | 1 | - | 1 | 0 | - | - | - | - | - | - | 1 | - | 1 |
29 | - | 1 | 1 | 1 | - | 1 | - | - | - | - | - | - | - | - | 1 | 1 |
Таким образом, на выходе блока вычисления синдрома ошибки определены значения 4(z)=1, 5(z)=z3+z 2+z+1. Полученные данные совпадают с контрольными просчетами, представленными ранее.
Класс G01F11/08 диафрагменного или сильфонного типа
Класс G06N3/02 использующие модели нейронных сетей