RU2613760C2 - Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации - Google Patents

Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации Download PDF

Info

Publication number
RU2613760C2
RU2613760C2 RU2015121473A RU2015121473A RU2613760C2 RU 2613760 C2 RU2613760 C2 RU 2613760C2 RU 2015121473 A RU2015121473 A RU 2015121473A RU 2015121473 A RU2015121473 A RU 2015121473A RU 2613760 C2 RU2613760 C2 RU 2613760C2
Authority
RU
Russia
Prior art keywords
unit
inputs
output
block
coefficients
Prior art date
Application number
RU2015121473A
Other languages
English (en)
Other versions
RU2015121473A (ru
Inventor
Олег Станиславович Когновицкий
Сергей Сергеевич Владимиров
Original Assignee
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования "Санкт-Петербургский государственный университет телекоммуникации им. проф. М.А. Бонч-Бруевича"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования "Санкт-Петербургский государственный университет телекоммуникации им. проф. М.А. Бонч-Бруевича" filed Critical Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования "Санкт-Петербургский государственный университет телекоммуникации им. проф. М.А. Бонч-Бруевича"
Priority to RU2015121473A priority Critical patent/RU2613760C2/ru
Publication of RU2015121473A publication Critical patent/RU2015121473A/ru
Application granted granted Critical
Publication of RU2613760C2 publication Critical patent/RU2613760C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/43Majority logic or threshold decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

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

Description

Изобретение относится к системам телекоммуникаций и вычислительной технике и может найти применение в устройствах приема информации из канала передачи или воспроизведения информации с высоким уровнем ошибок.
В настоящее время на практике применяются устройства декодирования кодов Рида-Соломона (PC-кодов), реализующие классические алгоритмы декодирования (Питерсона-Горенстейна-Цирлера, Берлекэмпа-Месси, Евклида), позволяющие исправлять не более t ошибочных символов в кодовом слове (t=(d-1)/2, d - минимальное кодовое расстояние).
Известно устройство декодирования кодов Рида-Соломона, позволяющее исправить одну ошибку за границей гарантированно исправляемой кратности ошибок [см. 1, патент на изобретение РФ №2441318, МПК H03M 13/45, опубл. 27.01.2012], которое содержит буферную память данных, блок вычисления синдромов, процессор Галуа, блок дискретного преобразования Фурье, блок поиска позиций ошибок, блок вычисления значений ошибок, первый сумматор элементов поля Галуа, причем входы буферной памяти данных и входы блока вычисления синдромов являются входами символов данных устройства декодирования кодов Рида-Соломона, выходы буферной памяти данных соединены с первыми входами первого сумматора элементов поля Галуа, выходы блока вычисления синдромов соединены с первыми входами процессора Галуа, первые выходы процессора Галуа соединены с первыми входами блока дискретного преобразования Фурье, вторые выходы процессора Галуа соединены со вторыми входами блока дискретного преобразования Фурье, третьи выходы процессора Галуа соединены с третьими входами блока дискретного преобразования Фурье, четвертые выходы процессора Галуа соединены с четвертыми входами блока поиска позиций ошибок, пятые выходы процессора Галуа соединены с первыми входами блока вычисления значений ошибок, шестые выходы процессора Галуа соединены со вторыми входами блока вычисления значений ошибок, седьмые выходы процессора Галуа соединены с третьими входами блока вычисления значений ошибок, вторые выходы блока дискретного преобразования Фурье соединены с третьими входами процессора Галуа, третьи выходы блока дискретного преобразования Фурье соединены с четвертыми входами процессора Галуа, четвертые выходы блока дискретного преобразования Фурье соединены с первыми входами блока поиска позиций ошибок, пятый выход блока дискретного преобразования Фурье соединен со вторым входом блока поиска позиций ошибок, шестые выходы блока дискретного преобразования Фурье соединены с третьими входами блока поиска позиций ошибок, первые выходы блока поиска позиций ошибок соединены с пятыми входами процессора Галуа, вторые выходы блока поиска позиций ошибок соединены с шестыми входами процессора Галуа, третьи выходы блока поиска позиций ошибок соединены с седьмыми входами процессора Галуа, четвертые выходы блока поиска позиций ошибок соединены с восьмыми входами процессора Галуа, выходы блока вычисления значений ошибок соединены со вторыми входами первого сумматора элементов поля Галуа, выходы первого сумматора элементов поля Галуа являются выходами данных устройства декодирования кодов Рида-Соломона, отличающееся тем, что в устройство введен блок сортировки позиций символов, причем первые входы блока сортировки позиций символов являются входами оценок надежности символов данных устройства декодирования кодов Рида-Соломона, пятые выходы блока поиска позиций ошибок соединены со вторыми входами блока сортировки позиций символов, первые выходы блока дискретного преобразования Фурье соединены с третьими входами блока сортировки позиций символов, первые выходы блока сортировки позиций символов соединены со вторыми входами процессора Галуа, вторые выходы блока сортировки позиций символов соединены с пятыми входами блока поиска позиций ошибок.
Однако данное устройство может исправлять ограниченное количество ошибок, находящихся за границей гарантированно исправляемой кратности. При этом до начала процесса декодирования необходимо принять всю кодовую комбинацию, что замедляет процесс обработки кодовой комбинации.
Известно также устройство декодирования систематических (n,k)-кодов Рида-Соломона [см. 2, патент США №2013/0198583 A1, МПК H03M 13/15, опубл. 01.08.2013], обеспечивающее быструю обработку кодовой комбинации, основанную на определении информационной комбинации на основе k-элементной последовательности принятой кодовой комбинации. Декодер, используемый в данном устройстве, содержит блок обработки входной последовательности, обеспечивающий выделение и распаковку k элементов кодовой комбинации из поступающих на вход n элементов кодовой комбинации, где n - полная длина кодовой комбинации, а k - общее число информационных элементов в кодовой комбинации, блок вычисления информационных элементов, основанный на использовании быстрого преобразования Уолша-Адамара и быстрого преобразования Фурье, блок обработки информационных элементов и блок восстановления информационных элементов. При этом входы блока обработки входной последовательности являются входами данных устройства декодирования кодов Рида-Соломона, выходы блока обработки входной последовательности подключены к соответствующим входам блока вычисления k информационных элементов, а его выходы связаны с соответствующими входами блока обработки информационных элементов, выходы которого подключены к соответствующим входам блока восстановления информационных элементов, выходы которого являются выходами данных устройства декодирования систематических (n, k) кодов Рида-Соломона.
Данное устройство наиболее близко по технической сущности к заявляемому изобретению и выбрано в качестве прототипа.
Однако в данном устройстве предусмотрена возможность исправления только стираний и не обеспечивается исправление ошибок.
Техническим результатом изобретения является обеспечение возможности исправления ошибок, в том числе и за пределами гарантированно исправляемой кратности ошибок, при сохранении возможности быстрой обработки кодовой комбинации.
Указанный технический результат достигается в устройстве мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации, содержащем блок обработки входной последовательности, блок вычисления информационных элементов, при этом входы блока обработки входной последовательности являются входами для приема кодовой комбинации длиной n, где n - полная длина кодовой комбинации используемого кода, а его выходы подключены к соответствующим входам блока вычисления информационных элементов, отличающемся тем, что блок вычисления информационных элементов выполнен с возможностью вычисления информационных комбинаций на основе двойственного базиса и введены блок хранения вычисленных элементов, состоящий из n идентичных блоков памяти, и блок принятия решения, причем выходы блока вычисления информационных элементов подключены к входам соответствующего из n блоков памяти, входящих в блок хранения вычисленных элементов, выходы блоков памяти которого подключены к соответствующим входам блока принятия решения, выполненного с возможностью принятия решения о наличии неисправляемой ошибки в принятой кодовой комбинации.
При этом блок вычисления информационных элементов может содержать k блоков умножения на коэффициенты двойственного базиса, вычисленные по формуле
Figure 00000001
(см. 3, Когновицкий О.С. Двойственный базис и его применение в телекоммуникациях. СПб.: Линк, 2009. 423 с.), где k - количество информационных элементов в кодовой комбинации кода Рида-Соломона, εi - элементы левого степенного базиса поля Галуа, pk - коэффициенты порождающего полинома P(x), P'(x) - производная порождающего полинома P(x), блок суммирования в поле Галуа и блок умножения на коэффициенты позиции k-элементной комбинации, вычисляемые по формуле
Figure 00000002
, в которой i - положение первого элемента k-элементного участка относительно начала кодовой комбинации (см. 3, Когновицкий О.С. Двойственный базис и его применение в телекоммуникациях. СПб.: Линк, 2009. 423 с.), при этом k-линейные входы блоков умножения на коэффициенты двойственного базиса являются входами блока вычисления информационных элементов, а их k-линейные выходы связаны с соответствующими входами блока суммирования в поле Галуа, k-линейный выход которого связан с входом блока умножения на коэффициенты позиции k-элементной комбинации, выход которого является выходом блока вычисления информационных элементов.
Каждый блок умножения на коэффициенты двойственного базиса может содержать узел памяти, хранящий вычисленные для используемого кода Рида-Соломона коэффициенты двойственного базиса и перемножитель k-элементной комбинации на вычисленные коэффициенты на основе двойственного базиса, при этом первые входы перемножителя k-элементной комбинации являются входами блока умножения на коэффициенты двойственного базиса, а выходы узла памяти соединены со вторыми входами перемножителя k-элементной комбинации.
Каждый блок умножения на коэффициенты позиции k-элементной комбинации также содержит связанные между собой узел памяти, хранящий вычисленные коэффициенты позиции k-элементной комбинации, и перемножитель k-элементной комбинации на эти коэффициенты.
Каждый блок памяти, входящий в блок хранения вычисленных элементов, может содержать управляющее устройство, регистр памяти, компаратор и счетчик, при этом входы управляющего устройства являются входами блока памяти, а выходы управляющего устройства связаны с соответствующими входами регистра памяти, счетчика и компаратора, причем выход регистра памяти связан с соответствующим входом компаратора и является выходом данных соответствующего блока памяти, первый выход компаратора подключен к соответствующему входу счетчика, выход которого является выходом блока памяти, а второй выход компаратора является выходом включения следующего блока памяти.
Блок принятия решения может содержать блок поиска максимального значения, блок вывода результата декодирования и блок сравнения, при этом входы блока поиска максимального значения служат для подключения выходов счетчиков n блоков памяти блока хранения вычисленных элементов и второго входа блока сравнения, а выход блока поиска максимального значения связан с первым входом блока сравнения и вторым входом блока вывода результата декодирования, а первые входы блока вывода результата декодирования служат для подключения соответствующих k-линейных выходов данных n блоков памяти блока хранения вычисленных элементов, выход блока вывода результата декодирования является выходом результата декодирования блока принятия решения, а выход блока сравнения является выходом признака ошибки декодирования блока принятия решения.
Введенные отличия изменяют механизм вычисления информационных элементов и принцип обработки вычисленных информационных элементов.
В качестве метода вычисления используются не быстрые преобразования Уолша-Адамара и Фурье, а метод на основе применения двойственного базиса поля Галуа, который реализуется упомянутым построением блока вычисления информационных элементов и блока хранения вычисленных элементов (подробнее см. приложение).
В качестве принципа обработки вычисленных информационных элементов вводится механизм последовательного накопления результатов и подсчета их веса, после чего по мажоритарному принципу производится выбор результата с максимальным весом. При появлении двух и более результатов с одинаковым максимальным весом декодер принимает решение о невозможности определения верной информационной комбинации и выдает сигнал «отказ от декодирования». Данный принцип обработки вычисленных информационных элементов реализуется с помощью упомянутого построения блока принятия решения.
Таким образом, предлагаемое устройство отличается от устройства декодирования прототипа другим методом вычисления информационных элементов и другим методом обработки результата, что позволяет обеспечить исправление ошибок, в том числе и за пределами гарантированно исправляемой кратности ошибок, при сохранении возможности быстрой обработки кодовой комбинации.
Предлагаемое устройство поясняется чертежами, где на фиг. 1 приведена структурная схема устройства мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации, на фиг. 2 показана структура блока вычисления информационных элементов, на фиг. 3 приведена структура блока хранения вычисленных элементов, на фиг. 4 - схема блока памяти, входящего в блок хранения вычисленных элементов, на фиг. 5 - структура блока принятия решения, а на фиг. 6 - алгоритм работы устройства.
Согласно фиг. 1 предлагаемое устройство содержит блок 1 обработки входной последовательности, блок 2 вычисления информационных элементов, блок 3 хранения вычисленных элементов и блок 4 принятия решения, причем вход блока 1 обработки входной последовательности является входом символов кодовой комбинации устройства мажоритарного декодирования кода Рида-Соломона. Блок 1 обработки входной последовательности может быть построен в виде циклического регистра сдвига из n ячеек памяти, причем выходы первых k ячеек будут составлять k-линейный выход блока 1 обработки входной последовательности и соединены со входом блока 2 вычисления информационных элементов. k-линейный выход блока 2 вычисления информационных элементов соединен со входом блока 3 хранения вычисленных элементов, выходы которого соединены с соответствующими входами блока 4 принятия решения. Выходы блока 4 принятия решения являются выходами устройства мажоритарного декодирования кода Рида-Соломона.
Блок 2 вычисления информационных элементов, показанный на фиг. 2, содержит k блоков 2.1.1-2.1.k умножения на коэффициенты двойственного базиса, блок 2.2 суммирования в поле Галуа, блок 2.3 умножения на коэффициенты позиции k-элементной комбинации, при этом k-линейные входы блоков 2.1.1-2.1.k умножения на коэффициенты двойственного базиса являются входами блока 2 вычисления информационных элементов, а их k-линейные выходы связаны с соответствующими входами блока 2.2 суммирования в поле Галуа, k-линейный выход которого связан с входом блока 2.3 умножения на коэффициенты позиции k-элементной комбинации, выход которого является выходом блока 2 вычисления информационных элементов.
Блок 3 хранения вычисленных элементов (фиг. 3) содержит n идентичных блоков памяти 3.1.1-3.1.n, входы которых являются входами блока 3 хранения вычисленных элементов.
Каждый блок 3.1.1-3.1.n памяти (фиг. 4), входящий в блок 3 хранения вычисленных элементов, содержит управляющее устройство 3.1.2, регистр 3.1.3 памяти, компаратор 3.1.4 и счетчик 3.1.5, при этом входы управляющего устройства 3.1.2 являются входами блока 3.1.1 памяти, а его соответствующие выходы связаны с входами регистра 3.1.3 памяти, счетчика 3.1.5, компаратора 3.1.4, причем соответствующие выходы регистра 3.1.3 памяти связаны с соответствующим входами компаратора 3.1.4 и являются выходами данных соответствующего блока памяти 3.1.1, а первый выход компаратора 3.1.4 соединен с соответствующим входом счетчика 3.1.5, выходы данных и выход счетчика 3.1.5 каждого блока памяти 3.1.1 являются выходами блока 3 хранения вычисленных элементов, а второй выход компаратора 3.1.4 является выходом включения следующего блока памяти.
Блок 4 принятия решения (фиг. 5) содержит блок 4.1 поиска максимального значения, блок 4.2 вывода результата декодирования и блок 4.3 сравнения. Выходы счетчиков 3.1.5 блоков памяти 3.1.1-3.1.n блока 3 хранения вычисленных элементов связаны со входами блока 4.1 поиска максимального значения и вторыми входами блока 4.3 сравнения. Выход блока 4.1 поиска максимального значения связан со вторым входом блока 4.2 вывода результата декодирования и первым входом блока 4.3 сравнения, k-линейные выходы данных блоков памяти 3.1.1-3.1.n блока 3 хранения вычисленных элементов связаны с первыми входами блока 4.2 вывода результата декодирования. Выход блока 4.2 вывода результата декодирования является выходом результата декодирования устройства 4 принятия решения. Выход блока 4.3 сравнения является выходом признака ошибки декодирования устройства 4 принятия решения.
Рассмотрим работу предлагаемого устройства с использованием фиг. 1, 2, 3, 4, 5.
Входная кодовая комбинация длины n поступает в блок 1 обработки входной последовательности, в котором по мере приема кодовой комбинации из нее выделяются k-элементные комбинации, которые поступают на вход блока 2 вычисления информационных элементов. В блоке 2 вычисления информационных элементов k-элементная комбинация передается на входы блоков 2.1.1-2.1.k умножения на коэффициенты двойственного базиса, хранящиеся в узлах памяти этих блоков, полученные результаты складываются в блоке 2.2 суммирования в поле Галуа, результат поступает на вход блока 2.3 умножения на коэффициенты позиции k-элементной комбинации, также хранящиеся в узле памяти этого блока. Полученные в результате k информационных элементов поступают на входы соответствующих блоков 3.1.1 - 3.1.n памяти блоков 3 хранения вычисленных элементов. При первом появлении сигналов на входе данных блоков 3.1.1-3.1.n памяти, при условии что есть сигнал на их входах включения, управляющее устройство 3.1.2 передает данные с входа данных в регистр 3.1.3 памяти и увеличивает значение счетчика 3.1.5 на единицу. При повторном появлении сигналов на входе данных управляющее устройство 3.1.2 передает их на второй вход компаратора 3.1.4, где эти данные сравниваются с содержимым регистра 3.1.3 памяти. В случае равенства значение счетчика 3.1.5 увеличивается на единицу по сигналу с первого выхода компаратора 3.1.4. В случае неравенства подается сигнал со второго выхода компаратора 3.1.4 на выход включения следующего блока памяти. Выходы регистра 3.1.3 памяти являются выходами данных блока памяти. Они подключены к соответствующим входам блока 4.2 вывода результата декодирования в блоке 4 принятия решения. Выходы счетчиков 3.1.5 блоков 3.1.1-3.1.n памяти поступают на соответствующие входы блока 4.1 поиска максимального значения в блоке 4 принятия решения и соответствующие входы блока 4.3 сравнения. Путем последовательного сравнения в блоке 4.1 поиска максимального значения выбирается вход от счетчика с максимальным значением. Номер этого входа передается с выхода блока 4.1 поиска максимального значения на второй вход блока 4.2 вывода результата декодирования и первый вход блока 4.3 сравнения. Соответствующий номеру входа с максимальным значением счетчика вход блока 4.2 вывода результата коммутируется с выходом информационных элементов. При этом, если это максимальное значение счетчика равно (n/2+1) или более, результат считается гарантированно верным. Согласно полученному на входе 1 блока 4.3 сравнения номеру счетчика с максимальным значением в блоке 4.3 сравнения проводится проверка наличия другого счетчика с таким же значением. В случае обнаружения такого счетчика на соответствующий выход выводится сигнал об ошибке декодирования.
Рассмотрим пример выполнения блоков предлагаемого устройства.
Блок 1 обработки входной последовательности может быть построен в виде циклического регистра сдвига из n ячеек памяти, например, на ПЛИС или логических ИМС типа К155ИР1 (SN7495) (см. 4, Интегральные микросхемы: Справочник / Под ред. Б.Ф. Тарабрина. - М.: Радио и связь, 1983).
Блок 2.1 умножения на коэффициенты двойственного базиса символов может быть построен на ПЛИС или логических ИМС типа К155ЛИ1 (SN7408) и К155ЛП5 (SN7486), а также микросхеме ППЗУ, например, типа 2716.
Блок 2.2 суммирования в поле Галуа может быть построен на ПЛИС или логических ИМС типа К155ЛП 5 (SN7486).
Блок 2.3 умножения на коэффициенты позиции k-элементной комбинации может быть построен на ПЛИС или логических ИМС типа К155ЛИ1 (SN7408) и К155ЛП5 (SN7486), а также микросхеме ППЗУ, например, типа 2716.
В каждом блоке памяти 3.1 регистр 3.1.3 памяти может быть построен на ПЛИС или логических ИМС типа К155ИР1 (SN7495), компаратор 3.1.4 может быть построен на ПЛИС или логических ИМС типа К561ИП2 (МС14585А), счетчик 3.1.5 может быть построен на ПЛИС или логических ИМС типа К155ИЕ2 (SN7490).
В блоке 4 принятия решения блок 4.1 поиска максимального значения может быть построен на цепочке цифровых компараторов, например, на логических ИМС типа К561ИП2 (МС14585А) и ключах, например, на логических ИМС типа К176КТ1.
Блок 4.2 вывода результата декодирования может быть построен на демультиплексоре, например, на логических ИМС типа К561КП2 и ключах, например, на логических ИМС типа К176КТ1.
Блок 4.3 сравнения может быть построен на мультиплексоре, например, на логических ИМС типа К561КП2, демультиплексоре, например, на логических ИМС типа К561КП2 и цепочке цифровых компараторов, например, на логических ИМС типа К561ИП2 (МС 14585А).
ПРИЛОЖЕНИЕ к изобретению "Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации"
Как подробно изложено в [1], эквивалентные (двойственные) коды Рида-Соломона над полем GF(2m) могут быть построены с помощью порождающего поле многочлена G(x) m-й степени, корнем которого будет в общем случае первообразный элемент ε ∈ GF(2m). Для построения эквивалентного циклического кода Рида-Соломона, в дальнейшем РСЭ, выберем образующий многочлен
Figure 00000003
, который будет являться характеристическим многочленом
Figure 00000004
порождающим возвратные рекуррентные последовательности
Figure 00000005
с периодом n=2m-1 и элементами, принадлежащими расширенному полю GF(2m).
В соответствии с видом характеристического многочлена P(x), возвратная последовательность {S1}, при p0=1, будет удовлетворять рекуррентному уравнению:
Figure 00000006
где i≥k и, кроме того, все индексы i, i-1, … приводятся по модулю 2m-1.
С другой стороны, произвольный элемент возвратной последовательности, как известно, может быть выражен через корни ε1, ε2, …, sk характеристического многочлена P(x) и соответствующие корням элементы поля A, B, …, C как
Figure 00000007
Сами же элементы A, B, …, C могут быть определены, как это показано в [1] для кодов с разложимым характеристическим многочленом, по любому k-элементному безошибочному участку возвратной последовательности {S} в соответствии с выражениями:
Figure 00000008
Постоянные коэффициенты αi, βi, …, γi i=1, 2, …, k, зависят от характеристического многочлена Р(х) и определяются по полученной в [1] формуле (5) через корни εi и коэффициенты pj многочлена P(x), а именно коэффициенты αi для корня ε1, βi - для корня ε2 и т.д., коэффициенты γi - для корня εk:
Figure 00000009
По такому же выражению находятся и коэффициенты βi и γi соответственно для корней ε2 и εm.
Исходя из вышеизложенного, кодирующее устройство эквивалентного кода Рида-Соломона может строиться по принципу систематического или несистематического кода.
В случае систематического циклического кода РСЭ информационными элементами кода (n, k) будут начальные k элементов последовательности {S}, т.е. S0S1…Sk-1. Остальные избыточные элементы кодовой комбинации как рекурсивной последовательности будут находиться по рекуррентной формуле (2). Кодирующее устройство такого систематического кода реализуется довольно просто в соответствии с блок-схемой, представленной на фиг. 7a.
Другой вариант кодирующего устройства для несистематического циклического кода РСЭ реализуется в соответствии с выражением (3). Блок-схема такого кодирующего устройства представлена на фиг. 7б. Информационные элементы А, В, …, С, записанные как исходные в w-разрядные ячейки памяти с обратной связью, порождают на выходе последовательность {S}.
Выбор варианта построения кодирующего устройства следует произвести после анализа сложности реализации декодирующего устройства для обоих вариантов кода. Однако даже без подробного анализа процессов декодирования кодов РСЭ очевидно, что реализация декодирования несистематического кода более проста, чем систематического. Действительно, в результате декодирования систематического кода РСЭ по принятой комбинации сначала определяются элементы А, В, …, С по формуле (4), а затем, в соответствии с (3), находятся информационные элементы S0, S1, …, Sk-1. При декодировании несистематического кода РСЭ достаточно определить в соответствии с (4) только элементы А, В, ..., С, которые и являются информационными элементами.
Таким образом, следует рекомендовать применение несистематического кода РСЭ как более простого по реализации.
Рассмотрим простой пример несистематического кода Рида-Соломона, комбинации которого будут рекурсивными последовательностями.
Пример 1. Построим циклический несистематический код Рида-Соломона (n, k)=(7, 3) с образующим код многочленом P(x)=(x+1)(x+ε)(x+ε2), который порождает рекурсивную последовательность над расширенным полем GF(23), m=3.
Пусть полином, образующий поле, имеет вид G(x)=1+x+x3, корнем которого будет первообразный элемент поля ε. После перемножения сомножителей полином P(x) будет иметь следующий вид:
Figure 00000010
Учитывая, что мы рассматриваем несистематический код РСЭ, выберем в качестве информационных элементов произвольные элементы поля GF(23), например A=ε5; B=ε4; C=0. Эти элементы, в соответствии с (3), формируют следующую рекурсивную последовательность с периодом (23-1)=7:
{S}=(S0S1S2S3S4S5S6)=(10εε4ε6ε3ε2).
При этом корнями многочлена P(x) будут элементы, равные ε1=1; ε2=ε; ε32.
Блок-схема кодирующего устройства рассматриваемого несистематического кода будет иметь вид, представленный на фиг. 8.
Можно проверить, что полученная на выходе последовательность {S} будет удовлетворять рекурсивному уравнению, соответствующему характеристическому многочлену Р(х) (6), т.е.
Figure 00000011
Для сравнения приведем схему систематического рекурсивного кодирующего устройства, соответствующего уравнению (7) и порождающего ту же кодовую последовательность (рис. 9).
Как видно из фиг. 9, схема кодирующего устройства систематического кода (7, 3) отличается тем, что в ячейки регистра в качестве исходных данных должны быть записаны элементы 1, 0 и ε, которые в данном варианте и будут являться информационными элементами выходной кодовой комбинации.
Кроме того, из сравнения обоих вариантов видно, что вариант КУ систематического кода (7, 3) имеет более сложную реализацию.
Наконец, приведем схему кодирующего устройства классического кода Рида-Соломона (7, 3) над полем GF(23) с проверочным многочленом
Figure 00000012
, где ε - первообразный корень образующего поле многочлена G(x)=1+x+x3.
Схема кодирующего устройства, реализующего деление многочлена xn-kf(x)=x4f(x), где f(x) - многочлен исходных информационных элементов, на проверочный многочлен Q(x) и получение остатка от деления R(x), представлена на фиг. 10.
Легко проверить, что после подачи на вход исходной комбинации f(x)=ε+x2 в ячейках регистра деления будет содержаться остаток:
R(x)=r0+r1x+r2x2+r3x323x+ε6x24ε3.
Таким образом, на выходе кодирующего устройства будет сформирована такая же кодовая комбинация: 10εε4ε6ε3ε2.
В результате сравнения с предыдущими вариантами кодирующего устройства можно сделать вывод, что последний вариант при (n-k)>k имеет наиболее сложную реализацию.
Задачей декодирования кода РСЭ на основе двойственного базиса является определение информационных элементов А, В и С по k-элементным участкам принятой последовательности в соответствии с выражениями (4). Для этого по формуле (5) предварительно определим постоянные коэффициенты αi, βi и γi, i=1, 2, 3, соответственно для различных корней ε1=1, ε2=ε и ε32 характеристического многочлена:
α1=ε; α22; α35;
β12; β26; β3=1;
γ15; γ2=1; γ34.
Теперь покажем, что по любому безошибочному k-элементному участку последовательности {S} могут быть определены элементы А, В и С, что и позволяет организовать мажоритарное декодирование.
Пусть был выделен участок (S1S5S6)=(s6s3s2), т.е. i=4. Тогда, в соответствии с (4), имеем:
Figure 00000013
Возьмем другой участок (S6S7S8)=(S6S0S1)=(ε210) замкнутой в кольцо последовательности {S}, т.е. i=6, и так же вычислим элементы А, В и С:
A=(α1S62S03S1)= ε⋅ε22⋅1=ε5;
В=ε-61S62S03S1)= ε-62⋅ε36⋅1)=ε4;
C=ε-121S62S03S1)= ε-55⋅ε2+1)=0.
Как видно, получены те же элементы А, В и С, что и позволяет организовать мажоритарное декодирование по k-элементным участкам.
В случае наличия ошибок в принятой комбинации процедура мажоритарного декодирования и сложность реализации не меняются. Результатом декодирования будет совокупность элементов А, В и С, имеющая наибольшее количество значений, вычисленных по выражениям (4). В случае если после обработки всей кодовой комбинации два или более различных сочетаний элементов А, В и С будут иметь одинаковый максимум, необходимо принять решение о невозможности принять решение о результате мажоритарного декодирования.
Литература
1. Патент на изобретение РФ №2441318, МПК H03M 13/45, опубл. 27.01.2012.
2. Патент США №2013/0198583 A1, МПК H03M 13/15, опубл. 01.08.2013.
3. Когновицкий О.С. Двойственный базис и его применение в телекоммуникациях. СПб.: Линк, 2009. 423 с.
4. Интегральные микросхемы: Справочник / Под ред. Б.Ф. Тарабрина. - М.: Радио и связь, 1983.

Claims (6)

1. Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации, содержащее блок обработки входной последовательности, блок вычисления информационных элементов, при этом входы блока обработки входной последовательности являются входами для приема кодовой комбинации длиной n, где n - полная длина кодовой комбинации используемого кода, а его выходы подключены к соответствующим входам блока вычисления информационных элементов, отличающееся тем, что блок вычисления информационных элементов выполнен с возможностью вычисления информационных комбинаций на основе двойственного базиса и введены блок хранения вычисленных элементов, состоящий из n идентичных блоков памяти, и блок принятия решения, причем выходы блока вычисления информационных элементов подключены к входам соответствующего из n блоков памяти, входящих в блок хранения вычисленных элементов, выходы блоков памяти которого подключены к соответствующим входам блока принятия решения, выполненного с возможностью принятия решения о наличии неисправляемой ошибки в принятой кодовой комбинации.
2. Устройство по п. 1, отличающееся тем, что блок вычисления информационных элементов содержит k блоков умножения на коэффициенты двойственного базиса, вычисленные по формуле:
Figure 00000014
, где k - количество информационных элементов в кодовой комбинации кода Рида-Соломона, εi - элементы левого степенного базиса поля Галуа, pk - коэффициенты порождающего полинома Р(x), Р'(x) - производная порождающего полинома Р(x), блок суммирования в поле Галуа и блок умножения на коэффициенты позиции k-элементной комбинации, вычисляемые по формуле:
Figure 00000015
, в которой i - положение первого элемента k-элементного участка относительно начала кодовой комбинации, при этом k-линейные входы блоков умножения на коэффициенты двойственного базиса являются входами блока вычисления информационных элементов, а их k-линейные выходы связаны с соответствующими входами блока суммирования в поле Галуа, k-линейный выход которого связан с входом блока умножения на коэффициенты позиции k-элементной комбинации, выход которого является выходом блока вычисления информационных элементов.
3. Устройство по п. 1 или 2, отличающееся тем, что каждый блок умножения на коэффициенты двойственного базиса содержит узел памяти, хранящий вычисленные для используемого кода Рида-Соломона коэффициенты двойственного базиса и перемножитель k-элементной комбинации на вычисленные коэффициенты на основе двойственного базиса, при этом первые входы перемножителя k-элементной комбинации являются входами блока умножения на коэффициенты двойственного базиса, а выходы узла памяти соединены со вторыми входами перемножителя k-элементной комбинации.
4. Устройство по п. 1 или 2, отличающееся тем, что каждый блок умножения на коэффициенты позиции k-элементной комбинации содержит связанные между собой узел памяти, хранящий вычисленные коэффициенты позиции k-элементной комбинации, и перемножитель k-элементной комбинации на эти коэффициенты.
5. Устройство по п. 1, отличающееся тем, что каждый блок памяти, входящий в блок хранения вычисленных элементов, содержит управляющее устройство, регистр памяти, компаратор и счетчик, при этом входы управляющего устройства являются входами блока памяти, а выходы управляющего устройства связаны с соответствующими входами регистра памяти, счетчика и компаратора, причем выход регистра памяти связан с соответствующим входом компаратора и является выходом данных соответствующего блока памяти, первый выход компаратора подключен к соответствующему входу счетчика, выход которого является выходом блока памяти, а второй выход компаратора является выходом включения следующего блока памяти.
6. Устройство по п. 1, отличающееся тем, что блок принятия решения содержит блок поиска максимального значения, блок вывода результата декодирования и блок сравнения, при этом входы блока поиска максимального значения служат для подключения выходов счетчиков n блоков памяти блока хранения вычисленных элементов и второго входа блока сравнения, а выход блока поиска максимального значения связан с первым входом блока сравнения и вторым входом блока вывода результата декодирования, а первые входы блока вывода результата декодирования служат для подключения соответствующих k-линейных выходов данных n блоков памяти блока хранения вычисленных элементов, выход блока вывода результата декодирования является выходом результата декодирования блока принятия решения, а выход блока сравнения является выходом признака ошибки декодирования блока принятия решения.
RU2015121473A 2015-06-04 2015-06-04 Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации RU2613760C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015121473A RU2613760C2 (ru) 2015-06-04 2015-06-04 Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015121473A RU2613760C2 (ru) 2015-06-04 2015-06-04 Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации

Publications (2)

Publication Number Publication Date
RU2015121473A RU2015121473A (ru) 2016-12-27
RU2613760C2 true RU2613760C2 (ru) 2017-03-21

Family

ID=57759389

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015121473A RU2613760C2 (ru) 2015-06-04 2015-06-04 Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации

Country Status (1)

Country Link
RU (1) RU2613760C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2731600C1 (ru) * 2019-12-05 2020-09-04 Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Способ декодирования кода Рида-Соломона

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642808A (en) * 1983-06-22 1987-02-10 U.S. Philips Corporation Decoder for the decoding of code words which are blockwise protected against the occurrence of a plurality of symbol errors within a block by means of a reed-solomon code, and reading device for optically readable record carriers
US5130990A (en) * 1990-02-15 1992-07-14 The United States Of America, As Represented By The Administrator, National Aeronautics And Space Administration VLSI architecture for a Reed-Solomon decoder
RU2314639C1 (ru) * 2006-04-03 2008-01-10 Государственное образовательное учреждение высшего профессионального образования "Курский государственный технический университет" Устройство декодирования кодов рида-соломона
RU2441318C1 (ru) * 2010-08-17 2012-01-27 Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ) Устройство декодирования кодов рида-соломона
US20130198583A1 (en) * 2012-01-30 2013-08-01 Broadcom Corporation Systematic Rate-Independent Reed-Solomon Erasure Codes
RU2541869C1 (ru) * 2013-10-10 2015-02-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗ ГУ) Устройство декодирования кодов рида-соломона

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642808A (en) * 1983-06-22 1987-02-10 U.S. Philips Corporation Decoder for the decoding of code words which are blockwise protected against the occurrence of a plurality of symbol errors within a block by means of a reed-solomon code, and reading device for optically readable record carriers
US5130990A (en) * 1990-02-15 1992-07-14 The United States Of America, As Represented By The Administrator, National Aeronautics And Space Administration VLSI architecture for a Reed-Solomon decoder
RU2314639C1 (ru) * 2006-04-03 2008-01-10 Государственное образовательное учреждение высшего профессионального образования "Курский государственный технический университет" Устройство декодирования кодов рида-соломона
RU2441318C1 (ru) * 2010-08-17 2012-01-27 Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ) Устройство декодирования кодов рида-соломона
US20130198583A1 (en) * 2012-01-30 2013-08-01 Broadcom Corporation Systematic Rate-Independent Reed-Solomon Erasure Codes
RU2541869C1 (ru) * 2013-10-10 2015-02-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗ ГУ) Устройство декодирования кодов рида-соломона

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2731600C1 (ru) * 2019-12-05 2020-09-04 Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Способ декодирования кода Рида-Соломона

Also Published As

Publication number Publication date
RU2015121473A (ru) 2016-12-27

Similar Documents

Publication Publication Date Title
US10439643B2 (en) Reed-Solomon decoders and decoding methods
KR20180085651A (ko) 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic
KR19990016134A (ko) 고속 시리얼 에러 위치 다항식 계산회로
JP3272307B2 (ja) リード・ソロモン符号の復号回路
Panda et al. FPGA implementation of encoder for (15, k) binary BCH code using VHDL and performance comparison for multiple error correction control
RU2613760C2 (ru) Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации
RU2314639C1 (ru) Устройство декодирования кодов рида-соломона
US9337869B2 (en) Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same
Rosenkilde Power Decoding Reed--Solomon Codes Up to the Johnson Radius
US9455747B1 (en) Parallel chien search with folding and a symbolized minimal polynomial combinational network (S-MPCN)
Neumeier et al. Punctured Karpovsky-Taubin binary robust error detecting codes for cryptographic devices
Mohammed et al. Design and implementation of 2 bits BCH error correcting codes using FPGA
RU2610684C1 (ru) Устройство мажоритарного декодирования кода Рида-Соломона по k-элементным участкам кодовой комбинации с порогом определения неисправляемой ошибки
Mohammed et al. FPGA implementation of 3 bits BCH error correcting codes
US9236890B1 (en) Decoding a super-code using joint decoding of underlying component codes
Zheng et al. An efficient eligible error locator polynomial searching algorithm and hardware architecture for one-pass Chase decoding of BCH codes
US10623018B2 (en) Method of arrangement of an algorithm in cyclic redundancy check
RU2693190C1 (ru) Способ диагностики недвоичных блоковых кодов
Liu et al. Decoding of (Interleaved) Generalized Goppa Codes
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
TWI551059B (zh) 用於具有不同GF(2m)中m值的BCH碼之多模式秦式搜尋電路
RU2340091C2 (ru) Способ декодирования последовательного каскадного кода (варианты)
Chang et al. VLSI architecture of modified Euclidean algorithm for Reed–Solomon code
Prashanthi et al. An advanced low complexity double error correction of an BCH decoder
Elumalai et al. Encoder And Decoder For (15113) and (63394) Binary BCH Code With Multiple Error Correction

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20180605

NF4A Reinstatement of patent

Effective date: 20210526