RU2365034C2 - Method and device for data coding and decoding - Google Patents
Method and device for data coding and decoding Download PDFInfo
- Publication number
- RU2365034C2 RU2365034C2 RU2007108784/09A RU2007108784A RU2365034C2 RU 2365034 C2 RU2365034 C2 RU 2365034C2 RU 2007108784/09 A RU2007108784/09 A RU 2007108784/09A RU 2007108784 A RU2007108784 A RU 2007108784A RU 2365034 C2 RU2365034 C2 RU 2365034C2
- Authority
- RU
- Russia
- Prior art keywords
- code
- model matrix
- code length
- matrix
- values
- Prior art date
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF THE INVENTION
Настоящее изобретение в целом относится к кодированию и декодированию данных, а в частности к способу и устройству для кодирования данных, использующему коды с контролем по четности низкой плотности (LDPC).The present invention generally relates to encoding and decoding data, and in particular, to a method and apparatus for encoding data using low density parity check (LDPC) codes.
УРОВЕНЬ ТЕХНИКИBACKGROUND
Код с контролем по четности низкой плотности (LDPC) является кодом линейных блоков, заданным проверочной матрицей H. В общем случае LDPС-код определен на поле Галуа GF(q), q≥2. Если q=2, код является бинарным кодом. Все коды линейных блоков могут быть описаны как произведение k-битного информационного вектора The Low Density Parity Check (LDPC) code is a linear block code defined by the check matrix H. In the general case, the LDPC code is defined on the Galois field GF ( q ), q ≥2 . If q = 2, the code is a binary code. All linear block codes can be described as the product of a k- bit information vector
s 1×k на кодогенерирующую матрицу Gk×n для порождения n-битовой кодовой комбинации x 1×n, где кодовая скорость равна r=k/n. Кодовая комбинация x передается через канал с помехами, и принятый вектор y сигнала передается на декодер для оценки вектора s 1×k информации. s 1 × k per code-generating matrix G k × n to generate an n-bit code combination x 1 × n , where the code rate is r = k / n. The code pattern x is transmitted through the interference channel, and the received signal vector y is transmitted to the decoder to estimate the information vector s 1 × k .
При заданном n-мерном пространстве строки G охватывают k-мерное подпространство C кодовых комбинаций, а строки проверочной матрицы H m×n , охватывают m-мерное дуальное пространство C┴, где m=n-k. Поскольку x=sG и GH T =0, следует, что xH T =0 для всех кодовых комбинаций в подпространстве С, где “T” (или "T") обозначает транспонирование матрицы. При обсуждении LDPС-кодов в общем написано, чтоFor a given n-dimensional space, the rows comprise G k -dimensional subspace of C codewords and the rows of the check matrix H m × n, include m-dimensional dual space C ┴, where m = nk. Since x = sG and GH T = 0 , it follows that xH T = 0 for all code combinations in the subspace C , where “T” (or “ T ”) denotes the transposition of the matrix. When discussing LDPC codes, it is generally written that
Hx T =0 T (1), Hx T = 0 T (1),
где 0 - вектор-строка из нулей, и кодовая комбинация where 0 is a string vector of zeros and the code combination
x =[s р]=[s 0 , s 1 ,...s k-1 ,p 0 ,p 1 ,...,p m-1], где p 0 ,...,p m-1 являются контрольными битами; а s 0 ,..,s k-1 являются систематическими битами, равными информационным битам в информационном векторе. x = [ s p ] = [ s 0 , s 1 , ... s k-1 , p 0 , p 1 , ..., p m-1 ] , where p 0 , ..., p m-1 are control bits; and s 0 , .., s k-1 are systematic bits equal to the information bits in the information vector.
Для LDPС-кода плотность ненулевых позиций в H низкая, т.е. существует только маленькая доля 1 в H, позволяющая лучшую эффективность корректировки ошибок и более простое декодирование, чем использование плотного H. Проверочная матрица может быть также описана двудольным графом. Двудольный граф является не только графическим описанием кода, но также моделью декодера. В двудольном графе бит кодовой комбинации (следовательно, каждой колонки H) представлен переменной вершиной слева, и каждое проверочное уравнение (следовательно, каждая строка H) представлено проверочной вершиной справа. Каждая переменная вершина соответствует колонке H, и каждая проверочная вершина соответствует строке H, здесь “переменная вершина” и “колонка” H упоминаются взаимозаменяемо, как и “проверочная вершина” и “строка” H. Переменные вершины являются присоединенными только к проверочным вершинам, и проверочные вершины являются присоединенными только к переменным вершинам. Для кода с n битами кодовой комбинации и m битами четности переменная вершина v i присоединена к проверочной вершине d посредством ребра, если бит i кодовой комбинации участвует в проверочном уравнении j, i=0,1...,n-1, j=0,1,...,m-l. Другими словами, переменная вершина i присоединена к проверочной вершине j, если позиция h ji проверочной матрицы H равна 1. Отображающее уравнение (1), переменная вершина представляет допустимую кодовую комбинацию, если все проверочные вершины имеют равную четность. Ниже показан пример для иллюстрирования отношения между проверочной матрицей, проверочными уравнениями и двудольным графом. Пусть n=12, код Ѕ скорости будет определен посредствомFor the LDPC code, the density of nonzero positions in H is low, i.e. there is only a small fraction of 1 in H , allowing better error correction efficiency and easier decoding than using dense H. The verification matrix can also be described by a bipartite graph. A bipartite graph is not only a graphical description of the code, but also a decoder model. In the bipartite graph, the bits of the code combination (therefore, of each column H ) are represented by a variable vertex on the left, and each verification equation (therefore, each row of H ) is represented by a verification vertex on the right. Each variable vertex corresponds to column H, and each verification vertex corresponds to row H ; here, “variable vertex” and “column” H are referred to interchangeably, as are “verification vertex” and “row” H. Variable vertices are only attached to test vertices, and test vertices are attached only to variable vertices. For a code with n bits of a code combination and m parity bits, the variable vertex v i is attached to the verification vertex d by an edge if bit i of the code combination participates in the verification equation j, i = 0,1 ..., n- 1 , j = 0 , 1, ..., m -l. In other words, the variable vertex i is attached to the verification vertex j if the position h ji of the verification matrix H is 1. Displaying equation (1), the variable vertex represents a valid code combination if all the verification vertices have equal parity. An example is shown below to illustrate the relationship between a check matrix, test equations, and a bipartite graph. Let n = 12, the speed code Ѕ will be determined by
с левой частью, соответствующей k (=6) информационным битам s , левой частью соответствующей m (=6) битами p четности. Применяя (1), H в (2) определяет 6 проверочных уравнений следующим образом:with the left side corresponding to k (= 6) information bits s , the left side corresponding to m (= 6) parity bits p . Applying (1), H in (2) defines 6 verification equations as follows:
H также имеет соответствующий двудольный граф, показанный на фиг. 1. H also has a corresponding bipartite graph shown in FIG. one.
Двудольный граф LDPC кода подходящей конечной длины неизбежно имеет циклы. Цикл длины 2d (обозначенный как цикл-2d) является путем 2d ребер, который проходит через d переменных вершин и d проверочных вершин и соединяет каждую вершину с собой без повторения каждого ребра. Короткие циклы, особенно циклы 4, ухудшают производительность итеративного декодера и обычно избегаются в модели кода.A bipartite graph of LDPC code of suitable finite length inevitably has cycles. A cycle of length 2 d (designated as cycle-2 d ) is a path of 2 d edges that goes through d variable vertices and d test vertices and connects each vertex to itself without repeating each edge. Short loops, especially
Когда размер кода становится большим, трудно закодировать и декодировать беспорядочно составленный LDPС-код. Вместо прямого построения большой m×n псевдослучайной матрицы H структурированная модель LDPC начинается с маленькой m b ×n b базовой матрицы Нb, делает z копий Нb и соединяет z копий для формирования большой m×n матрицы H, где m=m b ×z, n=n b ×z. Используя матричное представление, для построения H из Нb каждая 1 в Нb заменяется z×z подматрицей перестановок, и каждый 0 в Нb заменяется z×z подматрицей, состоящей из нулей. Показано, что перестановка может быть очень простой без риска для производительности. Например, простой циклический сдвиг вправо, где подматрица перестановок получается сдвигом циклически вправо колонок единичной матрицы на заданную величину, может быть использован без ухудшения производительности декодирования. Так как циклический сдвиг (x mod z) раз эквивалентен циклическому правому сдвигу ((z-х) mod z) раз, этот текст обсуждает только циклический сдвиг вправо и упоминает его как циклический сдвиг для краткости. С этим ограничением каждая матрица H может быть уникально представлена m b ×n b модельной матрицей When the code size becomes large, it is difficult to encode and decode randomly composed LDPC code. Instead of directly constructing a large m × n pseudo-random matrix H, the structured LDPC model starts with a small m b × n b base matrix H b , makes z copies of H b and connects z copies to form a large m × n matrix H , where m = m b × z , n = n b × z. Using the matrix representation, to construct H from H b, every 1 in H b is replaced by a z × z submatrix of permutations, and every 0 in H b is replaced by a z × z submatrix of zeros. It has been shown that permutation can be very simple without risking performance. For example, a simple cyclic shift to the right, where the permutation submatrix is obtained by shifting the columns of the unit matrix by the specified value cyclically to the right, can be used without sacrificing decoding performance. Since the cyclic shift (x mod z ) times is equivalent to the cyclic right shift (( z-x ) mod z ) times, this text only discusses the right cyclic shift and refers to it as a cyclic shift for short. With this limitation, each matrix H can be uniquely represented by an m b × n b model matrix
Нbm, которая получается заменой каждой h ij =0 в H b на p(i,j)=-1 для обозначения z×z матрицы из нулей и заменой каждой h ij=1 в Нb на циклический сдвиг величины p(i,j)≥0.H bm , which is obtained by replacing each h ij = 0 in H b with p (i, j) = -1 to denote the z × z matrix of zeros and replacing each h ij = 1 in H b with a cyclic shift of p (i, j) ≥0.
Следовательно, вместо использования расширенной матрицы H код уникально определяется модельной матрицей Нbm. Кодирование и декодирование может быть выполнено на основе много меньшей m b ×n b Нbm и векторов битов, с каждым вектором, имеющим размер z. Therefore, instead of using the extended matrix H, the code is uniquely determined by the model matrix H bm. Encoding and decoding can be performed based on a much smaller m b × n b H bm and bit vectors, with each vector having size z.
Эта процедура по существу отображает каждое ребро H bm в векторное ребро размера z в H (представленное p(i,j) H bm), каждую переменную вершину H bm в векторную переменную вершину длины z в H (соответствующую колонке Н bm) и каждую проверочную вершину Н bm в векторную вершину длины z в H (соответствующую строке H bm). В структурированной модели произвольность встроена в H вследствие двух этапов: (a) псевдослучайной базовой матрице H bm; (b) псевдослучайного сдвига ребер в каждом векторном ребре. Сложность хранения и обработки структурированной модели ниже, поскольку обе стадии рандомизации очень простые.This procedure essentially maps each edge H bm to a vector edge of size z in H (represented by p (i, j) H bm ), each variable vertex H bm to a vector variable vertex of length z in H (corresponding to column H bm ) and each test a vertex H bm to a vector vertex of length z in H (corresponding to the row H bm ). In a structured model, randomness is embedded in H due to two steps: (a) a pseudo-random base matrix H bm ; (b) pseudo-random shift of the edges in each vector edge. The complexity of storing and processing a structured model is lower, since both stages of randomization are very simple.
Часто требуются системы, такие как определенные в стандарте IEEE 802.16, для предоставления корректирующих ошибки кодов для семейства кодов размера (n f, k f ), где все коды в семействе имеют одинаковую кодовую скорость R=k f /n f и размер кода, увеличенный от базовой величины, n f = z f ×n b , k f =z f ×k b , f=0, 1,...,f max, где (f max+1) является общим количеством членов в семействе кодов, и zf является коэффициентом расширения для f-го кода в семействе. Для этих систем возможно получить коды для всех (nf, k f ) из одной базовой матрицы H b и набора подходящих z f. Пусть p(f,i,j) будет величиной сдвига векторного ребра, расположенного в позиции (i,j) в f-й модельной матрице H bm(f) коэффициента z f расширения. Соответственно, набор {p(f,i,j)} величин сдвигов и модельная матрица H bm (f) могут быть упоминаемы взаимозаменяемо.Often systems, such as those defined in the IEEE 802.16 standard, are required to provide error-correcting codes for a code family of size ( n f , k f ), where all codes in the family have the same code speed R = k f / n f and code size increased of the base value, n f = z f × n b , k f = z f × k b , f = 0, 1, ..., f max , where ( f max +1) is the total number of members in the code family, and z f is the expansion coefficient for the fth code in the family. For these systems, it is possible to obtain codes for all (n f , k f ) from one basic matrix H b and a set of suitable z f . Let p (f, i, j) is the magnitude of the shift vector edge located at a position (i, j) in the f th model matrix H bm (f) z f expansion coefficient. Accordingly, the set { p (f, i, j) } of shift values and the model matrix H bm (f) can be referred to interchangeably.
Тем не менее не понятно, как определять величины p(f,i,j) сдвигов для каждой H bm(f). Одним способом определения семейства кодов является поиск базовой матрицы H b и/или p(f,i,j), 0≤i≤m-1, 0≤j≤n-1 независимо для всех заданных f. Тем не менее этот подход требует, чтобы H b и/или p(f,i,j), 0≤i≤m-1, 0≤j≤n-1 были заданы и сохранены для всех f. Nevertheless, it is not clear how to determine the values of p (f, i, j) shifts for each H bm ( f ). One way to determine a family of codes is to search for the base matrix H b and / or p (f, i, j), 0 ≤ i ≤ m-1, 0 ≤ j ≤ n-1 independently for all given f. However, this approach requires that H b and / or p (f, i, j), 0 ≤ i ≤ m-1, 0 ≤ j ≤ n-1, be defined and stored for all f.
Поскольку H b определяет базовую структуру и взаимную связь сообщений LDPC декодера, будет предпочтительным повторно использовать H b для всех кодов семейства. Когда один и тот же H b совместно используется всеми кодами в семействе,Since H b determines the basic structure and interconnection of the LDPC decoder messages, it will be preferable to reuse H b for all family codes. When the same H b is shared by all codes in a family,
- Величина сдвига p(f,i,j)=-1, когда позиция (i,j) H b равна 0. Величина сдвига p(f,i,j)=-1 используется для обозначения z f ×z f полностью нулевой подматрицы, которая используется для замены позиции (i,j) модельной матрицы H bm(f), в расширении до двоичной проверочной матрицы H(f). Если позиция (i,j) H b равна 0, p(f,i,j) одинаково для любого f, т.е. p(f,i,j)≡-1. Заметим, что "-1" является только меткой для подматрицы из нулей, и может быть равнозначно использована любая другая метка, которая не является неотрицательным целым, например "-2" или "∞".- The magnitude of the shift p (f, i, j) = -1 when the position (i, j) H b is 0. The magnitude of the shift p (f, i, j) = -1 is used to denote z f × z f completely zero submatrix, which is used to replace the position (i, j ) of the model matrix H bm ( f ), in extension to the binary verification matrix H ( f ). If the position (i, j) H b is 0, p (f, i, j) is the same for any f , i.e. p (f, i, j) ≡-1. Note that “-1” is only a label for a submatrix of zeros, and any other label that is not a non-negative integer, such as “-2” or “∞”, can be used equally.
- Величина сдвига p(f,i,j)≥0, когда позиция (i,j) H b равна 1. Величина сдвига p(f,i,j)≥0 используется для отметки z j ×z f единичной подматрицы, циклически сдвинутой вправо на p(f,i,j) колонок. Подматрица используется для замены позиции (i,j) модельной матрицы H bm(f) в расширении до двоичной проверочной матрицы H(f). Значение p(f,i,j) может быть различным для разных f, например, позиция (i,j) H bm(f) может быть различной для разных f. - The magnitude of the shift p (f, i, j) ≥0 when the position (i, j) H b is 1. The magnitude of the shift p (f, i, j) ≥0 is used to mark z j × z f of the unit submatrix, cyclically shifted to the right by p (f, i, j) columns. The submatrix is used to replace the position (i, j) of the model matrix H bm ( f ) in the extension to the binary verification matrix H ( f ). The value of p (f, i, j) can be different for different f , for example, the position (i, j) H bm ( f ) can be different for different f.
В отношении значения неотрицательного p(f,i,j) предложено использовать для любого p(f,i,j)-p(i,j) mod z f для любого z f, где набор {p(i,j)} величин сдвигов является одинаковым для всех z f . Следовательно, только один набор {p(i,j)} требует определения, и это потенциально уменьшает сложность осуществления кодов различных z f . Тем не менее вследствие действия операции взятия модуля набор {p(i,j)}, предназначенный для того, чтобы избежать плохих моделей циклов для определенного z f, может служить причиной большого количества циклов и кодовых комбинаций с низким весом для другого z f, имеющих следствием ухудшение эффективности корректировки ошибок для некоторых (n f, k f). Regarding the value of non-negative p (f, i, j), it is proposed to use for any p (f, i, j) -p (i, j) mod z f for any z f , where the set { p (i, j) } of quantities shifts is the same for all z f . Therefore, only one set { p (i, j) } needs to be determined, and this potentially reduces the complexity of implementing codes of different z f . Nevertheless, due to the operation of taking the module, the set { p (i, j) }, designed to avoid bad cycle models for a particular z f , can cause a large number of cycles and low-weight code combinations for another z f having the consequence is a deterioration in the efficiency of error correction for some ( n f , k f ) .
Таким образом, существует потребность в способе получения величин сдвигов Thus, there is a need for a method for producing shift values
{p(f, i,j)} из определенного набора {p(i,j)}, в то же время поддерживая требуемые параметры кода для всех размеров кодов (n f, k j ). {p (f, i, j)} from a certain set { p (i, j) }, while at the same time supporting the required code parameters for all code sizes ( n f , k j ) .
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
Фиг. 1 иллюстрирует двудольный граф матрицы H (12, 6).FIG. 1 illustrates the bipartite graph of matrix H (12, 6).
Фиг. 2 - блок-схема кодера.FIG. 2 is a block diagram of an encoder.
Фиг. 3 - блок-схема декодера.FIG. 3 is a block diagram of a decoder.
Фиг. 4 - схема последовательности операций кодера на фиг. 2.FIG. 4 is a flowchart of the encoder of FIG. 2.
Фиг. 5 - схема последовательности операций декодера на фиг. 3.FIG. 5 is a flowchart of the decoder of FIG. 3.
Описание чертежейDescription of drawings
Чтобы направить усилия на вышеупомянутые потребности, базовая модельная матрица определена для наибольшей длины кода для каждой кодовой скорости. Набор сдвигов {p(i,j)} в базовой модельной матрице используется для определения величин сдвигов для всех остальных длин кодов той же кодовой скорости. Величины сдвигов {p(f,i,j)} для размера кода, соответствующего коэффициенту расширения z f выводятся из {p(i,j)} пропорциональным масштабированием p(i,j), и модельная матрица, определенная посредством {p(f,i,j)}, используется для определения битов контроля по четности для f-го кода.In order to direct efforts to the aforementioned needs, a basic model matrix is defined for the largest code length for each code rate. The set of shifts { p (i, j) } in the base model matrix is used to determine the values of shifts for all other code lengths of the same code rate. The values of the shifts { p (f, i, j) } for the code size corresponding to the expansion coefficient z f are derived from { p (i, j) } by proportional scaling p (i, j), and the model matrix defined by { p (f , i, j) }, is used to determine the parity bits for the f-th code.
Настоящее изобретение предлагает способ управления передатчиком, который генерирует биты контроля по четности на основе блока информации. Способ содержит этапы, на которых определяют базовую модельную матрицу, имеющую набор величин сдвигов p(i,j) для наибольшей длины кода, и определяют величины сдвигов p(f,i,j) для всех остальных длин кодов на основе набора величин сдвигов p(i,j), где f - индекс длин кодов, p(f,i,j)=F(p(i,j),z 0 /z f ), z 0 - коэффициент расширения наибольшей длины кода, z f - коэффициент расширения f-й длины кода. Блок информации принимают и модельную матрицу используют для определения битов контроля по четности. Модельную матрицу определяют посредством p(f,i,j). The present invention provides a transmitter control method that generates parity bits based on a block of information. The method comprises the steps of determining a basic model matrix having a set of shift values p (i, j) for the largest code length, and determining the shift values p (f, i, j) for all other code lengths based on a set of shift values p ( i, j) , where f is the code length index, p (f, i, j ) = F ( p ( i, j), z 0 / z f ), z 0 is the expansion coefficient of the longest code length, z f is the coefficient extensions of the fth code length. An information block is received and a model matrix is used to determine the parity bits. The model matrix is determined by p (f, i, j).
Настоящее изобретение дополнительно предлагает устройство, содержащее средства хранения для хранения базовой модельной матрицы, имеющей набор величин сдвигов p(i,j) для наибольшей длины кода. Устройство дополнительно содержит микропроцессор, принимающий блок информации s=(s 0,...,s kf-1 ) и базовую модельную матрицу. Микропроцессор определяет величины сдвигов p(f,i,j) для всех других длин кода на основе набора величин сдвигов p(i,j), где f - индекс длин кодов, The present invention further provides a device comprising storage means for storing a base model matrix having a set of shift values p (i, j) for the largest code length. The device further comprises a microprocessor receiving a block of information s = (s 0 , ..., s kf-1 ) and a basic model matrix. The microprocessor determines the shift values p (f, i, j) for all other code lengths based on the set of shift values p (i, j) , where f is the code length index,
p(f,i,j)=F(p(i,j),z 0 /z f ), z 0 - коэффициент расширения наибольшей длины кода, z f - коэффициент расширения f-й длины кода. Микропроцессор выводит биты контроля по четности на основе модельной матрицы, определенной посредством p(f,i,j) и блока информации p (f, i, j ) = F ( p ( i, j), z 0 / z f ), z 0 is the expansion coefficient of the longest code length, z f is the expansion coefficient of the fth code length. The microprocessor outputs parity bits based on a model matrix defined by p (f, i, j) and an information block
s=(s 0,..., s kf-1). s = ( s 0 , ..., s kf-1 ).
Настоящее изобретение дополнительно предлагает способ управления приемником, который оценивает блок информации s=(s 0 ,...,s k-1). Способ содержит этапы, на которых принимают вектор сигнала, определяют базовую модельную матрицу, имеющую набор величин сдвигов p(i,j) для наибольшей длины кода, и определяют величины сдвигов p(f,i,j) для всех остальных длин кода на основе набора величин сдвигов p(i,j), где f - индекс длин кодов, p(f,i,j) = F(p(i, j),z 0 /z f ), z 0 - коэффициент расширения наибольшей длины кода, z f - коэффициент расширения f-й длины кода. Блок информации s=(s 0,..., s kf-1) затем оценивают на основе модельной матрицы, определенной посредством p(f,i,j) и принятого вектора сигнала.The present invention further provides a receiver control method that evaluates an information block s = ( s 0 , ..., s k-1 ). The method comprises the steps of receiving a signal vector, determining a basic model matrix having a set of shift values p (i, j) for the largest code length, and determining shift values p (f, i, j) for all other code lengths based on the set shift values p (i, j) , where f is the code length index, p (f, i, j ) = F ( p ( i, j), z 0 / z f ), z 0 is the expansion coefficient of the longest code length, z f is the coefficient of expansion of the fth code length. The information block s = ( s 0 , ..., s kf-1 ) is then estimated based on the model matrix determined by p (f, i, j) and the received signal vector.
В заключение, настоящее изобретение предлагает устройство, содержащее средства хранения для хранения базовой модельной матрицы, имеющей набор величин сдвигов p(i,j) для наибольшей длины кода. Устройство дополнительно содержит декодер, принимающий вектор сигнала и определяющий величины сдвигов p(f,i,j) для всех других длин кода на основе набора величин сдвигов p(i,j), где f - индекс длин кодов, p(f,i,j)=F(p(i,j),z 0 /z f), z 0 - коэффициент расширения наибольшей длины кода, z f - коэффициент расширения f-й длины кода. Декодер выводит оценку для блока информации s=(s 0 ,..., s kf-1 ) на основе модельной матрицы, определенной p(f,i,j) и принятым вектором сигнала.In conclusion, the present invention provides a device comprising storage means for storing a basic model matrix having a set of shift values p (i, j) for the largest code length. The device further comprises a decoder that receives a signal vector and determines the values of the shifts p (f, i, j) for all other code lengths based on the set of values of the shifts p (i, j) , where f is the code length index, p (f, i, j ) = F ( p ( i, j), z 0 / z f ) , z 0 is the expansion coefficient of the longest code length, z f is the expansion coefficient of the fth code length. The decoder derives an estimate for the information block s = (s 0 , ..., s kf-1 ) based on the model matrix defined by p (f, i, j) and the received signal vector.
Показано, что свойства расширенной матрицы H тесно связаны со свойствами базовой матрицы Нb и величинами сдвигов p(i,j). Определенные нежелательные шаблоны величин сдвигов p(i,j) будут сохранять циклы и шаблоны Нb кодовых комбинаций и повторять их многократно в расширенной матрице H вследствие квазициклической природы модели кода, приводя к неприемлемой эффективности корректировки ошибок.It is shown that the properties of the extended matrix H are closely related to the properties of the base matrix H b and the values of the shifts p (i, j) . Certain unwanted shift patterns p (i, j) will save the patterns and patterns H b of code combinations and repeat them repeatedly in the expanded matrix H due to the quasi-cyclic nature of the code model, resulting in unacceptable error correction efficiency.
Так как кодовые комбинации с низким весом содержат короткие циклы, если Нb не имеет ни одной колонки с весом 1, достаточно убедиться, что короткие циклы разорваны для всех интересующих размеров кодов (n f , k j ) для того, чтобы получить хорошую эффективность декодирования.Since low weight codewords contain short loops, if H b does not have any columns with a weight of 1, it is enough to make sure that short loops are broken for all codes of interest (n f , k j ) in order to obtain good decoding efficiency .
Обнаружено, что цикл Нb дублируется в расширенной матрице, если удовлетворяется следующее условие.It was found that the cycle H b is duplicated in the expanded matrix if the following condition is satisfied.
Если в базовой матрице H b 2c ребер из цикла длины 2c, тогда в расширенной матрице H соответствующие 2c векторных ребер из z циклов длины 2c тогда и только тогда, еслиIf in the base matrix H b 2c edges from a cycle of length 2c, then in the extended matrix H the corresponding 2c vector edges from z cycles of length 2c if and only if
где z - коэффициент расширения, p(i) - величина циклического сдвига ребра i в модельной матрице H
where z is the expansion coefficient, p (i) is the cyclic shift of the edge i in the model matrix H
bmbm
, и ребра 0, 1, 2,..., 2c-l (в этом порядке) формируют цикл в H
, and the
Тогда как фиксированный набор величин {p(i,j)} сдвигов, который не удовлетворяет уравнению (4) для одного значения z f может фактически удовлетворять уравнению (4) для другого значения z f, линейность уравнения (4) показывает, что уравнение может не удовлетворять ему для всех z f, если {p(i,j)} масштабируется пропорционально z f.Whereas a fixed set of { p (i, j) } shift values that does not satisfy equation (4) for one value of z f can actually satisfy equation (4) for another value of z f , the linearity of equation (4) shows that the equation can do not satisfy it for all z f if { p (i, j) } is scaled proportionally to z f .
Допустим, что один набор величин {p(i,f)} сдвигов должен использоваться для расширения данной базовой матрицы Нb для двух коэффициентов расширения z 0 и z 1, α=Z 0 /Z 1>1. Допустим, что набор величин сдвигов {p(i,j)} = {р(0,i,j)} освобожден от циклов длины 2c для коэффициента Z0 расширения,Suppose that one set of values { p (i, f) } of shifts should be used to expand a given base matrix H b for two expansion coefficients z 0 and z 1 , α = Z 0 / Z 1 > 1. Assume that the set of shift values { p (i, j) } = { p (0, i, j) } is exempt from cycles of length 2c for the coefficient Z 0 of the extension,
тогдаthen
где p(i) - величина циклического сдвига ребра i в модельной матрице H
bm(0), и ребра 0, 1, 2,..., 2c-l (в этом порядке) формируют цикл в H
b. Уравнение (6) показывает, что если набор масштабированных величин {p(i,j)/α} сдвигов используется для коэффициента расширения z
1, тогда матрица H, расширенная от z
1, будет также освобождена от циклов длины 2с. Так как 2c может быть любой длиной цикла, использование отмасштабированных величин {p(i,j)/α} будет аннулировать все типы циклов для z
1, которые аннулированы набором {p(i,j)} для z0.where p (i) is the cyclic shift of the edge i in the model matrix H bm (0), and the
Обсуждение выше пренебрегает ограничением, таким что величины сдвигов после масштабирования по-прежнему должны быть целыми. Например, должна быть выполнена функция пола └x┘ (которая является наибольшим целым числом, меньшим или равным x), функция потолка ┌x┐ (которая является наименьшим целым числом, большим или равным x) или функция округления [x](которая является целым числом, которое менее всего отличается от x) над всеми p(i,j)/α для получения целого числа. В общем, при заданных величинах сдвигов p(i,j)=p(0,i,j) для Z 0 величины сдвигов для z 1 могут быть получены как функция F(.) от p(i,f) и α.The discussion above neglects the restriction, such that the magnitudes of the shifts after scaling should still be integer. For example, the floor function └x┘ (which is the largest integer less than or equal to x), the ceiling function ┌x┐ (which is the smallest integer greater than or equal to x) or the rounding function [x] (which is an integer the number that is least different from x) over all p (i, j) / α to get an integer. In general, for given values of the shifts p (i, j) = p ( 0 , i, j) for Z 0, the values of the shifts for z 1 can be obtained as a function of F (.) On p (i, f) and α.
Например, если функция округления используется на верхнем уровне (6) и величинами сдвигов, предназначенных для z 0, являются p(i,j), тогда набором величин сдвигов, применяемых к z 1, являетсяFor example, if the rounding function is used at the upper level (6) and the shift values intended for z 0 are p (i, j) , then the set of shift values applied to z 1 is
Хотя обычно все положительные p(i,j) будут отмасштабированы, масштабирование, такое как (8), может быть применено к единственному поднабору {p(i,j)}. Например, те, которые не затронуты никакими циклами, не должны быть отмасштабированы, например ребра колонок Нb веса 1, если они существуют. В зависимости от определения функции F(.) и если масштабирование применяется только всем неотрицательным p(i,j), базовые матрицы H bm(0) и H bm(1) могут быть или не быть одинаковыми.Although usually all positive p (i, j) will be scaled, scaling such as (8) can be applied to a single subset { p (i, j) } . For example, those that are not affected by any cycles should not be scaled, for example, the edges of columns H b of weight 1, if they exist. Depending on the definition of the function F (.) And if scaling is applied only to all non-negative p (i, j), the base matrices H bm (0) and H bm (1) may or may not be the same.
Вышеприведенный анализ без труда применен для нахождения p(f,i,j), если система требует более двух коэффициентов расширения. В этом случае определяется материнская модельная матрица (также называемая базовой модельной матрицей) H bm(0), имеющая набор величин сдвигов p(0,i,j) для наибольшей длины кода, из которой получается модельная матрица H bm(f), имеющая величины сдвигов p(f,i,j) для f-го семейства кодов, f=1,...,f max. При условии z 0=max(z f) и p(0,i,j)=p(i,f), α f =z 0 /z f должно быть использовано в выражениях, аналогичных (8) в получении p(f,i,j) из p(i,j), так что одинаковые циклы базовой матрицы исключаются для всего диапазона z f. В частности, при условии того, что все p(i,j) найдены,The above analysis was easily applied to find p (f, i, j) if the system requires more than two expansion coefficients. In this case, the parent model matrix (also called the base model matrix) H bm (0) is determined, which has a set of shift values p (0, i, j) for the longest code length, from which the model matrix H bm ( f ) is obtained, which has the values shift p (f, i, j) for the family of codes f-, f = 1, ..., f max. Under the condition z 0 = max ( z f ) and p (0, i, j) = p (i, f), α f = z 0 / z f should be used in expressions similar to (8) in obtaining p (f , i, j) from p (i, j) , so that identical cycles of the base matrix are excluded for the entire range z f . In particular, provided that all p (i, j) are found,
в общем используется для получения p(f,i,j) из p(i,j). Более того, в качестве примера, функция F(.) может быть определена какgenerally used to get p (f, i, j) from p (i, j). Moreover, as an example, the function F (.) Can be defined as
при условии z 0 = max(z f) и используя функцию округления, соответствующую (8). Сходным образом, может быть использована функция пола └x┘ или функция потолка ┌x┐ вместо функции округления [x].provided z 0 = max ( z f ) and using the rounding function corresponding to (8). Similarly, the floor function └x┘ or the ceiling function ┌x┐ can be used instead of the rounding function [x].
Заметим, что вышеупомянутая методика расчета применяется к любой базовой матрице Н b. Например, она может применяться к Н b, состоящим из двух частей,Note that the above calculation methodology applies to any base matrix H b . For example, it can be applied to H b , consisting of two parts,
чья детерминированная часть Н b2 может быть дополнительно разделена на две части, где hb имеет нечетный вес w h>2 и H'b2 имеет детерминированную ступенчатую структуру:whose deterministic part H b2 can be further divided into two parts, where h b has an odd weight w h > 2 and H ' b2 has a deterministic step structure:
Другими словами, Н'b2 содержат матричные элементы для строки i, столбца j, равные:In other words, H ' b2 contain matrix elements for row i , column j , equal to:
Реализация кодера для семейства кодовEncoder implementation for code family
Поскольку все члены семейства, соответствующего вышеприведенному плану, получаются из материнской модельной матрицы H bm=H bm(0), таким образом все имеющие одинаковую структуру, процесс кодировки для каждого члена семейства является аналогичным. Часть или целая модельная матрица может быть сохранена и интерпретироваться в качестве инструкций для многорегистровой схемы циклического сдвига для выполнения циклических сдвигов сгруппированной информационной последовательности.Since all members of the family corresponding to the above plan are obtained from the parent model matrix H bm = H bm (0), thus all having the same structure, the encoding process for each family member is similar. A part or the whole model matrix can be stored and interpreted as instructions for a multi-register cyclic shift scheme for performing cyclic shifts of a grouped information sequence.
Так как все члены семейства получаются из материнской модельной матрицы H bm=H bm(0), реализация кодера для семейства требует только, что материнская матрица была сохранена. При условии, что используется функция [x] округления, для f-го члена семейства циклические сдвиги p(i,j) материнской модельной матрицы заменяются циклическими сдвигами [p(i,j)/(z 0 /z f )] для p(i,j)>0, где z f обозначает коэффициент расширения f-го члена семейства, которое кодируется. Непосредственной реализацией этого является хранение значений α f -1=(z 0 /z f ) -1 (или α f=z 0 /z f ) для каждого члена семейства в постоянной памяти и вычисление значений [p(i,j)/(z 0 /z f )], p(i,j)>0 "на лету" с использованием умножителя. В качестве альтернативы наборы {p(f,i,f)}, f=0, 1,...,f max величин сдвигов для каждого члена семейства могут быть заранее рассчитаны, используя (8) (или в более общем смысле, (7)), и сохранены в постоянной памяти.Since all members of the family are obtained from the parent model matrix H bm = H bm (0), the implementation of the encoder for the family only requires that the parent matrix has been saved. Provided that the function is used [x] Rounding for f th member of the family of cyclic shifts of p (i, j) of the parent model matrix are replaced by cyclic shifts [p (i, j) / (z 0 / z f)] for p ( i, j)> 0, where z f denotes the coefficient of expansion of f th family member that is encoded. The immediate implementation of this is to store the values α f -1 = (z 0 / z f ) -1 (or α f = z 0 / z f ) for each member of the family in constant memory and calculate the values [ p (i, j) / ( z 0 / z f ) ] , p (i, j) > 0 "on the fly" using a multiplier. Alternatively, the sets { p (f, i, f)}, f = 0, 1 , ..., f max of the shift values for each family member can be pre-calculated using (8) (or in a more general sense, ( 7)), and stored in permanent memory.
Многорегистровая схема циклического сдвига может быть модифицирована для обеспечения циклических сдвигов для всех длин слов z f, соответствующих членам семейства. Несмотря на то, что модификация многорегистровой схемы циклического сдвига будет усложнять логику многорегистровой схемы циклического сдвига и неизбежно влечь за собой более медленные тактовые частоты, альтернативой, требующей дополнительных логических ресурсов, является осуществление различных многорегистровых схем циклического сдвига для каждого размера z f слова.The multi-register cyclic shift pattern can be modified to provide cyclic shifts for all word lengths z f corresponding to family members. Despite the fact that the modification of the multi-register cyclic shift scheme will complicate the logic of the multi-register cyclic shift scheme and inevitably entail slower clock frequencies, an alternative requiring additional logical resources is the implementation of various multi-register cyclic shift schemes for each word size z f .
Фиг. 2 - блок-схема кодера 200. Как показано, кодер 200 содержит микропроцессор 201, таблицу 203 поиска и логическую схему 205 для определения коэффициента z
f расширения. Хотя и показаны существующие внешне по отношению друг к другу, рядовой специалист в данной области техники будет давать себе отчет, что функциональные возможности логической схемы 205 могут быть осуществлены в микропроцессоре 201.FIG. 2 is a block diagram of an
Микропроцессор 201 предпочтительно содержит цифровой процессор сигналов (DSP), такой как, но не ограниченный DSP MSC8300 и DSP56300. Дополнительно таблица 203 поиска служит в качестве средств хранения для хранения матрицы и содержит постоянную память; тем не менее рядовой специалист в данной области техники будет отдавать себе отчет, что другие виды памяти (например, память с произвольной выборкой, магнитная запоминающая память и т.д.) могут быть также использованы. Во втором варианте осуществления функциональные возможности микропроцессора 201 и таблицы 203 поиска и логической схемы 205 могут быть включены в специализированную интегральную схему (ASIC) или программируемую вентильную матрицу (FPGA). В частности, таблица 203 поиска может быть реализована в виде памяти, соответствующей наличию или отсутствию путей сигнала в схеме.The
Как обсуждалось выше, закодированные данные обычно принимают вид множества битов контроля по четности в дополнение к систематическим битам, где вместе биты контроля по четности и систематические биты формируют кодовую комбинацию x. В первом варианте осуществления настоящего изобретения базовая модельная матрица H
bm хранится в таблице 203 поиска и выбирается микропроцессором 201 для нахождения битов контроля по четности. В частности, микропроцессор 201 определяет соответствующие значения для битов p=(p
0
,...,p
mf-1) контроля по четности на основе блока информации s=(s
0,...,s
kf-1
), коэффициента z
f расширения и базовой модельной матрицы Нbm. Коэффициент z
f расширения определяется логикой 205, использующей z
f
=k
f
/k
b
=n
f
/n
b
, и использованием групповых битов в векторы длины z
f так же, как нахождение α
f
=z
0
/z
f. После того как биты контроля по четности найдены, они и набор систематических битов затем переправляется передатчику и передается в приемник.As discussed above, encoded data typically takes the form of a plurality of parity bits in addition to systematic bits, where together the parity bits and systematic bits form the code pattern x . In a first embodiment of the present invention, the base model matrix H bm is stored in a lookup table 203 and is selected by
Фиг. 3 - блок-схема декодера 300 согласно одному варианту осуществления настоящего изобретения. Как показано, декодер 300 содержит микропроцессор 301, таблицу 303 поиска и логическую схему 305 для определения коэффициента расширения z
f
. В первом варианте осуществления настоящего изобретения микропроцессор 301 содержит цифровой процессор сигналов (DSP), такой как, но не ограниченный DSP MSC8300 и DSP56300. Дополнительно таблица 303 поиска действует как средства хранения для хранения базовой модельной матрицы H
bm и содержит постоянную память. Тем не менее рядовой специалист в данной области техники будет отдавать себе отчет, что другие виды памяти (например, память с произвольной выборкой, магнитная запоминающая память и т.д.) могут быть также использованы. Во втором варианте осуществления функциональность микропроцессора 301 и таблицы 303 поиска может быть включена в специализированную интегральную схему (ASIC) или программируемую вентильную матрицу (FPGA). В частности, таблица 303 поиска может быть реализована в виде памяти, соответствующей наличию или отсутствию путей сигнала в схеме.FIG. 3 is a block diagram of a
Принятый вектор y
=(y
0
,...,y
n-1) сигнала (принятый посредством приемника) соответствует кодовой комбинации x, переданной через канал с шумом, где закодированные данные x, как обсуждалось выше, являются вектором f-го члена семейства кодов. В первом варианте осуществления настоящего изобретения базовая модельная матрица Нbm хранится в таблице 303 поиска и выбирается микропроцессором 301 для декодирования y и оценки блока информации S=(s
0,...,s
kf-1). В частности, микропроцессор 301 оценивает блок информации (s
0
,...,s
kf-1
) на основе принятого вектора y=(у
0
,...,y
kf-1
) сигнала и базовой модельной матрицы Нbm. Коэффициент z
f расширения определяется логикой 305, использующей z
f
=k
f
/k
b
=n
f
/n
b
, и используется для группировки принятых сигналов и битов в векторы длины z
f так же, как нахождения α
f
=z
0
/z
f.The received vector y = (y 0, ..., y n-1) of the signal (received by receiver) corresponds to the codeword x, transmitted through a channel with noise, where the encoded data x, as discussed above, are vector f th family member codes. In the first embodiment of the present invention, the base model matrix H bm is stored in the search table 303 and selected by the
Фиг. 4 - схема последовательности операций кодера 200 и, в частности, микропроцессора 201. Поток начинается на этапе 401, где текущий блок (s
0
,...,s
k-1
) информации принимается микропроцессором 201. На этапе 403 значения битов контроля по четности определяются на основе блока информации и H
bm(f), где H
bm(f) уникально определяется {p(f,i,j)}. В частности, набор {p(i,j)} величин сдвигов базовой модельной матрицы H
bm считывается из памяти. Микропроцессор использует {p(i,j)} и α
f для определения {p(f,i,j)}. Биты (p
0
,...,p
mf-1
) контроля по четности определяются посредством решения уравнения (1). На этапе 405 информационный блок и биты контроля по четности передаются по каналу.FIG. 4 is a flowchart of an
Фиг. 5 - схема последовательности операций кодера 300 и, в частности, микропроцессора 301. Поток логики начинается на этапе 501, где принятый вектор FIG. 5 is a flow diagram of an
y=(y 0,...,y n-1) сигнала принимается. На этапе 503 оценки блока информации s=(s
0
,...,s
kf-1
) определяются на основе H
bm(f), где H
bm(f) уникально определена посредством {p(f,i,j)}. В частности, набор {p(i,j)} величин сдвигов базовой модельной матрицы H
bm считывается из памяти. Микропроцессор использует {p(i,j)} и α
f для определения {p(f,i,j)}. Как обсуждалось, микропроцессор обрабатывает принятый вектор сигнала в соответствии с величинами сдвигов {p(f,i,j)} (или эквивалентно, Нbm(f)) для получения оценок блока информации. В предпочтительном варианте осуществления микропроцессор выполняет обработку согласно алгоритму пересылки сообщений, используя двудольный граф кода. y = ( y 0 , ... , y n-1 ) of the signal is received. At
ПримерыExamples
В качестве примера описывается модель кода для 19 размеров кода n f в диапазоне от 576 до 2304 битов. Каждая базовая модельная матрица предназначена для величины сдвига Z0 =96. Набор величин сдвигов {p(i,j)} определен для базовой модельной матрицы и используется для других размеров кодов той же скорости. Для других размеров кодов величины сдвигов получаются из базовой модельной матрицы следующим образом.As an example, a code model is described for 19 n f code sizes ranging from 576 to 2304 bits. Each base model matrix is designed for a shift value Z 0 = 96. A set of shift values { p (i, j) } is defined for the base model matrix and is used for other sizes of codes of the same speed. For other code sizes, the shift values are obtained from the base model matrix as follows.
Для размера кода, соответствующего коэффициенту расширения z f, его величины {p(f,i,j)} сдвига получаются из {p(i,j)} пропорциональным масштабированием p(i,j) For the code size corresponding to the expansion coefficient z f , its shift values { p (f, i, j) } are obtained from { p (i, j)} by proportional scaling p (i, j)
Заметим, что α f=z 0 /z f и └x┘ обозначает функцию пола, которая дает ближайшее целое число в направлении -∞.Note that α f = z 0 / z f and └x┘ denotes the gender function, which gives the nearest integer in the -∞ direction.
Базовые модельные матрицы сведены в таблицы внизу для трех кодовых скоростей 1/2, 2/2 и 3/4. Здесь f является индексом длин кодов для данной кодовой скорости, f = 0,1,2,... 18.The basic model matrices are summarized in the tables below for the three
Скорость 1/2:1/2 speed:
Базовая модельная матрица имеет размер nb=24, m b =12 и коэффициент расширения The base model matrix has a size n b = 24, m b = 12 and an expansion coefficient
z 0=96 (т.е., n0=24*96=2304). Для получения других размеров кодов n f коэффициент расширения z f равен nf/24. z 0 = 96 (i.e., n 0 = 24 * 96 = 2304). To obtain other code sizes n f, the expansion coefficient z f is n f / 24.
Скорость 2/3:
Базовая модельная матрица имеет размер nb=24, m b =8 и коэффициент расширения z 0=96 (т.е. n0=24*96=2304). Для получения других размеров кодов n f коэффициент расширения z f равен nf/24.The base model matrix has a size n b = 24, m b = 8 and an expansion coefficient z 0 = 96 (i.e., n 0 = 24 * 96 = 2304). To obtain other code sizes n f, the expansion coefficient z f is n f / 24.
Скорость 3/4:3/4 speed:
Базовая модельная матрица имеет размер nb=24, m b =6 и коэффициент расширения z 0=96 (т.е. n0=24*96=2304).The base model matrix has a size n b = 24, m b = 6 and an expansion coefficient z 0 = 96 (i.e., n 0 = 24 * 96 = 2304).
Для получения других размеров кодов n f коэффициент расширения z f равен nf/24.To obtain other code sizes n f, the expansion coefficient z f is n f / 24.
Несмотря на то, что изобретение было подробно показано и описано со ссылкой на определенный предпочтительный вариант осуществления, специалистами в данной области техники будет понято, что в нем могут быть сделаны различные изменения по форме и содержанию, не выходя из сущности и объема изобретения. Например, когда диапазон размеров кодов очень большой, например α приближается к z/2, становится очень трудно найти подходящий набор {p(i,j)} величин сдвигов. Следовательно, если диапазон размеров кодов очень велик, т.е. α велико, могут использовать различные наборы {p{i,f)}, каждый из которых покрывает диапазон z f для семейства кодов. В другом примере, хотя обсуждение допускало, что используются материнская модельная матрица Нbm(0), z0=max(z f), и p(0,i,j)=p(i,j) используются для 0-го члена семейства кодов, специалисты в данной области техники будут понимать, что Нbm(0), Although the invention has been shown and described in detail with reference to a certain preferred embodiment, those skilled in the art will understand that various changes in form and content can be made therein without departing from the spirit and scope of the invention. For example, when the range of code sizes is very large, for example, α approaches z / 2 , it becomes very difficult to find a suitable set of { p (i, j) } shift values. Therefore, if the range of code sizes is very large, i.e. α is large, can use different sets { p {i, f) }, each of which covers the range z f for a family of codes. In another example, although the discussion assumed that the mother model matrix H bm (0), z 0 = max ( z f ), and p (0, i, j) = p (i, j) are used for the 0th term family of codes, those skilled in the art will understand that H bm (0),
z 0 и p(i,j) могут быть определены для размера кода не в семействе кодов, но использоваться для получения величин p(f,i,j) сдвигов интересующего семейства кодов. В другом примере, хотя обсуждение допускало, что z 0 = max(z f), специалисты в данной области техники будут понимать, что значение z 0, не равное max(z f), может быть использовано в выводе величины сдвига. Подразумевается, что такие изменения появляются в объеме последующей формулы изобретения. z 0 and p (i, j) can be determined for the code size not in the code family, but used to obtain the p (f, i, j) values of the shifts of the code family of interest. In another example, although the discussion assumed that z 0 = max ( z f ), those skilled in the art will understand that a value of z 0 not equal to max ( z f ) can be used to derive the shift value. It is understood that such changes appear within the scope of the following claims.
Claims (10)
определяют базовую модельную матрицу, имеющую набор величин сдвигов p(i,j) для наибольшей длины кода;
определяют величины сдвигов p(f,i,j) для всех других длин кода на основе набора величин сдвигов p(i,j), где f - индекс длин кодов, p(f,i,j)=F(p(i,j),z0/zf), z0 - коэффициент расширения наибольшей длины кода, zf - коэффициент расширения f-й длины кода;
принимают блок информации s=(s0, …, skf-1);
используют модельную матрицу, определенную посредством p(f,i,j) для определения битов контроля по четности; и
передают биты контроля по четности вместе с блоком информации, где {p{i,j)}=
determining a basic model matrix having a set of shift values p (i, j) for the largest code length;
determine the shift values p (f, i, j) for all other code lengths based on the set of shift values p (i, j), where f is the code length index, p (f, i, j) = F (p (i, j), z 0 / z f ), z 0 is the expansion coefficient of the longest code length, z f is the expansion coefficient of the fth code length;
receive a block of information s = (s 0 , ..., s kf-1 );
using the model matrix defined by p (f, i, j) to determine the parity bits; and
transmit the parity bits together with the information block, where {p {i, j)} =
a обозначает функцию пола.2. The method according to claim 1, in which
a denotes gender function.
а [x] обозначает функцию округления.3. The method according to claim 1, in which
and [x] denotes the rounding function.
а обозначает функцию потолка.4. The method according to claim 1, in which
but indicates the function of the ceiling.
средство хранения для хранения базовой модельной матрицы, имеющей набор величин сдвигов p(i,j) для наибольшей длины кода;
и
микропроцессор, принимающий блок информации s=(s0, …, skf-1) и базовую модельную матрицу и определяющий величины сдвигов p(f,i,j) для всех других длин кода на основе набора величин сдвигов p(i,j), где f - индекс длин кодов, p(f,i,j)=F(p(i,j,z0/zf), z0 - коэффициент расширения наибольшей длины кода, zf - коэффициент расширения f-й длины кода; причем микропроцессор выводит биты контроля по четности на основе модельной матрицы, определенной посредством p(f,i,j) и блока информации s=(s0, …, skf-1); где {p(i,j)}=
storage means for storing a base model matrix having a set of shift values p (i, j) for the largest code length;
and
a microprocessor receiving an information block s = (s 0 , ..., s kf-1 ) and a basic model matrix and determining the values of the shifts p (f, i, j) for all other code lengths based on the set of values of the shifts p (i, j) , where f is the code length index, p (f, i, j) = F (p (i, j, z 0 / z f ), z 0 is the expansion coefficient of the longest code length, z f is the expansion coefficient of the fth length code; moreover, the microprocessor outputs parity bits based on the model matrix determined by p (f, i, j) and the information block s = (s 0 , ..., s kf-1 ); where {p (i, j)} =
где обозначает функцию пола.7. The device according to claim 6, in which
Where denotes gender function.
s=(s0, …, skf-1), заключающийся в том, что
принимают вектор сигнала;
определяют базовую модельную матрицу, имеющую набор величин сдвигов p(i,j) для наибольшей длины кода;
определяют величины сдвигов p(f,i,j) для всех других длин кода на основе набора величин сдвигов p(i,j), где f - индекс длин кодов, p(f,i,j)=F(p(i,j,z0/zf), z0 - коэффициент расширения наибольшей длины кода, zf - коэффициент расширения f-й длины кода;
оценивают блок информации s=(s0, …, skf-1) на основе модельной матрицы, определенной посредством p(f,i,j) и принятого вектора сигнала, где {p(i,j)=
s = (s 0 , ..., s kf-1 ), which consists in the fact that
receive a signal vector;
determining a basic model matrix having a set of shift values p (i, j) for the largest code length;
determine the shift values p (f, i, j) for all other code lengths based on the set of shift values p (i, j), where f is the code length index, p (f, i, j) = F (p (i, j, z 0 / z f ), z 0 is the expansion coefficient of the longest code length, z f is the expansion coefficient of the fth code length;
evaluate the information block s = (s 0 , ..., s kf-1 ) based on the model matrix determined by p (f, i, j) and the received signal vector, where {p (i, j) =
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6005304P | 2004-08-12 | 2004-08-12 | |
US60/600,53 | 2004-08-12 | ||
US11/070,129 | 2005-03-01 | ||
US11/070,129 US7203897B2 (en) | 2004-08-12 | 2005-03-01 | Method and apparatus for encoding and decoding data |
US11/078,817 | 2005-03-11 | ||
US11/078,817 US7188297B2 (en) | 2004-08-12 | 2005-03-11 | Method and apparatus for encoding and decoding data |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007108784A RU2007108784A (en) | 2008-09-20 |
RU2365034C2 true RU2365034C2 (en) | 2009-08-20 |
Family
ID=39867503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007108784/09A RU2365034C2 (en) | 2004-08-12 | 2005-08-03 | Method and device for data coding and decoding |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2365034C2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2658791C2 (en) * | 2013-05-02 | 2018-06-22 | Сони Корпорейшн | Data processing device and data processing method |
-
2005
- 2005-08-03 RU RU2007108784/09A patent/RU2365034C2/en active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2658791C2 (en) * | 2013-05-02 | 2018-06-22 | Сони Корпорейшн | Data processing device and data processing method |
Also Published As
Publication number | Publication date |
---|---|
RU2007108784A (en) | 2008-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4602406B2 (en) | Method and apparatus for encoding and decoding data | |
US7203897B2 (en) | Method and apparatus for encoding and decoding data | |
JP5116735B2 (en) | How to construct a code | |
KR100861674B1 (en) | A method for operating a transmitter and receiver, and an apparatus for encoding and decoding data | |
KR101405962B1 (en) | Method of performing decoding using LDPC code | |
KR101227264B1 (en) | Method and apparatus for block and rate independent decoding of ldpc codes | |
JP4516602B2 (en) | Data encoding and decoding method and apparatus | |
KR100849044B1 (en) | Inspection matrix generation method, data transmission system, encoding device, decoding device, and inspection matrix generation program | |
JP5551209B2 (en) | LDPC encoding and decoding of variable size packets | |
US7395494B2 (en) | Apparatus for encoding and decoding of low-density parity-check codes, and method thereof | |
WO2004027616A1 (en) | Method and apparatus for encoding data | |
WO2014122772A1 (en) | Data structure for check matrix of error correction code, and coding-rate adjustment device and method for error correction code | |
KR20080048988A (en) | Clash-free irregular-repeat-accumulate code | |
JP4005084B2 (en) | Parity check matrix generation method and parity check matrix generation apparatus | |
JP2010532129A (en) | Generate parity check matrix | |
KR20130038184A (en) | Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size | |
KR20070063851A (en) | Parity check matrix, method for generating parity check matrix, encoding method and error correction apparatus | |
JP4832447B2 (en) | Decoding apparatus and method using channel code | |
KR100918741B1 (en) | Apparatus and method for channel coding in mobile communication system | |
KR100550101B1 (en) | An apparatus for encoding and decoding of Low-Density Parity-Check Codes, and methods thereof | |
RU2365034C2 (en) | Method and device for data coding and decoding | |
KR100800775B1 (en) | A Channel coding method and apparatus in mobile communication system | |
JP2010041628A (en) | Encoder, encoding method, and encoding program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20120626 |
|
PC43 | Official registration of the transfer of the exclusive right without contract for inventions |
Effective date: 20170302 |
|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20180111 |