Устройство декодирования кодов рида-соломона

Изобретение относится к системам телекоммуникации и вычислительной техники и может найти применение в устройствах приема информации из канала передачи или воспроизведения информации с высоким уровнем ошибок. Техническим результатом является повышение эффективности исправления ошибок за счет исправления двух дополнительных ошибок за границей половины минимального расстояния с использованием мягких решений. Устройство содержит буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок, блок сортировки позиций символов, блок вычисления значений ошибок, первый сумматор элементов поля Галуа. 10 ил.

 

Изобретение относится к системам телекоммуникаций и вычислительной техники и может найти применение в устройствах приема информации из канала передачи или воспроизведения информации с высоким уровнем ошибок.

В настоящее время на практике применяются устройства декодирования кодов Рида-Соломона (PC-кодов), реализующие классические алгоритмы декодирования (Питерсона-Горенстейна-Цирлера, Берлекэмпа-Месси, Евклида), позволяющие исправлять не более tC ошибочных символов в кодовом слове ( t С = ( d 1 ) / 2 , d - минимальное кодовое расстояние).

Известно устройство декодирования, реализующее алгебраический алгоритм декодирования кодов Рида-Соломона, используя мягкие решения (см. патент 6634007 США. МПК7 H03M 13/00. Algebraic Soft-Decision Decoding of Reed-Solomon codes. / Ralf Koetter, Alexander Vardy. - Заявлено 23.01.2000 N 09/602914; опубл. 14.10.2003), содержащее: блок повторного кодирования, блок интерполяции, блок факторизации, блок выборки точек интерполяции и селектор.

Алгоритм работы устройства состоит в следующем: используя оценки надежностей символов принятого кодового слова, вычисляется матрица М, которая определяет интерполяционные точки и их кратность; выполняется процедура интерполяции для нахождения полинома QM(X,Y); в полиноме QM(X,Y) выделяются сомножители вида Y-f(X); из полиномов f(X) реконструируются кодовые слова; наиболее вероятное из них выбирается как результат работы алгоритма.

Недостатком данного устройства является его сложность, обусловленная сложностью реализации процедур интерполяции и факторизации многочленов больших степеней.

Наиболее близким по технической сущности к заявляемому изобретению является выбранное в качестве прототипа устройство декодирования кодов Рида-Соломона (см. патент 2441318 РФ. МКИ H03M 13/45. Устройство декодирования кодов Рида-Соломона. / С.И. Егоров, О.Б. Графов. - №2010134469/08, заявл. 17.08.2010; опубл. 27.01.12, Бюл. №3), позволяющее исправить одну дополнительную ошибку за границей половины минимального кодового расстояния с использованием мягких решений.

Устройство-прототип содержит: буферную память данных, блок вычисления синдромов, блок сортировки позиций символов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок и блок вычисления значений ошибок.

Недостатком прототипа является относительно невысокая корректирующая способность устройства.

Технической задачей изобретения является повышение эффективности исправления ошибок за счет исправления двух дополнительных ошибок за границей половины минимального расстояния с использованием мягких решений.

Поставленная техническая задача решается тем, что в устройство декодирования кодов Рида-Соломона, содержащее буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок, блок сортировки позиций символов, блок вычисления значений ошибок, первый сумматор элементов поля Галуа, причем входы буферной памяти данных и входы блока вычисления синдромов являются входами символов данных устройства декодирования кодов Рида-Соломона, выходы буферной памяти данных соединены с первыми входами первого сумматора элементов поля Галуа, выходы блока вычисления синдромов соединены с первыми входами процессора Галуа, первые выходы процессора Галуа соединены с первыми входами блока дискретного преобразования Фурье, вторые выходы процессора Галуа соединены со вторыми входами блока дискретного преобразования Фурье, третьи выходы процессора Галуа соединены с третьими входами блока дискретного преобразования Фурье, четвертые выходы процессора Галуа соединены с четвертыми входами блока поиска позиций ошибок, пятые выходы процессора Галуа соединены с первыми входами блока вычисления значений ошибок, шестые выходы процессора Галуа соединены со вторыми входами блока вычисления значений ошибок, седьмые выходы процессора Галуа соединены с третьими входами блока вычисления значений ошибок, вторые выходы блока дискретного преобразования Фурье соединены с третьими входами процессора Галуа, третьи выходы блока дискретного преобразования Фурье соединены с четвертыми входами процессора Галуа, четвертые выходы блока дискретного преобразования Фурье соединены с первыми входами блока поиска позиций ошибок, пятый выход блока дискретного преобразования Фурье соединен со вторым входом блока поиска позиций ошибок, шестые выходы блока дискретного преобразования Фурье соединены с третьими входами блока поиска позиций ошибок, первые выходы блока поиска позиций ошибок соединены с пятыми входами процессора Галуа, вторые выходы блока поиска позиций ошибок соединены со вторыми входами блока сортировки позиций символов, выходы блока вычисления значений ошибок соединены со вторыми входами первого сумматора элементов поля Галуа, выходы первого сумматора элементов поля Галуа являются выходами данных устройства декодирования кодов Рида-Соломона, первые входы блока сортировки позиций символов являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона, первые выходы блока дискретного преобразования Фурье соединены с третьими входами блока сортировки позиций символов, первые выходы блока сортировки позиций символов соединены со вторыми входами процессора Галуа, вторые выходы блока сортировки позиций символов соединены с пятыми входами блока поиска позиций ошибок, причем блок поиска позиций ошибок содержит первый блок вычисления невязок, второй блок вычисления невязок, первый блок подсчета невязок, второй блок подсчета невязок, первый коммутатор, первый регистр-защелку, блок памяти коэффициентов, первое местное устройство управления, причем первые входы первого местного устройства управления являются четвертыми входами блока поиска позиций ошибок, вторые входы первого местного устройства управления и первые входы блока памяти коэффициентов являются пятыми входами блока поиска позиций ошибок, третьи входы блока поиска позиций ошибок являются младшими разрядами вторых входов блока памяти коэффициентов, первые входы блока поиска позиций ошибок являются средними разрядами вторых входов блока памяти коэффициентов, второй вход блока поиска позиций ошибок является старшим разрядом вторых входов блока памяти коэффициентов, младшие разряды первых выходов блока памяти коэффициентов соединены с первыми входами первого блока вычисления невязок и с первыми входами второго блока вычисления невязок, средние разряды первых выходов блока памяти коэффициентов соединены с третьими входами первого блока вычисления невязок и с третьими входами второго блока вычисления невязок, старший разряд первых выходов блока памяти коэффициентов соединен с пятым входом первого блока вычисления невязок и с пятым входом второго блока вычисления невязок, младшие разряды вторых выходов блока памяти коэффициентов соединены со вторыми входами первого блока вычисления невязок и со вторыми входами второго блока вычисления невязок, средние разряды вторых выходов блока памяти коэффициентов соединены с четвертыми входами первого блока вычисления невязок и с четвертыми входами второго блока вычисления невязок, старший разряд вторых выходов блока памяти коэффициентов соединен с шестым входом первого блока вычисления невязок и с шестым входом второго блока вычисления невязок, первый выход первого блока вычисления невязок соединен с четвертым входом первого блока подсчета невязок, вторые выходы первого блока вычисления невязок соединены с третьими входами первого блока подсчета невязок, третий выход первого блока вычисления невязок соединен с третьим входом первого местного устройства управления, первый выход первого блока подсчета невязок соединен с пятым входом первого местного устройства управления, вторые выходы первого блока подсчета невязок соединены с первыми входами первого коммутатора, третий выход второго блока вычисления невязок соединен с четвертым входом первого местного устройства управления, вторые выходы второго блока вычисления невязок соединены с третьими входами второго блока подсчета невязок, первый выход второго блока вычисления невязок соединен с четвертым входом второго блока подсчета невязок, вторые выходы второго блока подсчета невязок соединены со вторыми входами первого коммутатора, первый выход второго блока подсчета невязок соединен с шестым входом первого местного устройства управления, третий выход первого местного устройства управления соединен с седьмым входом первого блока вычисления невязок, четвертые выходы первого местного устройства управления соединены с восьмыми входами первого блока вычисления невязок, пятые выходы первого местного устройства управления соединены с девятыми входами первого блока вычисления невязок, шестые выходы первого местного устройства управления соединены с четвертыми входами блока памяти коэффициентов, седьмые выходы первого местного устройства управления соединены с третьими входами блока памяти коэффициентов, восьмые выходы первого местного устройства управления соединены со вторыми входами первого блока подсчета невязок, девятый выход первого местного устройства управления соединен с первым входом первого блока подсчета невязок, десятый выход первого местного устройства управления соединен с пятым входом первого блока подсчета невязок, одиннадцатый выход первого местного устройства управления соединен со вторым входом первого регистра-защелки, двенадцатый выход первого местного устройства управления соединен с третьим входом первого коммутатора, тринадцатый выход первого местного устройства управления соединен с пятым входом второго блока подсчета невязок, четырнадцатый выход первого местного устройства управления соединен с первым входом второго блока подсчета невязок, пятнадцатые выходы первого местного устройства управления соединены со вторыми входами второго блока подсчета невязок, шестнадцатые выходы первого местного устройства управления соединены с девятыми входами второго блока вычисления невязок, семнадцатые выходы первого местного устройства управления соединены с восьмыми входами второго блока вычисления невязок, восемнадцатый выход первого местного устройства управления соединен с седьмым входом второго блока вычисления невязок, девятнадцатые выходы первого местного устройства управления соединены с шестыми входами второго блока подсчета невязок, двадцатые выходы первого местного устройства управления соединены с шестыми входами первого блока подсчета невязок, первые выходы первого местного устройства управления являются вторыми выходами блока поиска позиций ошибок, вторые выходы первого местного устройства управления являются первыми выходами блока поиска позиций ошибок, выходы первого коммутатора соединены с первыми входами первого регистра-защелки, выходы первого регистра-защелки соединены с десятыми входами первого блока вычисления невязок и десятыми входами второго блока вычисления невязок, причем блок вычисления невязок содержит третий сумматор элементов поля Галуа, первый инвертор элементов поля Галуа, первую схему сравнения кодов, селектор нулевого элемента поля Галуа, первый логический элемент И, логический элемент ИЛИ-НЕ, одиннадцатый перемножитель элементов поля Галуа, причем первые входы первой схемы сравнения кодов являются десятыми входами блока вычисления невязок, выход первой схемы сравнения кодов соединен с первым входом первого логического элемента И, выход логического элемента ИЛИ-НЕ соединен со вторым входом первого логического элемента И и является первым выходом блока вычисления невязок, выходы первого инвертора элементов поля Галуа соединены с первыми входами одиннадцатого перемножителя элементов поля Галуа, выход первого логического элемента И является третьим выходом блока вычисления невязок, выходы одиннадцатого перемножителя элементов поля Галуа соединены со вторыми входами первой схемы сравнения кодов и являются вторыми выходами блока вычисления невязок, согласно изобретению в блок вычисления невязок введены блок произведений дробей Ri, блок произведений коэффициентов Ai, второй, третий и четвертый коммутаторы, второй и четвертый сумматоры элементов поля Галуа, первый, второй, третий, четвертый, пятый, шестой, седьмой, восьмой, девятый и десятый перемножители элементов поля Галуа, причем первые входы блока произведений коэффициентов Ai являются первыми входами блока вычисления невязок, вторые входы блока произведений коэффициентов Ai являются вторыми входами блока вычисления невязок, первые входы блока произведений дробей Ri являются третьими входами блока вычисления невязок, вторые входы блока произведений дробей Ri являются четвертыми входами блока вычисления невязок, третий вход блока произведений дробей Ri является пятым входом блока вычисления невязок, четвертый вход блока произведений дробей Ri является шестым входом блока вычисления невязок, третий вход блока произведений коэффициентов Ai соединен с шестым входом блока произведений дробей Ri и является седьмым входом блока вычисления невязок, четвертые входы блока произведений коэффициентов Ai соединены с седьмыми входами блока произведений дробей Ri и являются восьмыми входами блока вычисления невязок, пятые входы блока произведений дробей Ri соединены с девятыми входами второго коммутатора, восьмыми входами третьего коммутатора, восьмыми входами четвертого коммутатора и являются девятыми входами блока вычисления невязок, первые выходы блока произведений дробей Ri соединены с первым входами третьего сумматора элементов поля Галуа и первыми входам седьмого перемножителя элементов поля Галуа, вторые выходы блока произведений дробей Ri соединены со вторыми входами третьего сумматора элементов поля Галуа и первыми входами восьмого перемножителя элементов поля Галуа, третьи выходы блока произведений дробей Ri соединены с первыми входами девятого перемножителя элементов поля Галуа, четвертые выходы блока произведений дробей Ri соединены с первыми входами десятого перемножителя элементов поля Галуа, пятые выходы блока произведений дробей Ri соединены с первыми входами первого перемножителя элементов поля Галуа, шестые выходы блока произведений дробей Ri соединены с первыми входами второго перемножителя элементов поля Галуа, седьмые выходы блока Ri соединены с первым входами третьего перемножителя элементов поля Галуа, восьмые выходы блока произведений дробей Ri соединены с первыми входами четвертого перемножителя элементов поля Галуа, девятые выходы блока произведений дробей Ri соединены со вторыми входами пятого перемножителя элементов поля Галуа, десятые выходы блока произведений дробей Ri соединены с первыми входами шестого перемножителя элементов поля Галуа, одиннадцатый выход блока произведений дробей Ri соединен с первым входом логического элемента ИЛИ-НЕ, первые выходы блока произведений коэффициентов Ai соединены со вторыми входами первого перемножителя элементов поля Галуа и вторыми входами шестого перемножителя элементов поля Галуа, вторые выходы блока коэффициентов Ai соединены со вторыми входами второго перемножителя элементов поля Галуа и первыми входами пятого перемножителя элементов поля Галуа, третьи выходы блока коэффициентов Ai соединены со вторыми входами третьего перемножителя элементов поля Галуа и вторыми входами четвертого перемножителя элементов поля Галуа, четвертые выходы блока коэффициентов Ai соединены с первыми входами второго коммутатора, пятые выходы блока коэффициентов Ai соединены со вторыми входами второго коммутатора, шестые выходы блока коэффициентов Ai соединены с третьими входами второго коммутатора, седьмые выходы блока коэффициентов Ai соединены с четвертыми входами второго коммутатора и пятыми входами третьего коммутатора, восьмые выходы блока коэффициентов Ai соединены с четвертыми входами третьего коммутатора и третьими входами четвертого коммутатора, девятые выходы блока произведений коэффициентов Ai соединены с седьмыми входами второго коммутатора, седьмыми входами третьего коммутатора и шестыми входами четвертого коммутатора, десятые выходы блока коэффициентов Ai соединены с шестыми входами второго коммутатора, одиннадцатые выходы блока коэффициентов Ai соединены с пятыми входами второго коммутатора, на восьмые входы второго коммутатора подается константа - нулевой символ конечного поля, первые выходы второго коммутатора соединены со вторыми входами седьмого перемножителя элементов поля Галуа, вторые выходы второго коммутатора соединены со вторыми входами восьмого перемножителя элементов поля Галуа, третьи выходы второго коммутатора соединены со вторыми входами девятого перемножителя элементов поля Галуа, четвертые выходы второго коммутатора соединены со вторыми входами десятого перемножителя элементов поля Галуа, выходы первого перемножителя элементов поля Галуа соединены с первыми входами второго сумматора элементов поля Галуа, выходы второго перемножителя элементов поля Галуа соединены со вторыми входами второго сумматора элементов поля Галуа, выходы третьего перемножителя элементов поля Галуа соединены с третьими входами второго сумматора элементов поля Галуа, выходы четвертого перемножителя элементов поля Галуа соединены с четвертыми входами второго сумматора элементов поля Галуа, выходы пятого перемножителя элементов поля Галуа соединены с пятыми входами второго сумматора элементов поля Галуа, выходы шестого перемножителя элементов поля Галуа соединены с шестыми входами второго сумматора элементов поля Галуа, выходы второго сумматора элементов поля Галуа соединены с первыми входам третьего коммутатора и вторыми входами четвертого коммутатора, выходы третьего сумматора элементов поля Галуа соединены с шестыми входами третьего коммутатора и седьмыми входами четвертого коммутатора, выходы седьмого перемножителя элементов поля Галуа соединены с первыми входами четвертого сумматора элементов поля Галуа, выходы восьмого перемножителя элементов поля Галуа соединены со вторыми входами четвертого сумматора элементов поля Галуа, выходы девятого перемножителя элементов поля Галуа соединены с третьими входами четвертого сумматора элементов поля Галуа, выходы десятого перемножителя элементов поля Галуа соединены с четвертыми входами четвертого сумматора элементов поля Галуа, выходы четвертого сумматора элементов поля Галуа соединены с первыми, четвертыми и пятыми входами четвертого коммутатора и вторыми и третьими входами третьего коммутатора, выходы третьего коммутатора соединены со входами селектора нулевого элемента поля Галуа и входами первого инвертора элементов поля Галуа, выход селектора нулевого элемента поля Галуа соединен со вторым входом логического элемента ИЛИ-НЕ, выходы четвертого коммутатора соединены со вторыми входами одиннадцатого перемножителя элементов поля Галуа, причем блок произведений дробей Ri содержит пятый, шестой и седьмой коммутаторы, первый, второй, третий и четвертый регистры Rg1, первый-десятый блоки вентилей, двенадцатый-семнадцатый перемножители элементов поля Галуа, вторую схему сравнения кодов, схему формирования веса, причем первые входы пятого коммутатора являются первыми входами блока произведений дробей Ri, вторые входы пятого коммутатора являются вторыми входами блока произведений дробей Ri, третий вход пятого коммутатора соединен с третьим входом шестого коммутатора и является шестым входом блока произведений дробей Ri, первый вход шестого коммутатора является третьим входом блока произведений дробей Ri, второй вход шестого коммутатора является четвертым входом блока произведений дробей Ri, выходы пятого коммутатора соединены с первыми входами первого, второго, третьего и четвертого регистров Rg1, выход шестого коммутатора соединен со вторыми входами первого, второго, третьего и четвертого регистров Rg1, третьи входы первого, второго, третьего и четвертого регистров Rg1 являются седьмыми входами блока произведений дробей Ri, первые выходы первого регистра Rg1 соединены с четвертыми входами четвертого блока вентилей и вторыми входами пятнадцатого, шестнадцатого и семнадцатого перемножителей элементов поля Галуа, второй выход первого регистра Rg1 соединен с третьими входами первого, второго, третьего блоков вентилей, первым входом схемы формирования веса и первыми входами пятого, шестого и седьмого блоков вентилей, первые выходы второго регистра Rg1 соединены со вторыми входами тринадцатого и четырнадцатого перемножителей элементов поля Галуа, четвертыми входами третьего блока вентилей и первыми входами семнадцатого перемножителя элементов поля Галуа, второй выход второго регистра Rg1 соединен со вторыми входами первого, второго и пятого блока вентилей, третьим входом четвертого блока вентилей, первыми входами восьмого и девятого блоков вентилей и четвертым входом схемы формирования веса, первые выходы третьего регистра Rg1 соединены со вторыми входами двенадцатого перемножителя, четвертыми входами второго блока вентилей и первыми входами четырнадцатого и шестнадцатого перемножителей элементов поля Галуа, второй выход третьего регистра Rg1 соединен с первым входом первого блока вентилей, вторыми входами третьего, четвертого, шестого и восьмого блоков вентилей, первым входом десятого блока вентилей и третьим входом схемы формирования веса, первые выходы четвертого регистра Rg1 соединены с четвертыми входами первого блока вентилей, первыми входами двенадцатого, тринадцатого и пятнадцатого перемножителей элементов поля Галуа, второй выход четвертого регистра Rg1 соединен с первыми входами второго, третьего и четвертого блоков вентилей, вторыми входами седьмого, девятого и десятого блоков вентилей и вторым входом схемы формирования веса, выходы двенадцатого перемножителя элементов поля Галуа соединены с третьими входами пятого блока вентилей, выходы тринадцатого перемножителя элементов поля Галуа соединены с третьими входами шестого блока вентилей, выходы четырнадцатого перемножителя элементов поля Галуа соединены с третьими входами седьмого блока вентилей, выходы пятнадцатого перемножителя элементов поля Галуа соединены с третьими входами восьмого блока вентилей, выходы шестнадцатого перемножителя элементов поля Галуа соединены с третьими входами девятого блока вентилей, выходы семнадцатого перемножителя элементов поля Галуа соединены с третьими входами десятого блока вентилей, на первые входы седьмого коммутатора подается константа '1', на вторые входы седьмого коммутатора подается константа '0', третьи входы седьмого коммутатора являются пятыми входами блока произведений дробей Ri, выходы седьмого коммутатора соединены с первыми входами второй схемы сравнения кодов, выходы схемы формирования веса соединены со вторыми входами второй схемы сравнения кодов, выходы первого блока вентилей являются первыми выходами блока произведений дробей Ri, выходы второго блока вентилей являются вторыми выходами блока произведений дробей Ri, выходы третьего блока вентилей являются третьими выходами блока произведений дробей Ri, выходы четвертого блока вентилей являются четвертыми выходами блока произведений дробей Ri, выходы пятого блока вентилей являются пятыми выходами блока произведений дробей Ri, выходы шестого блока вентилей являются шестыми выходами блока произведений дробей Ri, выходы седьмого блока вентилей являются седьмыми выходами блока произведений дробей Ri, выходы восьмого блока вентилей являются восьмыми выходами блока произведений дробей Ri, выходы девятого блока вентилей являются девятыми выходами блока произведений дробей Ri, выходы десятого блока вентилей являются десятыми выходами блока произведений дробей Ri, выход второй схемы сравнения кодов является одиннадцатым выходом блока произведений дробей Ri, причем блок произведений коэффициентов Ai содержит восьмой коммутатор, второй, третий, четвертый и пятый регистры-защелки, пятый-десятый сумматоры элементов поля Галуа, восемнадцатый-двадцать пятый перемножители элементов поля Галуа, причем первые входы восьмого коммутатора являются первыми входами блока произведений коэффициентов Ai, вторые входы восьмого коммутатора являются вторыми входами блока произведений коэффициентов Ai, третий вход восьмого коммутатора является третьим входом блока произведений коэффициентов Ai, вторые входы второго, третьего, четвертого и пятого регистров-защелок являются разрядами четвертых входов блока произведений коэффициентов Ai, выходы восьмого коммутатора соединены с первыми входами второго, третьего, четвертого и пятого регистров-защелок, выходы второго регистра-защелки соединены с первыми входами пятого, шестого и восьмого сумматоров элементов поля Галуа, выходы третьего регистра-защелки соединены со вторыми входами пятого сумматора элементов поля Галуа и первыми входами седьмого и девятого сумматоров элементов поля Галуа, выходы четвертого регистра-защелки соединены с первыми входами десятого сумматора элементов поля Галуа и вторыми входами шестого и седьмого сумматоров элементов поля Галуа, выходы пятого регистра-защелки соединены со вторыми входами восьмого, девятого и десятого сумматоров элементов поля Галуа, выходы пятого сумматора элементов поля Галуа соединены с первыми входами восемнадцатого, двадцать третьего и двадцать четвертого перемножителей элементов поля Галуа и являются девятыми выходами блока произведений коэффициентов Ai, выходы шестого сумматора элементов поля Галуа соединены с первыми входами девятнадцатого и двадцать второго перемножителей элементов поля Галуа, вторыми входами двадцать четвертого перемножителя элементов поля Галуа и являются десятыми выходами блока произведений коэффициентов Ai, выходы седьмого сумматора элементов поля Галуа соединены с первыми входами двадцатого и двадцать первого перемножителей элементов поля Галуа, третьими входами двадцать четвертого перемножителя элементов поля Галуа и являются одиннадцатыми выходами блока произведений Ai, выходы восьмого сумматора элементов поля Галуа соединены со вторыми входами двадцатого, двадцать второго и двадцать третьего перемножителей элементов поля Галуа, выходы девятого сумматора элементов поля Галуа соединены со вторыми входами девятнадцатого и двадцать первого перемножителей элементов поля Галуа и третьими входами двадцать третьего перемножителя элементов поля Галуа, выходы десятого сумматора элементов поля Галуа соединены с третьими входами двадцать первого и двадцать второго перемножителей элементов поля Галуа и вторыми входами восемнадцатого перемножителя элементов поля Галуа, выходы восемнадцатого перемножителя элементов поля Галуа соединены с третьими входами двадцать пятого перемножителя элементов поля Галуа и являются первыми выходами блока произведений коэффициентов Ai, выходы девятнадцатого перемножителя элементов поля Галуа соединены со вторыми входами двадцать пятого перемножителя элементов поля Галуа и являются вторыми выходами блока произведений коэффициентов Ai, выходы двадцатого перемножителя элементов поля Галуа соединены с первыми входами двадцать пятого перемножителя элементов поля Галуа и являются третьими выходами блока произведений коэффициентов Ai, выходы двадцать первого перемножителя элементов поля Галуа являются четвертыми выходами блока произведений коэффициентов Ai, выходы двадцать второго перемножителя элементов поля Галуа являются пятыми выходами блока произведений коэффициентов Ai, выходы двадцать третьего перемножителя элементов поля Галуа являются шестыми выходами блока произведений коэффициентов Ai, выходы двадцать четвертого перемножителя элементов поля Галуа являются седьмыми выходами блока произведений коэффициентов Ai, выходы двадцать пятого перемножителя элементов поля Галуа являются восьмыми выходами блока произведений коэффициентов Ai.

Сущность изобретения состоит в том, что блок поиска позиций ошибок реализует поиск конфигураций ошибок веса tC+2, при этом блок вычисления невязок определяет неизвестные невязки аналитического продолжения алгоритма Берлекэмпа-Месси на четыре дополнительные итерации. В процедуру поиска позиций ошибочных символов за границей половины минимального кодового расстояния вводится управление информацией о надежности принятых из канала символов.

На фиг.1 приведена функциональная схема предлагаемого устройства декодирования PC-кода. На фиг.2 изображена функциональная схема блока поиска позиций ошибок; на следующей фиг.3 - функциональная схема одного из его основных блоков: блока вычисления невязок. На фиг.4 и 5 приведены функциональные схемы блока произведений дробей Ri и блока произведений коэффициентов Ai, соответственно. На фиг.6 показана функциональная схема регистра Rg1. На фиг.7 приведена функциональная схема блока подсчета невязок. На фиг.8 изображена схема блока дискретного преобразования Фурье. На фиг.9 изображена временная диаграмма обработки кодовых слов предлагаемым устройством декодирования PC-кода. На фиг.10 приведен график с результатами исследования эффективности коррекции ошибок заявляемого устройства в канале с аддитивным белым гауссовым шумом (AWGN) и модуляцией BPSK.

В описании устройства и на чертежах используются следующие обозначения:

БВС - блок вычисления синдромов;

БСПС - блок сортировки позиций символов;

БДПФ - блок дискретного преобразования Фурье;

БППО - блок поиска позиций ошибок;

БВЗО - блок вычисления значений ошибок;

Ct2 - двоичный счетчик;

Mux - мультиплексор (коммутатор);

RAM - память с произвольным доступом;

МУУ - местное устройство управления;

Inv - инвертор в конечном поле;

Rg - регистр;

БВ - блок вентилей;

БВН - блок вычисления невязок;

БПН - блок подсчета невязок;

БПК - блок памяти коэффициентов;

БПД Ri - блок произведений дробей Ri;

БПК Ai - блок произведений коэффициентов Ai;

PC-код - код Рида-Соломона;

m - разрядность элемента расширенного поля Галуа GF(2m);

n - количество символов в кодовом слове РС-кода;

k - количество информационных символов в кодовом слове;

d - минимальное кодовое расстояние PC-кода, d=r+1;

tC - число гарантированно исправляемых ошибок в кодовом слове, t С = d 1 2 ;

τ - число исправляемых ошибок за границей половины минимального кодового расстояния,

α - примитивный элемент поля Галуа GF(2m);

r(x)=rn-1xn-1+rn-2xn-2+…+r1x+r0 - многочлен принятого из канала кодового слова;

c(x)=cn-1xn-1+cn-2xn-2+…+c1x+c0 - многочлен кодового слова;

S(x) - многочлен синдрома;

Λ ( 2 t С ) ( x ) - многочлен локаторов ошибок после 2tC итераций алгоритма Берлекэмпа-Месси;

B ( 2 t С ) ( x ) - вспомогательный многочлен после 2tC итераций алгоритма Берлекэмпа-Месси;

L 2 t С - формальная степень многочлена локаторов ошибок Λ ( 2 t С ) ( x ) ;

Λ ( 2 t С + 2 ) ( x ) - многочлен локаторов ошибок, полученный аналитическим продолжением алгоритма Берлекэмпа-Месси еще на 2 итерации;

Δ - невязка аналитического продолжения алгоритма Берлекэмпа-Месси;

Λ'(x) - формальная производная многочлена локаторов ошибок;

Ω(x) - многочлен значений ошибок;

{PE} - множество позиций ошибок в кодовом слове.

Устройство декодирования кодов Рида-Соломона (фиг.1) содержит: буферную память данных 100, блок вычисления синдромов 200, процессор Галуа 300, блок дискретного преобразования Фурье 400, блок поиска позиций ошибок 500, блок сортировки позиций символов 600, блок вычисления значений ошибок 700, первый сумматор элементов поля Галуа 800.

На вход буферной памяти данных 100, вход блока вычисления синдромов 200 поступают символы ri кодового слова, принятого из канала (сигналы DIn). Выходы буферной памяти данных 100 соединены с первыми входами первого сумматора элементов поля Галуа 800. Выходы блока вычисления синдромов 200 соединены с первыми входами процессора Галуа 300. Первые выходы процессора Галуа 300 (сигналы Control) соединены с первыми входами блока дискретного преобразования Фурье 400. Вторые выходы процессора Галуа 300 ( Λ ( 2 t С ) ( x ) ) соединены со вторыми входами блока дискретного преобразования Фурье 400. Третьи выходы процессора Галуа 300 ( B ( 2 t С ) ( x ) ) соединены с третьими входами блока дискретного преобразования Фурье 400. Четвертые выходы процессора Галуа 300 (сигналы Control) соединены с четвертыми входами блока поиска позиций ошибок 500. Пятые выходы процессора Галуа 300 (Ω(x)) соединены с первыми входами блока вычисления значений ошибок 700. Шестые выходы процессора Галуа 300 (Λ'(x)) соединены со вторыми входами блока вычисления значений ошибок 700. Седьмые выходы процессора Галуа 300 ({PE}) соединены с третьими входами блока вычисления значений ошибок 700.

Вторые выходы блока дискретного преобразования Фурье 400 (сигналы State) соединены с третьими входами процессора Галуа 300. Третьи выходы блока дискретного преобразования Фурье 400 ({PE}) соединены с четвертыми входами процессора Галуа 300. Четвертые выходы блока дискретного преобразования Фурье 400 (Ri) соединены с первыми входами блока поиска позиций ошибок 500. Пятый выход блока дискретного преобразования Фурье 400 (Msk1) соединен со вторым входом блока поиска позиций ошибок 500. Шестые выходы блока дискретного преобразования Фурье 400 (Ai) соединены с третьими входами блока поиска позиций ошибок 500.

Первые выходы блока поиска позиций ошибок 500 (сигналы State) соединены с пятыми входами процессора Галуа 300. Вторые выходы блока поиска позиций ошибок 500 соединены со вторыми входами блока сортировки позиций символов 600 (сигналы {PE}).

Первые входы блока сортировки позиций символов 600 (сигналы SoftIn) являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона. Оценка надежности представляется двоичным числом без знака с фиксированной точкой. Большее значение числа соответствует большей надежности символов кодового слова.

Первые выходы блока дискретного преобразования Фурье 400 (AddrR1) соединены с третьими входами блока сортировки позиций символов 600. Первые выходы блока сортировки позиций символов 600 ({PE}) соединены со вторыми входами процессора Галуа 300. Вторые выходы блока сортировки позиций символов 600 (AddrW) соединены с пятыми входами блока поиска позиций ошибок 500.

Выходы блока вычисления значений ошибок 700 соединены со вторыми входами первого сумматора элементов поля Галуа 800. Выходы первого сумматора элементов поля Галуа 800 являются выходами данных устройства декодирования кодов Рида-Соломона (сигналы DOut).

Блок поиска позиций ошибок (фиг.2) содержит первый блок вычисления невязок 510.1, второй блок вычисления невязок 510.2, первый блок подсчета невязок 520.1, второй блок подсчета невязок 520.2, первый коммутатор 530, первый регистр-защелку 540, блок памяти коэффициентов 550, первое местное устройство управления 560.

Первые входы первого местного устройства управления 560 (сигналы Control) являются четвертыми входами блока поиска позиций ошибок 500. Вторые входы первого местного устройства управления 560 и первые входы блока памяти коэффициентов 550 (сигналы AddrW) являются пятыми входами блока поиска позиций ошибок. Третьи входы блока поиска позиций ошибок 500 (сигналы Ai) являются младшими разрядами вторых входов блока памяти коэффициентов 550. Первые входы блока поиска позиций ошибок 500 являются средними разрядами вторых входов блока памяти коэффициентов 550 (Ri). Второй вход блока поиска позиций ошибок 500 (Msk1) является старшим разрядом вторых входов блока памяти коэффициентов 550 (Mask1). Младшие разряды первых выходов DR1 блока памяти коэффициентов 550 (сигналы A i ' ) соединены с первыми входами первого блока вычисления невязок 510.1 и с первыми входами второго блока вычисления невязок 510.2.

Средние разряды первых выходов DR1 блока памяти коэффициентов 550 ( R i ' ) соединены с третьими входами первого блока вычисления невязок 510.1 и с третьими входами второго блока вычисления невязок 510.2. Старший разряд первых выходов DR1 блока памяти коэффициентов 550 (Msk1') соединен с пятым входом первого блока вычисления невязок 510.1 и с пятым входом второго блока вычисления невязок 510.2. Младшие разряды вторых выходов DR2 блока памяти коэффициентов 550 ( A i ' ' ) соединены со вторыми входами первого блока вычисления невязок 510.1 и со вторыми входами второго блока вычисления невязок 510.2. Средние разряды вторых выходов DR2 блока памяти коэффициентов 550 ( R i ' ' ) соединены с четвертыми входами первого блока вычисления невязок 510.1 и с четвертыми входами второго блока вычисления невязок 510.2. Старший разряд вторых выходов DR2 блока памяти коэффициентов 550 (Msk1") соединен с шестым входом первого блока вычисления невязок 510.1 и с шестым входом второго блока вычисления невязок 510.2.

Первый выход первого блока вычисления невязок 510.1 (¬Msk21) соединен с четвертым входом первого блока подсчета невязок 520.1. Вторые выходы первого блока вычисления невязок 510.1 (Δ1) соединены с третьими входами первого блока подсчета невязок 520.1. Третий выход первого блока вычисления невязок 510.1 (SXi1) соединен с третьим входом местного устройства управления 560. Первый выход первого блока подсчета невязок 520.1 (St1) соединен с пятым входом первого местного устройства управления 560. Вторые выходы первого блока подсчета невязок 520.1 ( Δ 1 ' ) соединены с первыми входами первого коммутатора 530.

Третий выход второго блока вычисления невязок 510.2 (SXi2) соединен с четвертым входом первого местного устройства управления 560. Вторые выходы второго блока вычисления невязок 510.2 (Δ2) соединены с третьими входами второго блока подсчета невязок 520.2. Первый выход второго блока вычисления невязок 510.2 (¬Msk22) соединен с четвертым входом второго блока подсчета невязок 520.2. Вторые выходы второго блока подсчета невязок 520.2 ( Δ 2 ' ) соединены со вторыми входами первого коммутатора 530. Первый выход второго блока подсчета невязок 520.2 (St2) соединен с шестым входом первого местного устройства управления 560.

Третий выход первого местного устройства управления 560 (CMx1) соединен с седьмым входом первого блока вычисления невязок 510.1. Четвертые выходы первого местного устройства управления 560 (Ld1) соединены с восьмыми входами первого блока вычисления невязок 510.1. Пятые выходы первого местного устройства управления 560 (SI1) соединены с девятыми входами первого блока вычисления невязок 510.1. Шестые выходы первого местного устройства управления 560 (AR1) соединены с четвертыми входами AR1 блока памяти коэффициентов 550. Седьмые выходы первого местного устройства управления 560 (AR2) соединены с третьими входами AR2 блока памяти коэффициентов 550. Восьмые выходы первого местного устройства управления 560 (AI1) соединены со вторыми входами первого блока подсчета невязок 520.1. Девятый выход первого местного устройства управления 560 (I1) соединен с первым входом первого блока подсчета невязок 520.1. Десятый выход местного первого устройства управления 560 (E1) соединен с пятым входом первого блока подсчета невязок 520.1. Одиннадцатый выход первого местного устройства управления 560 (L) соединен со вторым входом первого регистра-защелки 540. Двенадцатый выход первого местного устройства управления 560 (CMx) соединен с третьим входом первого коммутатора 530. Тринадцатый выход первого местного устройства управления 560 (E2) соединен с пятым входом второго блока подсчета невязок 520.2. Четырнадцатый выход первого местного устройства управления 560 (I2) соединен с первым входом второго блока подсчета невязок 520.2. Пятнадцатые выходы первого местного устройства управления 560 (AI2) соединены со вторыми входами второго блока подсчета невязок 520.2. Шестнадцатые выходы первого местного устройства управления 560 (SI2) соединены с девятыми входами второго блока вычисления невязок 510.2. Семнадцатые выходы первого местного устройства управления 560 (Ld2) соединены с восьмыми входами второго блока вычисления невязок 510.2. Восемнадцатый выход первого местного устройства управления 560 (CMx2) соединен с седьмым входом второго блока вычисления невязок 510.2. Девятнадцатые выходы первого местного устройства управления 560 (w2) соединены с шестыми входами второго блока подсчета невязок 520.2. Двадцатые выходы первого местного устройства управления 560 (w1) соединены с шестыми входами первого блока подсчета невязок 520.1. Первые выходы первого местного устройства управления 560 ({PE'}) являются вторыми выходами блока поиска позиций ошибок 500. Вторые выходы первого местного устройства управления 560 (State) являются первыми выходами блока поиска позиций ошибок 500.

Выходы первого коммутатора 530 соединены с первыми входами первого регистра-защелки 540. Выходы первого регистра-защелки 540 соединены с десятыми входами первого блока вычисления невязок 510.1 и десятыми входами второго блока вычисления невязок 510.2.

Блок вычисления невязок (фиг.3) содержит блок произведений дробей Ri 511, блок произведений коэффициентов Ai 512, второй 513.1, третий 513.2 и четвертый 513.3 коммутаторы, второй 515.1, третий 515.2 и четвертый 515.3 сумматоры элементов поля Галуа, первый инвертор элементов поля Галуа 516, первый, второй, третий, четвертый, пятый, шестой, седьмой, восьмой, девятый, десятый и одиннадцатый перемножители элементов поля Галуа 514.1-514.11, первую схему сравнения кодов 517.2, селектор нулевого элемента поля Галуа 517.1, первый логический элемент И 519, логический элемент ИЛИ-НЕ 518.

Первые входы блока произведений коэффициентов Ai 512 являются первыми входами блока вычисления невязок (сигналы A i ' ). Вторые входы блока произведений коэффициентов Ai 512 являются вторыми входами блока вычисления невязок (сигналы A i ' ' ). Первые входы блока произведений дробей Ri 511 являются третьими входами блока вычисления невязок (сигналы R i ' ). Вторые входы блока произведений дробей Ri 511 являются четвертыми входами блока вычисления невязок (сигналы R i ' ' ). Третий вход блока произведений дробей Ri 511 является пятым входом блока вычисления невязок (Msk1'). Четвертый вход блока произведений дробей Ri 511 является шестым входом блока вычисления невязок (Msk1''). Третий вход блока произведений коэффициентов Ai 512 соединен с шестым входом блока произведений дробей Ri 511 и является седьмым входом блока вычисления невязок (CMx). Четвертые входы блока произведений коэффициентов Ai 512 соединены с седьмыми входами блока произведений дробей Ri 511 и являются восьмыми входами блока вычисления невязок, на которые подаются сигналы Ld. Пятые входы блока произведений дробей Ri 511 соединены с девятыми входами второго коммутатора 513.1, восьмыми входами третьего коммутатора 513.2, восьмыми входами четвертого коммутатора 513.3 и являются девятыми входами блока вычисления невязок, на которые подаются сигналы SI.

Первые входы первой схемы сравнения кодов 517.2 являются десятыми входами блока вычисления невязок, на которые подаются сигналы Δ''. Выход первой схемы сравнения кодов 517.2 соединен с первым входом первого логического элемента И 519.

Первые выходы блока произведений дробей Ri 511 соединены с первыми входами третьего сумматора элементов поля Галуа 515.2 и первыми входами седьмого перемножителя элементов поля Галуа 514.7. Вторые выходы блока Ri 511 соединены со вторыми входами третьего сумматора элементов поля Галуа 515.2 и первыми входами восьмого перемножителя элементов поля Галуа 514.8. Третьи выходы блока произведений дробей Ri 511 соединены с первыми входами девятого перемножителя элементов поля Галуа 514.9. Четвертые выходы блока произведений дробей Ri 511 соединены с первыми входами десятого перемножителя элементов поля Галуа 514.10. Пятые выходы блока произведений дробей Ri 511 соединены с первыми входами первого перемножителя элементов поля Галуа 514.1. Шестые выходы блока произведений дробей Ri 511 соединены с первыми входами второго перемножителя элементов поля Галуа 514.2. Седьмые выходы блока произведений дробей Ri 511 соединены с первыми входами третьего перемножителя элементов поля Галуа 514.3. Восьмые выходы блока произведений дробей Ri 511 соединены с первыми входами четвертого перемножителя элементов поля Галуа 514.4. Девятые выходы блока произведений дробей Ri 511 соединены со вторыми входами пятого перемножителя элементов поля Галуа 514.5. Десятые выходы блока произведений дробей Ri 511 соединены с первыми входами шестого перемножителя элементов поля Галуа 514.6. Одиннадцатый выход блока произведений дробей Ri 511 соединен с первым входом логического элемента ИЛИ-НЕ 518.

Первые выходы блока произведений коэффициентов Ai 512 соединены со вторыми входами первого перемножителя элементов поля Галуа 514.1 и вторыми входами шестого перемножителя элементов поля Галуа 514.6. Вторые выходы блока произведений коэффициентов Ai 512 соединены со вторыми входами второго перемножителя элементов поля Галуа 514.2 и первыми входами пятого перемножителя элементов поля Галуа 514.5. Третьи выходы блока произведений коэффициентов Ai 512 соединены со вторыми входами третьего перемножителя элементов поля Галуа 514.3 и вторыми входами четвертого перемножителя элементов поля Галуа 514.4. Четвертые выходы блока произведений коэффициентов Ai 512 соединены с первыми входами второго коммутатора 513.1. Пятые выходы блока произведений коэффициентов Ai 512 соединены со вторыми входами второго коммутатора 513.1. Шестые выходы блока произведений коэффициентов Ai 512 соединены с третьими входами второго коммутатора 513.1. Седьмые выходы блока произведений коэффициентов Ai 512 соединены с четвертыми входами второго коммутатора 513.1 и пятыми входами третьего коммутатора 513.2. Восьмые выходы блока произведений коэффициентов Ai 512 соединены с четвертыми входами третьего коммутатора 513.2 и третьими входами четвертого коммутатора 513.3. Девятые выходы блока произведений коэффициентов Ai 512 соединены с седьмыми входами второго коммутатора 513.1, седьмыми входами третьего коммутатора 513.2 и шестыми входами четвертого коммутатора 513.3. Десятые выходы блока произведений коэффициентов Ai 512 соединены с шестыми входами второго коммутатора 513.1. Одиннадцатые выходы блока произведений коэффициентов Ai 512 соединены с пятыми входами второго коммутатора 513.1.

На восьмые входы второго коммутатора 513.1 подается константа - нулевой символ конечного поля.

Первые выходы второго коммутатора 513.1 соединены со вторыми входами седьмого перемножителя элементов поля Галуа 514.7. Вторые выходы второго коммутатора 513.1 соединены со вторыми входами восьмого перемножителя элементов поля Галуа 514.8. Третьи выходы второго коммутатора 513.1 соединены со вторыми входами девятого перемножителя элементов поля Галуа 514.9. Четвертые выходы второго коммутатора 513.1 соединены со вторыми входами десятого перемножителя элементов поля Галуа 514.10.

Выходы первого перемножителя элементов поля Галуа 514.1 соединены с первыми входами второго сумматора элементов поля Галуа 515.1. Выходы второго перемножителя элементов поля Галуа 514.2 соединены со вторыми входами второго сумматора элементов поля Галуа 515.1. Выходы третьего перемножителя элементов поля Галуа 514.3 соединены с третьими входами второго сумматора элементов поля Галуа 515.1. Выходы четвертого перемножителя элементов поля Галуа 514.4 соединены с четвертыми входами второго сумматора элементов поля Галуа 515.1. Выходы пятого перемножителя элементов поля Галуа 514.5 соединены с пятыми входами второго сумматора элементов поля Галуа 515.1. Выходы шестого перемножителя элементов поля Галуа 514.6 соединены с шестыми входами второго сумматора элементов поля Галуа 515.1. Выходы второго сумматора элементов поля Галуа 515.1 соединены с первыми входами третьего коммутатора 513.2 и вторыми входами четвертого коммутатора 513.3.

Выходы третьего сумматора элементов поля Галуа 515.2 соединены с шестыми входами третьего коммутатора 513.2 и седьмыми входами четвертого коммутатора 513.3.

Выходы седьмого перемножителя элементов поля Галуа 514.7 соединены с первыми входами четвертого сумматора элементов поля Галуа 515.3. Выходы восьмого перемножителя элементов поля Галуа 514.8 соединены со вторыми входами четвертого сумматора элементов поля Галуа 515.3. Выходы девятого перемножителя элементов поля Галуа 514.9 соединены с третьими входами четвертого сумматора элементов поля Галуа 515.3. Выходы десятого перемножителя элементов поля Галуа 514.10 соединены с четвертыми входами четвертого сумматора элементов поля Галуа 515.3. Выходы четвертого сумматора элементов поля Галуа 515.3 соединены с первыми, четвертыми и пятыми входами четвертого коммутатора 513.3 и вторыми и третьими входами третьего коммутатора 513.2.

Выходы третьего коммутатора 513.2 соединены со входами селектора нулевого элемента поля Галуа 517.1 и входами первого инвертора элементов поля Галуа 516.

Выход селектора нулевого элемента поля Галуа 517.1 соединен со вторым входом логического элемента ИЛИ-НЕ 518.

Выходы четвертого коммутатора 513.3 соединены со вторыми входами одиннадцатого перемножителя элементов поля Галуа 514.11.

Выход логического элемента ИЛИ-НЕ 518 соединен со вторым входом первого логического элемента И 519 и является первым выходом блока вычисления невязок (Msk2). Выходы первого инвертора элементов поля Галуа 516 соединены с первыми входами одиннадцатого перемножителя элементов поля Галуа 514.11. Выход первого логического элемента И является третьим выходом блока вычисления невязок (SXi).

Выходы одиннадцатого перемножителя элементов поля Галуа 514.11 соединены со вторыми входами первой схемы сравнения кодов 517.2 и являются вторыми выходами блока вычисления невязок (сигналы Δ).

Блок произведений дробей Ri (фиг.4) содержит пятый коммутатор 511.10, шестой коммутатор 511.11, седьмой коммутатор 511.12, первый регистр Rg1 511.20, второй регистр Rg1 511.21, третий регистр Rg1 511.22, четвертый регистр Rg1 511.23, первый-десятый блоки вентилей 511.30-511.39, двенадцатый-семнадцатый перемножители элементов поля Галуа 511.40-511.45, схему формирования веса 511.50 и вторую схему сравнения кодов 511.60.

Первые входы пятого коммутатора 511.10 являются первыми входами блока произведений дробей Ri (сигналы R i ' ). Вторые входы пятого коммутатора 511.10 являются вторыми входами блока произведений дробей Ri (сигналы R i ' ' ). Третий вход пятого коммутатора 511.10 соединен с третьим входом шестого коммутатора 511.11 и является шестым входом блока произведений дробей Ri (сигнал CMx). Первый вход шестого коммутатора 511.11 является третьим входом блока произведений дробей Ri (сигнал Msk1'). Второй вход двадцатого коммутатора 511.11 является четвертым входом блока произведений дробей Ri (сигнал Msk1''). Выходы пятого коммутатора 511.10 соединены с первыми входами первого, второго, третьего и четвертого регистров Rg1 511.20-511.23. Выход шестого коммутатора 511.11 соединен со вторыми входами первого, второго, третьего и четвертого регистров Rg1 511.20-511.23. Третьи входы первого, второго, третьего и четвертого регистров Rg1 511.20-511.23 являются седьмыми входами блока произведений дробей Ri (сигналы Ld).

Первые выходы первого регистра Rg1 511.20 соединены с четвертыми входами четвертого блока вентилей 511.33 и вторыми входами пятнадцатого, шестнадцатого и семнадцатого перемножителей элементов поля Галуа 511.43-511.45. Второй выход регистра Rg1 511.20 соединен с третьими входами первого, второго, третьего блоков вентилей 511.30-511.32, с первым входом схемы формирования веса 511.50 и первыми входами пятого, шестого и седьмого блока вентилей 511.34-511.36.

Первые выходы второго регистра Rg1 511.21 соединены со вторыми входами тринадцатого 511.41 и четырнадцатого 511.42 перемножителей элементов поля Галуа, четвертыми входами третьего блока вентилей 511.32 и первыми входами семнадцатого перемножителя элементов поля Галуа 511.45. Второй выход второго регистра Rg1 511.21 соединен со вторыми входами первого 511.30, второго 511.31 и пятого 511.34 блоков вентилей, третьим входом четвертого блока вентилей 511.33, первыми входами восьмого 511.37 и девятого 511.38 блоков вентилей и четвертым входом схемы формирования веса 511.50.

Первые выходы третьего регистра Rg1 511.22 соединены со вторыми входами двенадцатого перемножителя 511.40, четвертыми входами второго блока вентилей 511.31 и первыми входами четырнадцатого 511.42 и шестнадцатого 511.44 перемножителей элементов поля Галуа. Второй выход третьего регистра Rg1 511.22 соединен с первым входом первого блока вентилей 511.30, вторыми входами третьего 511.32, четвертого 511.33, шестого 511.35 и восьмого 511.37 блоков вентилей, первым входом десятого блока вентилей 511.39 и третьим входом схемы формирования веса 511.50.

Первые выходы четвертого регистра Rg1 511.23 соединены с четвертыми входами первого блока вентилей 511.30, первыми входами двенадцатого 511.40, тринадцатого 511.41 и пятнадцатого 511.43 перемножителей элементов поля Галуа. Второй выход четвертого регистра Rg1 511.23 соединен с первыми входами второго 511.31, третьего 511.32 и четвертого 511.33 блоков вентилей, вторыми входами седьмого 511.36, девятого 511.38 и десятого 511.39 блоков вентилей и вторым входом схемы формирования веса 511.50.

Выходы двенадцатого перемножителя элементов поля Галуа 511.40 соединены с третьими входами пятого блока вентилей 511.34. Выходы тринадцатого перемножителя элементов поля Галуа 511.41 соединены с третьими входами шестого блока вентилей 511.35. Выходы четырнадцатого перемножителя элементов поля Галуа 511.42 соединены с третьими входами седьмого блока вентилей 511.36. Выходы пятнадцатого перемножителя элементов поля Галуа 511.43 соединены с третьими входами восьмого блока вентилей 511.37. Выходы шестнадцатого перемножителя элементов поля Галуа 511.44 соединены с третьими входами девятого блока вентилей 511.38. Выходы семнадцатого перемножителя элементов поля Галуа 511.45 соединены с третьими входами десятого блока вентилей 511.39.

На первые входы седьмого коммутатора 511.12 подается константа '1'. На вторые входы седьмого коммутатора 511.12 подается константа '0'. Третьи входы седьмого коммутатора 511.12 являются пятыми входами блока произведений дробей Ri. Выходы седьмого коммутатора 511.12 соединены с первыми входами второй схемы сравнения кодов 511.60. Выходы схемы формирования веса 511.50 соединены со вторыми входами второй схемы сравнения кодов 511.60.

Выходы первого блока вентилей 511.30 являются первыми выходами блока произведений дробей Ri. Выходы второго блока вентилей 511.31 являются вторыми выходами блока произведений дробей Ri. Выходы третьего блока вентилей 511.32 являются третьими выходами блока произведений дробей Ri. Выходы четвертого блока вентилей 511.33 являются четвертыми выходами блока произведений дробей Ri. Выходы пятого блока вентилей 511.34 являются пятыми выходами блока произведений дробей Ri. Выходы шестого блока вентилей 511.35 являются шестыми выходами блока произведений дробей Ri. Выходы седьмого блока вентилей 511.36 являются седьмыми выходами блока произведений дробей Ri. Выходы восьмого блока вентилей 511.37 являются восьмыми выходами блока произведений дробей Ri. Выходы девятого блока вентилей 511.38 являются девятыми выходами блока произведений дробей Ri. Выходы десятого блока вентилей 511.39 являются десятыми выходами блока произведений дробей Ri. Выход второй схемы сравнения кодов 511.60 является одиннадцатым выходом блока произведений дробей Ri.

Информация с выходов пятого 511.10 и шестого 511.11 коммутаторов заносится в регистры Rg1 511.20-511.23 при активных сигналах, подаваемых на их третьи входы.

Блок произведений коэффициентов Ai (фиг.5) содержит восьмой коммутатор 512.10, второй 512.20, третий 512.21, четвертый 512.22 и пятый 512.23 регистры-защелки, пятый-десятый сумматоры элементов поля Галуа 512.30-512.35, восемнадцатый-двадцать пятый перемножители элементов поля Галуа 512.40-512.47.

Первые входы восьмого коммутатора 512.10 являются первыми входами блока произведений коэффициентов Ai (сигналы A x ' ). Вторые входы восьмого коммутатора 512.10 являются вторыми входами блока произведений коэффициентов Ai (сигналы A x ' ' ). Третий вход восьмого коммутатора 512.10 является третьим входом блока произведений коэффициентов Ai (сигнал CMx). Вторые входы второго 512.20, третьего 512.21, четвертого 512.22 и пятого 512.23 регистров-защелок являются разрядами четвертых входов блока произведений коэффициентов Ai (сигналы Ld). Выходы восьмого коммутатора 512.10 соединены с первыми входами второго 512.20, третьего 512.21, четвертого 512.22 и пятого 512.23 регистров-защелок.

Выходы второго регистра-защелки 512.20 соединены с первыми входами пятого 512.30, шестого 512.31 и восьмого 512.33 сумматоров элементов поля Галуа. Выходы третьего регистра-защелки 512.21 соединены со вторыми входами пятого сумматора элементов поля Галуа 512.30 и первыми входом седьмого 512.32 и девятого 512.34 сумматоров элементов поля Галуа. Выходы четвертого регистра-защелки 512.22 соединены с первыми входами десятого сумматора элементов поля Галуа 512.35 и вторыми входами шестого 512.31 и седьмого 512.32 сумматоров элементов поля Галуа. Выходы пятого регистра-защелки 512.23 соединены со вторым входами восьмого 512.33, девятого 512.34 и десятого 512.35 сумматоров элементов поля Галуа.

Выходы пятого сумматора элементов поля Галуа 512.30 соединены с первыми входами восемнадцатого 512.40, двадцать третьего 512.45 и двадцать четвертого 512.46 перемножителей элементов поля Галуа и являются девятыми выходами блока произведений коэффициентов Ai.

Выходы шестого сумматора элементов поля Галуа 512.31 соединены с первыми входами девятнадцатого 512.41 и двадцать второго 512.44 перемножителей элементов поля Галуа, вторыми входами двадцать четвертого перемножителя элементов поля Галуа 512.46 и являются десятыми выходами блока произведений коэффициентов Ai.

Выходы седьмого сумматора элементов поля Галуа 512.32 соединены с первыми входами двадцатого 512.42 и двадцать первого 512.43 перемножителей элементов поля Галуа, третьими входами двадцать четвертого перемножителя элементов поля Галуа 512.46 и являются одиннадцатыми выходами блока произведений коэффициентов Ai.

Выходы восьмого сумматора элементов поля Галуа 512.33 соединены со вторыми входами двадцатого 512.42, двадцать второго 512.44 и двадцать третьего перемножителя элементов поля Галуа 512.45.

Выходы девятого сумматора элементов поля Галуа 512.34 соединены со вторыми входами девятнадцатого 512.41 и двадцать первого 512.43 перемножителя элементов поля Галуа и третьими входами двадцать третьего перемножителя элементов поля Галуа 512.45.

Выходы десятого сумматора элементов поля Галуа 512.35 соединены с третьими входами двадцать первого 512.43 и двадцать второго 512.44 перемножителей элементов поля Галуа и вторыми входами восемнадцатого перемножителя элементов поля Галуа 512.40.

Выходы восемнадцатого перемножителя элементов поля Галуа 512.40 соединены с третьими входами двадцать пятого перемножителя элементов поля Галуа 512.47 и являются первыми выходами блока произведений коэффициентов Ai.

Выходы девятнадцатого перемножителя элементов поля Галуа 512.41 соединены со вторыми входами двадцать пятого перемножителя элементов поля Галуа 512.47 и являются вторыми выходами блока произведений коэффициентов Ai.

Выходы двадцатого перемножителя элементов поля Галуа 512.42 соединены с первыми входами двадцать пятого перемножителя элементов поля Галуа 512.47 и являются третьими выходами блока произведений коэффициентов Ai.

Выходы двадцать первого перемножителя элементов поля Галуа 512.43 являются четвертыми выходами блока произведений коэффициентов Ai.

Выходы двадцать второго перемножителя элементов поля Галуа 512.44 являются пятыми выходами блока произведений коэффициентов Ai.

Выходы двадцать третьего перемножителя элементов поля Галуа 512.45 являются шестыми выходами блока произведений коэффициентов Ai.

Выходы двадцать четвертого перемножителя элементов поля Галуа 512.46 являются седьмыми выходами блока произведений коэффициентов Ai.

Выходы двадцать пятого перемножителя элементов поля Галуа 512.47 являются восьмыми выходами блока произведений коэффициентов Ai.

Информация с выходов восьмого коммутатора 512.10 заносится в регистры-защелки 512.20-512.23 при активных сигналах, подаваемых на их вторые входы.

Регистр Rg1 (фиг.6) содержит шестой регистр-защелку 511.25, логический элемент ИЛИ 511.26, второй-восьмой логические элементы И 511.27-511.33, логический элемент НЕ 511.34.

Первый-восьмой входы шестого регистра-защелки 511.25 являются первыми входами регистра Rg1. Девятый вход шестого регистра-защелки 511.25 является вторым входом регистра Rg1 (сигнал Msk1). Десятый вход шестого регистра-защелки 511.25 является третьим входом регистра Rg1 (сигнал Ldp). Первый выход шестого регистра-защелки 511.25 соединен с первым входом логического элемента ИЛИ 511.26. Со второго по восьмой выходы шестого регистра-защелки 511.25 соединены с первыми входами второго-восьмого логических элементов И 511.27-511.33. Девятый выход шестого регистра-защелки 511.25 соединен с входом логического элемента НЕ 511.34 и вторым входом логического элемента ИЛИ 511.26. Выход логического элемента НЕ 511.34 соединен со вторыми входами второго-восьмого логических элементов И 511.27-511.33 и является вторым выходом регистра Rg1. Выход логического элемента ИЛИ 511.26 и выходы второго-восьмого логических элементов И 511.27-511.33 являются первыми выходами регистра Rg1.

В шестой регистр-защелку 511.25 информация с его первых девяти входов заносится при активном сигнале Ldp, подаваемом на его десятый вход.

Блок подсчета невязок (фиг.7) содержит одиннадцатый блок вентилей 521, блок памяти с произвольным доступом 522, схему инкремента 523, третью схему сравнения кодов 524, девятый логический элемент И 525, девятый коммутатор 526, седьмой регистр-защелку 527, десятый логический элемент И 528.

Второй вход одиннадцатого блока вентилей соединен с третьим входом девятого коммутатора и является первым входом блока подсчета невязок, на который подается сигнал I. Выходы одиннадцатого блока вентилей соединены с первыми входами DI блока памяти с произвольным доступом 522. Выходы блока памяти с произвольным доступом 522 соединены с первыми входами схемы инкремента 523. Выходы схемы инкремента 523 соединены с первыми входами одиннадцатого блока вентилей 521 и первыми входами третьей схемы сравнения кодов 524. Вторые входы третьей схемы сравнения кодов являются шестыми входами блока подсчета невязок (w). Выход третьей схемы сравнения кодов 524 соединен с первым входом девятого логического элемента И 525. Выход девятого элемента логическое И 525 является первым выходом блока подсчета невязок, на котором формируется сигнал St. Первые входы девятого коммутатора 526 являются вторыми входами блока подсчета невязок, на который подаются сигналы AI. Выходы девятого коммутатора 526 соединены со вторыми входами A блока памяти с произвольным доступом 522. Входы седьмого регистра-защелки 527 являются третьими входами блока подсчета невязок, на который подаются сигналы Δ. Выходы седьмого регистра-защелки 527 (сигналы Δ') соединены со вторыми входами девятого коммутатора 526 и являются вторыми выходами блока подсчета невязок. Первый вход десятого логического элемента И 528 является четвертым входом блока подсчета невязок, на который подается сигнал ¬Msk2. Второй вход десятого логического элемента И 528 является пятым входом блока подсчета невязок, на который подается сигнал E. Выход десятого логического элемента И 528 соединен со вторым входом схемы инкремента 523 и вторым входом девятого логического элемента И 525.

Блок вентилей 521 передает информацию с первых входов на выходы, когда на второй его вход подается логический ноль, в противном случае на его выходах формируются нули.

Схема инкремента 523 осуществляет суммирование кода, подаваемого на его первые входы, с единицей только при наличии логической 1 на ее втором входе.

Третья схема сравнения кодов 524 формирует на своем выходе сигнал логической 1 при равенстве кодов на ее входах.

Блок дискретного преобразования Фурье (фиг.8) содержит второе местное устройство управления 410, первый модуль дискретного преобразования Фурье многочлена Λ ( 2 t С ) ( x ) 420.1, второй модуль дискретного преобразования Фурье многочлена B ( 2 t С ) ( x ) 420.2, десятый коммутатор 430.1, второй инвертор элементов поля Галуа 440, двадцать шестой перемножитель элементов поля Галуа 450.1, двадцать седьмой перемножитель элементов поля Галуа 450.2, одиннадцатый коммутатор 430.2, умножитель на α 470.1, схему возведения в куб элементов поля Галуа 470.2, восьмой регистр-защелку 480, двоичный счетчик номеров позиций принятого слова 490 с коэффициентом пересчета n.

Первые входы второго местного устройства управления 410 являются первыми входами блока дискретного преобразования Фурье 400, на которые подаются сигналы Control. Первые выходы второго местного устройства управления 400 являются вторыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы State. Вторые выходы второго местного устройства управления 410 являются третьими выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы {PE}. Третьи выходы второго местного устройства управления 410 соединены со вторыми входами первого модуля дискретного преобразования Фурье 420.1 и вторыми входами второго модуля дискретного преобразования Фурье 420.2. Четвертый выход второго местного устройства управления 410 соединен с третьим входом десятого коммутатора 430.1 и третьим входом одиннадцатого коммутатора 430.2. Пятый выход второго местного устройства управления 410 соединен со вторым входом схемы возведения в куб 470.2.

Первые входы первого модуля дискретного преобразования Фурье 420.1 и второго модуля дискретного преобразования Фурье 420.2 являются вторыми и третьими входами блока дискретного преобразования Фурье 400, на которые подаются сигналы Λ(x) и B(x), соответственно. Первые выходы первого модуля дискретного преобразования Фурье 420.1 (сигналы Λ(α-i)) соединены с первыми входами десятого коммутатора 430.1. Второй выход первого модуля дискретного преобразования Фурье 420.1 (sel0) соединен с третьим входом второго местного устройства управления 410 и первым входом одиннадцатого коммутатора 430.2. Первые выходы второго модуля дискретного преобразования Фурье 420.2 (B(α-i)) соединены со вторыми входами десятого коммутатора 430.1. Второй выход второго модуля дискретного преобразования Фурье 420.2 (sel0) соединен со вторым входом одиннадцатого коммутатора 430.2. Первые выходы десятого коммутатора 430.1 соединены с входами второго инвертора элементов поля Галуа 440. Вторые выходы десятого коммутатора 430.1 соединены с первыми входами двадцать седьмого перемножителя элементов поля Галуа 450.2. Выходы схемы возведения в куб 470.2 соединены со вторыми входами двадцать седьмого перемножителя элементов поля Галуа 450.2. Выходы двадцать седьмого перемножителя элементов поля Галуа 450.2 соединены со вторыми входами двадцать шестого перемножителя элементов поля Галуа 450.1. Выходы второго инвертора элементов поля Галуа 440 соединены с первыми входами двадцать шестого перемножителя элементов поля Галуа 450.1. Выходы двадцать шестого перемножителя элементов поля Галуа являются четвертыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы Ri. Выход одиннадцатого коммутатора 430.2 является пятым выходом блока дискретного преобразования Фурье 400, на который выдается сигнал Msk1. Выходы двоичного счетчика 490 соединены со вторыми входами второго местного устройства управления 410 и являются первыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы AddrR1. Выходы умножителя на α 470.1 соединены с входами восьмого регистра-защелки 480. Выходы восьмого регистра-защелки 480 соединены с входами умножителя на α 470.1, входами схемы возведения в куб элементов поля Галуа 470.2 и являются шестыми выходами блока дискретного преобразования Фурье 400, на которые выдаются сигналы Ai.

Описание модулей дискретного преобразования Фурье 420.1 и 420.2 дано в прототипе.

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

Все линии связи, соединяющие блоки на фиг.1-8, по которым передаются данные в виде элементов поля Галуа, являются m-разрядными.

Все используемые триггеры, регистры и счетчики работают по переднему фронту тактового сигнала, который на фиг.1-8 не показан, но подразумевается.

Сумматоры элементов поля, умножители на постоянные коэффициенты и блоки нахождения обратного элемента поля могут быть реализованы известным образом, в частности сумматоры могут быть реализованы на m двухвходовых элементах ИСКЛЮЧАЮЩЕЕ ИЛИ (сумматорах по модулю 2), умножители на постоянные коэффициенты могут быть реализованы на многовходовых элементах ИСКЛЮЧАЮЩЕЕ ИЛИ, блоки нахождения обратного элемента могут быть реализованы табличным способом.

Процедура списочного декодирования представляет собой расширение обычной процедуры декодирования, основанной на алгоритме Берлекэмпа-Месси (см. Егоров С.И. Коррекция ошибок в информационных каналах периферийных устройств ЭВМ. Монография. Курск: Курск. гос. техн. ун-т, 2008. - 252 с.).

Эта процедура (при исправлении tC+τ ошибок, τ - число дополнительно исправляемых ошибок) в укрупненном виде состоит из следующих шагов:

1) Вычисление многочлена синдрома S(x).

2) Вычисление полинома локаторов ошибок Λ ( 2 t С ) ( x ) и вспомогательного полинома B ( 2 t С ) ( x ) путем выполнения 2tC итераций алгоритма Берлекэмпа-Месси.

3) Вычисление преобразования Фурье многочленов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) .

4) Поиск невязок Δ 2 t С + 1 , Δ 2 t С + 2 , , Δ 2 t С + 2 τ таких, что Λ ( 2 t С + 2 τ ) ( α i ) = 0 для точно tC+τ значений i. Соответствующие значения i дают позиции ошибок.

5) Вычисление значений ошибок и их исправление.

Списочное декодирование обеспечивает исправление tC+τ ошибки путем аналитического продолжения алгоритма Берлекэмпа-Месси еще на 2τ итерации.

Аналитическое продолжение на две итерации описывается формулой ниже:

где δk=1, если Δk≠0 и 2Lk-1≤k-1, или δk=0 в противном случае. Lk - формальная степень многочлена локаторов ошибок Λ(k)(x).

Аналитическое продолжение на 2τ итерации может быть получено применением формулы (1) τ раз:

где δ={δk, k=2tC+1,…,2tC+2τ}, Δ={Δk, k=2tC+1,…,2tC+2τ}.

Каждому множеству неизвестных невязок соответствует многочлен Λ ( 2 t С + 2 τ ) ( x ) . По определению многочлен локаторов ошибок Λ(x) обращается в нуль, когда x принимает значения обратные к локаторам ошибочных символов. Представляют интерес такие многочлены Λ ( 2 t С + 2 τ ) ( x ) , которые имеют степень tC+x и имеют точно tC+τ корень в GF(q). Множество допустимых корней многочлена Λ ( 2 t С + 2 τ ) ( x ) составляет {α0-1-2,…,α-(n-2)-(n-1)}. Подставляя это множество в уравнение (2), можно получить следующее:

где Λ ( 2 t С ) ( α i ) и B ( 2 t С ) ( α i ) - компоненты дискретного преобразования Фурье (DFT) многочленов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) .

В случае наличия в кодовом слове конфигурации ошибок веса tC+τ ровно tC+τ правых частей уравнений системы (3) для некоторого набора значений невязок Δ 2 t С + 1 , Δ 2 t С + 2 , , Δ 2 t С + 2 τ обращаются в 0. Для определения локаторов этих ошибочных символов необходимо найти соответствующе невязки и зафиксировать номера i уравнений системы (3) с правыми частями, обратившимися в нуль.

Используемый метод мягкого декодирования предполагает выбор подмножества уравнений из системы (3), соответствующих наиболее вероятным позициям ошибочных символов в кодовом слове.

Поиск позиций ошибок осуществляется в порядке возрастания надежностей символов принятого кодового слова. Последовательность номеров позиций символов, упорядоченных по надежности, хранится в таблице L[]. Диапазон поиска ограничен первыми наименее надежными nC позициями символов из таблицы.

Процедура мягкого декодирования кодов Рида-Соломона, используемая предлагаемым устройством декодирования кодов Рида-Соломона, приведена ниже и предусматривает выполнение следующих этапов:

1) Вычисляется полином синдромов S(x). Если компоненты синдрома нулевые (ошибок нет), осуществляется переход к п.14.

2) Вычисляются полином локаторов ошибок Λ ( 2 t С ) ( x ) , вспомогательный полином B ( 2 t С ) ( x ) и формальная степень полинома локаторов L 2 t С путем выполнения 2tC итераций алгоритма Берлекэмпа-Месси.

3)Если L 2 t С t С , находятся корни полинома Λ ( 2 t С ) ( x ) . Если их число равняется L 2 t С , то обратные к ним значения принимаются как локаторы ошибок. По формуле Форни вычисляются значения ошибок. Ложная конфигурация ошибок отфильтровывается, верная добавляется в список.

4) Вычисляется управляющая переменная s ( s h i f t ) : s = t С L 2 t С . Если s≥?τ или s<-τ, осуществляется переход к п.13.

5) Вычисляются преобразования Фурье полиномов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) .

6) Когда s≥0, вычисляются множества значений дробей R i = α ( 2 s + 1 ) i B ( 2 t С ) ( α i ) / Λ ( 2 t С ) ( α i ) или R i = α ( 2 s 1 ) i Λ ( 2 t С ) ( α i ) / B ( 2 t С ) ( α i ) в противном случае (α - примитивный элемент поля GF(q); i=0,…n-1).

7) Устанавливается начальное значение счетчика дополнительно исправляемых ошибок v=1.

8) Вычисляются вспомогательные переменные: l=2v, o1=v-|s+1|, o2=v-|s|, w=tC+1-v.

9) Устанавливается начальное значение счетчика систем уравнений: sc=1.

10) Вычисляются последовательности S L [ i 1 ] , L [ i 2 ] , , L [ i l 1 ] возможных значении невязки Δ L [ i 1 ] , L [ i 2 ] , , L [ i l ] для наиболее вероятных наборов индексов i1,i2,…,il-1 и осуществляется поиск значений Δ, которые встречаются точно w раз в какой-то из этих последовательностей, где:

В тех случаях, когда при вычислении каких-то из дробей R l [ i j ] возникает деление на ноль, вычисление F ( L [ i 1 ] , L [ i 2 ] , , L [ i l ] , R L [ i 1 ] , R L [ i 2 ] , , R L [ i l ] ) упрощается.

Если найдены значения Δ, которые встречаются точно w раз в какой-то из этих последовательностей, то значениями локаторов ошибок являются значения индексов L[i1],L[i2],…,L[il-1] этой последовательности и множество значений индекса L[il], соответствующего таким Δ. По формуле Форни вычисляются значения ошибок. Ложные конфигурации ошибок отфильтровываются, верные добавляются в список.

В случае добавления конфигураций ошибок в список и выполнении условий выхода exit=1 или exit=2 перебор индексов i1,i2,…il-1 прекращается. Если exit=1, осуществляется переход к п.13, если exit=2 - переход к п.11.

11) Если v=-s, осуществляется переход к п.12, в противном случае: sc=sc+1, l=l-1, о1=o1-1, o2=o2-1, w=w+1.

Если sc≤(v-|s|), осуществляется переход к п.10.

12) v=v+1. Если v≤τ, то осуществляется переход к п.8.

13) Если список локаторов и значений ошибок пуст, то принимается решение о наличии неисправимых ошибок в кодовом слове. В случае наличия в списке одной конфигурации ошибок соответствующие ошибочные символы кодового слова исправляются. В случае наличия нескольких конфигураций ошибок для коррекции выбирается ближайшая из них к принятому из канала слову.

14) Конец.

В описании процедуры мягкого декодирования использованы следующие переменные:

L - таблица, содержащая номера позиций символов, упорядоченных по надежности;

sc - счетчик систем уравнений;

exit - режим завершения работы процедуры декодирования:

0 - без досрочного выхода из процедуры декодирования;

1 - досрочный выход после 1-го найденного вектора ошибок;

2 - после найденных векторов ошибок для каждой системы уравнений.

Предлагаемое устройство декодирования кодов Рида-Соломона реализовано на основе процедуры, описанной выше, для v≤2. В этом случае формула для вычисления невязок (4) упрощается. Вид формулы зависит от значений следующих переменных, используемых в алгоритме декодирования: v (счетчик числа дополнительно исправляемых ошибок), s (управляющая переменная s h i f t s = t С L 2 t С ) и sc (счетчик систем уравнений). Для упрощения записи ниже будем использовать следующее обозначение:

Приведем формулы для вычисления неизвестной невязки (4) при исправлении двух дополнительных ошибок v=2.

Для случая s=0, sc=1:

где R i = A i B 2 t С ( α i ) Λ 2 t С ( α i )

Совместимое подмножество из tC+2 уравнений может содержать одно уравнение, для которого Λ 2 t C ( α i ) = 0. В этом случае:

Для случая s=-1, sc=1:

где R i = A i Λ 2 t С ( α i ) B 2 t С ( α i ) .

Совместимое подмножество из tC+2 уравнений может содержать одно уравнение, для которого B 2 t С ( α i ) = 0 . В этом случае:

для случая s=1, sc=1:

где R i = A i 3 B 2 t С ( α i ) Λ 2 t С ( α i ) .

Для случая s=-2, sc=1:

где R i = A i 3 Λ 2 t С ( α i ) B 2 t С ( α i )

Для случая s=0, sc=2:

где R i = A i B 2 t С ( α i ) Λ 2 t С ( α i ) .

Приведем формулы для вычисления неизвестной невязки (4) при исправлении одной дополнительной ошибки v=1.

Для случая s=0, sc=1:

Для случая s=-1, sc=1:

Заявляемое устройство декодирования PC-кодов содержит: буферную память данных 100, блок вычисления синдромов 200, процессор Галуа 300, блок дискретного преобразования Фурье 400, блок поиска позиций ошибок 500, блок сортировки позиций символов 600, блок вычисления значений ошибок 700, первый сумматор элементов поля Галуа 800.

Устройство обрабатывает входные данные, представляющие собой последовательность n m-разрядных символов кодового слова {ri}, принятого из канала, которые сопровождаются значениями их надежности {reli}.При этом оно выполняет описанную выше процедуру декодирования. На выход устройства выдается последовательность n m-разрядных символов кодового слова с исправленными ошибками {ci}.

Буферная память данных 100 (фиг.1) предназначена для временного хранения принятых из канала символов исправляемых кодовых слов. Может быть реализована известным образом на основе двухпортовой RAM.

Блок вычисления синдромов 200 выполняет 1-й этап процедуры декодирования, заключающийся в вычислении многочлена синдрома S(x) принятого кодового слова, может быть реализован известным образом по схеме Горнера (см. Егоров С.И. Коррекция ошибок в информационных каналах периферийных устройств ЭВМ. Монография. Курск: Курск. гос. техн. ун-т, 2008. - 252 с.).

Блок сортировки позиций символов 600 осуществляет сортировку позиций символов принимаемого из канала кодового слова в соответствии с их надежностью, формируя тем самым таблицу перестановок L.

Процессор Галуа 300 - специализированный процессор, выполняющий операции в конечном поле Галуа, может быть реализован известным образом на основе RISC-архитектуры.

Процессор Галуа 300 реализует алгоритм Берлекэмпа-Месси, вычисляя в соответствии с ним многочлены Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) за 2tC итераций (2-й этап процедуры декодирования).

Кроме того, на основе информации о расположении ошибок в кодовом слове {PE}, полученной от блока поиска позиций ошибок 500, процессор Галуа вычисляет итоговый многочлен локаторов ошибок:

Используя многочлены Λ(x)= и S(x), процессор Галуа 300 вычисляет многочлен значений ошибок Ω(x)=Λ(x)·S(x) mod xd-1 и формальную производную Λ'(x) многочлена локаторов Λ(x) с последующей загрузкой полученных многочленов вместе с найденными позициями ошибок {PE} в блок вычисления значений ошибок 700.

Кроме этого процессор Галуа 300 управляет БДПФ 400 и БППО 500 (с использованием сигналов управления Control). Процессор Галуа устанавливает режим работы БДПФ 400, он же загружает в него коэффициенты многочленов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) . Процессор Галуа контролирует состояние БДПФ (сигналы состояния State) и выгружает из него значения позиций ошибок веса меньшего или равного tC. Также процессор Галуа контролирует состояние БППО (сигналы состояния State) и выгружает из него значения позиций ошибок (пропуская их предварительно через таблицу перестановок L блока БСПС 600).

Блок ДПФ 400 вычисляет преобразование Фурье многочленов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) (5-й этап процедуры мягкого декодирования). Кроме того, в зависимости от режима работы он вычисляет дроби Ri а также коэффициенты Aii (этап 6 процедуры декодирования). Эти дроби и коэффициенты загружаются в память блока БППО 500, адресуемую с помощью таблицы перестановок L блока БСПС 600. Блок ДПФ также вычисляет величины, обратные к корням полинома Λ ( 2 t С ) ( x ) , и контролирует их число, если L 2 t С t n ˜ .

Блок поиска позиций ошибок 500 выполняет 7-12 этапы алгоритма декодирования, вычисляя последовательности невязок и подсчитывая количества одинаковых значений невязок в этих последовательностях.

Блок вычисления значений ошибок 700, используя многочлены Ω(x) и Λ'(x), вычисляет значения ошибок в найденных позициях ошибок {PE}. Он может быть реализован известным образом с использованием формулы Форни. Значения ошибок суммируются с помощью сумматора 800 с соответствующими символами кодового слова, считываемого из буферной памяти данных. Тем самым исправляются ошибочные символы кодового слова. Таким образом, выполняется 13-й этап процедуры декодирования.

Представленный декодер работает по конвейерному принципу: все основные его модули работают параллельно, обрабатывая последовательно принятые из канала различные кодовые слова. Конвейерный принцип работы декодера иллюстрируется фиг.9.

Рассмотрим для примера обработку декодером k-го кодового слова, в котором произошло tC+2 ошибок.

Сначала в 1-м кадре (кадр соответствует времени поступления одного кодового слова) k-е слово записывается в буфер данных 100 и одновременно в темпе поступления в декодер обрабатывается блоком вычисления синдромов 200 и блоком сортировки позиций символов 600.

Затем в первой половине 2-го кадра процессор Галуа 300 реализует алгоритм Берлекэмпа-Месси для вычисленного синдрома, анализирует L 2 t С и в начале второй половины 2-го кадра загружает коэффициенты многочленов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) в блок ДПФ 400 (низкий уровень на строке "БДПФ" фиг.9).

В течение второй половины 2-го кадра и первой половины 3-го кадра блок ДПФ 400 выполняет преобразование Фурье многочленов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) k-го кодового слова (высокий уровень на строке 'БДПФ'). Кроме того, он вычисляет коэффициенты Ri и Ai, которые загружаются в память БППО, адресуемую с помощью таблицы перестановок L блока БСПС. Если L 2 t С t С блок ДПФ 400 также вычисляет величины, обратные к корням полинома Λ ( 2 t С ) ( x ) , и контролирует их число.

В течение второй половины 3-го кадра и первой половины 4-го кадра блок поиска позиций ошибок 500 выполняет вычисление последовательности значений невязок для k-го кодового слова, их подсчет и фиксацию тех их значений, которые встретились в цикле сканирования заданное число раз.

В течение второй половины 4-го кадра и первой половины 5-го кадра блок поиска позиций ошибок 500 с помощью зафиксированного значения Δ определяет позиции tC+τ ошибочных символов k-го кодового слова. Значения этих позиций корректируются с помощью таблицы L во время их пересылки в процессор Галуа.

В течение второй половины 5-го кадра процессор Галуа 300 вычисляет многочлены Ω(x) и Λ'(x) и загружает их в блок вычисления значений ошибок 700.

В течение 6-го кадра блок вычисления значений ошибок 700 вычисляет значения ошибок для соответствующих позиций k-го кодового слова, выгружаемого из буферной памяти данных 100, и осуществляет их исправление с помощью сумматора 800.

Аналогичным образом осуществляется обработка k+1, k+2 и т.д. принятых из канала кодовых слов.

Приведем в соответствии с изобретением описание устройства и работы основных нетривиальных блоков декодера.

Блок дискретного преобразования Фурье 400

Функциональная схема блока дискретного преобразования Фурье 400 приведена на фиг.8. Блок содержит: второе местное устройство управления (МУУ) 410; модуль дискретного преобразования Фурье многочлена Λ ( 2 t С ) ( x ) 420.1; модуль дискретного преобразования Фурье многочлена B ( 2 t С ) ( x ) 420.2; десятый коммутатор 430.1; второй инвертор элементов поля Галуа 440; двадцать шестой 450.1 и двадцать седьмой 450.2 перемножители элементов поля Галуа; одиннадцатый коммутатор 430.2, умножитель на α 470.1; схему возведения в куб элементов поля Галуа 470.2; восьмой регистр-защелку 480, работающую по фронту тактового сигнала; двоичный счетчик номеров позиций принятого слова 490 с коэффициентом пересчета n.

Местное устройство управления 410 предназначено для взаимодействия с процессором Галуа 300 и управления блоком ДПФ 400. Оно также накапливает возможные позиции ошибок веса, меньшего или равного tC, запоминая значения i в момент равенства нулю значения многочлена Λ ( 2 t С ) ( α i ) (сигнал sel0) и подсчитывая их количество.

Двоичный счетчик 490 предназначен для формирования значения i.

Регистр 480 и умножитель на α 470.1 обеспечивают формирование величины Aii.

Схема 470.2 возводит в куб элементы поля Галуа, поступающие на ее первые входы, если на ее второй (управляющий) вход подается логическая 1; в противном случае она передает данные с ее первых входов на выходы без изменений.

Блок ДПФ 400 - может работать в трех режимах.

Нулевой режим. В этом режиме блок ДПФ 400 работает, когда L 2 t C < t C 1. При этом в него загружаются только значения коэффициентов полинома Λ ( 2 t С ) ( x ) и ищутся позиции ошибок веса, меньшего tC-1. Значения сигналов на первых, четвертых-шестых выходах БДПФ (AddR1, Ri, Msk1, Ai) игнорируются.

Первый режим. В этом режиме блок ДПФ 400 работает, если значение управляющей переменной s≥0. В блок ДПФ загружаются значения коэффициентов обоих полиномов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) . Вычисляются коэффициенты R i = α ( 2 s + 1 ) B ( 2 t С ) ( α i ) / Λ ( 2 t С ) ( α i ) . Для их вычисления перекрестный коммутатор 430.1 работает в прямом направлении, подавая на вход инвертора 440 коэффициенты Λ(α-i). Если управляющая переменная s=0, схема возведения в куб 470.2 передает значения αi со своих входов на выходы без изменения. Если s=1, то на выходе формируется значение α3i (осуществляется возведение в куб). На пятом выходе БППФ значение Msk1 (исключение уравнений из системы) формируется путем подачи через коммутатор 430.2 сигнала со второго выхода модуля дискретного преобразования Фурье 420.1, который имеет единичный уровень, когда Λ(α-i)=0. Если s≤0, одновременно осуществляется поиск позиций ошибок веса, меньшего или равного tC.

Второй режим. В этом режиме блок ДПФ 400 работает, когда s<0. В блок ДПФ загружаются значения коэффициентов полиномов Λ ( 2 t С ) ( x ) и B ( 2 t С ) ( x ) . Вычисляются коэффициенты R i = α ( 2 s 1 ) Λ ( 2 t С ) ( α i ) / B ( 2 t С ) ( α i ) .

Для их вычисления коммутатор 430.1 работает в перекрестном режиме, подавая на вход инвертора 440 значения B(α-i). Если управляющая переменная s=-1, схема возведения в куб 470.2 передает значения αi со своих входов на выходы без изменения. Если s=-2, то на выходе формируется значение α3i (осуществляется возведение в куб). На пятом выходе БППФ значение Msk1 формируется путем подачи через коммутатор 430.2 сигнала со второго выхода модуля дискретного преобразования Фурье 420.2, который имеет единичный уровень, когда B(α-i)=0.

В каждом такте работы блока ДПФ 400 на первых выходах модуля дискретного преобразования Фурье многочлена Λ(x) 420.1 появляется значение Λ(α-i), на первых выходах модуля дискретного преобразования Фурье многочлена B(x) 420.2 появляется значение B(α-i), на выходе регистра 480 формируется значение Ai. За время цикла работы блока ДПФ 400 i пробегает значения 0,…,n-1.

В первом и втором режимах Ai, Ri и Msk1 записываются в блок памяти коэффициентов 550 блока поиска позиций ошибок 500. Для формирования адресов памяти 550 при записи используется счетчик 490, значение которого подается на вход таблицы перестановок L, хранящейся в блоке сортировки позиций символов 600.

Функциональная схема модуля дискретного преобразования Фурье многочлена Λ ( 2 t С ) ( x ) 420.1 (модуль дискретного преобразования Фурье многочлена B ( 2 t С ) ( x ) ) 420.2 реализуется по точно такой же схеме) используется такая же, как в прототипе.

Блок поиска позиций ошибок веса 500

Функциональная схема блока поиска позиций ошибок 500 приведена на фиг.2. БППО содержит: два блока вычисления невязки Δ (БВН). 510.1, 510.2; два блока подсчета невязок Δ'(БПН) 520.1,520.2; первый коммутатор 530; первый регистр-защелку 540; блок памяти коэффициентов (БПК) 550, первое местное устройство управления (МУУ) 560.

Блоки 510.1, 510.2 выполняют вычисления Δ в соответствии с формулами (5-13) в зависимости от значения переменных v (число дополнительно исправляемых ошибок), s (управляющая переменная s h i f t s = t С L 2 t С ) и sc (счетчика систем уравнений).

Блоки 520.1, 520.2 осуществляют подсчет различных значений величины Δ в поле Галуа и фиксируют ситуацию равенства w количества какого-то значения Δ.

Определенное для этой ситуации значение Δ' поступает из соответствующей пары блоков 510 и 520 через коммутатор 530 на входы регистра 540 и запоминается в нем.

Блок памяти коэффициентов 550 предназначен для временного хранения величин Ai, Ri и битов Msk1. Он содержит 3 секции, операции с которыми выполняются одновременно. В одну секцию величины Ai, Rt и биты Msk1 поступают из блока ДПФ 400, из другой секции, задержанные на один кадр, они считываются и поступают в блоки 510.1-510.2 для вычисления Δ, из следующей секции эти величины, задержанные еще на один кадр, считываются и используются для повторного вычисления последовательности Δ, необходимой для фиксации позиций ошибочных символов. БПК 550 может быть реализован известным образом на основе трехпортовой RAM.

Местное устройство управления 560 предназначено для взаимодействия с процессором Галуа 300 и управления блоком БППО. В том числе оно вычисляет последовательность адресов чтения блока памяти коэффициентов 550. Оно также накапливает позиции конфигурации ошибок веса w, записывая в стек значения AR2 в момент равенства величин Δ'' и Δ (сигнал SXi).

Две пары блоков БВН+БПН 510 и 520 необходимы для обеспечения конвейерного режима работы блока поиска позиций ошибок. Каждая пара блоков 510 и 520 обрабатывает коэффициенты Ai и дроби Ri одного кодового слова в течение двух кадров (см. фиг.9). В каждом кадре одна пара осуществляет вычисления Δ и подсчет их значений, БВН другой пары осуществляет вычисления Δ для фиксации позиций ошибочных символов в предыдущем кодовом слове, одновременно осуществляется очистка памяти БПН этой же пары.

На фиг.2 пара блоков 510.1+520.1 осуществляет подсчет различных значений Δ для k-го кодового слова во второй половине 3-го кадра и первой половине 4-го. Фиксация позиций ошибочных символов для k-го слова осуществляется во второй половине 4-го кадра и первой половине 5-го с использованием блока 510.1, в это же время записывается нулями память БПН 520.1. Аналогичным образом работает пара блоков 510.2+520.2, обрабатывая k+1-ое кодовое слово со смещением на кадр.

Рассмотрим устройство и работу основных блоков БППО.

Функциональная схема блока вычисления невязок Δ (БВН) 510 приведена на фиг.3. БВН содержит: блок произведений дробей Ri 511, блок произведений коэффициентов Ai 512, второй коммутатор 513.1, третий 513.2 и четвертый 513.3 коммутаторы, второй 515.1, третий 515.2 и четвертый 515.3 сумматоры элементов поля Галуа, первый инвертор элементов поля Галуа 516, первый, второй, третий, четвертый, пятый, шестой, седьмой, восьмой, девятый, десятый и одиннадцатый перемножители элементов поля Галуа 514.1-514.11, первую схему сравнения кодов 517.2, селектор нулевого элемента поля Галуа 517.1, первый логический элемент И 519, логический элемент ИЛИ-НЕ 518.

Блок вычисления невязок реализует вычисления невязок в соответствии с приведенными выше формулами (5-13) для исправления одной (tC+1) или двух (tC+2) дополнительных ошибок.

Значения числителей формул (5-13) появляются на выходе коммутатора 513.3. Значения знаменателей формул (5-13) появляются на выходе коммутатора 513.2. Операция деления, присутствующая в формулах (5-13), реализуется с помощью инвертора элементов поля Галуа 516 и перемножителя 514.11. Итоговые значения невязок Δ формируются на выходе перемножителя 514.11 и поступают на вторые выходы блока вычисления невязок.

На первые входы коммутатора 513.3 поступает значение числителя формулы (5), получаемое на выходах четвертого сумматора элементов поля Галуа 515.3. На вторые входы коммутатора 513.3 поступает значение числителя формулы (7), получаемое на выходах второго сумматора элементов поля Галуа 515.1. На третьи входы коммутатора 513.3 поступает значение числителя формулы (9), формируемое на восьмых выходах блока произведений коэффициентов Ai 512. На четвертые входы коммутатора 513.3 поступает значение числителя формулы (10), получаемое на выходах четвертого сумматора элементов поля Галуа 515.3. На пятые входы коммутатора 513.3 поступает значение числителя формулы (11), получаемое на выходах четвертого сумматора элементов поля Галуа 515.3. На шестые входы коммутатора 513.3 поступает значение числителя формулы (12), формируемое на девятых выходах блока произведений коэффициентов Ai 512. На седьмые входы коммутатора 513.3 поступает значение числителя формулы (13), получаемое на выходах третьего сумматора элементов поля Галуа 515.2.

На первые входы коммутатора 513.2 поступает значение знаменателя формулы (5), получаемое на выходах второго сумматора элементов поля Галуа 515.1. На вторые входы коммутатора 513.2 поступает значение знаменателя формулы (7), получаемое на выходах четвертого сумматора элементов поля Галуа 515.3. На третьи входы коммутатора 513.2 поступает значение знаменателя формулы (9), получаемое на выходах четвертого сумматора элементов поля Галуа 515.3. На четвертые входы коммутатора 513.2 поступает значение знаменателя формулы (10), формируемое на восьмых выходах блока произведений коэффициентов Ai 512. На пятые входы коммутатора 513.2 поступает значение знаменателя формулы (11), формируемое на седьмых выходах блока произведений коэффициентов Ai 512. На шестые входы коммутатора 513.2 поступает значение знаменателя формулы (12), получаемое на выходах третьего сумматора элементов поля Галуа 515.2. На седьмые входы коммутатора 513.2 поступает значение знаменателя формулы (13), формируемое на девятых выходах блока произведений коэффициентов Ai 512.

Второй 513.1, третий 513.2 и четвертый 513.3 коммутаторы управляются сигналами SI, поступающими на девятые входы блока вычисления невязок. Эти сигналы содержат значения управляющей переменной s и счетчика систем уравнений sc.

Второй 513.1 коммутатор постоянно передает на свои выходы содержимое 1-4-х входов за исключением вычисления невязок по формуле (11) (sc=2), в этом случае на выходы передается содержимое 5-8-х входов.

Блок произведений дробей Ri 511 вычисляет все попарные произведения дробей Ri. Функциональная схема блока произведений дробей Ri приведена на фиг.4.

Блок произведений дробей Ri 511 содержит регистры Rg1, предназначенные для хранения значения дробей Ri вместе с масками, перемножители элементов поля Галуа, блоки вентилей.

Функциональная схема регистра Rg1 приведена на фиг.6 и работает по следующему принципу. Если сигнал маски Msk1 равен 1, на выходах регистра будет формироваться значение единичного элемента поля Галуа, в противном случае на выходы регистра Rg1 будет выдаваться запомненное значение дроби Ri.

С помощью перемножителей элементов поля Галуа 511.40-511.45 формируются все возможные попарные произведения дробей Ri, используемые в формулах для вычисления невязок.

Блоки вентилей необходимы для вычисления невязок по формулам (6) и (8). Блоки вентилей 511.30-511.33 блокируют передачу на выходы блока произведений дробей значений Ri (на выходах будет нулевой элемент конечного поля) при подаче логической 1 на любой их управляющий (первый-третий) вход. Блоки вентилей 511.34-511.39 блокируют передачу на выходы блока произведений дробей значений произведений Ri (на выходах будет нулевой элемент конечного поля) при подаче логической 1 на любой их управляющий (первый-второй) вход.

Блок произведений Ai 512 вычисляет все необходимые произведения сумм элементов конечного поля в соответствии с формулами (5-13). Функциональная схема блока произведений Ai приведена на фиг.5.

При исправлении одной дополнительной ошибки БВН заявляемого устройства работает аналогично прототипу. Ниже мы рассмотрим работу БВН при исправлении двух дополнительных ошибок.

БВН работает в 2-х режимах.

В первом (основном) режиме БВН вычисляет значение Δ по формулам (5-13) и формирует инверсный бит маскирования для блока подсчета невязок 520.

В начале цикла сканирования с использованием сигналов Ld, подаваемых на восьмые входы БВН, в регистры Rg1 511.23, 511.22, 511.21 (фиг.4) через коммутаторы 511.10 и 511.11 защелкиваются дроби R i ' и бит маски Msk1', в регистры 512.23, 512.20, 512.20 (фиг.5) через коммутатор 512.10 защелкиваются коэффициенты A i ' (для адресов данных чтения AR1 БПК 550 i, j, k). В следующих тактах из БПК 550 считываются коэффициенты A i ' , дроби R i ' вместе с соответствующим битом маски (адреса данных чтения БПК при этом будут пробегать значения l=k+1,…,n-1) и защелкиваются в регистры 511.20 и 512.33, соответственно.

На выходах блоков произведений дробей Ri формируются попарные произведения дробей, на выходах блоков произведений коэффициентов Ai формируются произведения сумм коэффициентов, необходимые для вычисления невязок по формулам (5-13). На каждом такте на выходах одиннадцатого перемножителя элементов поля Галуа 514.11 получается одно значение невязки, соответствующее одной из формул (5-13) в зависимости от значений переменных s и sc.

С помощью бита маскирования Msk2, формируемого логическим элементом ИЛИ-НЕ 518, из подсчета убираются Δ, для которых Λ ( 2 t С ) ( α l ) = 0 (если s≥0 и одно из значений Λ ( 2 t С ) ( α i ) , Λ ( 2 t С ) ( α j ) , Λ ( 2 t С ) ( α k ) также равно нулю) или B ( 2 t С ) ( α l ) = 0 (если s<0 и одно из значений B ( 2 t С ) ( α i ) , B ( 2 t С ) ( α j ) , B ( 2 t С ) ( α k ) также равно нулю). Кроме того, из подсчета убираются нулевые значения Δ с помощью селектора нулевого элемента поля 517.1.

Во втором режиме определяются значения w позиций ошибочных символов (значение позиций первых ошибок определяется в местном устройстве управления 560 при обнаружении ровно w значений Δ). Для этого повторяют цикл вычисления Δ, на котором был обнаружен набор из w одинаковых значений Δ, используя значения A i ' ' , R i ' ' , Msk1'' со вторых входов блока памяти коэффициентов 550. При этом последовательность Δ сравнивается второй схемой сравнения кодов 517.2 с запомненным в регистре 540 значением Δ". Всякий раз при сравнении сигнал SXi принимает значение логической 1, и в этот момент времени значение AR2 принимается как значение позиции PE' ошибочного символа (без учета перестановки).

Блок подсчета невязок (БПН) 520 содержит (см. фиг.7): одиннадцатый блок вентилей 521, блок памяти с произвольной выборкой 522 с защелкой выходных данных на выходе по фронту тактового сигнала, схему инкремента 523, третью схему сравнения кодов 524, девятый коммутатор 526, седьмой регистр-защелку 527, девятый и десятый логические элементы И 525 и 528.

В основе БПН лежит память 522, которая содержит 2m слов (2m - число элементов конечного поля Галуа) разрядностью log2tC. Слово памяти хранит значение счетчика соответствующего значения Δ.

Блок подсчета невязок работает в двух режимах.

В первом режиме осуществляется подсчет различных значений Δ. Поступающие на вход блока значения Δ защелкиваются в регистр 527. Содержимое ячейки памяти 522 (счетчик), соответствующее этому значению Δ, увеличивается на 1 с помощью схемы инкремента 523 и записывается в ту же ячейку памяти через открытый блок вентилей 521. Схема сравнения кодов 524 проверяет, не достигло ли значение текущего счетчика невязок значения w и, если достигло, то формирует сигнал обнаружения значения невязки Δ, соответствующего конфигурации ошибок веса w.

Уровень логического нуля на выходе элемента 528, формируемый при активном сигнале Msk2 или неактивном сигнале разрешения работы E, блокирует инкрементирование количества Δ, находящегося на выходе памяти.

Во втором режиме работы БПН (режиме инициализации), задаваемом сигналом I на первом входе БПН, во все ячейки памяти 522 записываются нулевые слова. Адреса ячеек памяти 522 в этом режиме поступают через коммутатор 526 из местного устройства управления 560. Нулевые слова на входе памяти 522 получают с помощью блока вентилей 521.

Предлагаемое устройство декодирования кодов Рида-Соломона представляет собой синхронный потоковый декодер, обрабатывающий входные данные в темпе их поступления. Выходные данные тактируются частотой входных данных, и, следовательно, выдаются с такой же скоростью. Задержка данных в устройстве равна времени поступления пяти кодовых слов. Размер буферной памяти данных 100 будет при этом равен 5n символам. Заявляемое устройство состоит из простых по своему функциональному назначению элементов и поэтому легко может быть реализовано на ПЛИС или специализированной БИС.

Результаты исследования эффективности коррекции ошибок заявляемым декодером в канале с аддитивным белым гауссовым шумом (AWGN) и модуляцией BPSK приведены на фиг.10 для кода Рида-Соломона (255, 239) в виде графика зависимостей FER (Frame Error Ratio) от Eb/No (отношения энергии сигнала на информационный бит к односторонней спектральной плотности шума). В качестве меры надежности символа слова PC-кода использовалось минимальное значение модулей мягких решений r j , k , составляющих его бит.

На графике представлены следующие кривые: t=8 - классический декодер, исправляющий t=tc ошибок без использования мягких решений; t=9 - декодер-прототип, реализующий алгоритм мягкого декодирования с радиусом декодирования t=tc+1; t=10 - предложенный декодер с радиусом декодирования t=tc+2.

Из графика видно (фиг.10), что уровень ошибочных кадров на выходе предложенного устройства декодирования более чем в два раза меньше уровня ошибок, обеспечиваемого декодером-прототипом.

Предложенное устройство декодирования кодов Рида-Соломона позволяет повысить эффективность применения популярных высокоскоростных кодов Рида-Соломона за счет исправления 2-х дополнительных ошибок за пределами границы половины минимального кодового расстояния в системах передачи и хранения данных.

Устройство декодирования кодов Рида-Соломона, содержащее буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок, блок сортировки позиций символов, блок вычисления значений ошибок, первый сумматор элементов поля Галуа, причем входы буферной памяти данных и входы блока вычисления синдромов являются входами символов данных устройства декодирования кодов Рида-Соломона, выходы буферной памяти данных соединены с первыми входами первого сумматора элементов поля Галуа, выходы блока вычисления синдромов соединены с первыми входами процессора Галуа, первые выходы процессора Галуа соединены с первыми входами блока дискретного преобразования Фурье, вторые выходы процессора Галуа соединены со вторыми входами блока дискретного преобразования Фурье, третьи выходы процессора Галуа соединены с третьими входами блока дискретного преобразования Фурье, четвертые выходы процессора Галуа соединены с четвертыми входами блока поиска позиций ошибок, пятые выходы процессора Галуа соединены с первыми входами блока вычисления значений ошибок, шестые выходы процессора Галуа соединены со вторыми входами блока вычисления значений ошибок, седьмые выходы процессора Галуа соединены с третьими входами блока вычисления значений ошибок, вторые выходы блока дискретного преобразования Фурье соединены с третьими входами процессора Галуа, третьи выходы блока дискретного преобразования Фурье соединены с четвертыми входами процессора Галуа, четвертые выходы блока дискретного преобразования Фурье соединены с первыми входами блока поиска позиций ошибок, пятый выход блока дискретного преобразования Фурье соединен со вторым входом блока поиска позиций ошибок, шестые выходы блока дискретного преобразования Фурье соединены с третьими входами блока поиска позиций ошибок, первые выходы блока поиска позиций ошибок соединены с пятыми входами процессора Галуа, вторые выходы блока поиска позиций ошибок соединены со вторыми входами блока сортировки позиций символов, выходы блока вычисления значений ошибок соединены со вторыми входами первого сумматора элементов поля Галуа, выходы первого сумматора элементов поля Галуа являются выходами данных устройства декодирования кодов Рида-Соломона, первые входы блока сортировки позиций символов являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона, первые выходы блока дискретного преобразования Фурье соединены с третьими входами блока сортировки позиций символов, первые выходы блока сортировки позиций символов соединены со вторыми входами процессора Галуа, вторые выходы блока сортировки позиций символов соединены с пятыми входами блока поиска позиций ошибок, причем блок поиска позиций ошибок содержит первый блок вычисления невязок, второй блок вычисления невязок, первый блок подсчета невязок, второй блок подсчета невязок, первый коммутатор, первый регистр-защелку, блок памяти коэффициентов, первое местное устройство управления, причем первые входы первого местного устройства управления являются четвертыми входами блока поиска позиций ошибок, вторые входы первого местного устройства управления и первые входы блока памяти коэффициентов являются пятыми входами блока поиска позиций ошибок, третьи входы блока поиска позиций ошибок являются младшими разрядами вторых входов блока памяти коэффициентов, первые входы блока поиска позиций ошибок являются средними разрядами вторых входов блока памяти коэффициентов, второй вход блока поиска позиций ошибок является старшим разрядом вторых входов блока памяти коэффициентов, младшие разряды первых выходов блока памяти коэффициентов соединены с первыми входами первого блока вычисления невязок и с первыми входами второго блока вычисления невязок, средние разряды первых выходов блока памяти коэффициентов соединены с третьими входами первого блока вычисления невязок и с третьими входами второго блока вычисления невязок, старший разряд первых выходов блока памяти коэффициентов соединен с пятым входом первого блока вычисления невязок и с пятым входом второго блока вычисления невязок, младшие разряды вторых выходов блока памяти коэффициентов соединены со вторыми входами первого блока вычисления невязок и со вторыми входами второго блока вычисления невязок, средние разряды вторых выходов блока памяти коэффициентов соединены с четвертыми входами первого блока вычисления невязок и с четвертыми входами второго блока вычисления невязок, старший разряд вторых выходов блока памяти коэффициентов соединен с шестым входом первого блока вычисления невязок и с шестым входом второго блока вычисления невязок, первый выход первого блока вычисления невязок соединен с четвертым входом первого блока подсчета невязок, вторые выходы первого блока вычисления невязок соединены с третьими входами первого блока подсчета невязок, третий выход первого блока вычисления невязок соединен с третьим входом первого местного устройства управления, первый выход первого блока подсчета невязок соединен с пятым входом первого местного устройства управления, вторые выходы первого блока подсчета невязок соединены с первыми входами первого коммутатора, третий выход второго блока вычисления невязок соединен с четвертым входом первого местного устройства управления, вторые выходы второго блока вычисления невязок соединены с третьими входами второго блока подсчета невязок, первый выход второго блока вычисления невязок соединен с четвертым входом второго блока подсчета невязок, вторые выходы второго блока подсчета невязок соединены со вторыми входами первого коммутатора, первый выход второго блока подсчета невязок соединен с шестым входом первого местного устройства управления, третий выход первого местного устройства управления соединен с седьмым входом первого блока вычисления невязок, четвертые выходы первого местного устройства управления соединены с восьмыми входами первого блока вычисления невязок, пятые выходы первого местного устройства управления соединены с девятыми входами первого блока вычисления невязок, шестые выходы первого местного устройства управления соединены с четвертыми входами блока памяти коэффициентов, седьмые выходы первого местного устройства управления соединены с третьими входами блока памяти коэффициентов, восьмые выходы первого местного устройства управления соединены со вторыми входами первого блока подсчета невязок, девятый выход первого местного устройства управления соединен с первым входом первого блока подсчета невязок, десятый выход первого местного устройства управления соединен с пятым входом первого блока подсчета невязок, одиннадцатый выход первого местного устройства управления соединен со вторым входом первого регистра-защелки, двенадцатый выход первого местного устройства управления соединен с третьим входом первого коммутатора, тринадцатый выход первого местного устройства управления соединен с пятым входом второго блока подсчета невязок, четырнадцатый выход первого местного устройства управления соединен с первым входом второго блока подсчета невязок, пятнадцатые выходы первого местного устройства управления соединены со вторыми входами второго блока подсчета невязок, шестнадцатые выходы первого местного устройства управления соединены с девятыми входами второго блока вычисления невязок, семнадцатые выходы первого местного устройства управления соединены с восьмыми входами второго блока вычисления невязок, восемнадцатый выход первого местного устройства управления соединен с седьмым входом второго блока вычисления невязок, девятнадцатые выходы первого местного устройства управления соединены с шестыми входами второго блока подсчета невязок, двадцатые выходы первого местного устройства управления соединены с шестыми входами первого блока подсчета невязок, первые выходы первого местного устройства управления являются вторыми выходами блока поиска позиций ошибок, вторые выходы первого местного устройства управления являются первыми выходами блока поиска позиций ошибок, выходы первого коммутатора соединены с первыми входами первого регистра-защелки, выходы первого регистра-защелки соединены с десятыми входами первого блока вычисления невязок и десятыми входами второго блока вычисления невязок, причем блок вычисления невязок содержит третий сумматор элементов поля Галуа, первый инвертор элементов поля Галуа, первую схему сравнения кодов, селектор нулевого элемента поля Галуа, первый логический элемент И, логический элемент ИЛИ-НЕ, одиннадцатый перемножитель элементов поля Галуа, причем первые входы первой схемы сравнения кодов являются десятыми входами блока вычисления невязок, выход первой схемы сравнения кодов соединен с первым входом первого логического элемента И, выход логического элемента ИЛИ-НЕ соединен со вторым входом первого логического элемента И и является первым выходом блока вычисления невязок, выходы первого инвертора элементов поля Галуа соединены с первыми входами одиннадцатого перемножителя элементов поля Галуа, выход первого логического элемента И является третьим выходом блока вычисления невязок, выходы одиннадцатого перемножителя элементов поля Галуа соединены со вторыми входами первой схемы сравнения кодов и являются вторыми выходами блока вычисления невязок, отличающееся тем, что в блок вычисления невязок введены блок произведений дробей Ri, блок произведений коэффициентов Ai, второй, третий и четвертый коммутаторы, второй и четвертый сумматоры элементов поля Галуа, первый, второй, третий, четвертый, пятый, шестой, седьмой, восьмой, девятый и десятый перемножители элементов поля Галуа, причем первые входы блока произведений коэффициентов Ai являются первыми входами блока вычисления невязок, вторые входы блока произведений коэффициентов Ai являются вторыми входами блока вычисления невязок, первые входы блока произведений дробей Ri являются третьими входами блока вычисления невязок, вторые входы блока произведений дробей Ri являются четвертыми входами блока вычисления невязок, третий вход блока произведений дробей Ri является пятым входом блока вычисления невязок, четвертый вход блока произведений дробей Ri является шестым входом блока вычисления невязок, третий вход блока произведений коэффициентов Ai соединен с шестым входом блока произведений дробей Ri и является седьмым входом блока вычисления невязок, четвертые входы блока произведений коэффициентов Ai соединены с седьмыми входами блока произведений дробей Ri и являются восьмыми входами блока вычисления невязок, пятые входы блока произведений дробей Ri соединены с девятыми входами второго коммутатора, восьмыми входами третьего коммутатора, восьмыми входами четвертого коммутатора и являются девятыми входами блока вычисления невязок, первые выходы блока произведений дробей Ri соединены с первым входами третьего сумматора элементов поля Галуа и первыми входам седьмого перемножителя элементов поля Галуа, вторые выходы блока произведений дробей Ri соединены со вторыми входами третьего сумматора элементов поля Галуа и первыми входами восьмого перемножителя элементов поля Галуа, третьи выходы блока произведений дробей Ri соединены с первыми входами девятого перемножителя элементов поля Галуа, четвертые выходы блока произведений дробей Ri соединены с первыми входами десятого перемножителя элементов поля Галуа, пятые выходы блока произведений дробей Ri соединены с первыми входами первого перемножителя элементов поля Галуа, шестые выходы блока произведений дробей Ri соединены с первыми входами второго перемножителя элементов поля Галуа, седьмые выходы блока Ri соединены с первым входами третьего перемножителя элементов поля Галуа, восьмые выходы блока произведений дробей Ri соединены с первыми входами четвертого перемножителя элементов поля Галуа, девятые выходы блока произведений дробей Ri соединены со вторыми входами пятого перемножителя элементов поля Галуа, десятые выходы блока произведений дробей Ri соединены с первыми входами шестого перемножителя элементов поля Галуа, одиннадцатый выход блока произведений дробей Ri соединен с первым входом логического элемента ИЛИ-НЕ, первые выходы блока произведений коэффициентов Ai соединены со вторыми входами первого перемножителя элементов поля Галуа и вторыми входами шестого перемножителя элементов поля Галуа, вторые выходы блока коэффициентов Ai соединены со вторыми входами второго перемножителя элементов поля Галуа и первыми входами пятого перемножителя элементов поля Галуа, третьи выходы блока коэффициентов Ai соединены со вторыми входами третьего перемножителя элементов поля Галуа и вторыми входами четвертого перемножителя элементов поля Галуа, четвертые выходы блока коэффициентов Ai соединены с первыми входами второго коммутатора, пятые выходы блока коэффициентов Ai соединены со вторыми входами второго коммутатора, шестые выходы блока коэффициентов Ai соединены с третьими входами второго коммутатора, седьмые выходы блока коэффициентов Ai соединены с четвертыми входами второго коммутатора и пятыми входами третьего коммутатора, восьмые выходы блока коэффициентов Ai соединены с четвертыми входами третьего коммутатора и третьими входами четвертого коммутатора, девятые выходы блока произведений коэффициентов Ai соединены с седьмыми входами второго коммутатора, седьмыми входами третьего коммутатора и шестыми входами четвертого коммутатора, десятые выходы блока коэффициентов Ai соединены с шестыми входами второго коммутатора, одиннадцатые выходы блока коэффициентов Ai соединены с пятыми входами второго коммутатора, на восьмые входы второго коммутатора подается константа - нулевой символ конечного поля, первые выходы второго коммутатора соединены со вторыми входами седьмого перемножителя элементов поля Галуа, вторые выходы второго коммутатора соединены со вторыми входами восьмого перемножителя элементов поля Галуа, третьи выходы второго коммутатора соединены со вторыми входами девятого перемножителя элементов поля Галуа, четвертые выходы второго коммутатора соединены со вторыми входами десятого перемножителя элементов поля Галуа, выходы первого перемножителя элементов поля Галуа соединены с первыми входами второго сумматора элементов поля Галуа, выходы второго перемножителя элементов поля Галуа соединены со вторыми входами второго сумматора элементов поля Галуа, выходы третьего перемножителя элементов поля Галуа соединены с третьими входами второго сумматора элементов поля Галуа, выходы четвертого перемножителя элементов поля Галуа соединены с четвертыми входами второго сумматора элементов поля Галуа, выходы пятого перемножителя элементов поля Галуа соединены с пятыми входами второго сумматора элементов поля Галуа, выходы шестого перемножителя элементов поля Галуа соединены с шестыми входами второго сумматора элементов поля Галуа, выходы второго сумматора элементов поля Галуа соединены с первыми входам третьего коммутатора и вторыми входами четвертого коммутатора, выходы третьего сумматора элементов поля Галуа соединены с шестыми входами третьего коммутатора и седьмыми входами четвертого коммутатора, выходы седьмого перемножителя элементов поля Галуа соединены с первыми входами четвертого сумматора элементов поля Галуа, выходы восьмого перемножителя элементов поля Галуа соединены со вторыми входами четвертого сумматора элементов поля Галуа, выходы девятого перемножителя элементов поля Галуа соединены с третьими входами четвертого сумматора элементов поля Галуа, выходы десятого перемножителя элементов поля Галуа соединены с четвертыми входами четвертого сумматора элементов поля Галуа, выходы четвертого сумматора элементов поля Галуа соединены с первыми, четвертыми и пятыми входами четвертого коммутатора и вторыми и третьими входами третьего коммутатора, выходы третьего коммутатора соединены со входами селектора нулевого элемента поля Галуа и входами первого инвертора элементов поля Галуа, выход селектора нулевого элемента поля Галуа соединен со вторым входом логического элемента ИЛИ-НЕ, выходы четвертого коммутатора соединены со вторыми входами одиннадцатого перемножителя элементов поля Галуа, причем блок произведений дробей Ri содержит пятый, шестой и седьмой коммутаторы, первый, второй, третий и четвертый регистры Rg1, первый-десятый блоки вентилей, двенадцатый-семнадцатый перемножители элементов поля Галуа, вторую схему сравнения кодов, схему формирования веса, причем первые входы пятого коммутатора являются первыми входами блока произведений дробей Ri, вторые входы пятого коммутатора являются вторыми входами блока произведений дробей Ri, третий вход пятого коммутатора соединен с третьим входом шестого коммутатора и является шестым входом блока произведений дробей Ri, первый вход шестого коммутатора является третьим входом блока произведений дробей Ri, второй вход шестого коммутатора является четвертым входом блока произведений дробей Ri, выходы пятого коммутатора соединены с первыми входами первого, второго, третьего и четвертого регистров Rg1, выход шестого коммутатора соединен со вторыми входами первого, второго, третьего и четвертого регистров Rg1, третьи входы первого, второго, третьего и четвертого регистров Rg1 являются седьмыми входами блока произведений дробей Ri, первые выходы первого регистра Rg1 соединены с четвертыми входами четвертого блока вентилей и вторыми входами пятнадцатого, шестнадцатого и семнадцатого перемножителей элементов поля Галуа, второй выход первого регистра Rg1 соединен с третьими входами первого, второго, третьего блоков вентилей, первым входом схемы формирования веса и первыми входами пятого, шестого и седьмого блоков вентилей, первые выходы второго регистра Rg1 соединены со вторыми входами тринадцатого и четырнадцатого перемножителей элементов поля Галуа, четвертыми входами третьего блока вентилей и первыми входами семнадцатого перемножителя элементов поля Галуа, второй выход второго регистра Rg1 соединен со вторыми входами первого, второго и пятого блока вентилей, третьим входом четвертого блока вентилей, первыми входами восьмого и девятого блоков вентилей и четвертым входом схемы формирования веса, первые выходы третьего регистра Rg1 соединены со вторыми входами двенадцатого перемножителя, четвертыми входами второго блока вентилей и первыми входами четырнадцатого и шестнадцатого перемножителей элементов поля Галуа, второй выход третьего регистра Rg1 соединен с первым входом первого блока вентилей, вторыми входами третьего, четвертого, шестого и восьмого блоков вентилей, первым входом десятого блока вентилей и третьим входом схемы формирования веса, первые выходы четвертого регистра Rg1 соединены с четвертыми входами первого блока вентилей, первыми входами двенадцатого, тринадцатого и пятнадцатого перемножителей элементов поля Галуа, второй выход четвертого регистра Rg1 соединен с первыми входами второго, третьего и четвертого блоков вентилей, вторыми входами седьмого, девятого и десятого блоков вентилей и вторым входом схемы формирования веса, выходы двенадцатого перемножителя элементов поля Галуа соединены с третьими входами пятого блока вентилей, выходы тринадцатого перемножителя элементов поля Галуа соединены с третьими входами шестого блока вентилей, выходы четырнадцатого перемножителя элементов поля Галуа соединены с третьими входами седьмого блока вентилей, выходы пятнадцатого перемножителя элементов поля Галуа соединены с третьими входами восьмого блока вентилей, выходы шестнадцатого перемножителя элементов поля Галуа соединены с третьими входами девятого блока вентилей, выходы семнадцатого перемножителя элементов поля Галуа соединены с третьими входами десятого блока вентилей, на первые входы седьмого коммутатора подается константа '1', на вторые входы седьмого коммутатора подается константа '0', третьи входы седьмого коммутатора являются пятыми входами блока произведений дробей Ri, выходы седьмого коммутатора соединены с первыми входами второй схемы сравнения кодов, выходы схемы формирования веса соединены со вторыми входами второй схемы сравнения кодов, выходы первого блока вентилей являются первыми выходами блока произведений дробей Ri, выходы второго блока вентилей являются вторыми выходами блока произведений дробей Ri, выходы третьего блока вентилей являются третьими выходами блока произведений дробей Ri, выходы четвертого блока вентилей являются четвертыми выходами блока произведений дробей Ri, выходы пятого блока вентилей являются пятыми выходами блока произведений дробей Ri, выходы шестого блока вентилей являются шестыми выходами блока произведений дробей Ri, выходы седьмого блока вентилей являются седьмыми выходами блока произведений дробей Ri, выходы восьмого блока вентилей являются восьмыми выходами блока произведений дробей Ri, выходы девятого блока вентилей являются девятыми выходами блока произведений дробей Ri, выходы десятого блока вентилей являются десятыми выходами блока произведений дробей Ri, выход второй схемы сравнения кодов является одиннадцатым выходом блока произведений дробей Ri, причем блок произведений коэффициентов Ai содержит восьмой коммутатор, второй, третий, четвертый и пятый регистры-защелки, пятый-десятый сумматоры элементов поля Галуа, восемнадцатый-двадцать пятый перемножители элементов поля Галуа, причем первые входы восьмого коммутатора являются первыми входами блока произведений коэффициентов Ai, вторые входы восьмого коммутатора являются вторыми входами блока произведений коэффициентов Ai, третий вход восьмого коммутатора является третьим входом блока произведений коэффициентов Ai, вторые входы второго, третьего, четвертого и пятого регистров-защелок являются разрядами четвертых входов блока произведений коэффициентов Ai, выходы восьмого коммутатора соединены с первыми входами второго, третьего, четвертого и пятого регистров-защелок, выходы второго регистра-защелки соединены с первыми входами пятого, шестого и восьмого сумматоров элементов поля Галуа, выходы третьего регистра-защелки соединены со вторыми входами пятого сумматора элементов поля Галуа и первыми входами седьмого и девятого сумматоров элементов поля Галуа, выходы четвертого регистра-защелки соединены с первыми входами десятого сумматора элементов поля Галуа и вторыми входами шестого и седьмого сумматоров элементов поля Галуа, выходы пятого регистра-защелки соединены со вторыми входами восьмого, девятого и десятого сумматоров элементов поля Галуа, выходы пятого сумматора элементов поля Галуа соединены с первыми входами восемнадцатого, двадцать третьего и двадцать четвертого перемножителей элементов поля Галуа и являются девятыми выходами блока произведений коэффициентов Ai, выходы шестого сумматора элементов поля Галуа соединены с первыми входами девятнадцатого и двадцать второго перемножителей элементов поля Галуа, вторыми входами двадцать четвертого перемножителя элементов поля Галуа и являются десятыми выходами блока произведений коэффициентов Ai, выходы седьмого сумматора элементов поля Галуа соединены с первыми входами двадцатого и двадцать первого перемножителей элементов поля Галуа, третьими входами двадцать четвертого перемножителя элементов поля Галуа и являются одиннадцатыми выходами блока произведений Ai, выходы восьмого сумматора элементов поля Галуа соединены со вторыми входами двадцатого, двадцать второго и двадцать третьего перемножителей элементов поля Галуа, выходы девятого сумматора элементов поля Галуа соединены со вторыми входами девятнадцатого и двадцать первого перемножителей элементов поля Галуа и третьими входами двадцать третьего перемножителя элементов поля Галуа, выходы десятого сумматора элементов поля Галуа соединены с третьими входами двадцать первого и двадцать второго перемножителей элементов поля Галуа и вторыми входами восемнадцатого перемножителя элементов поля Галуа, выходы восемнадцатого перемножителя элементов поля Галуа соединены с третьими входами двадцать пятого перемножителя элементов поля Галуа и являются первыми выходами блока произведений коэффициентов Ai, выходы девятнадцатого перемножителя элементов поля Галуа соединены со вторыми входами двадцать пятого перемножителя элементов поля Галуа и являются вторыми выходами блока произведений коэффициентов Ai, выходы двадцатого перемножителя элементов поля Галуа соединены с первыми входами двадцать пятого перемножителя элементов поля Галуа и являются третьими выходами блока произведений коэффициентов Ai, выходы двадцать первого перемножителя элементов поля Галуа являются четвертыми выходами блока произведений коэффициентов Ai, выходы двадцать второго перемножителя элементов поля Галуа являются пятыми выходами блока произведений коэффициентов Ai, выходы двадцать третьего перемножителя элементов поля Галуа являются шестыми выходами блока произведений коэффициентов Ai, выходы двадцать четвертого перемножителя элементов поля Галуа являются седьмыми выходами блока произведений коэффициентов Ai, выходы двадцать пятого перемножителя элементов поля Галуа являются восьмыми выходами блока произведений коэффициентов Ai.



 

Похожие патенты:

Изобретение относится к системам передачи дискретной информации и может быть использовано в системах помехоустойчивой защиты информации. .

Изобретение относится к устройству мягкого решения и способу получения значения мягкого решения в качестве значения, приблизительно выражающего вероятность в качестве наиболее близкой фактической вероятности посредством простой обработки.

Изобретение относится к технике связи и может использоваться в системах передачи дискретной информации. .

Изобретение относится к системам телекоммуникаций и вычислительной технике и может найти применение в устройствах приема информации из канала передачи или воспроизведения информации с высоким уровнем ошибок.

Изобретение относится к технике связи и может быть использовано при проектировании новых и модернизации существующих систем передачи дискретной информации. .

Изобретение относится к области радиосвязи, в частности к устройствам и способам определения логарифмического отношения правдоподобия (LLR) для турбокодов и метрики ветвления для сверточных кодов при использовании предварительного кодирования.

Изобретение относится к устройству и способу турбодекодирования в системе связи. .

Изобретение относится к устройству и способу опережающей коррекции ошибок для уменьшения коэффициентов битовых ошибок и коэффициентов кадровых ошибок, используя турбодекодирование в системе связи.

Изобретение относится к технике связи и может использоваться при проектировании новых и модернизации существующих систем передачи дискретной информации. Техническим результатом является повышение достоверности передачи информации. Предложен декодер произведения кодов размерности 3D с запросами, содержащий блок приема, первый выход которого подключен к блоку статистических оценок, а второй выход - к первому входу блока обработки строк. Предложенное устройство содержит блок обработки матриц, декодер 3D, блок ярлыков, блок выборки данных и блок запросов. Один выход блока статистических оценок подключен ко второму входу блока обработки строк, а его выход подключен к первому входу блока обработки матриц, второй вход этого блока подключен к другому выходу блока статистических оценок. Первый, второй и третий выходы блока обработки матриц подключены соответственно к первому входу декодера 3D, к другому входу блока выборки данных и ко второму входу блока ярлыков, первый вход которого подключен к третьему выходу блока приема, а первый выход блока ярлыков через один вход блока выборки данных подключен к второму входу декодера 3D, тогда как второй выход блока ярлыков подключен к входу блока запросов. 1 ил.

Изобретение относится к области техники кодирования, программируемого декодирования и может быть использовано в приемных устройствах для оптимального декодирования принятой кодовой комбинации. Достигаемый технический результат - повышение быстродействия с обеспечением наивысшей достоверности его работы до значения, близкого к предельно возможному пределу Клода Шеннона. Некогерентный демодулятор бинарного цифрового сигнала с мягким итеративным декодированием данных содержит фазовый детектор с выходным фильтром низкой частоты, вычислитель логарифмического отношения функций правдоподобия, последовательно соединенные элемент ИЛИ, частотомер и решающий блок, дискретизатор и последовательно соединенные генератор тактовых импульсов, реверсивный счетчик, цифроаналоговый преобразователь и блок сравнения. 2 ил.
Наверх