Устройство декодирования кодов рида-соломона
Иллюстрации
Показать всеИзобретение относится к системам телекоммуникации и вычислительной техники и может найти применение в устройствах приема информации из канала передачи или воспроизведения информации с высоким уровнем ошибок. Техническим результатом является повышение эффективности исправления ошибок за счет исправления двух дополнительных ошибок за границей половины минимального расстояния с использованием мягких решений. Устройство содержит буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок, блок сортировки позиций символов, блок вычисления значений ошибок, первый сумматор элементов поля Галуа. 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) являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона. Оценка надежности представляется двоичным числом без знака с фиксированной точкой. Большее значение числа соответствует больш