ES2363846A1 - Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos. - Google Patents
Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos. Download PDFInfo
- Publication number
- ES2363846A1 ES2363846A1 ES200900343A ES200900343A ES2363846A1 ES 2363846 A1 ES2363846 A1 ES 2363846A1 ES 200900343 A ES200900343 A ES 200900343A ES 200900343 A ES200900343 A ES 200900343A ES 2363846 A1 ES2363846 A1 ES 2363846A1
- Authority
- ES
- Spain
- Prior art keywords
- matrix
- bits
- baselineskip
- noisy
- parity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004891 communication Methods 0.000 title claims abstract description 31
- 239000011159 matrix material Substances 0.000 claims abstract description 161
- 230000005540 biological transmission Effects 0.000 claims abstract description 23
- 239000013598 vector Substances 0.000 claims description 33
- 238000005516 engineering process Methods 0.000 abstract description 3
- 125000004122 cyclic group Chemical group 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos.Que se aplica para mejorar la protección frente a errores en la transmisión de información a través de un canal medio de transmisión ruidoso. El procedimiento y dispositivo asociado consiste en la utilización de un nuevo tipo de estructura de la matriz de paridad para la tecnología de códigos de paridad de baja densidad (Low Density Parity Check Codes) en la codificación y decodificación de datos, que mejora las prestaciones de corrección de errores sin aumentar la complejidad de la implementación hardware.
Description
Procedimiento y dispositivo de comunicación de
datos a través de medios ruidosos.
La presente invención, tal y como se expresa en
el enunciado de esta memoria descriptiva se refiere a un
procedimiento y dispositivo para la comunicación de datos a través
de medios ruidosos, esto es, para la transmisión y recepción de
datos a través de medios de comunicación o canales que pueden
introducir errores en la comunicación.
La ventaja principal de este procedimiento y
dispositivo de la invención es que se incrementa la robustez de la
corrección de errores de las transmisiones sin con ello aumentar la
complejidad del hardware en la implementación del dispositivo de
protección frente a errores.
En entornos de comunicación es usual que el
medio de transmisión o señales externas introduzcan errores en la
señal. Dichos errores deben ser detectados y, si es posible,
corregidos en recepción para recuperar la información correcta.
Existen múltiples formas de incluir detección y corrección de
errores en el estado del arte, siendo una de ellas la codificación y
decodificación de la información basada en códigos de paridad de
baja densidad (Low-Density
Parity-Check codes) para la corrección de
errores.
Los códigos de paridad de baja densidad
(denominados LDPC o low-density
parity-check code) son códigos de corrección de
errores que se utilizan en la transmisión de mensajes sobre canales
de transmisión ruidosos. Estos códigos introducen cierta redundancia
en el mensaje (se envía un número de bits mayor que el del mensaje
original), pero de tal forma que en recepción es posible detectar si
hay errores en el mensaje recibido y corregirlos.
Un código LDPC es un código cuya matriz de
paridad es poco densa, es decir la gran mayoría de los elementos de
la misma son ceros. Este tipo de códigos fueron publicados por
primera vez a principios de la década de los sesenta, por Robert G.
Gallager "Low Density Parity Check Codes", M.I.T. Press, 1963,
y demostraron tener prestaciones muy cerca del conocido límite de
Shannon (máximo teórico de la tasa de transmisión de datos). Sin
embargo, con la definición original de los códigos y la tecnología
de la época no era posible una implementación asequible con una
complejidad adecuada. Recientemente, gracias a la evolución de los
circuitos integrados y a la invención de matrices estructuradas,
estos códigos han vuelto a ser de gran interés.
En el estado del arte existen múltiples métodos
para realizar la codificación y decodificación frente a errores.
Algunos métodos son los publicados en la patentes US 7,343,548B2 y
US 7,203,897B2, ambas de título "Method and apparatus for encoding
and decoding data" que presenta sendos métodos para mejorar la
protección frente a errores en la transmisión de datos. También se
puede relacionar la invención con los estándares IEEE802.16e y
802.11n, que presentan codificación y decodificación para reducción
de errores. En cualquier caso, las patentes y estándares mencionados
utilizan la estructura de doble diagonal, que es conocida en el
estado del arte, mientas que la estructura presentada en este
documento resulta novedosa y permite una implementación con mejores
prestaciones sin aumentar el nivel de complejidad (y por tanto con
menor coste) de la protección frente a errores en la comunicación de
información a través de medios ruidosos. Es conocido en el estado
del arte que tener columnas con peso Hamming igual o menor que 2 en
la matriz de paridad restringe las prestaciones de los códigos LDPC.
Sin embargo, por causas de complejidad de implementación del
codificador, matrices con una sección H_{b1} de doble
diagonal han sido usadas en el estado del arte. La nueva estructura
presentada en este documento, al añadir una tercera diagonal a la
sección H_{b1} de la matriz modelo binaria H_{0},
permite que el número total de columnas de la matriz de paridad con
peso Hamming menor, o igual a 2 sea menor y por lo tanto se pueden
alcanzar mejores prestaciones. Esta tercera diagonal, ha sido
seleccionada de tal forma que el aumento de la complejidad de
implementación del codificador es prácticamente despreciable.
Los documentos anteriormente presentados no
interfieren con la novedad ni altura inventiva de la presente
invención. Aunque todos se basan en la utilización de la tecnología
LDPC (Low-Density Parity-Check code,
esto es, códigos de paridad de baja densidad) que son conocidos en
el estado del arte, el procedimiento y dispositivo de la invención
en este documento utiliza un tipo de código
quasi-cíclico (Quasi-Cyclic Low
Density Parity Check Code, o QC-LDPC), y aplica una
matriz de paridad con estructura diferente como punto central de la
invención.
A lo largo de este documento se utiliza una
nomenclatura específica para diferenciar los elementos utilizados a
lo largo de la descripción de la invención. Una letra mayúscula y en
negrita (por ejemplo, A) indica que el elemento es una
matriz; una letra minúscula y negrita (por ejemplo, a) indica
que el elemento es un vector, mientras que una letra minúscula y sin
negrita (ejemplo a) indica que el elemento es un valor
escalar. Por otra parte, los elementos escalares que componen una
matriz de dimensiones M \times N se indican de la
forma a(i,j), donde la tupla
(i,j) es la posición de dicho elemento dentro de la
matriz siendo 0\leqi\leqM-1 el número de fila y
0\leqj\leqN-1 el número de columna. Los elementos
que componen un vector de dimensión M se anotan de la forma
a(i), siendo (i) la posición del elemento en el
vector (0\leqi\leqM-1).
\newpage
Además, a lo largo de la invención se utiliza el
término rotación cíclica, que se define a continuación. Una rotación
cíclica z sobre un vector a =
[a(0),a(1),...,a(M-2),a(M-1)]
consiste en rotar cíclicamente sus elementos hacia la derecha
obteniendo el vector
[a((M-z)%M),...,a((M-z-1)%M)]
como resultado, siendo % el operador "módulo". De la misma
forma, una rotación cíclica z aplicada sobre una matriz
A = [a(0),...,a(N-1)] opera sobre sus
columnas obteniendo la matriz
[a((N-z)%N),...,a((N-z-1)%N)]
como resultado. La rotación cíclica también puede definirse en el
sentido contrario (hacia la izquierda) de forma que una rotación
cíclica z hacia la derecha es equivalente a una rotación cíclica
M-z y N-z respectivamente para vector y
matriz hacia la izquierda.
Para lograr los objetivos y evitar los
inconvenientes indicados en anteriores apartados, la invención
consiste en un procedimiento y dispositivo para la comunicación de
datos a través de medios ruidosos. Concretamente, la invención
presenta un procedimiento de codificación de datos utilizado en
transmisión, su dispositivo de codificación asociado, un
procedimiento de decodificación, y su dispositivo de decodificación
asociado. Este grupo de invenciones forman un único concepto
inventivo, que se describe a continuación. Si el procedimiento o
dispositivo se utiliza en transmisión, el equivalente también deberá
utilizarse en recepción, y viceversa, para poder recuperar la
información enviada.
El procedimiento de codificación de datos se
aplica en transmisión y genera bits de paridad sobre un bloque de
información de forma que de una palabra de K bits se genera una
palabra código de N bits (N>K) que incluye la protección frente a
errores. Dicho procedimiento comprende múltiples pasos. Primero se
selecciona un factor b que es un número natural entre 1 y K de forma
que la división de N y K entre el factor b sean números naturales
(n=N/b; k=K/b). A continuación se define una matriz modelo binaria
H_{0} = [H_{a}|H_{b}] de tamaño
(n-k)x n como la combinación de una submatriz
correspondiente a las posiciones de los bits de información
H_{a} y de una submatriz correspondiente a los bits de
paridad H_{b}, donde dicha segunda submatriz H_{b}
= [h_{b0}|H_{b1}] se compone de un vector
columna de n-k posiciones h_{b0} y una
matriz H_{b1} con estructura triple diagonal, esto es,
donde los elementos de las dos diagonales centrales
h_{b1}(i,i),
h_{b1}(i+1,i),
0\leqi\leqn-k-2 y de la diagonal de la
última fila h_{b1}(n-k-1,0) son iguales a 1,
siendo n-k el número de filas y columnas de la
matriz H_{b}, y el resto de elementos son iguales a cero.
Después, se genera la matriz compacta H_{1} y a partir de
ella la matriz de paridad H. A partir de ahí se toma un
bloque de información y se utiliza la matriz de paridad H
sobre el bloque de información para determinar los bits de paridad
correspondientes a dicho bloque. Finalmente se transmiten los bits
de paridad junto con el bloque de información.
En una implementación del procedimiento es
posible eliminar uno o más elementos de la palabra código antes de
ser transmitidos, reduciendo la redundancia en la transmisión sin
empeorar gravemente la capacidad de protección frente a errores.
Esta técnica se denomina "técnica de pinchado" (puncturing). En
este caso la palabra transmitida tendrá un número de bits menor que
la palabra código obtenida con el procedimiento inicial.
El dispositivo de codificación de datos
comprende medios para almacenar la matriz compacta H_{1}
derivada de una matriz modelo binaria H_{0} =
[H_{a}|H_{b}] formada como la combinación de una
submatriz correspondiente a las posiciones de los bits de
información H_{a} y de una submatriz correspondiente a los
bits de paridad H_{b}, donde dicha segunda submatriz
H_{b} = [H_{b0}|H_{b1}] se compone de
un vector columna de n-k posiciones h_{b0}
y una estructura H_{b1} triple diagonal, esto es, donde
los elementos de las dos diagonales centrales
h_{b1}(i,i),
h_{b1}(i+1,i),
0\leqi\leqn-k-2 y de la diagonal de la
última fila h_{b1}(n-k-1,0) son iguales a 1,
siendo n-k el número de filas y columnas de la
matriz H_{b}, y el resto de elementos son iguales a cero; y
de un microprocesador que toma el bloque de información, utiliza la
matriz compacta H_{1} para generar la matriz de paridad
H, aplica la matriz de paridad H al bloque de
información para obtener los bits de paridad correspondientes a
dicho bloque y añade los bits de paridad al bloque de información
antes de ser transmitidos.
En una implementación concreta de este
dispositivo se eliminan uno o más elementos de la palabra código
tras añadir los bits de paridad al bloque de información pero antes
de realizar la transmisión, aplicando la técnica de pinchado. De
esta forma la palabra transmitida tendrá un número de bits menor que
la palabra código generada originalmente.
Por otro lado el procedimiento de decodificación
de datos opera en recepción y estima cuál es el bloque de
información recibido a partir de un vector de señal recibido del
canal. A partir de una palabra código recibida de N bits (que puede
tener errores debido al ruido del canal) se obtiene la palabra de
información de K bits que el transmisor quería enviar. Este
procedimiento inicialmente toma un vector de señal del canal y la
matriz modelo binaria H_{0} =
[H_{a}|H_{b}] que es una combinación de una
submatriz correspondiente a las posiciones de los bits de
información H_{a} y de una submatriz correspondiente a los
bits de paridad H_{b}, donde dicha segunda submatriz
H_{b} = [h_{b0}|H_{b1}] se compone de
un vector columna de n-k posiciones h_{b0}
y una estructura H_{b1} triple diagonal, esto es, donde los
elementos de las dos diagonales centrales
h_{b1}(i,i),
h_{b1}(i+1,i),
0\leqi\leqn-k-2 y de la diagonal de la
última fila h_{b1}(n-k-1,0) son iguales a 1,
siendo n-k el número de filas y columnas de la
matriz H_{b}, y el resto de elementos son iguales a cero.
Después genera la matriz compacta H_{1} y a partir de ella
la matriz de paridad H, y finalmente estima el bloque de
información a partir del vector de señal recibido y de la matriz de
paridad H.
Si en transmisión se utilizó la técnica de
pinchado, es necesario recuperar la información perdida en
recepción. En esta caso, se inserta un valor indicador en las
posiciones eliminadas por la técnica de pinchado en transmisión,
antes de realizar la estimación del bloque de información a partir
del vector de señal recibido y de la matriz de paridad.
El dispositivo de decodificación de datos
comprende medios para almacenar la matriz compacta H_{1}
derivada de una matriz modelo binaria H_{0} =
[H_{a}|H_{b}] formada como la combinación de una
submatriz correspondiente a las posiciones de los bits de
información H_{a} y de una submatriz correspondiente a los
bits de paridad H_{b}, donde dicha segunda submatriz
H_{b} = [h_{b0}|H_{b1}] se compone de
un vector columna de n-k posiciones h_{b0}
y una estructura H_{b1} triple diagonal, esto es, donde
los elementos de las dos diagonal es centrales
h_{b1}(i,i),
h_{b1}(i+1,i),
0\leqi\leqn-k-2 y de la diagonal de la
última fila h_{b1}(n-k-1,0) son iguales a 1,
siendo n-k el número de filas y columnas de la
matriz H_{b}, y el resto de elementos son iguales a cero;
un microprocesador que genera la matriz de paridad H a partir
de la matriz compacta H_{1}, aplica dicha matriz de paridad
H sobre el vector de señal recibido, y estima el bloque de
información recibido.
Si el dispositivo transmisor utilizó la técnica
de pinchado, es necesario recuperar la información perdida antes de
realizar la corrección de errores. Por lo tanto, en esta
implementación y antes de aplicar la matriz de paridad H
sobre el vector de señal recibido se inserta un valor indicador en
las posiciones eliminadas por la técnica de pinchado en
transmisión.
En una implementación es posible utilizar la
siguiente matriz compacta H_{1} para obtener palabras
código de 336 bits con una tasa de codificación de 1/2:
En otra implementación es posible utilizar la
siguiente matriz compacta H_{1} para obtener palabras
código de 1920 bits con una tasa de codificación de 1/2:
En otra implementación es posible utilizar la
siguiente matriz compacta H_{1} para obtener palabras
código de 8640 bits con una tasa de codificación de 1/2:
En otra implementación es posible utilizar la
siguiente matriz compacta H_{1} para obtener palabras
código de 1440 bits con una tasa de codificación de 2/3
En otra implementación es posible utilizar la
siguiente matriz compacta H_{1} para obtener palabras
código de 6480 bits con una tasa de codificación de 2/3:
En otra implementación es posible utilizar la
siguiente matriz compacta H_{1} para obtener palabras
código de 1152 bits con una tasa de codificación de 5/6:
En otra implementación es posible utilizar la
siguiente matriz compacta H_{1} para obtener palabras
código de 5184 bits con una tasa de codificación de 5/6:
Una implementación en la que se utiliza la
técnica de pinchado parte de una palabra código con 1152 bits y tasa
de codificación de 5/6 y aplica el siguiente patrón de pinchado
para obtener una palabra código de
1080 bits y tasa de codificación de
16/18.
\vskip1.000000\baselineskip
Otra implementación en la que se utiliza la
técnica de pinchado parte de una palabra código con 5184 bits y tasa
de codificación de 5/6 y aplica el siguiente patrón de pinchado
para obtener una palabra código de
4860 bits y tasa de codificación de
16/18.
\vskip1.000000\baselineskip
Otra implementación en la que se utiliza la
técnica de pinchado parte de una palabra código con 1152 bits y tasa
de codificación de 5/6 y aplica el siguiente patrón de pinchado
para obtener una palabra código de
1008 bits y tasa de codificación de
20/21.
\vskip1.000000\baselineskip
Finalmente, una última implementación en la que
se utiliza la técnica de pinchado parte de una palabra código con
5184 bits y tasa de codificación 5/6 y aplica el siguiente patrón de
pinchado
para obtener una palabra código de
4536 bits y tasa de codificación de
20/21.
\vskip1.000000\baselineskip
A continuación, para facilitar una mejor
comprensión de esta memoria descriptiva y formando parte integrante
de la misma, se acompañan unas figuras en las que con carácter
ilustrativo y no limitativo se ha representado el objeto de la
invención.
Figura 1.- Representa el diagrama de bloques del
codificador en el transmisor.
Figura 2.- Representa el diagrama de bloques del
decodificador en el receptor.
Figura 3.- Muestra el gráfico bipartito de la
matriz H del ejemplo.
Figura 4.- Representa el diagrama de flujo de la
construcción de un código LDPC estructurado.
Seguidamente se realiza la descripción de un
ejemplo de realización de la invención, haciendo referencia a la
numeración adoptada en las figuras.
El problema que el procedimiento de la invención
quiere resolver, desde un punto de vista teórico, consiste en
conseguir optimizar la corrección de errores en comunicaciones de
datos utilizando implementaciones hardware de bajo coste, utilizando
códigos LPDC.
Un código LDPC es un código lineal que opera
sobre bloques de información. El código esta definido por su matriz
de paridad H. En este ejemplo de realización los códigos
serán códigos binarios, pero es posible generalizar la invención a
códigos sobre cualquier campo de Galois GF(q), siendo
q\geq2.
En transmisión tendremos bloques de información
compuestos por K bits. Dicho bloque de información se denomina
u = [u(0),u(1),...,u(K-1)]. Tras
aplicar el procedimiento de la invención se generará una palabra de
un código lineal v =
[v(0),v(1),...,v(N-1)] con N bits (donde
N>K). Dicho código se genera mediante el producto v =
uG, siendo G una matriz K \times N
binaria generadora del código LPDC. El conjunto de posibles códigos
generados se denominará conjunto C, y la tasa de codificación o
cadencia del código (rate) será R = K/N.
Por tanto, es posible definir un código C de
tasa de codificación R como el conjunto de vectores v
\epsilon C generados por todos los posibles 2^{K} vectores
binarios al aplicarles la matriz generadora G. Una definición
equivalente sería que C es el espacio vectorial de N
dimensiones abarcado por la base compuesta de las K filas de
la matriz G. Otra forma alternativa de definir el código C es
mediante su matriz de paridad H, que es la forma más empleada
en el estado del arte. Esta matriz, de dimensiones
(N-K)\timesN, tiene como filas la base del
espacio dual C, y por lo tanto GH^{T}=0. Cualquier
vector del código satisface
vH^{T} =
0
(siendo "T" el operador de
transposición).
\vskip1.000000\baselineskip
A la hora de utilizar estos códigos desde un
punto de vista práctico, es preferible considerar los códigos como
códigos sistemáticos, esto es, aquellos en los cuales los bits de la
palabra de código están entre los bits de información. Sin perder
generalidad este ejemplo se centrará en el caso cuando v =
[u|p], siendo p =
[p(0),p(1),...,p(N-K-1)] un
vector compuesto por los bits de paridad, u el bloque de información
que se quería transmitir y v la palabra código realmente transmitida
(tras incluir el código LPDC).
A continuación se mostrará un ejemplo de
realización en el que puede observarse la relación entre la matriz
de paridad y una palabra del código. En este ejemplo, el código
tiene una tasa de codificación de R = 1/2 y se define
mediante la siguiente matriz de paridad:
En esta matriz, la sección izquierda corresponde
a los K = 5 bits de información mientras que la sección
derecha corresponde a los N-K = 5 bits de paridad.
Aplicando la ecuación vH^{T} = 0 a la matriz H se
obtiene el siguiente sistema de ecuaciones:
Un código LDPC también puede ser representado de
forma gráfica con un grafo bi-partito llamado
Tanner-graph. En un grafo Tanner los vértices se
clasifican en dos grupos o conjuntos disjuntos: los "vértices de
variables" (variable nodes), que representan los bits de la
palabra del código, y los "vértices de control" (check nodes)
que representan las relaciones de paridad. Entre ambos conjuntos de
vértices se encuentran las posibles aristas que definen la ecuación
de paridad. En el caso del código definido en el ejemplo anterior su
grafo correspondiente está representado en la figura 3, donde
encontraremos 10 vértices de variables (14) y 5 vértices de control
(16), unidos por múltiples aristas (15). Cada vértice de control
está unido por medio de aristas a 6 vértices de variables, tal y
como se representa en el sistema de ecuaciones anterior. Es posible
observar que el grafo tiene tantos vértices de control y de
variables como filas y columnas tiene la matriz de paridad
correspondiente, y que se encontrará una arista entre el vértice de
control i y el vértice de variable j cuando el
elemento h(i,j) de la matriz, esto es, el
situado en la fila i = 0,...,N-K-1 y columna
j = 0,...,N-1, sea distinto de cero.
Por otro lado, es posible definir ciclos sobre
códigos LDPC, donde se define un ciclo de longitud 2c como el camino
de 2c aristas de longitud que visita c vértices de control y c
vértices de variables en el grafo Tanner que representa al código
antes de volver al mismo nodo de inicio. Para optimizar las
prestaciones del código, es posible demostrar que es de vital
importancia que el número de ciclos cortos sea el mínimo posible. Al
ciclo de mínima longitud se le llama lazo (girth). En particular es
deseable que el girth sea mayor de 4 para evitar reducir las
prestaciones de un decodificador iterativo.
En la descripción original, R. Gallager
presentaba códigos cuyas matrices de paridad eran generadas de forma
aleatoria. En el estado del arte es de conocimiento general que para
obtener buenas prestaciones, cerca del límite de Shannon, el tamaño
del código debe ser relativamente grande y a consecuencia de ello la
matriz de paridad debe de ser de grandes dimensiones. El problema es
que matrices de grandes dimensiones y generadas aleatoriamente
dificultan la implementación tanto del codificador de como el
decodificador. Una forma de evitar esta dificultad es utilizar
matrices con una estructura regular. Para generar una estructura
regular se seguirían los siguientes pasos:
1.- Inicialmente se genera una matriz modelo
binaria H_{0} de dimensiones
(n-k)\timesn donde n<N,
k<K y R = k/n =
K/N. Si el peso Hamming de las columnas y filas de
H_{0} es constante, el código generado se denomina LDPC
regular. Sin embargo, es posible obtener mejores prestaciones si la
matriz es irregular, es decir si los pesos de las columnas siguen
una distribución estadística dependiente de la tasa de codificación
y del canal donde la transmisión de datos finalmente sea
efectuada.
2.- Una vez obtenida la matriz modelo binaria
H_{0}, se genera la matriz compacta H_{1}
reemplazando cada elemento igual a "1" de H_{0} por un
número entero positivo 0\leqx<b (donde
b=N/n) de forma
pseudo-aleatoria y cada elemento igual a "0"
por el valor -1.
3.- Para obtener la matriz de paridad H,
los elementos positivos de H_{1} se reemplazan por una
sub-matriz identidad rotada cíclicamente el numero
de veces indicada por el valor del elemento positivo de
H_{1} en cuestión y los elementos iguales a -1 son
reemplazados por una sub-matriz nula de la misma
dimensión. La dimensión de estas sub-matrices será
igualmente b\timesb.
\vskip1.000000\baselineskip
El resultado es una matriz de paridad H
de dimensiones (N-K)\timesN que define un
código LDPC de tasa de codificación R = K/N.
El grado de densidad (sparseness) de la matriz dependerá de la
magnitud b. Generalmente, cuanto mayor sea b mejores
prestaciones se obtiene usando un decodificador iterativo.
Si los ciclos de la matriz generada (grafo
Tanner) resultan ser muy cortos, se repite el paso 2 (o incluso el
paso 1 si fuese necesario) con la finalidad de mejorar estas
propiedades.
Para facilitar la implementación del codificador
es necesario generar la matriz modelo binaria H_{0} de una
forma específica. Primero se divide dicha matriz en dos partes
H_{0} = [H_{a}|H_{b}] donde la
submatriz H_{a} corresponde a las posiciones de los bits de
información y H_{b} a los bits de paridad. La primera
submatriz se genera de forma pseudo-aleatoria de la
forma descrita anteriormente. Sin embargo, la segunda sección suele
ser de carácter determinista.
Esta segunda sección H_{b}, según el
estado del arte, y para poder diseñar un codificador eficiente
tomará una de las siguientes dos formas: la primera forma es
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde la primera sección es un
vector columna pseudo-aleatorio de peso Hamming
mayor que 2 y H_{b1} una matriz doble diagonal cuyos
elementos h_{b1}(i,j) son iguales a "1"
cuando i=j, i=j+1 e iguales a "0"
en el resto de las
posiciones.
\vskip1.000000\baselineskip
La segunda forma de generar H_{b} es
totalmente doble diagonal
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde los elementos de la submatriz
h_{b}(i,j) son iguales a "1" cuando
i=j, i=j+1 e iguales a "0" en el
resto de las
posiciones.
\vskip1.000000\baselineskip
Una vez generado esta estructura de matriz base,
la matriz compacta H_{1} se genera de la forma
anteriormente descrita con la única excepción de que en la parte de
doble diagonal de H_{b}, los "1" son reemplazados por
un mismo número entero positivo y los "0" por "-1".
Igualmente la matriz de paridad final se obtiene cambiando los
enteros positivos por identidades rotadas cíclicamente y los
negativos por una submatriz nula. El procedimiento puede observarse
gráficamente en la figura 4, donde el bloque (17) genera la matriz
modelo binaria H_{0}, el bloque (18) genera la matriz
compacta H_{1}, el bloque (19) decide si los ciclos son
suficientemente largos, con lo que se pasa a generar la matriz de
paridad H con el bloque (20), o bien si los ciclos son cortos se
vuelve a generar la matriz modelo (21) o bien se vuelve a generar la
matriz base (22).
El procedimiento y dispositivo de la invención
modifica la estructura de la matriz de paridad conocida en el estado
del arte para facilitar la implementación final de la codificación y
decodificación y mejorar las prestaciones. Para ello la estructura
propuesta consiste en que la sección de la matriz modelo binaria
H_{0} correspondiente a los bits de paridad tenga la
siguiente forma:
donde la estructura H_{b1}
es triple diagonal, esto es, además de los elementos de las dos
diagonales centrales h_{b1}(i,i),
h_{b1}(i+1,i), el elemento de la diagonal de
la última fila h_{b1}(n-k-1,0) también es
igual a "1". La matriz compacta se genera de la forma
anteriormente descrita salvo que el elemento de la última fila igual
a "1" es reemplazado por un entero estrictamente positivo
w\geq0.
\vskip1.000000\baselineskip
Una matriz modelo binaria H_{0} para
r=1/2 con n=24 y k=12 podría tener la siguiente estructura:
\vskip1.000000\baselineskip
Una matriz compacta H_{1} derivada de
la anterior para un tamaño de bloque N=336 y por tanto con un factor
de expansión b=14 sería la siguiente:
\newpage
Para un tamaño de bloque diferente podemos
definir una matriz compacta diferente que puede derivar de la misma
matriz modelo binaria o de otra diferente. Una matriz compacta para
N=8640 bits con factor de expansión 360 derivada a partir de una
matriz modelo binaria diferente sería la siguiente:
El paso de matriz compacta a modelo binaria es
unívoco pero el paso contrario no, es decir, de una matriz modelo
binaria podemos obtener diferentes matrices compactas. La matriz
binaria está introducida como un paso que facilita la descripción de
la invención. Es posible desarrollar una matriz compacta
directamente sin pasar por la matriz modelo binaria. En ese caso de
dicha matriz compacta es posible obtener su correspondiente matriz
modelo binaria que si es triple diagonal estará de acuerdo al
procedimiento de la invención.
Los códigos para corrección de errores pueden
ser "pinchados", donde la técnica del pinchado (puncturing)
consiste en quitar elementos de la palabra de código para que no
sean transmitidos. En lugar de transmitir una palabra código
v = [v(0),v(1),...,v(N-1)] se
transmitirá una palabra w =
[w(0),w(1),...,w(N-1)], donde M<N. El
pinchado se debe de hacer de forma controlada, de forma que se
transmita la redundancia necesaria para que el decodificador del
receptor sea capaz de estimar la información transmitida. Este
pinchado se aplica tanto a los bits de información como a los bits
de paridad. Es posible definir un patrón de pinchado como la
secuencia de bits que han de ser transmitidos como pinchados, donde
dicho patrón de bits puede ser periódico o aperiódico. En el caso de
no tener ninguna regularidad, dicho patrón puede ser descrito con un
vector PP de N posiciones, indicando en él con un
"1" los bits que han de transmitirse y con un "0" los bits
que han de eliminarse (pincharse). Gracias a la técnica de pinchado
es posible aumentar la comunicación de información, puesto que se
está enviando menos redundancia. Si el peso Hamming del patrón
PP es M, la tasa total del sistema de codificación de
errores es R = K/M.
Por ejemplo, si tenemos un código con R=5/6 y
tamaño de bloque N=5184 y queremos realizar un pinchado para
aumentar el rate hasta R=16/18 podemos utilizar el siguiente patrón
de pinchado con lo que obtendremos un bloque con N=4860 bits:
Para realizar la implementación del codificador
de códigos LDPC se utiliza un dispositivo electrónico, ya sea un
programa ejecutado sobre un micro-procesador o una
implementación hardware en FPGA o ASIC. Dicho dispositivo recibe un
bloque de información, calcula los bits de paridad, los concatena
junto a los bits de información y los entrega a la siguiente etapa
del transmisor para ser modulados adecuadamente y transmitidos por
el canal correspondiente. El cálculo de los bits de paridad puede
ser mediante el producto con la matriz generadora G o
mediante la solución del sistema de ecuaciones presentado
anteriormente.
El decodificador de códigos LDPC suele basarse
en un decodificador iterativo. Un posible decodificador, entre
varias opciones del estado del arte, consiste de un estimador que al
recibir la palabra correspondiente al código transmitido r =
v + z, siendo z ruido aditivo del canal, hace
una estimación de ruido \hat{\mathbf{z}} de forma que
(r-\hat{\mathbf{z}})H^{T} = 0. En el caso
de que el sistema haga uso de la técnica de pinchado, antes del
decodificador habrá una unidad que inserte en las posiciones
pinchadas un indicador. Este indicador sirve para que el
decodificador estime en esas posiciones el valor adecuado.
La figura 1 muestra el diagrama de bloque de un
codificador típico, donde (1) es el bloque de información que se
desea transmitir u =
[u(0),u(1),...,u(K-1)], (2) es una
memoria que contiene la representación de la matriz de paridad H o
de la matriz generadora G, (3) es dicha matriz, (4) es el bloque
que realiza el algoritmo de codificación, (5) es la palabra código
lineal obtenida de la codificación v =
[v(0),v(1),...,v(N-1)], (6) es el bloque
que realiza la técnica de pinchado (puncturing) y (7) es la palabra
obtenida tras el pinchado w =
[w(0),w(1),...,w(M-1)].
La figura 2 muestra el diagrama de bloques para
un decodificador, donde (8) representa la señal recibida del canal
s =
[s_{0},s_{1},...,s_{M-1}],
que será similar a la palabra obtenida tras el pinchado pero tras
ser afectada por el ruido del canal, (9) representa al bloque que
realiza la función de "des-pinchado",
obteniendo una palabra (10) r =
[r(0),r(1),...,r(N-1)] con el número de
bits del código LPDC. (11) es la memoria que contiene o bien la
matriz de paridad o bien la matriz generadora en el receptor, y la
transmite (12) al bloque que realiza el algoritmo decodificador
(13). La salida de este bloque será la información recompuesta (14)
\hat{\mathbf{u}} =
[\hat{\mathit{u}}(0),\hat{\mathit{u}}(1),...,\hat{\mathit{u}}(K-1)].
Claims (30)
1. Procedimiento de comunicación de datos a
través de medios ruidosos, que se aplica en la codificación de datos
en transmisión y que genera bits de paridad sobre un bloque de
información de forma que de una palabra de K bits se genera una
palabra código de N bits; caracterizado porque comprende los
pasos de:
- -
- seleccionar un factor b que consiste en un número natural 1\leqb\leqK de forma que N/b=n y K/b=k sean números naturales;
- -
- generar una matriz modelo binaria H_{0}-[H_{a}|H_{b}] de tamaño (n-k)x n como la combinación de una submatriz correspondiente a las posiciones de los bits de información H_{a} y de una submatriz correspondiente a los bits de paridad H_{b}, donde dicha segunda submatriz H_{b} = [h_{b0}|H_{b1}] se compone de un vector columna de n-k posiciones h_{b0} y una estructura H_{b1} triple diagonal, en donde los elementos de las dos diagonales centrales h_{b1}(i,i), h_{b1}(i+1,i), 0\leqi\leqn-k-2 y de la diagonal de la última fila h_{b1}(n-k-1,0) son iguales a 1, siendo n-k el número de filas y columnas de la matriz H_{b}, y el resto de elementos son iguales a cero;
- -
- generar una matriz compacta H_{1} a partir de la matriz modelo binaria H_{0}.
- -
- generar la matriz de paridad H a partir de la matriz compacta H_{1};
- -
- seleccionar un bloque de información;
- -
- aplicar la matriz de paridad H sobre el bloque de información para determinar los bits de paridad correspondientes a dicho bloque; y
- -
- transmitir los bits de paridad junto con el bloque de información.
\vskip1.000000\baselineskip
2. Procedimiento de comunicación de datos a
través de medios ruidosos, según reivindicación 1,
caracterizado porque comprende se eliminar uno o más
elementos de la palabra código antes de ser transmitidos, mediante
la aplicación de una técnica de pinchado convencional, para que la
palabra transmitida tenga un número de bits menor que la palabra
código obtenida.
3. Dispositivo de comunicación de datos a través
de medios ruidosos, que se aplica en la codificación de datos en
transmisión, caracterizado porque el codificador
comprende:
- -
- medios para almacenar una matriz compacta H_{1} derivada de una matriz modelo binaria H_{0} = [H_{a}|H_{b}] formada como la combinación de una submatriz correspondiente a las posiciones de los bits de información H_{a} y de una submatriz correspondiente a los bits de paridad H_{b}, donde dicha segunda submatriz H_{b} = [h_{b0}|H_{bi}] se compone de un vector columna de n-k posiciones h_{b0} y una estructura H_{b1} triple diagonal, en donde los elementos de las dos diagonales centrales h_{b1}(i,i), h_{b1}(i+1,i), 0\leqi\leqn-k-2 y de la diagonal de la última fila h_{b1}(n-k-1,0) son iguales a 1, siendo n-k el número de filas y columnas de la matriz H_{b}, y el resto de elementos son iguales a cero;
- -
- un microprocesador que comprende medios para seleccionar un bloque de información, aplicar la matriz compacta para generar la matriz de paridad H, aplicar la matriz de paridad H al bloque de información para obtener los bits de paridad correspondientes a dicho bloque y añadir los bits de paridad al bloque de información antes de ser transmitidos.
\vskip1.000000\baselineskip
4. Dispositivo de comunicación de datos a través
de medios ruidosos, según reivindicación 3, caracterizado
porque el microprocesador comprende medios para tras añadir los bits
de paridad al bloque de información se eliminar uno o más elementos
de la palabra código antes de ser transmitidos, mediante la
aplicación de una técnica de pinchado convencional, para que la
palabra transmitida tenga un número de bits menor que la palabra
código obtenida.
5. Procedimiento de comunicación de datos a
través de medios ruidosos, que se aplica en la decodificación de
datos en recepción y que estima el bloque de información a partir de
un vector de señal recibida, de forma que de una palabra código
recibida de N bits se obtiene una palabra de K bits;
caracterizado porque comprende los pasos de:
- -
- seleccionar un vector de señal del canal;
- -
- calcular una matriz modelo binaria H_{0} = [H|H_{b}] como la combinación de una submatriz correspondiente a las posiciones de los bits de información H_{a} y de una submatriz correspondiente a los bits de paridad H_{b}, donde dicha segunda submatriz H_{b} =[h_{b0}|H_{b1}] se compone de un vector columna de n-k posiciones h_{b0} y una estructura H_{b1} triple diagonal, en donde los elementos de las dos diagonales centrales h_{b1}(i,i), h_{b1}(i+1,i), 0\leqi\leqn-k-2 y de la diagonal de la última fila h_{b1}(n-k-1,0) son iguales a 1, siendo n-k el número de filas y columnas de la matriz H_{b}, y el resto de elementos son iguales a cero;
- -
- generar una matriz compacta H_{1} a partir de la matriz modelo binaria H_{0}.
- -
- generar la matriz de paridad H a partir de la matriz compacta H_{1}; y
- -
- estimar el bloque de información a partir del vector de señal recibido y de la matriz de paridad H.
\vskip1.000000\baselineskip
6. Procedimiento de comunicación de datos a
través de medios ruidosos, según reivindicación 5,
caracterizado porque comprende insertar un valor indicador de
posiciones eliminadas en trasmisión por una técnica de pinchado
convencional, antes de realizar la estimación del bloque de
información a partir del vector de señal recibido y de la matriz de
paridad.
7. Dispositivo de comunicación de datos a través
de medios ruidosos, que se aplica en la decodificación de datos en
recepción; caracterizado porque el decodificador
comprende:
- -
- medios para almacenar una matriz compacta H_{1} derivada de una matriz modelo binaria H_{0} = [H_{a}|H_{b}] formada como la combinación de una submatriz correspondiente a las posiciones de los bits de información H_{a} y de una submatriz correspondiente a los bits de paridad H_{b}, donde dicha segunda submatriz H_{b} = [h_{b0}|H_{b1}] se compone de un vector columna de n-k posiciones h_{b0} y una estructura H_{b1} triple diagonal, en donde los elementos de las dos diagonales centrales h_{b1}(i,i), h_{b1}(i+1,i), 0\leqi\leqn-k-2 y de la diagonal de la última fila h_{b1}(n-k-1,0) son iguales a 1, siendo n-k el número de filas y columnas de la matriz H_{b}, y el resto de elementos son iguales a cero;
- -
- un microprocesador que comprende medios para generar la matriz de paridad H a partir de la matriz compacta H_{1}, aplicar dicha matriz de paridad H sobre el vector de señal recibido, y estimar el bloque de información recibido.
\vskip1.000000\baselineskip
8. Dispositivo de comunicación de datos a través
de medios ruidosos, según reivindicación 7, caracterizado
porque el microprocesador comprende medios para antes de aplicar la
matriz de paridad H sobre el vector de señal recibida
insertar un valor indicador en las posiciones eliminadas por la
técnica de pinchado en transmisión.
9. Procedimiento de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 1 o 5,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 33 6 bits con una
tasa de codificación de 1/2:
10. Procedimiento de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 1 o 5,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código 1920 bits con una tasa
de codificación de 1/2:
11. Procedimiento de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 1 o 5,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 864 0 bits con una
tasa de codificación de 1/2:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
12. Procedimiento de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 1 o 5,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 1440 bits con una
tasa de codificación de 2/3
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
13. Procedimiento de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 1 o 5,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 6480 bits con una
tasa de codificación de 2/3:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
14. Procedimiento de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 1 o 5,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 1152 bits con una
tasa de codificación de 5/6:
\vskip1.000000\baselineskip
\newpage
15. Procedimiento de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 1 o 5,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 5184 bits con una
tasa de codificación de 5/6:
16. Procedimiento de comunicación de datos a
través de medios ruidosos, según la reivindicación 2,
caracterizado porque partiendo de una palabra código con 1152
bits y tasa de codificación de 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
1080 bits y tasa de codificación de
16/18.
\vskip1.000000\baselineskip
17. Procedimiento de comunicación de datos a
través de medios ruidosos, según la reivindicación 2,
caracterizado porque partiendo de una palabra código con 5184
bits y tasa de codificación de 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
4860 bits y tasa de codificación de
16/18.
\vskip1.000000\baselineskip
18. Procedimiento de comunicación de datos a
través de medios ruidosos, según la reivindicación 2,
caracterizado porque partiendo de una palabra código con 1152
bits y tasa de codificación de 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
1008 bits y tasa de codificación de
20/21.
\vskip1.000000\baselineskip
19. Procedimiento de comunicación de datos a
través de medios ruidosos, según la reivindicación 2,
caracterizado porque partiendo de una palabra código con 5184
bits y tasa de codificación 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
4536 bits y tasa de codificación de
20/21.
\vskip1.000000\baselineskip
20. Dispositivo de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 3 o 7,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 336 bits con una tasa
de codificación de 1/2:
\vskip1.000000\baselineskip
21. Dispositivo de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 3 o 7,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código 1920 bits con una tasa
de codificación de 1/2:
\vskip1.000000\baselineskip
22. Dispositivo de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 3 o 7,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 8640 bits con una
tasa de codificación de 1/2:
\vskip1.000000\baselineskip
23. Dispositivo de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 3 o 7,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 1440 bits con una
tasa de codificación de 2/3:
\newpage
24. Dispositivo de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 3 o 7,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 6480 bits con una
tasa de codificación de 2/3:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
25. Dispositivo de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 3 o 7,
caracterizado porque se utiliza la siguiente matriz compacta
H_{1} para obtener palabras código de 1152 bits con una
tasa de codificación de 5/6:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
26. Dispositivo de comunicación de datos a
través de medios ruidosos, según las reivindicaciones 3 o 7,
caracterizado porque se utiliza la siguiente matriz compacta
H, para obtener palabras código de 5184 bits con una tasa de
codificación de 5/6:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
27. Dispositivo de comunicación de datos a
través de medios ruidosos, según la reivindicación 4,
caracterizado porque partiendo de una palabra código con 1152
bits y tasa de codificación de 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
1080 bits y tasa de codificación de
16/18.
\vskip1.000000\baselineskip
28. Dispositivo de comunicación de datos a
través de medios ruidosos, según la reivindicación 4,
caracterizado porque partiendo de una palabra código con 5184
bits y tasa de codificación de 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
4860 bits y tasa de codificación de
16/18.
\newpage
29. Dispositivo de comunicación de datos a
través de medios ruidosos, según la reivindicación 4,
caracterizado porque partiendo de una palabra código con 1152
bits y tasa de codificación de 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
1008 bits y tasa de codificación de
20/21.
\vskip1.000000\baselineskip
30. Dispositivo de comunicación de datos a
través de medios ruidosos, según la reivindicación 4,
caracterizado porque partiendo de una palabra código con 5184
bits y tasa de codificación 5/6 se utiliza el siguiente patrón de
pinchado
para obtener una palabra código de
4536 bits y tasa de codificación de
20/21.
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200900343A ES2363846B1 (es) | 2009-02-06 | 2009-02-06 | Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos. |
KR1020117005245A KR101636965B1 (ko) | 2009-02-06 | 2010-02-05 | 잡음성 매체들에서 데이터를 통신하기 위한 방법 및 장치 |
US13/056,343 US8719655B2 (en) | 2009-02-06 | 2010-02-05 | Method and device for communicating data across noisy media |
EP10710590.0A EP2395667B1 (en) | 2009-02-06 | 2010-02-05 | Quasi-cyclic ldpc coding |
PCT/ES2010/070067 WO2010089444A1 (es) | 2009-02-06 | 2010-02-05 | Codificar y decodificar usando códigos cuasi-cíclicos ldpc |
ES10710590.0T ES2559637T3 (es) | 2009-02-06 | 2010-02-05 | Codificación LDPC cuasi-cíclica |
CN201080005735.3A CN102301603B (zh) | 2009-02-06 | 2010-02-05 | 使用ldpc准循环码进行编码和解码 |
US14/270,637 US9240806B2 (en) | 2009-02-06 | 2014-05-06 | Method of codifying data or generating a block of data based on matrix with a triple diagonal structure |
US14/988,177 US9543985B2 (en) | 2009-02-06 | 2016-01-05 | Method of codifying data including generation of a quasi-cyclic code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200900343A ES2363846B1 (es) | 2009-02-06 | 2009-02-06 | Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos. |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2363846A1 true ES2363846A1 (es) | 2011-08-17 |
ES2363846B1 ES2363846B1 (es) | 2012-06-06 |
Family
ID=44320350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES200900343A Expired - Fee Related ES2363846B1 (es) | 2009-02-06 | 2009-02-06 | Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos. |
Country Status (1)
Country | Link |
---|---|
ES (1) | ES2363846B1 (es) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080222486A1 (en) * | 2007-03-09 | 2008-09-11 | Qualcomm Incorporated | Methods and apparatus for encoding and decoding low density parity check (ldpc) codes |
-
2009
- 2009-02-06 ES ES200900343A patent/ES2363846B1/es not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080222486A1 (en) * | 2007-03-09 | 2008-09-11 | Qualcomm Incorporated | Methods and apparatus for encoding and decoding low density parity check (ldpc) codes |
Non-Patent Citations (2)
Title |
---|
Kim J; Myung S; Yang K. "Quasi-Cyclic LDPC Codes for Fast Encoding". IEEE Transactions on Information Theory; Vol. 51, Nr. 8, Págs. 2894 - 2901. 01-08-2005. ISSN 0018-9448. * |
Silvia Anggraeni; Varun Jeoti "Efficient code construction of (3, k) Regular LDPC codes". International Symposium on Information Technology, 2008. ITSim 2008. Págs: 1 - 7. 26-08-2008. ISBN 978-1-4244-2327-9 ; ISBN 1-4244-2327-9 * |
Also Published As
Publication number | Publication date |
---|---|
ES2363846B1 (es) | 2012-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2387157B1 (en) | Efficient encoding of LDPC codes using structured parity-check matrices | |
EP3457575B1 (en) | Encoding method and device and decoding method and device for structured ldpc | |
EP1829222B1 (en) | Structured ldpc design with vector row grouping | |
JP4598085B2 (ja) | 検査行列生成方法 | |
EP1790082B1 (en) | Method and apparatus for encoding and decoding data | |
ES2370822T3 (es) | Generación de matriz de comprobación para códigos de comprobación de paridad de baja densidad (ldpc) irregulares con tasa de código determinada. | |
US7493548B2 (en) | Method and apparatus for encoding and decoding data | |
US9543985B2 (en) | Method of codifying data including generation of a quasi-cyclic code | |
US8112695B2 (en) | Method for encoding data message K' for transmission from sending station to receiving station as well as method for decoding, sending station, receiving station and software | |
KR20060106132A (ko) | 연접 ldgm 부호 부호화/복호화 방법 | |
EP3047575B1 (en) | Encoding of multiple different quasi-cyclic low-density parity check (qc-ldpc) codes sharing common hardware resources | |
ES2363846A1 (es) | Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos. | |
GB2509073A (en) | Low Density Parity Checking using Interleaver Address Mappings | |
ES2386449B1 (es) | Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado. | |
EP2178213A1 (en) | Methods and apparatuses for error correction coding | |
Stuart et al. | Design and implementation of hardware-efficient modified Rao–Nam scheme with high security for wireless sensor networks | |
Xiao et al. | Quasi-Cyclic LDPC Codes with Parity-Check Matrices of Column Weight Two for Erasure Correction | |
Johnson | Erasure correcting LDPC codes for channels with packet losses | |
Uchoa et al. | Repeat Accumulate Based Designs for LDPC Codes on Fading Channels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC2A | Transfer of patent |
Owner name: MARVELL HISPANIA, S.L. (SOCIEDAD UNIPERSONAL) Effective date: 20110519 |
|
FG2A | Definitive protection |
Ref document number: 2363846 Country of ref document: ES Kind code of ref document: B1 Effective date: 20120606 |
|
FD2A | Announcement of lapse in spain |
Effective date: 20210915 |