RU2340088C2 - Syndrome decoding method of decoding recurrent code (versions) - Google Patents

Syndrome decoding method of decoding recurrent code (versions) Download PDF

Info

Publication number
RU2340088C2
RU2340088C2 RU2006141316/09A RU2006141316A RU2340088C2 RU 2340088 C2 RU2340088 C2 RU 2340088C2 RU 2006141316/09 A RU2006141316/09 A RU 2006141316/09A RU 2006141316 A RU2006141316 A RU 2006141316A RU 2340088 C2 RU2340088 C2 RU 2340088C2
Authority
RU
Russia
Prior art keywords
decoding
vector
syndrome
codeword
correction
Prior art date
Application number
RU2006141316/09A
Other languages
Russian (ru)
Other versions
RU2006141316A (en
Inventor
Андрей Николаевич Хмельков (RU)
Андрей Николаевич Хмельков
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 RU2006141316/09A priority Critical patent/RU2340088C2/en
Publication of RU2006141316A publication Critical patent/RU2006141316A/en
Application granted granted Critical
Publication of RU2340088C2 publication Critical patent/RU2340088C2/en

Links

Abstract

FIELD: information technology.
SUBSTANCE: for the received distorted coded implementation, an extended syndrome is calculated, and, using an extended test matrix, the sets of lines, which are linear combinations of the calculated syndrome, are determined. Each linear combination expressly corresponds to an error vector and for each error vector, a metric is calculated, and for correcting the most probable errors, the correction vector during decoding with a "solid" solution, an error vector is chosen, which has minimum metric (minimum weight error vector), and during decoding with a "soft" solution, an error vector is chosen, with maximum modified metric. Elements are then inverted in the systematic part of the code word, the numbers of which corresponds to the positions of non-zero elements of the correction vector.
EFFECT: increased authenticity of decoding and reduced device and computational complexity.
4 cl, 1 dwg

Description

Изобретение относится к области техники связи, в частности к системам передачи информации, в которых для ее защиты от искажений в канале связи применяются циклические линейные блочные коды, и может быть использовано в кодеках (кодер-декодерах) систем передачи данных, а также в устройствах помехоустойчивого кодирования при передаче и хранении дискретной информации.The invention relates to the field of communication technology, in particular to information transmission systems in which cyclic linear block codes are used to protect it from distortion in the communication channel, and can be used in codecs (codecs) of data transmission systems, as well as in noise-immune devices encoding during transmission and storage of discrete information.

Известен способ декодирования линейных блочных (n,k)-кодов [1-3] (n - длина кодового слова, k - количество кодируемых бит или систематическая часть кодового слова), который включает в себя вычисление (n-k)-разрядного синдрома s кодового слова, искаженного в канале связи, выбор вектора коррекции, который соответствует синдрому s, из заранее сформированной таблицы лидеров смежных классов векторов ошибок, поразрядное сложение по mod 2 вектора коррекции с искаженным кодовым словом и выделение откорректированной систематической части кодового слова.A known method of decoding linear block (n, k) codes [1-3] (n is the codeword length, k is the number of encoded bits or the systematic part of the codeword), which includes the calculation of the (nk) -bit codeword syndrome s distorted in the communication channel, the choice of the correction vector that corresponds to the syndrome s from a pre-formed table of leaders of adjacent classes of error vectors, the bitwise addition of the correction vector by mod 2 to the distorted codeword, and the allocation of the corrected systematic part of the codeword.

К недостаткам данного способа декодирования следует отнести необходимость хранить таблицу лидеров смежных классов векторов ошибок, объем которой равен 2n-k×n-разрядных (или k-разрядных) векторов, что при больших значениях n-k технически невыполнимо.The disadvantages of this decoding method include the need to store a leader table of adjacent classes of error vectors, the volume of which is 2 nk × n-bit (or k-bit) vectors, which is technically impossible for large values of nk.

Целью предлагаемого изобретения является повышение достоверности (качества) декодирования, а также уменьшение аппаратной и вычислительной сложности и, в частности, реализация оптимальной процедуры декодирования как с «жестким», так и с «мягким» решением.The aim of the invention is to increase the reliability (quality) of decoding, as well as reducing hardware and computational complexity and, in particular, implementing the optimal decoding procedure with both a “hard” and a “soft” solution.

Для достижения цели предложен способ декодирования циклического линейного блочного (n,k)-кода, в котором вектор коррекции е выбирается не из таблицы лидеров смежных классов векторов ошибок, а формируется в результате представления n-разрядного расширенного синдрома s в виде линейных комбинаций строк расширенной проверочной матрицы Нn,n. Номера строк расширенной проверочной матрицы однозначно указывают на номера искаженных позиций в принятом искаженном кодовом слове. Расширенная проверочная матрица Нn,n является транспонированной проверочной матрицей [1], у которой j-ая строка состоит из коэффициентов при неизвестном полинома:To achieve the goal, a method for decoding a cyclic linear block (n, k) -code is proposed, in which the correction vector e is not selected from the leader table of adjacent classes of error vectors, but is formed as a result of representing the n-bit extended syndrome s in the form of linear combinations of lines of the extended check matrices H n, n . The line numbers of the extended check matrix unambiguously indicate the numbers of the distorted positions in the received distorted codeword. The expanded verification matrix H n, n is the transposed verification matrix [1], in which the jth row consists of coefficients for an unknown polynomial:

hj(x)=xjh(x)mod(xn+1),h j (x) = x j h (x) mod (x n +1),

где h(x)=(xn+1)/p(x) - проверочный многочлен циклического (n,k)-кода,where h (x) = (x n +1) / p (x) is the verification polynomial of the cyclic (n, k) -code,

p(x) - порождающий многочлен кода,p (x) is the generating code polynomial,

j=0, 1, ... n-1.j = 0, 1, ... n-1.

Транспонированная расширенная проверочная матрица Нn,n отличается от проверочной матрицы Hn,n-k [1, 2] только тем, что в ней добавлено еще k строк, каждая из которых также является циклическим сдвигом предшествующей строки на один разряд направо.The transposed extended verification matrix H n, n differs from the verification matrix H n, nk [1, 2] only in that it adds k more rows, each of which is also a cyclic shift of the previous row by one digit to the right.

Для декодирования циклического линейного блочного (n,k)-кода предлагается способ, заключающийся в следующем.To decode a cyclic linear block (n, k) code, a method is proposed, which consists in the following.

Для принятой искаженной кодовой реализации (b⊕eкс) вычисляют расширенный синдром s=(b⊕eкс)×Нn,n, в котором определяют позицию j любого ненулевого элемента. После чего в расширенной проверочной матрице Нn,n находят те строки, которые содержат в j-ой позиции также ненулевой элемент. Далее вычисляют текущие синдромы s1,i первого шага итерации (первый шаг итерационной процедуры представления расширенного синдрома в виде линейных комбинаций строк расширенной проверочной матрицы Нn,n). Для этого каждую из найденных строк складывают по mod 2 с расширенным синдромом s. Каждому текущему синдрому s1,i ставят в соответствие вектор N1,i, в который заносят номер строки расширенной проверочной матрицы Нn,n, участвовавший в формировании текущего синдрома s1,i. Таких пар векторов s1,i, N1,i на первом шаге итерации будет сформировано

Figure 00000002
(hi - коэффициенты при неизвестном проверочного многочлена h(x) циклического линейного блочного (n,k)-кода).For the received distorted code implementation (b⊕e ks ), the extended syndrome s = (b⊕e ks ) × Н n, n is calculated, in which the position j of any nonzero element is determined. Then, in the expanded verification matrix H n, n , those rows are found that contain also a nonzero element in the jth position. Next, the current syndromes s 1, i of the first iteration step are calculated (the first step of the iterative procedure for representing the expanded syndrome in the form of linear combinations of rows of the expanded verification matrix H n, n ). To do this, each of the found lines is added mod 2 with expanded s syndrome. Each current syndrome s 1, i is associated with a vector N 1, i , in which the row number of the expanded check matrix H n, n , which participated in the formation of the current syndrome s 1, i , is entered. Such pairs of vectors s 1, i , N 1, i at the first step of the iteration will be formed
Figure 00000002
(h i are the coefficients of the unknown verification polynomial h (x) of the cyclic linear block (n, k) code).

Если один из текущих синдромов s1,i - нулевой вектор, то вектор ошибки минимального веса найден, а искаженный в канале связи элемент кодового слова указан в N1,i. После коррекции (инверсии) искаженного элемента в качестве декодированной информации выбирают откорректированную систематическую часть кодового слова. На этом декодирование заканчивается.If one of the current syndromes s 1, i is a zero vector, then the minimum weight error vector is found, and the codeword element distorted in the communication channel is indicated in N 1, i . After correction (inversion) of the distorted element, the corrected systematic part of the codeword is selected as decoded information. This decoding ends.

Если ни один из w текущих синдромов s1,i не является нулевым вектором, то выполняют переход к очередному шагу итерации. Для каждого текущего синдрома предыдущего m-того шага итерации sm,i вычисляют w пар векторов sm+1,i, Nm+1,i, также как и на первом шаге итерации. Общее количество пар векторов sm+1,i и Nm+1,i на m+1-ом шаге равно wm+1=wm+1.If none of the w current syndromes s 1, i is a zero vector, then go to the next step of the iteration. For each current syndrome of the previous mth iteration step s m, i, w pairs of vectors s m + 1, i , N m + 1, i are calculated, as well as in the first step of the iteration. The total number of pairs of vectors s m + 1, i and N m + 1, i at the m + 1st step is w m + 1 = w m + 1 .

Если хотя бы один из текущих синдромов sm+1,i - нулевой вектор, то вектор ошибки минимального веса найден, а искаженные в канале связи элементы кодового слова указаны в Nm+1,i. После коррекции (инверсии) искаженных элементов в качестве декодированной информации выбирают откорректированную систематическую часть кодового слова. На этом декодирование заканчивается.If at least one of the current syndromes s m + 1, i is the zero vector, then the minimum weight error vector is found, and the codeword elements distorted in the communication channel are indicated in N m + 1, i . After correction (inversion) of the distorted elements, the corrected systematic part of the codeword is selected as decoded information. This decoding ends.

Если ни один из wm+1 текущих синдромов sm+1,i не является нулевым вектором, то выполняют переход к следующему шагу итерации и т.д., до тех пор, пока не будет сформирован текущий синдром, являющийся нулевым вектором. Тогда после коррекции (инверсии) искаженных элементов в качестве декодированной информации выбирают откорректированную систематическую часть кодового слова.If none of w m + 1 current syndromes s m + 1, i is a zero vector, then go to the next step of iteration, etc., until the current syndrome, which is a zero vector, is generated. Then, after correction (inversion) of the distorted elements, the corrected systematic part of the codeword is selected as decoded information.

При декодировании совершенных кодов с «жестким» решением для поиска оптимального вектора коррекции (вектора минимального веса) потребуется не более t итераций (где t - кратность исправляемых ошибок (n,k)-кода).When decoding perfect codes with a “hard” solution, searching for the optimal correction vector (minimum weight vector) will require no more than t iterations (where t is the multiplicity of corrected errors (n, k) code).

В том случае, когда декодируются несовершенные коды с «жестким» решением, предлагается вариант способа, описанного выше, для которого также необходимо выполнить не более t итераций. Если на t-том шаге итерации не найден синдром, являющийся нулевым вектором, то необходимо отказаться от коррекции данного искаженного кодового слова, так как вес вектора коррекции превышает кратность исправляемых ошибок (n,k)-кода и равен t+1. Если все же необходимо корректировать и исправляемые t+1-кратные ошибки несовершенного кода, то необходимо выполнить t+1 итерацию. Причем, если на t+1-ой итерации среди вычисленных синдромов только один является нулевым вектором, то найдена исправляемая t+1-кратная ошибка, искаженные элементы которой заданы вектором Nt+1,i. Если на t+1-ой итерации среди вычисленных синдромов несколько синдромов являются нулевыми векторами, то найдена неисправляемая t+1-кратная ошибка и от коррекции следует отказаться.In the case when imperfect codes with a “hard” decision are decoded, a variant of the method described above is proposed, for which it is also necessary to perform no more than t iterations. If a syndrome that is a zero vector is not found at the t-th iteration step, then it is necessary to abandon the correction of this distorted codeword, since the weight of the correction vector exceeds the multiplicity of the corrected errors of the (n, k) code and is equal to t + 1. If, nevertheless, it is necessary to correct the correctable t + 1-fold errors of the imperfect code, then it is necessary to perform t + 1 iteration. Moreover, if at the t + 1st iteration among the calculated syndromes only one is the zero vector, then a correctable t + 1-fold error is found, the distorted elements of which are given by the vector N t + 1, i . If several syndromes are zero vectors at the t + 1st iteration among the calculated syndromes, then an uncorrectable t + 1-fold error is found and correction should be abandoned.

В том случае, когда декодируется «расширенный» код [1-3] с «жестким» решением, предлагаются варианты способов, описанные выше, в которых перед декодированием из полученного по каналу связи возможно искаженного кодового слова удаляют элемент расширения.In the case when an “extended” code [1-3] with a “hard” decision is decoded, variants of the methods described above are proposed in which, before decoding, an extension element is removed from a possibly distorted code word obtained through a communication channel.

В том случае, когда декодируется «укороченный» код [1-3] с «жестким» решением, предлагаются варианты способов, описанные выше, в которых перед декодированием в начало полученного по каналу связи возможно искаженного кодового слова добавляют нулевые элементы, количество которых равно величине укорочения. Очевидно, что добавленные в начало нулевые позиции не могут быть искажены в канале связи, так как они по нему не передавались. Этот факт позволяет сократить количество текущих синдромов Sm,i на m-той итерации, что приведет к уменьшению вычислительной сложности декодирования.In the case where a “shortened” code [1-3] with a “hard” solution is decoded, variants of the methods described above are proposed, in which, before decoding, zero elements are added to the beginning of the possibly distorted code word, the number of which is equal to shortening. Obviously, the zero positions added to the beginning cannot be distorted in the communication channel, since they were not transmitted through it. This fact allows us to reduce the number of current syndromes S m, i at the m-th iteration, which will reduce the computational complexity of decoding.

В том случае, когда декодирование выполняется с «мягким» решением совершенных, несовершенных и расширенных кодов, предлагаются варианты способов, описанных выше, в которых для каждой пары векторов sm,i и Nm,i вычисляют модифицированную метрику:In the case when the decoding is performed with a “soft” solution of perfect, imperfect and extended codes, variants of the methods described above are proposed in which for each pair of vectors s m, i and N m, i, a modified metric is calculated:

Figure 00000003
Figure 00000003

илиor

Figure 00000004
Figure 00000004

где p(yj/bj,c) - условная вероятность того, что на выходе демодулятора получена величина уj при передаче по каналу связи на j-ой позиции кодового слова c-ого символа, который для двоичного кода может принимать два значения: bj,0=0 и bj,1=1,where p (y j / b j, c ) is the conditional probability that the value of j is obtained at the output of the demodulator when the code word of the cth character is transmitted over the communication channel at the jth position, which can take two values for a binary code: b j, 0 = 0 and b j, 1 = 1,

ei,j - j-тый элемент i-того вектора ошибки еi, принадлежащего смежному классу ошибок синдрома sm,i,e i, j is the j-th element of the i-th error vector e i belonging to the adjacent class of errors of the syndrome s m, i ,

Модифицированная метрика (1) и (2) является отношением общепринятой метрики [1-3] i-того кодового слова к метрике принятого из канала связи с «жестким» решением искаженного кодового слова. Корректируют те элементы приятого с «жестким» решением искаженного кодового слова, которые заданы вектором Nm,i, и для которого sm,i=0, а метрика mm,i максимальна.The modified metric (1) and (2) is the ratio of the generally accepted metric [1-3] of the i-th code word to the metric received from the communication channel with the “hard” solution of the distorted code word. Correct those pleasant elements with a “hard” solution of the distorted codeword that are given by the vector N m, i , and for which s m, i = 0, and the metric m m, i is maximum.

В том случае, когда декодируется «укороченный» код с «мягким» решением, предлагается вариант способа, описанный выше, в котором перед декодированием в начало полученного по каналу связи возможно искаженного кодового слова добавляют нулевые элементы с условными вероятностями p(yj/bj,0)=1 и p(yj/bj,1)=0.In the case where a “shortened” code with a “soft” solution is decoded, a variant of the method described above is proposed in which, before decoding, zero elements with conditional probabilities p (y j / b j are added to the beginning of the possibly distorted code word , 0 ) = 1 and p (y j / b j, 1 ) = 0.

Для уменьшения вычислительной сложности предлагаются варианты способов, описанных выше, в которых из рассмотрения исключаются текущие синдромы sm,i, у которых в векторе Nm,i появляются повторы позиций искаженных элементов.To reduce computational complexity, variants of the methods described above are proposed in which current syndromes s m, i are excluded from consideration, in which repetition of the positions of distorted elements appears in the vector N m, i .

Для уменьшения вычислительной сложности предлагаются варианты способов, описанных выше, в которых из рассмотрения, исключаются повторяющиеся текущие синдромы sm,i.To reduce computational complexity, variants of the methods described above are proposed in which repeating current syndromes s m, i are excluded from consideration.

Предлагаемые технические решения позволяют решить задачу оптимального декодирования циклических линейных блочных кодов как с «жестким», так и с «мягким» решениями с меньшей вычислительной и аппаратной сложностью, чем известные декодеры [1-3].The proposed technical solutions allow us to solve the problem of optimal decoding of cyclic linear block codes with both “hard” and “soft” solutions with less computational and hardware complexity than the known decoders [1-3].

Изобретение поясняется чертежом, на котором изображена структурная схема оптимального синдромного декодера циклического линейного блочного кода.The invention is illustrated in the drawing, which shows a structural diagram of an optimal syndromic decoder of a cyclic linear block code.

Синдромный декодер циклического линейного блочного кода содержит: блок вычисления синдрома 20, блок хранения и обновления текущей информации 40, блок считывания 60, блок поиска ненулевого элемента 80, блок поиска строк расширенной проверочной матрицы 100, блок вычисления текущей информации 120, блок коррекции искаженного кодового слова 140, блок формирования декодированной информации 160.The cyclic linear block code Syndrome Decoder comprises: a syndrome 20 calculation unit, a current information storage and update unit 40, a read unit 60, a non-zero element search unit 80, an advanced check matrix string search unit 100, a current information calculation unit 120, a distorted codeword correction unit 140, a decoded information generating unit 160.

Блок вычисления синдрома 20 предназначен для вычисления расширенного синдрома s по формуле s=(b⊕eкс)×Hn,n.Syndrome calculating unit 20 for calculating the syndrome s extended by the formula s = (b⊕e kc) × H n, n.

Блок хранения и обновления текущей информации 40 предназначен для хранения текущих значений синдромов sm,i и соответствующих им векторов Nm,i, а также при декодировании с «мягким» решением метрик vm,i. Блок хранения и обновления текущей информации 40 представляет собой оперативное запоминающее устройство, которое может быть реализовано в виде стека («первый пришел, первый на обслуживание»), у которого каждая строка состоит из двух (трех) полей для хранения текущих векторов sm,i, Nm,i, а при декодировании с «мягким» решением метрики vm,i.The block for storing and updating current information 40 is designed to store the current values of the syndromes s m, i and the corresponding vectors N m, i , as well as when decoding with a “soft” solution of the metrics v m, i . The block for storing and updating current information 40 is a random access memory device that can be implemented as a stack (“first come, first serve”), in which each row consists of two (three) fields for storing current vectors s m, i , N m, i , and when decoding with a “soft” solution of the metric v m, i .

Блок считывания 60 предназначен для последовательного считывания хранящихся в блоке хранения и обновления текущей информации 40 текущих векторов sm,i, Nm,i, а при декодировании с «мягким» решением и метрики vm,i. После считывания строки sm,i передается в блок поиска ненулевого элемента 80, a sm,i, Nm,i и vm,i в блок вычисления текущей информации 120. Блок считывания 60 может быть реализован в виде демультиплексора на два направления.The reading unit 60 is designed for sequentially reading the current vectors s m, i , N m, i stored in the storage unit and updating the current information, and when decoding with a “soft” solution, the metrics v m, i . After reading the line, s m, i is transferred to the search unit of the nonzero element 80, as m, i , N m, i and v m, i to the current information calculation unit 120. The read unit 60 can be implemented as a two-way demultiplexer.

Блок поиска ненулевого элемента 80 предназначен для определения позиции j любого ненулевого элемента расширенного синдрома sm,i. Он может быть реализован в виде сдвигового регистра, у которого анализируется старший разряд на наличие 0. В этом случае в сдвиговый регистр заносится текущий синдром sm,i и выполняются его сдвиги в сторону старшего разряда до тех пор, пока в старшем разряде не появится ненулевой элемент. Количество сдвигов j, которое является номером позиции одного из ненулевых элементов, фиксируется счетчиком.The search block for non-zero element 80 is designed to determine the position j of any non-zero element of the expanded syndrome s m, i . It can be implemented in the form of a shift register, in which the leading digit is analyzed for the presence of 0. In this case, the current syndrome s m, i is entered in the shift register and its shifts are performed towards the senior digit until a nonzero value appears in the senior digit element. The number of shifts j, which is the position number of one of the nonzero elements, is fixed by the counter.

Блок поиска строк расширенной проверочной матрицы 100 предназначен для определения номеров строк расширенной проверочной матрицы Нn,n, у которых на позиции j расположены ненулевые элементы. Блок 100 может быть выполнен в виде сдвигового регистра, у которого анализируется старший разряд на наличие 0, и счетчиков номеров строк, количество которых равно w (количество ненулевых коэффициентов проверочного многочлена h(x)). В сдвиговый регистр заносится j-тый столбец расширенной проверочной матрицы Нn,n, который сдвигается в сторону старшего разряда до тех пор, пока он не обнулится. Счетчики номеров строк подсчитывают количество сдвигов и при появлении ненулевого элемента в старшем разряде регистра сдвига последовательно отключаются. При обнулении регистра сдвига номера искомых строк расширенной проверочной матрицы находятся в счетчиках.The row search block of the extended check matrix 100 is designed to determine the row numbers of the extended check matrix H n, n , for which nonzero elements are located at position j. Block 100 can be made in the form of a shift register, in which the leading digit for the presence of 0 is analyzed, and line number counters, the number of which is equal to w (the number of nonzero coefficients of the verification polynomial h (x)). The j-th column of the expanded verification matrix H n, n is entered into the shift register, which is shifted towards the higher order until it is reset to zero. Line number counters count the number of shifts and when a nonzero element appears in the high order of the shift register, they are sequentially disabled. When the shift register is reset to zero, the numbers of the required rows of the extended verification matrix are in the counters.

Блок вычисления текущей информации 120 предназначен для вычисления текущих синдромов sm+1,j=sm,i⊕hj (где hj - одна из w строк расширенной проверочной матрицы Нn,n, номера которых поступают по шине 110). Затем он формирует для каждого текущего синдрома sm+1,j вектор Nm+1,j путем добавления в вектор Nm,i номера строки hj расширенной проверочной матрицы Нn,n. При декодировании с «мягким» решением по формулам 1 или 2 вычисляются метрики vm+1,j, соответствующие синдромам sm+1,j.The current information calculation unit 120 is intended to calculate current syndromes s m + 1, j = s m, i ⊕ h j (where h j is one of the w rows of the extended verification matrix H n, n , the numbers of which are received via bus 110). Then it forms for each current syndrome s m + 1, j the vector N m + 1, j by adding the row number h j to the vector N m, i of the extended verification matrix H n, n . When decoding with a “soft” solution using formulas 1 or 2, metrics v m + 1, j corresponding to the syndromes s m + 1, j are calculated.

Блок коррекции 140 выполняет инверсию тех элементов принятого искаженного кодового слова, которые указаны в поступившем по шине 131 векторе Nm,i.Correction block 140 performs the inversion of those elements of the received distorted codeword that are indicated in the vector N m, i received via bus 131.

Блок формирования декодированной информации 160 предназначен для выделения систематической части в откорректированном кодовом слове, которая и является декодированной информацией.The unit for generating decoded information 160 is intended to highlight the systematic part in the adjusted codeword, which is the decoded information.

Предлагаемое устройство работает следующим образом.The proposed device operates as follows.

Принятое, возможно искаженное в канале связи, кодовое слово (b⊕eкс) поступает с выхода канала связи (демодулятора) по шине 11 на блок коррекции искаженного кодового слова 140, а по шине 10 - на блок вычисления синдрома 20.The received, possibly distorted in the communication channel, code word (b⊕e ks ) is received from the output of the communication channel (demodulator) via bus 11 to the correction block of the distorted code word 140, and via bus 10 to the block for computing syndrome 20.

Если вычисленный в блоке вычисления синдрома 20 синдром s=0 (нулевой вектор), то кодовое слово не искажено и информация об этом передается по шине 31 блоку коррекции искаженного кодового слова 140. После чего кодовое слово по шине 150 поступает в блок формирования декодированной информации 160, в котором выделяется систематическая часть кодового слова, и по шине 170 поступает на выход декодера. На этом процесс декодирования кодового слова завершается.If the syndrome s = 0 calculated in the block for computing the syndrome 20 syndrome (zero vector), then the code word is not distorted and information about it is transmitted via the bus 31 to the correction block of the distorted code word 140. After that, the code word is sent to the block 150 for generating decoded information 160 , in which the systematic part of the codeword is highlighted, and via the bus 170 it enters the output of the decoder. This completes the process of decoding the code word.

Если же вычисленный синдром s≠0, то по шине 30 он поступает в блок хранения и обновления текущей информации 40. Поля вектора Nm,i, а при декодировании с «мягким» решением и поле метрики vm,i обнуляются.If the calculated syndrome s ≠ 0, then via bus 30 it enters the current information storage and updating unit 40. The fields of the vector are N m, i , and when decoding with a “soft” solution, the metric field v m, i is reset.

Как только в блок 40 поступает первый синдром s, сразу запускается блок считывания 60, который по шине 50 принимает очередной синдром sm,i вместе с вектором Nm,i а при декодировании с «мягким» решением и с метрикой vm,i. Далее по шине 70 синдром sm,i, передается на блок поиска ненулевого элемента 80, а по шине 71 синдром sm,i, вектор Nm,i, а при декодировании с «мягким» решением метрика vm,i, передаются на блок вычисления текущей информации 120.As soon as the first syndrome s enters block 40, a read block 60 starts immediately, which receives the next syndrome s m, i along the bus 50 along with the vector N m, i and when decoding with a “soft” solution and with the metric v m, i . Further, through the bus 70, the syndrome s m, i , is transmitted to the search unit of the nonzero element 80, and on the bus 71, the syndrome s m, i , the vector N m, i , and when decoding with a “soft” solution, the metric v m, i , is transmitted to a current information calculation unit 120.

Затем блок поиска ненулевого элемента 80 определяет позицию любого ненулевого элемента j расширенного синдрома и передает значение этой позиции по шине 90 в блок поиска строк расширенной проверочной матрицы 100.Then, the search block of the non-zero element 80 determines the position of any non-zero element j of the extended syndrome and transmits the value of this position via the bus 90 to the string search block of the extended check matrix 100.

Далее блок поиска строк расширенной проверочной матрицы 100 по полученному числу j определяет номера строк расширенной проверочной матрицы Нn,n, у которых на позиции j расположен ненулевой элемент и передает их по шине 110 в блок вычисления текущей информации 120.Next, the row search unit of the extended verification matrix 100 by the obtained number j determines the row numbers of the extended verification matrix H n, n , for which a nonzero element is located at position j and transmits them via bus 110 to the current information calculation unit 120.

После этого в блоке вычисления текущей информации 120 формируются текущие синдромы Sm+1,j и соответствующие им векторы Nm+1,j, а при декодировании с «мягким» решением вычисляются по формулам 1 или 2 соответствующие метрики vm+1,j.After that, in the current information calculation unit 120, the current syndromes S m + 1, j and the corresponding vectors N m + 1, j are formed , and when decoding with a “soft” solution, the corresponding metrics v m + 1, j are calculated using formulas 1 or 2 .

Если один из текущих синдромов sm+1,j=0, то при декодировании с «жестким» решением по шине 131 в блок коррекции 140 передается вектор Nm+1,j. Искаженное кодовое слово, поступившее в блок 140 по шине 11, корректируется (инвертируются те элементы искаженного кодового слова, которые указаны в векторе Nm+1,j) и передается по шине 150 в блок формирования декодированной информации 160, в котором выделяется декодированная информация и по шине 170 поступает на выход декодера. Процесс декодирования закончен. При декодировании с «мягким» решением вектор Nm+1,j передается по шине 131 в блок коррекции 140 только в том случае, когда метрика vm+1,j максимальна. В противном случае sm+1,j=0, Nm+1,j и vm+1,j по шине 130 поступают в блок хранения и обновления текущей информации 40, а блок вычисления текущей информации 120 переходит к вычислению очередного синдрома.If one of the current syndromes is s m + 1, j = 0, then when decoding with a “hard” decision on the bus 131, the vector N m + 1, j is transmitted to the correction block 140. The distorted code word received in block 140 via bus 11 is corrected (those elements of the distorted code word that are indicated in the vector N m + 1, j are inverted) and transmitted via bus 150 to the block for generating decoded information 160, in which the decoded information is extracted and on the bus 170 it goes to the output of the decoder. The decoding process is completed. When decoding with a “soft” solution, the vector N m + 1, j is transmitted via bus 131 to the correction block 140 only when the metric v m + 1, j is maximum. Otherwise, s m + 1, j = 0, N m + 1, j and v m + 1, j are sent via bus 130 to the current information storage and update unit 40, and the current information calculation unit 120 proceeds to the calculation of the next syndrome.

Если же все вычисленные синдромы sm+1,j≠0, то по шине 130 они поступают на хранение вместе со своими векторами Nm+1,j и метриками vm+1,j при декодировании с «мягким» решением в блок хранения и обновления текущей информации 40.If all the calculated syndromes are s m + 1, j ≠ 0, then via bus 130 they are stored with their vectors N m + 1, j and metrics v m + 1, j when decoding with a “soft” solution to the storage unit and updating current information 40.

Затем, как уже рассматривалось ранее, блок считывания 60 по шине 50 вновь считывает очередной расширенный синдром sm,i вместе с вектором Nm,i и метрикой vm,j при декодировании с «мягким» решением и т.д. до тех пор, пока не будет вычислен текущий синдром, являющийся нулевым вектором. Тогда после коррекции (инверсии) искаженных элементов кодового слова в качестве декодированной информации выбирается его откорректированная систематическая часть, и процесс декодирования заканчивается.Then, as previously discussed, the reader 60 on the bus 50 again reads the next extended syndrome s m, i together with the vector N m, i and the metric v m, j when decoding with a “soft” solution, etc. until the current syndrome, which is a zero vector, is calculated. Then, after the correction (inversion) of the distorted elements of the codeword, its corrected systematic part is selected as decoded information, and the decoding process ends.

При декодировании «укороченных» кодов другим конструктивным вариантом является модификация блока вычисления синдрома 20, который перед вычислением расширенного синдрома s в начало принятого из канала связи возможно искаженного кодового слова добавляет нулевые элементы, количество которых равно величине укорочения кода. Кроме того, блок выделения строк расширенной проверочной матрицы 100 удаляет те строки, номера которых меньше величины укорочения. Данное конструктивное решение позволяет не только декодировать «укороченные» линейные циклические блочные коды, но и повысить быстродействие декодера.When decoding “shortened” codes, another design option is to modify the syndrome 20 computation unit, which, before calculating the extended syndrome s, adds zero elements to the beginning of the possibly distorted codeword, the number of which is equal to the amount of code shortening. In addition, the row highlighting unit of the expanded check matrix 100 deletes those rows whose numbers are less than the shortening amount. This design solution allows not only to decode “shortened” linear cyclic block codes, but also to increase the speed of the decoder.

Для декодирования «расширенных» кодов другим конструктивным вариантом является модификация блока вычисления синдрома 20, который перед вычислением расширенного синдрома s удаляет последний элемент (элемент расширения или элемент четности кодового слова) принятого из канала связи возможно искаженного кодового слова. При декодировании с «жестким» решением данный элемент более ни в одном из блоков не учитывается. При декодировании с «мягким» решение условные вероятности элемента расширения используется при вычислении метрик в блоке вычисления текущей информации 120. Данное конструктивное решение позволяет декодировать «расширенные» линейные циклические блочные коды.To decode the “extended” codes, another design option is to modify the syndrome 20 calculation unit, which before calculating the extended syndrome s removes the last element (extension element or parity element of the code word) received from the communication channel of the possibly distorted code word. When decoding with a “hard” solution, this element is not taken into account in any of the blocks. When decoding with a “soft” solution, the conditional probabilities of the extension element are used in calculating the metrics in the current information calculation unit 120. This design solution allows you to decode the “extended” linear cyclic block codes.

Другим конструктивным вариантом является модификация блока вычисления текущей информации 120, в котором перед вычислением текущего синдрома sm+1,j сравнивается номер j-той строки с номерами строк вектора Nm,i. Если обнаруживается совпадение строк, то текущий синдром не вычисляется. Данное конструктивное решение позволяет повысить быстродействие декодера.Another constructive option is a modification of the current information calculation unit 120, in which, before calculating the current syndrome s m + 1, j , the number of the j-th line is compared with the line numbers of the vector N m, i . If a string match is found, then the current syndrome is not calculated. This design solution allows to increase the speed of the decoder.

Другим конструктивным вариантом является модификация блока вычисления текущей информации 120, в котором вновь вычисленный текущий синдром sm+1,j сравнивается со всеми текущими синдромами. Если обнаруживается совпадение текущих синдромов, то данный синдром из дальнейшей обработки исключается. Данное конструктивное решение позволяет повысить быстродействие декодера.Another constructive option is a modification of the current information calculation unit 120, in which the newly calculated current syndrome s m + 1, j is compared with all current syndromes. If a coincidence of current syndromes is detected, then this syndrome is excluded from further processing. This design solution allows to increase the speed of the decoder.

Реализация описанного способа может быть аппаратной, программной или аппаратно-программной и использоваться как для двоичных, так и q-ичных кодов.The implementation of the described method can be hardware, software or hardware-software and can be used for both binary and q-ary codes.

Достигаемым техническим результатом предлагаемого способа декодирования циклического линейного блочного кода является повышение достоверности (качества) декодирования как с «жестким», так и с «мягким» решениями, а также повышение быстродействия и уменьшения аппаратной сложности по сравнению с известными способами декодирования [1-3].Achievable technical result of the proposed method for decoding a cyclic linear block code is to increase the reliability (quality) of decoding with both “hard” and “soft” solutions, as well as increase speed and reduce hardware complexity compared to known decoding methods [1-3] .

Список литературыBibliography

1. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение: Пер. с англ. В.Б.Афанасьева. - М.: Техносфера, 2005.1. Morelos-Zaragoza R. The art of error-correcting coding. Methods, Algorithms, Application: Per. from English V.B.Afanasyeva. - M .: Technosphere, 2005.

2. Галлагер Р. Теория информации и надежная связь: Пер. с англ., под ред. М.С Пинскера и Б.С.Цыбакова, М., «Советское радио», 1974.2. Gallager R. Information Theory and Reliable Communication: Per. from English, ed. M.S. Pinsker and B.S. Tsybakov, M., "Soviet Radio", 1974.

3. Витерби А.Д., Омура Дж.К. Принципы цифровой связи и кодирования: Пер. с англ. - М.: Радио и связь, 1982.3. Viterbi A.D., Omura J.K. The principles of digital communication and coding: Per. from English - M.: Radio and Communications, 1982.

Claims (4)

1. Способ синдромного декодирования циклического линейного блочного кода, заключающийся в том, что вычисляют синдром для искаженного кодового слова, затем выбирают соответствующий ему вектор коррекции, отличающийся тем, что для принятого искаженного кодового слова вычисляют расширенный синдром, который представляют в виде линейных комбинаций строк расширенной проверочной матрицы, причем каждой комбинации однозначно соответствует вектор ошибки, затем для каждого вектора ошибки вычисляют метрику, которая при декодировании с "жестким" решением является его весом, и для исправления наиболее вероятных ошибок в качестве вектора коррекции выбирают тот вектор ошибки, который имеет минимальную метрику, далее инвертируют элементы в систематической части кодового слова, номера которых соответствуют позициям ненулевых элементов вектора коррекции.1. The method of syndromic decoding of a cyclic linear block code, which consists in calculating a syndrome for a distorted codeword, then selecting a correction vector corresponding to it, characterized in that for the received distorted codeword, an expanded syndrome is calculated, which is represented as linear combinations of extended strings the verification matrix, and each combination uniquely corresponds to the error vector, then for each error vector the metric is calculated, which when decoding with "hard" Addressing is by its weight, and the most probable error correction as the correction vector is selected error vector, which has the minimum metric, then invert the elements in a systematic part of the codeword whose numbers correspond to the positions of non-zero elements of the correction vector. 2. Способ по п.1, отличающийся тем, что в случае декодирования "укороченных" кодов с «жестким» решением в начало каждого искаженного кодового слова добавляют нулевые элементы, количество которых равно величине укорочения.2. The method according to claim 1, characterized in that in the case of decoding "shortened" codes with a "hard" solution, zero elements are added to the beginning of each distorted codeword, the number of which is equal to the shortening value. 3. Способ синдромного декодирования циклического линейного блочного кода, заключающийся в том, что вычисляют синдром для искаженного кодового слова, затем выбирают соответствующий ему вектор коррекции, отличающийся тем, что для принятого искаженного кодового слова вычисляют расширенный синдром, который представляют в виде линейных комбинаций строк расширенной проверочной матрицы, причем каждой комбинации однозначно соответствует вектор ошибки, затем для каждого вектора ошибки при декодировании с "мягким" решением вычисляют модифицированную метрику и для исправления наиболее вероятных ошибок в качестве вектора коррекции выбирают вектор ошибок, который имеет максимальную модифицированную метрику, далее инвертируют элементы в систематической части кодового слова, номера которых соответствуют позициям ненулевых элементов вектора коррекции.3. The method of syndromic decoding of a cyclic linear block code, which consists in calculating a syndrome for a distorted codeword, then selecting a correction vector corresponding to it, characterized in that for the received distorted codeword, an expanded syndrome is calculated, which is represented as linear combinations of extended strings the verification matrix, and each combination uniquely corresponds to an error vector, then for each error vector when decoding with a “soft” solution, the mod ovannuyu metric for the most likely error correction as correction vector selected error vector, which has the maximum modified metric further inverter element in the systematic part of the codeword numbers of which correspond to the positions of non-zero elements of the correction vector. 4. Способ по п.3, отличающийся тем, что в случае декодирования "укороченных" кодов с «мягким» решением в начало каждого искаженного кодового слова добавляют нулевые элементы, количество которых равно величине укорочения с условными вероятностями, равными единице.4. The method according to claim 3, characterized in that in the case of decoding "shortened" codes with a "soft" solution, zero elements are added to the beginning of each distorted codeword, the number of which is equal to the value of the shortening with conditional probabilities equal to one.
RU2006141316/09A 2006-11-23 2006-11-23 Syndrome decoding method of decoding recurrent code (versions) RU2340088C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2006141316/09A RU2340088C2 (en) 2006-11-23 2006-11-23 Syndrome decoding method of decoding recurrent code (versions)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2006141316/09A RU2340088C2 (en) 2006-11-23 2006-11-23 Syndrome decoding method of decoding recurrent code (versions)

Publications (2)

Publication Number Publication Date
RU2006141316A RU2006141316A (en) 2008-06-10
RU2340088C2 true RU2340088C2 (en) 2008-11-27

Family

ID=39580864

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006141316/09A RU2340088C2 (en) 2006-11-23 2006-11-23 Syndrome decoding method of decoding recurrent code (versions)

Country Status (1)

Country Link
RU (1) RU2340088C2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2541844C1 (en) * 2013-10-28 2015-02-20 Федеральное Государственное Унитарное Предприятие Ордена Трудового Красного Знамени Научно-Исследовательский Институт Радио (Фгуп Ниир) Method of decoding production code using weight ordered adjacent class of error vectors and apparatus therefor
RU2575394C1 (en) * 2014-07-22 2016-02-20 Федеральное Государственное Унитарное Предприятие Ордена Трудового Красного Знамени Научно-Исследовательский Институт Радио (Фгуп Ниир) Method of decoding cyclic codes with "hard" pointer vector solution and device therefor
RU2585992C2 (en) * 2012-01-11 2016-06-10 Шэньчжэнь Хэк Телеком Текнолоджи Ко., Лтд. System and method for wireless communication
RU2612593C1 (en) * 2015-11-23 2017-03-09 Федеральное Государственное Унитарное Предприятие Ордена Трудового Красного Знамени Научно-Исследовательский Институт Радио (Фгуп Ниир) Device for parallel decoding of cyclic codes on programmable logic integrated circuits
RU2706171C1 (en) * 2019-01-25 2019-11-14 Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации Method for decoding block noise-immune codes based on the criterion of minimum average risk

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2585992C2 (en) * 2012-01-11 2016-06-10 Шэньчжэнь Хэк Телеком Текнолоджи Ко., Лтд. System and method for wireless communication
RU2541844C1 (en) * 2013-10-28 2015-02-20 Федеральное Государственное Унитарное Предприятие Ордена Трудового Красного Знамени Научно-Исследовательский Институт Радио (Фгуп Ниир) Method of decoding production code using weight ordered adjacent class of error vectors and apparatus therefor
RU2575394C1 (en) * 2014-07-22 2016-02-20 Федеральное Государственное Унитарное Предприятие Ордена Трудового Красного Знамени Научно-Исследовательский Институт Радио (Фгуп Ниир) Method of decoding cyclic codes with "hard" pointer vector solution and device therefor
RU2612593C1 (en) * 2015-11-23 2017-03-09 Федеральное Государственное Унитарное Предприятие Ордена Трудового Красного Знамени Научно-Исследовательский Институт Радио (Фгуп Ниир) Device for parallel decoding of cyclic codes on programmable logic integrated circuits
RU2706171C1 (en) * 2019-01-25 2019-11-14 Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации Method for decoding block noise-immune codes based on the criterion of minimum average risk

Also Published As

Publication number Publication date
RU2006141316A (en) 2008-06-10

Similar Documents

Publication Publication Date Title
US8245117B1 (en) Low complexity chien search in chase-type decoding of reed-solomon codes
JP3451221B2 (en) Error correction coding apparatus, method and medium, and error correction code decoding apparatus, method and medium
JP3923618B2 (en) Method for converting information bits having error correcting code and encoder and decoder for performing the method
TW390085B (en) A method of and apparatus for selecting cyclic redundancy check genetators in a concatenated code
US20060236212A1 (en) High speed hardware implementation of modified reed-solomon decoder
WO2004027616A1 (en) Method and apparatus for encoding data
US8468430B2 (en) Product code decoding method and device
JP2002526965A (en) Turbo product code decoder
US10484020B2 (en) System and method for parallel decoding of codewords sharing common data
US20030188253A1 (en) Method for iterative hard-decision forward error correction decoding
CN110071727B (en) Encoding method, decoding method, error correction method and device
JPH05244020A (en) Decoder capability reinforcing method for decoding interleaving-type error correction code
US7640462B2 (en) Interleaver and de-interleaver
RU2580797C1 (en) Method of soft decoding of block codes
WO2020237377A1 (en) Methods and systems for bit error determination and correction
JP5374156B2 (en) Apparatus and method for decoding and encoding data
CN109644006B (en) Apparatus and method for encoding data and decoding data
RU2340088C2 (en) Syndrome decoding method of decoding recurrent code (versions)
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
Grinchenko et al. Improving performance of multithreshold decoder over binary erasure channel
CN106708654A (en) Circuit structure for BCH error correcting code of NAND flash
RU2379841C1 (en) Decoder with erasure correction
US20060010363A1 (en) Method and system for correcting low latency errors in read and write non volatile memories, particularly of the flash type
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
RU2485683C1 (en) Decoding device with soft decisions for double-stage cascade code

Legal Events

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

Effective date: 20091124