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 PDF

Info

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
Application number
ES200900343A
Other languages
English (en)
Other versions
ES2363846B1 (es
Inventor
Salvador Iranzo Molinero
Agustin Badenes Corella
Alberto Diego Jimenez Feltstrom
Jorge Vicente Blasco Claret
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MaxLinear Hispania SL
Original Assignee
MaxLinear Hispania SL
Diseno de Sistemas en Silicio SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to ES200900343A priority Critical patent/ES2363846B1/es
Application filed by MaxLinear Hispania SL, Diseno de Sistemas en Silicio SA filed Critical MaxLinear Hispania SL
Priority to PCT/ES2010/070067 priority patent/WO2010089444A1/es
Priority to KR1020117005245A priority patent/KR101636965B1/ko
Priority to US13/056,343 priority patent/US8719655B2/en
Priority to EP10710590.0A priority patent/EP2395667B1/en
Priority to ES10710590.0T priority patent/ES2559637T3/es
Priority to CN201080005735.3A priority patent/CN102301603B/zh
Publication of ES2363846A1 publication Critical patent/ES2363846A1/es
Application granted granted Critical
Publication of ES2363846B1 publication Critical patent/ES2363846B1/es
Priority to US14/270,637 priority patent/US9240806B2/en
Priority to US14/988,177 priority patent/US9543985B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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.
Objeto de la invención
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.
Antecedentes de la invención
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.
Descripción de la invención
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:
1
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:
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:
3
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
4
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:
5
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:
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:
7
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
8
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
9
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
10
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
11
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.
Breve descripción de las figuras
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.
Descripción de un ejemplo de realización de la invención
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:
12
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:
13
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
14
\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
15
\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:
16
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:
17
\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:
180
\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:
19
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:
20
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:
21
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:
22
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
23
\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
24
\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
25
\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
26
\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:
27
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
28
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
29
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
30
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
31
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:
32
33
\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:
34
\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:
35
\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:
36
\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
38
\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
39
\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
40
\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
41
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
42
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
43
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
44
para obtener una palabra código de 4536 bits y tasa de codificación de 20/21.
ES200900343A 2009-02-06 2009-02-06 Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos. Expired - Fee Related ES2363846B1 (es)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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&#39; 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