RU2340091C2 - Method of decoding serial cascade code (versions) - Google Patents
Method of decoding serial cascade code (versions) Download PDFInfo
- Publication number
- RU2340091C2 RU2340091C2 RU2006141315/09A RU2006141315A RU2340091C2 RU 2340091 C2 RU2340091 C2 RU 2340091C2 RU 2006141315/09 A RU2006141315/09 A RU 2006141315/09A RU 2006141315 A RU2006141315 A RU 2006141315A RU 2340091 C2 RU2340091 C2 RU 2340091C2
- Authority
- RU
- Russia
- Prior art keywords
- code
- errors
- decoding
- component
- codes
- Prior art date
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
Изобретение относится к области техники связи, в частности к системам передачи информации, в которых для ее защиты от искажений в канале связи применяются каскадные коды с последовательным соединением через перемежитель циклических линейных блочных кодов, или турбо-коды с компонентными циклическими линейными блочными кодами. Изобретение может быть использовано в кодеках (кодер-декодер) систем передачи данных, а также в устройствах помехоустойчивого кодирования при передаче и хранении дискретной информации.The invention relates to the field of communication technology, in particular to information transmission systems in which cascading codes with serial connection through an interleaver of cyclic linear block codes or turbo codes with component cyclic linear block codes are used to protect it from distortion in the communication channel. The invention can be used in codecs (encoder-decoder) of data transmission systems, as well as in error-correcting coding devices for transmitting and storing discrete information.
Известен способ декодирования каскадных кодов с последовательным соединением через перемежитель компонентных циклических линейных блочных кодов [1, 3-5], который включает в себя для двухкомпонентного каскадного кода две процедуры декодирования, представляющие собой модули SISO («мягкий» вход, «мягкий» выход), и две процедуры перемежения для перемешивания «мягкой» информации, которой обмениваются процедуры декодирования. На вход первого SISO модуля поступают две последовательности: априорные сведения о последовательности информационных символов и «мягкий» выход канала связи (демодулятора), а на выходе формируются «мягкие» решения, которые является отношением апостериорных вероятностей информационных элементов кода и которые после перемежения служат априорными сведениями об информационных элементах для второго SISO модуля. Второй SISO модуль уточняет значения анализируемых информационных элементов и вычисляет свои «мягкие» оценки информационных элементов, которые после деперемежения поступают на вход первого SISO модуля, и итерационный процесс продолжается. После каждой итерации увеличивается априорная информация о каждом информационном элементе. Процесс декодирования заканчивается либо после выполнения заданного количества итераций, либо после того, как величина поправки результата декодирования достигнет определенного порогового значения.There is a method of decoding cascade codes with serial connection through an interleaver of component cyclic linear block block codes [1, 3-5], which includes two decoding procedures for a two-component cascade code, which are SISO modules (“soft” input, “soft” output) , and two interleaving procedures for mixing “soft” information exchanged by decoding procedures. The input of the first SISO module receives two sequences: a priori information about the sequence of information symbols and a “soft” output of the communication channel (demodulator), and “soft” solutions are formed at the output, which are the ratio of posterior probabilities of the information elements of the code and which, after interleaving, serve as a priori information about information elements for the second SISO module. The second SISO module refines the values of the analyzed information elements and calculates its “soft” estimates of the information elements, which, after deinterleaving, enter the input of the first SISO module, and the iterative process continues. After each iteration, a priori information about each information element is increased. The decoding process ends either after performing a given number of iterations, or after the correction value of the decoding result reaches a certain threshold value.
Основными недостатками данного способа декодирования являются его большая вычислительная сложность и большое время задержки декодирования, так как декодируется кодовое слово большой длины (несколько десятков тысяч элементов), причем для обработки искаженного кодового слова необходимо выполнить несколько итераций. Кроме того, данный способ декодирования относится к квазиоптимальным способам декодирования.The main disadvantages of this decoding method are its great computational complexity and long decoding delay time, since a long codeword is decoded (several tens of thousands of elements), and several iterations are necessary to process the distorted codeword. In addition, this decoding method relates to quasi-optimal decoding methods.
Целью предлагаемого изобретения является повышение достоверности (качества) декодирования, понижение аппаратной и вычислительной сложности декодирования, уменьшение времени задержки, и, в частности, реализация оптимальной процедуры декодирования как с «мягким», так и с «жестким» решениями.The aim of the invention is to increase the reliability (quality) of decoding, reduce the hardware and computational complexity of decoding, reduce the delay time, and, in particular, implement the optimal decoding procedure with both “soft” and “hard” solutions.
Для достижения цели предложен способ синдромного декодирования каскадного кода с последовательным соединением через перемежитель циклических линейных блочных кодов, в которых наиболее вероятное значение систематической части кодового слова формируется не в результате итеративной процедуры, включающей в себя циклическую обработку кодового слова с помощью SISO модулей, а в результате поиска оптимального вектора коррекции, который основан на представлении n-разрядного расширенного синдрома s компонентного кода в виде линейных комбинаций строк расширенной проверочной матрицы Нn,n, и представлении вектора ошибки екс, исказившей кодовое слово, в виде совокупности примитивных (неразложимых) векторов коррекции.To achieve the goal, a method is proposed for the coding of a cascade code syndrome with serial connection through an interleaver of cyclic linear block codes, in which the most probable value of the systematic part of the code word is formed not as a result of an iterative procedure involving cyclic processing of the code word using SISO modules, but as a result search for the optimal correction vector, which is based on the representation of the n-bit extended syndrome s of the component code in the form of linear combinations th rows extended check matrix H n, n, and representation of the error vector e kc distort codeword in a set of primitive (indecomposable) correction vectors.
Расширенная проверочная матрица Нn,n является транспонированной проверочной матрицей [1], у которой j-я строка состоит из коэффициентов при неизвестном полинома hj(x)=xjh(x)mod(xn+1) (где h(x)=(xn+1)/p(x) - проверочный многочлен циклического (n,k)-кода, р(х) - порождающий многочлен кода, а j=0,1, ... n-1). Транспонированная расширенная проверочная матрица Нn,n отличается от проверочной матрицы Hn,n-k [1] только тем, что в ней добавлено еще k строк, каждая из которых также является циклическим сдвигом предшествующей строки на один разряд направо. Номер строки расширенной проверочной матрицы указывает на номер искаженной позиции принятого искаженного кодового слова.The expanded verification matrix H n, n is the transposed verification matrix [1], in which the jth row consists of coefficients for the unknown polynomial h j (x) = x j h (x) mod (x n +1) (where h ( x) = (x n +1) / p (x) is the verification polynomial of the cyclic (n, k) code, p (x) is the generating polynomial of the code, and j = 0,1, ... n-1). The transposed extended verification matrix H n, n differs from the verification matrix H n, nk [1] 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. The line number of the extended check matrix indicates the number of the distorted position of the received distorted codeword.
Примитивные векторы коррекции имеют конфигурацию однократных локализованных ошибок, цепочек локализованных ошибок, а также локализованных ошибок, имеющих конфигурацию кодовых слов компонентных кодов. Однократная локализованная ошибка это такая ошибка в кодовом слове каскадного кода, которая является единственной во всех кодовых словах компонентных кодов, которые она исказила. Цепочка локализованных ошибок - это такая последовательность ошибок в кодовом слове каскадного кода, которая имеет вес не менее двух и которая однозначно определена синдромами тех кодовых слов компонентных кодов, которые она искажает.Primitive correction vectors have a configuration of single localized errors, chains of localized errors, as well as localized errors having a configuration of code words of component codes. A single localized error is such an error in the code word of the cascading code, which is the only one in all the code words of the component codes that it has distorted. A chain of localized errors is a sequence of errors in a code word of a cascading code that has a weight of at least two and which is uniquely determined by the syndromes of those code words of component codes that it distorts.
Для декодирования каскадного кода с последовательным соединением через перемежитель циклических линейных блочных кодов предлагается способ, заключающийся в следующем.To decode a cascade code with a serial connection through an interleaver of cyclic linear block codes, a method is proposed, which consists in the following.
Для принятой возможно искаженной кодовой реализации каскадного кода (b⊕eкс), кодовое слово которого для двухкомпонентного кода представлено на фиг.1, вычисляют расширенные синдромы для каждого кодового слова компонентных кодов (где: sj (i) - расширенный синдром j-го кодового слова i-го компонентного кода, bl (i) - j-е кодовое слово i-го компонентного кода, еj (i) - вектор ошибки, исказивший в канале связи - j-е кодовое слово i-го компонентного кода, - расширенная проверочная матрица i-го компонентного кода), которые заносятся в таблицу (см. фиг.1). Кроме того, для каждого расширенного синдрома вычисляют вектор HNj (i), элементами которого являются номера строк расширенной проверочной матрицы, которые могли участвовать в формировании одного из (например, крайнего слева) ненулевого элемента расширенного синдрома. В векторе HNj (i) особо помечают номер строки, который соответствует номеру строки расширенного синдрома sj (i) (см. фиг.1). Номер особо помеченной строки указывает на позицию возможной однократной ошибки в bj (i)-м кодовом слове компонентного кода, а каждый непомеченный номер строки указывает на позицию одного из искаженных элементов возможной двукратной ошибки в том же bj (i)-м кодовом слове компонентного кода.For adopted possibly distorted code implementing the concatenated code (b⊕e CS) codeword for which the bicomponent code presented in Figure 1, extended calculated syndromes for each codeword component codes (where: s j (i) is the extended syndrome of the j-th codeword of the i-th component code, b l (i) is the j-th code word of the i-th component code, e j (i) is the error vector distorted in communication channel - the j-th code word of the i-th component code, - extended verification matrix of the i-th component code), which are entered in the table (see figure 1). In addition, for each extended syndrome, the vector HN j (i) is calculated, the elements of which are the line numbers of the extended check matrix that could participate in the formation of one of (for example, the leftmost) non-zero element of the extended syndrome. The vector HN j (i) a particularly marked line number that corresponds to the line number of extended syndrome s j (i) (see FIG. 1). The number of the especially marked line indicates the position of a possible one-time error in the b j (i) -th codeword of the component code, and each unmarked line number indicates the position of one of the distorted elements of the possible two-time error in the same b j (i) -m codeword component code.
Далее поиск вектора коррекции кодового слова каскадного кода выполняется поэтапно.Further, the search for the correction vector of the code word of the cascading code is performed in stages.
На первом этапе выполняется поиск локализованных ошибок в кодовом слове каскадного кода, которые начинаются с однократной ошибки в кодовых словах одного из компонентных кодов.At the first stage, a search is performed for localized errors in the code word of the cascading code, which begin with a single error in the code words of one of the component codes.
Для этого выбирают любой i-й компонентный код, и для каждого искаженного кодового слова (sj (i)≠0) в векторе HNj (i) находят номер особо помеченной строки, который указывает на позицию однократной ошибки в j-м кодовом слове i-го компонентного кода. После чего для всех кодовых слов компонентных кодов, которые исказила данная ошибка, сравнивают особо помеченные номера строк вектора HNg (q) с номером позиции рассматриваемой ошибки.To do this, choose any ith component code, and for each distorted codeword (s j (i) ≠ 0) in the vector HN j (i) find the number of the especially marked line, which indicates the position of a single error in the jth codeword i-th component code. Then, for all codewords of the component codes that this error has distorted, the specially marked line numbers of the vector HN g (q) are compared with the position number of the error in question.
Если номера совпали для всех компонентных кодов, то данная ошибка считается однократной локализованной ошибкой каскадного кода. Она запоминается вместе с номерами кодовых слов компонентных кодов, которые она исказила, а расширенные синдромы этих кодовых слов считаются условно нулевыми (нулевыми только для данной локализованной ошибки).If the numbers match for all component codes, then this error is considered a one-time localized error of the cascading code. It is remembered along with the codeword numbers of the component codes that it has distorted, and the extended syndromes of these codewords are considered conditionally zero (zero only for this localized error).
Если номера не совпали, например, для кодового слова bg (q) q-го компонентного кода, то переходим к поиску цепочек локализованных ошибок, которые возможно имеют двукратную ошибку в данном кодовом слове. Следует учесть, что позиция r первой ошибки двукратной ошибки в кодовом слове bg (q) известна. Она задана позицией однократной ошибки в j-м кодовом слове i-го компонентного кода. Комбинацию двукратной ошибки формируют следующим образом. Для искаженного кодового слова компонентного кода вычисляют текущий расширенный синдром sg (q)=sg (q)⊕hr и соответствующий ему вектор HNg (q), в котором номер особо помеченной строки m расширенной проверочной матрицы указывает на вторую искаженную позицию двукратной ошибки в bg (q) кодовом слове. Таким образом, построена комбинация двукратной ошибки er,g↔em,g в g-том кодовом слове q-го компонентного кода. Причем расширенный синдром sg (q) для искомой цепочки ошибок считается условно нулевым.If the numbers do not coincide, for example, for the codeword b g (q) of the qth component code, then we proceed to search for chains of localized errors that may have a double error in this codeword. It should be noted that the position r of the first double-error error in the codeword b g (q) is known. It is given by the position of a single error in the jth codeword of the ith component code. The combination of double errors is formed as follows. For the distorted codeword of the component code, the current expanded syndrome s g (q) = s g (q) ⊕h r and the corresponding vector HN g (q) are calculated in which the number of the especially marked row m of the extended verification matrix indicates the second distorted position of the double errors in the b g (q) codeword. Thus, a combination of the double error e r, g ↔ e m, g in the gth codeword of the qth component code is constructed. Moreover, the extended syndrome s g (q) for the desired chain of errors is considered conditionally zero.
Двукратная ошибка er,g↔em,g считается завершенной по m-тому направлению, если расширенные синдромы всех кодовых слов компонентных кодов, откорректированных ошибкой em,g, становятся нулевыми. Цепочку локализованных ошибок формируют до тех пор, пока не будут завершены все направления. После чего цепочка локализованных ошибок запоминается вместе с номерами кодовых слов компонентных кодов, которые она исказила, а расширенные синдромы этих кодовых слов для данной цепочки ошибок считаются условно нулевыми.A double error e r, g ↔ e m, g is considered completed in the mth direction if the extended syndromes of all codewords of component codes corrected by the error e m, g become zero. A chain of localized errors is formed until all directions are completed. After that, the chain of localized errors is stored along with the codeword numbers of the component codes that it has distorted, and the extended syndromes of these codewords for this chain of errors are considered conditionally zero.
Поиск локализованной цепочки ошибок прекращают в том случае, когда вторая ошибка em,g двукратной ошибки попадает в одно из кодовых слов компонентных кодов, которое уже имеет условно нулевой синдром для строящейся цепочки локализованных ошибок.The search for a localized error chain is terminated when the second error e m, g of a double error falls into one of the code words of the component codes, which already has a conditionally zero syndrome for the constructed chain of localized errors.
Если вторая ошибка em,g двукратной ошибки попадает в кодовое слово компонентного кода с нулевым синдромом sf (u)=0, то это кодовое слово возможно искажено ошибкой, которая имеет конфигурацию кодового слова (для циклических кодов Хемминга минимальный вес кодового слова равен трем). В этом случае вектор HNf (u) содержит позиции вторых ошибок искомых трехкратных ошибок, если исключить из рассмотрения особо помеченный номер строки. Следовательно, необходимо рассмотреть w-1 возможных комбинаций трехкратных ошибок (где w - количество ненулевых коэффициентов при неизвестном проверочного многочлена кода), у которых две позиции уже известны. Третью последнюю позицию трехкратной ошибки определяют аналогично рассмотренному выше поиску второй последней позиции двукратной ошибки.If the second error e m, g of the double error falls into the codeword of the component code with zero syndrome s f (u) = 0, then this codeword is possibly distorted by an error that has the configuration of the codeword (for cyclic Hamming codes, the minimum weight of the codeword is three ) In this case, the vector HN f (u) contains the positions of the second errors of the desired triple errors, if we exclude from the consideration the specially marked line number. Therefore, it is necessary to consider w-1 possible combinations of triplicate errors (where w is the number of nonzero coefficients with an unknown code verification polynomial), for which two positions are already known. The third last position of the triple error is determined similarly to the search above for the second last position of the double error.
После рассмотрения всех кодовых слов i-го компонентного кода с ненулевыми расширенными синдромами переходим ко второму этапу поиска локализованных ошибок.After considering all the code words of the i-th component code with non-zero extended syndromes, we proceed to the second stage of the search for localized errors.
На втором этапе выполняется поиск локализованных ошибок в кодовом слове каскадного кода, которые начинаются с двукратной ошибки в кодовых словах i-го компонентного кода. Перед выполнением поиска цепочек локализованных ошибок из векторов HNj (i) всех кодовых слов с sj (i)≠0 исключают особо помеченные номера строк. Таким образом, в векторах HNj (i) остаются только те номера строк расширенной проверочной матрицы, которые указывают на позицию одного из искаженных элементов предполагаемой двукратной ошибки кодового слова. Далее для каждого кодового слова с s(i) j≠0 формируют w-1 возможных пар комбинаций двукратных ошибок, которые могут являться началом предполагаемых цепочек локализованных ошибок. Вторую ошибку находят в соответствии с рассмотренным выше способом. После того, когда определены пары ошибок er,j↔em,j, выполняют поиск цепочек ошибок аналогично поиску локализованных ошибок в кодовом слове каскадного кода на первом этапе. Причем поиск проводят параллельно для ошибок er,j и em,j.At the second stage, a search is performed for localized errors in the code word of the cascading code, which begin with a twofold error in the code words of the ith component code. Before performing a search for chains of localized errors from vectors HN j (i) of all codewords with s j (i) ≠ 0, especially marked line numbers are excluded. Thus, in the vectors HN j (i) , only those line numbers of the extended check matrix remain that indicate the position of one of the distorted elements of the alleged two-time codeword error. Then, for each codeword with s (i) j ≠ 0, w-1 of possible pairs of double error combinations are generated, which may be the beginning of the alleged chains of localized errors. The second error is found in accordance with the above method. After the pairs of errors e r, j ↔ e m, j are determined, the search for error chains is performed similarly to the search for localized errors in the code word of the cascade code at the first stage. Moreover, the search is carried out in parallel for errors e r, j and e m, j .
После рассмотрения всех кодовых слов с ненулевым синдромом i-го компонентного кода необходимо среди найденных локализованных ошибок выделить повторяющиеся ep=em и пересекающиеся (один или несколько элементов в выбранной паре локализованных ошибок совпадают) пары локализованных ошибок.After considering all codewords with nonzero syndrome of the ith component code, it is necessary to identify repeating e p = e m and intersecting (one or more elements in the selected pair of localized errors coincide) pairs of localized errors among the found localized errors.
Для определения повторяющихся пар локализованных ошибок ep=em достаточно вычислить NK:To determine the repeated pairs of localized errors e p = e m, it suffices to calculate NK:
где - сумма суммы по mod 2 элементов векторов А и В с одинаковыми индексами i;Where - the sum of the sum over mod 2 of elements of vectors A and B with the same indices i;
- вектор позиций условно нулевых синдромов r-того компонентного кода для j-ой локализованной ошибки (где j=(p,m)), причем: is the position vector of conditionally zero syndromes of the r-th component code for the j-th localized error (where j = (p, m)), and:
Если NK=0, то локализованные ошибки ep=em, а если NK≠0, то локализованные ошибки еp≠em.If NK = 0, then the localized errors are e p = e m , and if NK ≠ 0, then the localized errors are e p ≠ e m .
Для определения пересекающихся локализованных ошибок еp и em достаточно вычислить NN:To determine the overlapping localized errors e p and e m it is enough to calculate NN:
илиor
. .
Если NN=0, то локализованные ошибки ep и em не пересекаются, а если NN≠0, то локализованные ошибки eр и em пересекаются. Позиции пересечения в r-м компонентном коде обозначены в векторе или ненулевыми элементами (где (А∧В) - логическое умножение элементов векторов А и В с одинаковыми индексами i).If NN = 0, then the localized errors e p and e m do not intersect, and if NN ≠ 0, then the localized errors e p and e m intersect. Intersection positions in the rth component code are indicated in vector or nonzero elements (where (А∧В) is the logical multiplication of elements of the vectors A and B with the same indices i).
Затем среди повторяющихся ошибок оставляем одну из них, а остальные исключаем из рассмотрения.Then, among the repeated errors, we leave one of them, and exclude the rest from consideration.
После чего определяют альтернативные группы локализованных ошибок, в которых пересекающиеся ошибки разнесены в различные группы.After that, alternative groups of localized errors are determined in which intersecting errors are spaced into different groups.
На третьем этапе выполняют поиск локализованных ошибок, имеющих конфигурацию кодовых слов i-го компонентного кода, для каждой альтернативной группы локализованных ошибок. Необходимость выполнения 3-го этапа возникает после завершения 1-го и 2-го этапов, когда все расширенные синдромы i-го компонентного кода каскадного кода становятся нулевыми (как исходно нулевые, так и условно нулевые). В этом случае особо помеченные номера строк векторов HNr (u) ненулевых расширенных синдромов других компонентных кодов либо все, либо группами указывают на одно, либо на группу кодовых слов i-го компонентного кода. Причем позиции, на которые указывают особо помеченные номера строк, образуют цепочки ошибок, имеющие конфигурацию кодового слова. Их и следует выбирать в качестве наиболее вероятных цепочек локализованных ошибок.At the third stage, they search for localized errors having the configuration of the code words of the ith component code for each alternative group of localized errors. The need to complete the 3rd stage arises after the completion of the 1st and 2nd stages, when all the extended syndromes of the i-th component code of the cascading code become zero (both initially zero and conditionally zero). In this case, the specially marked line numbers of the vectors HN r (u) of nonzero extended syndromes of other component codes either all or in groups indicate one or a group of code words of the ith component code. Moreover, the positions indicated by specially marked line numbers form error chains having a codeword configuration. They should be chosen as the most probable chains of localized errors.
В качестве оптимального вектора коррекции выбирают ту группу локализованных ошибок, которая имеет нулевые и условно нулевые синдромы для всех кодовых слов компонентных кодов и имеет наименьший вес.The group of localized errors that has zero and conditionally zero syndromes for all codewords of component codes and has the smallest weight is chosen as the optimal correction vector.
И в завершении процесса декодирования кодового слова каскадного кода инвертируются те элементы его систематической части, номера которых соответствуют позициям ненулевых элементов в векторе коррекции.And at the end of the decoding process of the cascading codeword, those elements of its systematic part are inverted whose numbers correspond to the positions of nonzero elements in the correction vector.
В том случае, когда в качестве компонентных кодов каскадного кода используют «расширенные» циклические коды для декодирования с «жестким» решением, предлагается вариант способа, описанного выше, в котором перед вычислением расширенных синдромов в кодовых словах компонентных кодов удаляют элемент расширения.In the case when “extended” cyclic codes for decoding with a “hard” solution are used as component codes of the cascade code, a variant of the method described above is proposed in which the extension element is removed in the code words of the component codes before calculating the extended syndromes.
В том случае, когда в качестве компонентных кодов каскадного кода используют «укороченные» циклические коды для декодирования с «жестким» решением предлагаются варианты способов, описанные выше, в которых перед декодированием в начало каждого кодового слова «укороченного» компонентного кода добавляют нулевые элементы, количество которых равно величине укорочения. Причем, очевидно, что добавленные в начало нулевые позиции не могут быть искажены в канале связи, так как они по нему не передавались. Этот факт позволяет сократить количество локализованных ошибок, что приводит к уменьшению вычислительной сложности декодирования.In the case when “shortened” cyclic codes are used as component codes of the cascade code for decoding with a “hard” solution, the methods described above are proposed in which zero elements are added to the beginning of each code word of the “shortened” component code, number which is equal to the value of shortening. Moreover, it is obvious that the zero positions added to the beginning cannot be distorted in the communication channel, since they were not transmitted through it. This fact reduces the number of localized errors, which leads to a decrease in the computational complexity of decoding.
В том случае, когда каскадный код декодируется с «мягким» решением предлагаются варианты способов, описанных выше, в которых для локализованной ошибки еm вычисляют модифицированную метрику vm для всех кодовых слов компонентных кодов, в которые попадают элементы локализованной ошибки em:In the case when the cascade code is decoded with a “soft” solution, variants of the methods described above are proposed in which, for the localized error e m, the modified metric v m is calculated for all codewords of the component codes into which the elements of the localized error e m fall:
илиor
где p(yj/bj,c) - условная вероятность того, что на выходе демодулятора получена величина yj при передаче по каналу связи на j-ой позиции кодового слова компонентного кода элемента с, который для двоичного кода может принимать значение 0 или 1,where p (y j / b j, c ) is the conditional probability that the value y j is obtained at the output of the demodulator when transmitting through the communication channel at the jth position the code word of the component code of element c, which for the binary code can take the value 0 or one,
еi,j - элемент локализованной ошибки, исказивший j-тый элемент кодового слова i-го компонентного кода.e i, j is a localized error element that has distorted the j-th element of the codeword of the i-th component code.
Модифицированная метрика является отношением общепринятой метрики [1-3] i-го кодового слова к метрике принятого из канала связи с «жестким» решением искаженного кодового слова. Корректируются те элементы принятого с «жестким» решением искаженного кодового слова каскадного кода, которые заданы альтернативной группой локализованных ошибок с максимальной метрикой vm и которая обнуляет все компонентные коды каскадного кода.The modified metric 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. Those elements of the cascaded code received with a “hard” solution are corrected that are specified by an alternative group of localized errors with a maximum metric v m and which resets all component codes of the cascade code.
В том случае, когда декодируется с «мягким» решением каскадный код с «укороченными» компонентными кодами, предлагается вариант способа, описанного выше, в котором перед декодированием в начало «укороченных» кодовых слов компонентных кодов добавляют нулевые элементы, количество которых равно величине укорочения, с условными вероятностями p(yj/bj,0)=1 и p(yj/bj,1)=0.In the case when a cascade code with “shortened” component codes is decoded with a “soft” solution, a variant of the method described above is proposed, in which, before decoding to the beginning of the “shortened” code words of the component codes, zero elements are added, the number of which is equal to the shortening value, with conditional probabilities p (y j / b j, 0 ) = 1 and p (y j / b j, 1 ) = 0.
Предлагаемые технические решения позволяют решить задачу оптимального синдромного декодирования каскадного кода с последовательным соединением через перемежитель циклических линейных блочных кодов как с «жестким», так и с «мягким» решениями с меньшей вычислительной и аппаратной сложностью, чем известные декодеры [1-5]. Кроме того, предлагаемый способ может быть применен также при синдромном декодировании как с «жестким», так и с «мягким» решением турбо-кодов с компонентными циклическими линейными блочными кодами.The proposed technical solutions allow us to solve the problem of optimal syndromic decoding of a cascade code with serial connection through an interleaver of cyclic linear block codes with both hard and soft solutions with less computational and hardware complexity than known decoders [1-5]. In addition, the proposed method can also be applied in syndromic decoding with both “hard” and “soft” solutions of turbo codes with component cyclic linear block block codes.
Изобретение поясняется чертежом (фиг.2), на котором изображена структурная схема оптимального синдромного декодера каскадного кода с последовательным соединением через перемежитель циклических линейных блочных кодов.The invention is illustrated in the drawing (figure 2), which shows a structural diagram of an optimal syndromic decoder cascade code with a serial connection through an interleaver of cyclic linear block codes.
Синдромный декодер каскадного кода с последовательным соединением через перемежитель циклических линейных блочных кодов содержит: блок вычисления расширенного синдрома 20, блок поиска ненулевого элемента 40, блок формирования номеров строк 60, блок хранения таблицы 80, 1-й блок поиска цепочек локализованных ошибок 100, 2-й блок поиска цепочек локализованных ошибок 120, блок хранения локализованных ошибок 140, блок формирования альтернативных групп локализованных ошибок 160, 3-й блок поиска цепочек локализованных ошибок 180, блок выбора вектора коррекции 200, блок формирования декодированной информации 220.A cascade code syndromic decoder with serial connection through an interleaver of cyclic linear block codes contains: an extended
Блок вычисления расширенного синдрома 20 предназначен для вычисления расширенных синдромов кодовых слов компонентных кодов каскадного кода sr (u) по формуле sr (u)=(br (u)⊕er (u))×Нn,n.The extended
Блок поиска ненулевого элемента 40 предназначен для определения позиции N любого ненулевого элемента расширенного синдрома sr (u). Он может быть реализован в виде сдвигового регистра, у которого анализируется старший разряд на наличие 0. В этом случае в сдвиговый регистр заносится текущий синдром sr (u) и выполняются его сдвиги в сторону старшего разряда до тех пор, пока в нем не появится ненулевой элемент. Количество сдвигов является номером позиции одного из ненулевых элементов N, которое фиксируется счетчиком.The non-zero
Блок формирования номеров строк 60 предназначен для определения номеров строк расширенной проверочной матрицы Нn,n, у которых один из ненулевых элементов расположен на позиции N. Блок 60 может быть выполнен в виде сдвигового регистра, у которого анализируется старший разряд на наличие 0, и счетчиков номеров строк, количество которых равно w (количество ненулевых коэффициентов проверочного многочлена h(x)). В сдвиговый регистр заносится N-й столбец расширенной проверочной матрицы Нn,n, который сдвигается в сторону старшего разряда до тех пор, пока он не обнулится. Счетчики номеров строк подсчитывают количество сдвигов и при появлении ненулевого элемента в старшем разряде регистра сдвига последовательно отключаются. При обнулении регистра сдвига номера искомых строк расширенной проверочной матрицы соответствуют состояниям счетчиков.The block for generating
Блок хранения таблицы 80 предназначен для хранения расширенных синдромов sr (u) и соответствующих им векторов HNr (u), в которых указаны номера строк расширенной проверочной матрицы Нn,n, принимавших участие в формировании синдрома sr (u), а при декодировании с «мягким» решением и метрик vr,u. Блок 80 представляет собой оперативное запоминающее устройство, у которого каждая строка состоит из двух (трех) полей для хранения текущих векторов sr (u), HNr (u), а при декодировании с «мягким» решением и метрики vr,u.The storage unit of table 80 is designed to store the expanded syndromes s r (u) and the corresponding vectors HN r (u) , which indicate the row numbers of the extended check matrix H n, n that took part in the formation of the syndrome s r (u) , and when soft decision decoding and metrics v r, u .
1-й блок поиска цепочек локализованных ошибок 100 предназначен для поиска локализованных ошибок в кодовом слове каскадного кода, которые начинаются с однократной ошибки в кодовых словах i-го компонентного кода, в соответствии с действиями, которые предусмотрены для 1 этапа поиска локализованных ошибок предложенного способа.The 1st block of searching for chains of
2-й блок поиска цепочек локализованных ошибок 120 предназначен для поиска локализованных ошибок в кодовом слове каскадного кода, которые начинаются с двукратной ошибки в кодовых словах i-го компонентного кода, в соответствии с действиями, которые предусмотрены для 2 этапа поиска локализованных ошибок предложенного способа.The 2nd block of searching for chains of
Блок хранения локализованных ошибок 140 предназначен для хранения локализованных ошибок em и соответствующих им векторов позиций условно нулевых синдромов Nm. Блок 160 может быть реализован в виде оперативного запоминающего устройства, у которого каждая строка состоит из двух (трех) полей для хранения локализованных ошибок em и векторов Nm, а при декодировании с «мягким» решением и метрики vm.The localized
Блок формирования альтернативных групп локализованных ошибок 160 предназначен для выявления и удаления повторяющихся ошибок, выявления пересекающихся локализованных ошибок и формирования альтернативных групп локализованных ошибок, в которых пересекающиеся ошибки разносятся в различные группы. Блок 160 может быть реализован в виде спецвычислителя для определения повторяющихся и пересекающихся локализованных ошибок, содержащего оперативное запоминающее устройство, у которого каждая строка состоит из двух (трех) полей для хранения групп локализованных ошибок, количества условно нулевых расширенных синдромов, соответствующих каждой группе, а при декодировании с «мягким» решением и метрики для каждой из групп.The block for generating alternative groups of
3-й блок поиска цепочек локализованных ошибок 180 предназначен для поиска локализованных ошибок, имеющих конфигурацию кодовых слов i-го компонентного кода, для каждой альтернативной группы локализованных ошибок, сформированных на втором этапе, в соответствии с действиями, которые предусмотрены для 3 этапа поиска локализованных ошибок предложенного способа.The 3rd block of searching for
Блок выбора вектора коррекции 200 предназначен для определения оптимального вектора коррекции искаженного каскадного кода.The correction
Блок формирования декодированной информации 220 предназначен для инвертирования элементов в систематической части кодового слова каскадного кода, которые указаны в векторе коррекции, и передачи на выход декодера откорректированной систематической части кодового слова каскадного кода.The unit for generating decoded
Предлагаемое устройство работает следующим образом.The proposed device operates as follows.
Принятое, возможно искаженное в канале связи, кодовое слово (b⊕eкс) поступает с выхода канала связи (демодулятора) по шине 10 на блок вычисления расширенного синдрома 20, а по шине 11 на блок формирования декодированной информации 220.The received, possibly distorted in the communication channel, code word (b⊕e ks ) is received from the output of the communication channel (demodulator) via
Если все вычисленные синдромы в блоке вычисления расширенного синдрома кодовых слов компонентных кодов 20 равны нулю, то кодовое слово каскадного кода не искажено и информация об этом передается по шине 32 в блок формирования декодированной информации 220, в котором выделяется систематическая часть кодового слова и по шине 230 поступает на выход декодера. На этом процесс декодирования кодового слова заканчивается.If all the syndromes calculated in the extended codeword syndrome calculation unit for
Если же хотя бы один из расширенных синдромов кодовых слов компонентных кодов не является нулевым вектором, то по шине 31 он поступает в блок хранения таблицы 80, а по шине 30 в блок поиска ненулевого элемента 40, в котором определяется любая ненулевая позиция расширенного синдрома и по шине 50 передается в блок формирования номеров строк 60.If at least one of the extended syndromes of the code words of the component codes is not a zero vector, then via
Блок формирования номеров строк 60 находит номера тех строк расширенной проверочной матрицы, которые содержат ненулевой элемент в позиции, полученной по шине 50. Сформированный вектор с номерами строк расширенной проверочной матрицы передается по шине 70 в блок хранения таблицы 80.The line
По завершении вычисления расширенных синдромов для всех кодовых слов компонентных кодов и занесения их вместе со своими векторами с номерами строк расширенной проверочной матрицы в блок хранения таблицы 80 запускается 1-ый блок поиска цепочек локализованных ошибок 100.Upon completion of the calculation of extended syndromes for all codewords of component codes and entering them together with their vectors with row numbers of the extended verification matrix in the storage unit of table 80, the first block for searching for chains of
1-й блок поиска цепочек локализованных ошибок 100 последовательно считывает по шине 90 расширенные синдромы кодовых слов одного из компонентных кодов и выполняет последовательность действий, которые предусматривает 1 этап поиска локализованных ошибок, изложенный в предложенном выше способе. В результате выявляются локализованные ошибки в кодовом слове каскадного кода, которые начинаются с однократной ошибки в кодовых словах выбранного компонентного кода, которые с вектором позиций условно нулевых расширенных синдромов данной локализованной ошибки передаются по шине 110 в блок хранения локализованных ошибок 140. После того как будет завершен просмотр всех расширенных синдромов кодовых слов выбранного компонентного кода, запускается 2-ой блок поиска цепочек локализованных ошибок 120.The 1st block of searching for chains of
2-й блок поиска цепочек локализованных ошибок 120 последовательно считывает по шине 91 расширенные синдромы кодовых слов выбранного компонентного кода и выполняет последовательность действий, которые предусматривает 2-ой этап поиска локализованных ошибок, изложенный в предложенном выше способе. В результате выявляются локализованные ошибки в кодовом слове каскадного кода, которые начинаются с двукратной ошибки в кодовых словах выбранного компонентного кода. Локализованные ошибки вместе с вектором позиций условно нулевых расширенных синдромов передаются по шине 130 в блок хранения локализованных ошибок 140. После того как будет завершен просмотр всех расширенных синдромов кодовых слов выбранного компонентного кода, запускается блок формирования альтернативных групп локализованных ошибок 160.The 2nd block of searching for chains of
Блок формирования альтернативных групп локализованных ошибок 160 по шине 150 последовательно просматривает локализованные ошибки, хранящиеся в блоке хранения локализованных ошибок 140, удаляет повторяющиеся локализованные ошибки и формирует альтернативные группы локализованных ошибок с учетом того, что найденные пересекающиеся ошибки должны входить в различные группы. Для каждой группы локализованных ошибок в блоке 160 вычисляется количество условно нулевых синдромов и их позиции, которые вместе со своей группой локализованных ошибок сохраняются в запоминающем устройстве блока 160..The block for generating alternative groups of
По завершении формирования альтернативных групп локализованных ошибок запускается 3-ий блок поиска цепочек локализованных ошибок 180. 3-ий блок поиска цепочек локализованных ошибок 180 последовательно считывает по шине 170 из блока формирования альтернативных групп локализованных ошибок 160 группы локализованных ошибок. Для каждой группы локализованных ошибок модифицируется таблица синдромов, поступающая по шине 92 из блока хранения таблицы 80, с учетом условно нулевых синдромов и выполняет последовательность действий, которую предусматривает 3-ий этап поиска локализованных ошибок, изложенный в предложенном выше способе. В результате выявляются локализованные ошибки, которые имеют конфигурацию кодовых слов, в кодовых словах выбранного компонентного кода. Вновь полученные локализованные ошибки включаются в группу и вместе с количеством условно нулевых синдромов по шине 190 возвращаются в блок формирования альтернативных групп локализованных ошибок 160.Upon completion of the formation of alternative groups of localized errors, the third block for searching for chains of
После того как будет завершен просмотр всех групп локализованных ошибок, запускается блок выбора вектора коррекции 200, который по шине 171 последовательно считывает группы локализованных ошибок и выбирает при декодировании с «жестким» решением ту, которая содержит все нулевые и условно нулевые синдромы кодовых слов компонентных кодов и имеет наименьший вес. Далее выбранная группа локализованных ошибок по шине 210 поступает в блок формирования декодированной информации 220, в котором инвертируются те элементы в систематической части кодового слова каскадного кода, которые указаны в локализованной группе ошибок. Откорректированная систематическая часть кодового слова каскадного кода по шине 230 поступает на выход декодера.After the viewing of all groups of localized errors has been completed, a block for selecting a
Для декодирования каскадного кода с «укороченными» кодовыми словами компонентных кодов другим конструктивным вариантом является модификация блока вычисления расширенного синдрома 20, в котором перед вычислением расширенных синдромов «укороченных» кодовых слов компонентных кодов sr (u) в начало каждого кодового слова добавляют нулевые элементы (при декодировании с «мягким» решением с условными вероятностями p(yj/bj,0)=1 и р(yj/bj,1)=0), количество которых равно величине укорочения кода. Кроме того, в 1-м блоке поиска цепочек локализованных ошибок 100, во 2-м блоке поиска цепочек локализованных ошибок 120 и в 3-м блоке поиска цепочек локализованных ошибок 180, учитывается тот факт, что локализованная ошибка не может содержать позиции элементов, добавленных в блоке 20. Данное конструктивное решение позволяет не только декодировать каскадные коды с «укороченными» компонентными кодами, но и повысить быстродействие декодера.For decoding a cascade code with "shortened" code words of component codes, another design option is to modify the
Для декодирования каскадного кода с «расширенными» кодовыми словами компонентных кодов другим конструктивным вариантом является модификация блока вычисления расширенного синдрома 20, в котором перед вычислением расширенных синдромов кодовых слов компонентных кодов sr (u) удаляют последний элемент (элемент расширения или элемент четности кодового слова) в кодовых словах «расширенных» компонентных кодах. При декодировании с «жестким» решение данный элемент более ни в одном из блоков не учитывается. При декодировании с «мягким» решением условные вероятности элемента расширения используются при вычислении метрик в блок формирования альтернативных групп локализованных ошибок 160. Данное конструктивное решение позволяет декодировать каскадные коды с «расширенными» компонентными кодами.To decode a cascade code with “extended” code words for component codes, another design option is to modify the extended
Для декодирования каскадного кода с «мягким» решением другим конструктивным вариантом является модификация блока вычисления расширенного синдрома 20, который перед вычислением расширенных синдромов компонентных кодов формирует кодовое слово каскадного кода с «жестким» решением. В 1-м блоке поиска цепочек локализованных ошибок 100, во 2-м блоке поиска цепочек локализованных ошибок 120 и в 3-м блоке поиска цепочек локализованных ошибок 180, в первую очередь рассматривают наименее достоверные позиции кодовых слов компонентных кодов, что приведет к повышению быстродействия декодера. В блоке формирования альтернативных групп локализованных ошибок 160 вычисляют метрику для каждой альтернативной группы локализованных ошибок, которая является суммой метрик кодовых слов компонентных кодов, искаженных данной группой локализованных ошибок. В блоке выбора вектора коррекции 200 в качестве оптимального вектора ошибки выбирается та группа локализованных ошибок, которая имеет максимальную метрику и имеет все нулевые или условно нулевые синдромы.For decoding a cascade code with a “soft” solution, another constructive option is to modify the extended
Реализация описанного устройства может быть аппаратной, программной или аппаратно-программной и использоваться как для двоичных, так и q-ичных кодов.The implementation of the described device 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 cascade code with serial connection through an interleaver of cyclic linear block codes is to increase the reliability (quality) of decoding with a “soft” solution, increase its speed, reduce hardware complexity and reduce decoding delay time compared to known decoders [1- 3], in addition, it is an optimal decoding method with both a “hard” and a “soft” solution. The proposed syndromic decoder with both a “hard” and a “soft” solution can be successfully applied for decoding turbo codes with component cyclic linear block block codes.
Список литературыBibliography
1. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение: Пер. с англ. В.Б.Афанасьева. - М.: Техносфера, 2005. - 320 с.1. Morelos-Zaragoza R. The art of error-correcting coding. Methods, Algorithms, Application: Per. from English V.B.Afanasyeva. - M .: Technosphere, 2005 .-- 320 p.
2. Витерби А.Д., Омура Дж.К. Принципы цифровой связи и кодирования: Пер. с англ. - М.: Радио и связь, 1982.2. Viterbi A.D., Omura J.K. The principles of digital communication and coding: Per. from English - M.: Radio and Communications, 1982.
3. Мак-Вильямс Ф.Дж., Слоэн Н.Дж.А. Теория кодов, исправляющих ошибки: Пер. с англ. - М.: Связь, 1979.3. Mc-Williams F.J., Sloan N.J.A. Theory of error correction codes: Per. from English - M.: Communication, 1979.
4. Карташевский В.Г., Мишин Д.В. Прием кодированных сигналов в каналах с памятью. - М.: Радио и связь, 2004.4. Kartashevsky V.G., Mishin D.V. Reception of encoded signals in channels with memory. - M .: Radio and communications, 2004.
5. Золотарев В.В., Овечкин Г.В. Помехоустойчивое кодирование. Методы и алгоритмы: Справочник./Под ред. чл. кор. РАН Ю.Б.Зубарева. - М.: Горячая линия. - Телеком, 2004.5. Zolotarev VV, Ovechkin G.V. Robust coding. Methods and Algorithms: Reference. / Ed. tsp box RAS Yu.B. Zubarev. - M .: Hot line. - Telecom, 2004.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006141315/09A RU2340091C2 (en) | 2006-11-23 | 2006-11-23 | Method of decoding serial cascade code (versions) |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006141315/09A RU2340091C2 (en) | 2006-11-23 | 2006-11-23 | Method of decoding serial cascade code (versions) |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2006141315A RU2006141315A (en) | 2008-06-10 |
RU2340091C2 true RU2340091C2 (en) | 2008-11-27 |
Family
ID=39580863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2006141315/09A RU2340091C2 (en) | 2006-11-23 | 2006-11-23 | Method of decoding serial cascade code (versions) |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2340091C2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2485683C1 (en) * | 2012-04-02 | 2013-06-20 | Открытое акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" | Decoding device with soft decisions for double-stage cascade code |
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 |
-
2006
- 2006-11-23 RU RU2006141315/09A patent/RU2340091C2/en not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2485683C1 (en) * | 2012-04-02 | 2013-06-20 | Открытое акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" | Decoding device with soft decisions for double-stage cascade code |
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 |
Also Published As
Publication number | Publication date |
---|---|
RU2006141315A (en) | 2008-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4868828A (en) | Architecture for time or transform domain decoding of reed-solomon codes | |
US6751770B2 (en) | Decoder for iterative decoding of binary cyclic codes | |
US9214958B2 (en) | Method and decoder for processing decoding | |
US5440570A (en) | Real-time binary BCH decoder | |
US8458560B2 (en) | Systems and methods for efficient parallel implementation of burst error correction codes | |
US5657331A (en) | Method and apparatus for the generation of simple burst error correcting cyclic codes for use in burst error trapping decoders | |
US5430739A (en) | Real-time Reed-Solomon decoder | |
JP2002526965A (en) | Turbo product code decoder | |
US20030188253A1 (en) | Method for iterative hard-decision forward error correction decoding | |
KR20040101743A (en) | Apparatus and method for decoding of ldpc in a communication system | |
WO2007034870A1 (en) | Decoding device, and receiving device | |
US10439643B2 (en) | Reed-Solomon decoders and decoding methods | |
US8631307B2 (en) | Method for encoding and/or decoding multimensional and a system comprising such method | |
RU2340091C2 (en) | Method of decoding serial cascade code (versions) | |
Yathiraj et al. | Implementation of BCH code (n, k) encoder and decoder for multiple error correction control | |
RU2340088C2 (en) | Syndrome decoding method of decoding recurrent code (versions) | |
US20150007000A1 (en) | Additional Error Correction Apparatus and Method | |
EP0329775B1 (en) | High bandwidth reed-solomon encoding, decoding and error correcting circuit and method | |
RU2485683C1 (en) | Decoding device with soft decisions for double-stage cascade code | |
RU2450464C1 (en) | Code frame synchronisation apparatus with integrated soft and hard decisions | |
RU2340090C2 (en) | Method of decoding turbo-code (versions) | |
US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes | |
EP4205284A1 (en) | Staircase polar encoding and decoding | |
RU2428801C1 (en) | Device of code cycle synchronisation with soft decisions | |
Farrell | Code structure and decoding complexity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20091124 |