НЕЙРОННЫЙ ДЕКОДЕР ДВОИЧНЫХ БЛОЧНЫХ КОДОВ С ИСПРАВЛЕНИЕМ ОШИБОК И СТИРАНИЙ

Заявленная полезная модель относится к вычислительной технике и может быть использована в качестве декодера в системах помехоустойчивого кодирования.
Известен нейронный декодер для линейных блоковых кодов (Ahmed S. Linear block code decoder using neural network // IEEE International Joint Conference on Neural Networks (IJCNN′08). - 2008. - P. 1111-1114), содержащий пять слоев нейронов, соединенных между собой, причем первый и второй из которых выполняют вычисление вектора синдрома ошибки в принятой кодовой комбинации, второй и третий - определяют позицию однократной ошибки в принятой кодовой комбинации, а третий, четвертый и пятый предназначены для исправления этой ошибки.
Каждый используемый в данном декодере нейрон представляет собой процессорный узел, в который входят сумматор, выполняющий взвешенное суммирование входных сигналов и блок формирования активационной функции, входом связанный с выходом сумматора. При этом блок формирования активационной функции выполняет заданное преобразование выходного сигнала сумматора, а выход блока формирования активационной функции является выходом нейрона.
Данный нейронный декодер позволяет осуществить исправление однократных двоичных ошибок. Однако из-за использования большого
количества слоев нейронов данное устройство обладает низким быстродействием и большими аппаратными затратами, кроме того устройство обеспечивает коррекцию только однократных ошибок.
Наиболее близким по технической сущности к предлагаемому техническому решению является декодер, представляющий собой классификатор по минимальному расстоянию Хэмминга для двоичных кодов, искаженных шумом (Zeng G., Hush D., Ahmed N. An application of neural net in decoding error-correcting codes // IEEE International Symposium on Circuits and Systems (ISCAS′89). - 1989. - P. 782-785) и обеспечивающий исправление ошибок двоичных блочных кодов. Данный декодер содержит буферное устройство, три слоя нейронов, связанных между собой. При этом первый из слоев вычисляет величину подобия всех разрешенных кодовых комбинаций входному вектору, второй слой в соответствии с рекуррентным процессом осуществляет поиск нейрона с максимальной величиной возбуждения, третий слой генерирует информационный вектор, соответствующий выбранной предыдущим слоем разрешенной кодовой комбинации.
Однако известное устройство обладает переменной задержкой при обработке принимаемых из канала кодовых комбинаций, зависящей от числа и распределения ошибок, а также содержит достаточно большое число нейронов, что приводит к низкому быстродействию и большим аппаратным затратам. Кроме того, данное устройство не обеспечивает исправление стираний.
Достигаемым результатом полезной модели является повышение быстродействия путем уменьшения времени задержки за счет исключения зависимости задержки от числа и распределения ошибок в кодовом слове, обеспечение исправления стираний путем использования входных сигналов представленных в биполярной форме, а также уменьшении аппаратных затрат за счет уменьшения количества нейронов.
Достижение указанного результата обеспечивается в предлагаемом нейронном декодере двоичных блочных кодов с исправлением ошибок и стираний, содержащем установленное на входе декодера буферное устройство, два слоя нейронов, причем буферное устройство содержит N ячеек, где N - длина кода, при этом каждая ячейка связана со входами всех нейронов первого слоя, каждый нейрон первого и второго слоя содержит сумматор, соответствующие входы которого являются входами нейронов, а его выход подключен ко входу блока формирования активационной (передаточной) функции, выход которого является выходом нейрона, отличающемся тем, что в него введен блок формирования порогового сигнала (смещения), выход которого подключен к соответствующему входу сумматоров нейронов первого слоя, а блок формирования активационной (передаточной) функции выполнен в виде блока ограничения амплитуды сигнала, при этом выходы нейронов первого слоя связаны со входами всех нейронов второго слоя, выходы которых являются выходами нейронного декодера.
Достижение в предлагаемом устройстве необходимого результата при введении указанных отличительных признаков можно пояснить следующим образом.
В предлагаемом устройстве используется только два слоя нейронов, связанных между собой, поскольку сумматор каждого нейрона первого слоя выполняет операцию взвешенного сложения входных сигналов, поступающих с буферного устройства (выполняющего функцию распределения элементов принятого сигнала по нейронам первого слоя) с сигналом смещения (порога), вырабатываемого введенным в декодер блоком формирования порогового сигнала в соответствии со следующим выражением:
j
где ν - выходной сигнал сумматора 7 j-го нейрона первого слоя 3, b - сигнал смещения (порога) с выхода блока ФПС 4. На Выходе нейрона имеем сигнал, который формируется блоком 8 ОАС (фиг.4) в соответствии с выражением:
Введение порогового сигнала b позволяет подавить сигналы малоактивных нейронов первого слоя, переводя их в отрицательные значения, и сразу выделить нейрон с максимальной (положительной) величиной возбуждения, на выходе которого в соответствии с функцией блока ОАС 8 генерируется сигнал "единица". Это позволяет определить ближайшую к входному кодовому слову разрешенную комбинацию кода без использования дополнительного третьего слоя, осуществляющего в прототипе поиск нейрона с максимальной величиной возбуждения в соответствии с рекуррентным процессом:
при начальном значении , где t - относительное время,  - выход k-го нейрона третьего слоя в прототипе в момент времени  Итерационный процесс (4), создающий дополнительную задержку в прототипе, завершается в момент, когда состояние нейронов третьего слоя стабилизируется и активность продолжает проявлять только один нейрон, тогда как остальные пребывают в нулевом состоянии.
В предлагаемом устройстве устраняется переменная задержка при декодировании, использование биполярных сигналов обеспечивает исправление стираний, а использование только двух слоев приводит к увеличению быстродействия и уменьшению аппаратных затрат.
Предложенный нейронный декодер поясняется чертежами, где на фиг.1 приведена функциональная схема предлагаемого нейронного декодера двоичных блочных кодов для исправления ошибок и стираний. На фиг.2
min
i
1
2
N
min
K
приведена схема нейрона первого слоя. На фиг.3 приведена схема нейрона второго слоя. На фиг.4 приведена характеристика активационной функции, реализуемой каждым нейроном. Для описания предлагаемого декодера в соответствии с фиг.1 введем следующие обозначения: N - длина кода, К - длина информационного слова, d - минимальное кодовое расстояние, с - i-я разрешенная кодовая комбинация,  - информационное слово i-й разрешенной кодовой комбинации. Нейронный декодер состоит из буферного устройства 1, предназначенного для хранения принятой из канала кодовой комбинации; первого слоя 2 нейронов 3, предназначенного для вычисления ближайшей разрешенной кодовой комбинации (РКК), причем первые входы каждого нейрона соединены с соответствующими выходами (а, а,..., a) буферного устройства 1, а второй его вход - с выходом b блока 4 формирования порогового сигнала (ФПС), предназначенного для генерации постоянного смещения (порога) (b=-(N-d-1)) для нейронов первого слоя; второго слоя 5 нейронов 6, предназначенного для вычисления информационного слова, связанного с определенной первым слоем 2 нейронов РКК, причем входы нейронов 6 второго слоя 5 соединены с выходами  нейронов 3 первого слоя 2, выходные сигналы которого  являются выходами нейронного декодера блочных кодов с исправлением ошибок и стираний. В соответствии с фиг.2, первый слой 2 нейронов 3 содержит 2 нейронов, каждый из которых содержит сумматор 7, предназначенный для сложения взвешенной суммы входных сигналов нейрона 3 с сигналом смещения (порога) b, формируемым блоком 4 ФПС, выход которого v соединен со входом блока 8 ограничения амплитуды сигнала (ОАС), выход которого φ(ν) является выходом нейрона 3. В соответствии с фиг.3, второй слой 5 нейронов 6 содержит К нейронов, каждый из которых содержит сумматор 7, предназначенный для вычисления взвешенной суммы входных сигналов нейрона, выход которого ν соединен со входом блока 8 ОАС, выход которого φ(ν) является выходом нейрона 6.
Работа нейронного декодера блочных кодов для исправления ошибок и стираний (в соответствии с фиг.1, 2, 3, 4) осуществляется следующим образом.
1
2
N
i
1
2
N
1
min
В буферное устройство 1 записывается принятая из канала кодовая комбинация длины N, представленная в биполярной форме С=(с, с,..., c), где с∈[-1, 0,1], причем символ "стирания" в данном коде заменяется символом 0 (нуль). С выходов буферного устройства 1 элементы принятой кодовой комбинации (а, а,...,а) с весовыми коэффициентами , где  - весовой коэффициент, соединяющий i-ю ячейку а буферного устройства 1 и j-й нейрон первого слоя 2, поступают на входы сумматоров 7 нейронов 3 первого слоя 2. Весовые коэффициенты  нейронов 3 первого слоя 2, выполняющие роль распределенной памяти, определяются равными разрешенным кодовым комбинациям, представленными в биполярной форме  что позволяет исправить не только ошибки, но и стирания в принятой кодовой комбинации. Одновременно на сумматоры 7 нейронов 3 первого слоя 2 с выхода блока 4 ФПС поступает сигнал (b=-(N-d-1)). На входы блоков 8 ОАС нейронов 3 первого слоя 2 поступает взвешенная сумма v входных сигналов с пороговым сигналом от блока 4 ФПС. Блок 8 ОАС реализует пороговую функцию единичного скачка (функцию Хэвисайда)  (фиг.4). На выходе блока 8 ОАС имеем сигналы нейронов 3  первого слоя 2. С выходов нейронов 3 сигналы с весовыми коэффициентами , где  - весовой коэффициент, соединяющий выход i-го нейрона  первого слоя 2 и соответствующий вход j-го нейрона второго слоя 5, поступают на входы сумматоров 7 нейронов 6 второго слоя 5. Весовые коэффициенты  нейронов второго слоя 5, выполняющие роль распределенной памяти, определяются информационными словами соответствующих разрешенных кодовых комбинаций, представленными в бинарной форме . На входы блоков 8 ОАС нейронов 6 второго
1
2
N
слоя 5 поступает взвешенная сумма v входных сигналов . Блок 8 ОАС реализует пороговую функцию единичного скачка (функцию Хэвисайда)  (фиг.4). Выходы второго слоя 5 представляют собой выходы нейронов 6, на которых формируются сигналы  информационного слова кодовой комбинации (с, с,..., С) с исправленными ошибками и стираниями.
Таким образом, благодаря предложенному построению декодера двоичных блочных кодов с исправлением ошибок и стираний, обеспечивается устранение переменной задержки при декодировании, исправление стираний, а также увеличение быстродействия и уменьшение аппаратных затрат.
Поясним выполнение узлов предложенного декодера. Все узлы декодера могут быть реализованы, например, на одном отечественном специализированном микропроцессоре (нейрочипе) Л1879ВМ1 (NM6403), производства НТЦ «Модуль» (http://www.eracomp.ru/catalog_3270_326.htm), в котором блок 8 ОАС реализуется на встроенном скалярном RISC ядре, а сумматор 7 - на специализированном векторном сопроцессоре VCP.
Блок 4 ФПС представляет собой управляющий регистр VR для хранения вектора смещений нейронов.
Значения весовых коэффициентов связей  и , участвующих в взвешенном суммировании в сумматоре 7 загружаются в специализированные блоки памяти WOPER и WBUF для хранения матрицы весовых коэффициентов. Буферное устройство 1 может быть выполнено в виде микросхемы SDRAM Samsung K4S511632B-UC75 (http://www.komponenta.m/component/option,com_catalogshop/Itemid,36/func, vi ewcategory/catid,64/) для записи принятой из канала кодовой комбинации, которая подключается к нейрочипу NM6403 через Интерфейс глобальной шины (GMI).