ES2386449B1 - Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado. - Google Patents

Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado. Download PDF

Info

Publication number
ES2386449B1
ES2386449B1 ES201030066A ES201030066A ES2386449B1 ES 2386449 B1 ES2386449 B1 ES 2386449B1 ES 201030066 A ES201030066 A ES 201030066A ES 201030066 A ES201030066 A ES 201030066A ES 2386449 B1 ES2386449 B1 ES 2386449B1
Authority
ES
Spain
Prior art keywords
matrix
bits
parity
information
noisy
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.)
Expired - Fee Related
Application number
ES201030066A
Other languages
English (en)
Other versions
ES2386449A1 (es
Inventor
Jorge Blasco Claret
Salvador Iranzo Molinero
Agustín Badenes Corella
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 ES201030066A priority Critical patent/ES2386449B1/es
Application filed by MaxLinear Hispania SL, Diseno de Sistemas en Silicio SA filed Critical MaxLinear Hispania SL
Priority to CN201080005735.3A priority patent/CN102301603B/zh
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 PCT/ES2010/070067 priority patent/WO2010089444A1/es
Priority to ES10710590.0T priority patent/ES2559637T3/es
Priority to TW99103896A priority patent/TWI469536B/zh
Publication of ES2386449A1 publication Critical patent/ES2386449A1/es
Application granted granted Critical
Publication of ES2386449B1 publication Critical patent/ES2386449B1/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

Perfeccionamiento del objeto de la solicitud P200900343 con título ?Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos?, para mejorar la protección frente a errores en la transmisión de información a través de un canal o medio de transmisión ruidoso. El procedimiento y dispositivo mejorado 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

PERFECCIONAMIENTO DEL OBJETO DE LA SOLICITUD P200900343 CON TÍTULO "PROCEDIMIENTO Y DISPOSITIVO DE COMUNICACIÓN DE
DATOS A TRAVÉS DE MEDIOS RUIDOSOS"
CAMPO DE LA INVENCIÓN
La presente invención se aplica al campo de la transmisión de datos, y más concretamente, a la comunicación de datos a través de medios ruidosos , esto es , medios de comunicación o canales que pueden introducir errores en la comunicación .
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. l . 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 ilppilriltus for encoding ilnd decoding dutu" que presentu 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 .
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 " bl de doble diagonal han sido usadas en el estado del arte .
Sigue e xistiendo no obstante en el estado de la técnica la necesidad de un método de codificación que incremente 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 .
La presente invención se refiere a mejoras introducidas sobre el objeto de la solicitud P200900343 , la cual presenta un método y sistema que soluciona los problemas anteriores , pero en la cual sigue e x istiendo la necesidad de matrices de codificación adicionales a las ahí presentadas que permitan ofrecer alternativas e incluso optimizar dicha 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 negrit a
(ejemplo
a) indica que el elemento es un valor escalar .
Por otra parte, los elementos escalares que componen una
matriz de dimensiones M xN 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 05i5M~1 el número de fila y 0 5j5N -1 el número de columna . Los elementos que componen un vector
a(i)
de dimensión M se anotan de la forma siendo (i) la posición del elemento en el vector (O'5.i.'5.M-l).
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(O),a(I), ...,a(M -2),a(M -1)] consiste en rotar ciclicament e sus elementos hacia la derecha obteniendo el vector [a«M-z)%M)•...• a«M-z-l)%M)] como resultado, siendo % el operador "módulo" . De la misma forma , una rotación cíclica z aplicada sobre una matriz A = [a(O),.....a(N -1)] opera sobre sus columnas obteniendo la matriz
[a((N -z)% N ), ... ,a(( N -z -l)%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 equivalent e a una rotación cíclica
M -z
Y N -z respectivamente para vec tor y matriz hacia la
izquierda .
DESCRIPCIÓN DE LA INVENCIÓN
Para lograr los objetivos y evitar los i n convenientes indicados en anteriores apartados, la i nvención consist e 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/bi k-K/b) . A continuación se define una matriz modelo binaria
de tamaño (n-k ) x n como la combinación de una submatriz correspondiente a las posiciones de los bits de información Ha Y de una submatriz correspondiente a los
bits de paridad Hb l donde dicha segunda submatriz se compone de un vector columna de n-k
posiciones hbO Y una matriz " bl con estructura triple diagonal, esto es, donde los elementos de las dos diagonales centrales (i,i), (i+ J,i), 05.is.n-k-2 y de la
hb1 hb1
diagonal de la última línea hbJn-k-l,O) son iguales a 1 , siendo n-k el número de filas y columnas de la matriz
"b
I
Y el resto de elementos son iguales a cero . Después , se genera la matriz compacta "1y a partir de ella la matriz de paridad H A partir de ahí se toma un bloque de
información y se util iza 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 HI derivada de
una matriz modelo binaria " o :::: [Ha I" b] formada como la combinación de una submatriz correspondiente a las posiciones de los bits de información Ha Y de una submatriz correspondiente a los bits de paridad " b' donde
dicha segunda submatriz Hb ~ [hb<lIHbll se compone de un
vector columna de n-k posiciones y una estructura " bl
hbO
triple diagonal , esto es , donde los elementos de las dos diagonales centrales hbI U,i) , hbl (i+ l,i), 05,iS.n-k-2 y de la
diagonal de la última línea hb¡{n -k-l,O) son iguales a 1 , siendo n-k el número de filas y columnas de la matriz " b ' Y el resto de elementos son iguales a cero¡ y de un
microprocesador que toma el bloque de información, ut iliza l a matriz compacta "1para generar la matri z 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 implement ació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 que es una combinación de una submatriz correspondiente a las posiciones de los bits de información Ha Y de una submatriz correspondiente a los bits de paridad donde dicha segunda submatriz se compone de un vector columna de n-k
posiciones hbO y una estructura H bl tripl e diagonal, esto
es I
donde los elementos de las dos diagonales centrales
h" (i,i) ,
h" (i+ l,i), 05:i$n -k -2 y de la diagonal de la última
línea
hb¡{n-k -l,O) son iguales a 1, siendo n-k el número de
filas y columnas de la matriz " b' Y el resto de elementos son iguales a cero . Después genera la matriz compacta "1y 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 "1
derivada de una matriz modelo binaria ", =[".1",] formada como la combinación de una submatriz correspondiente a las posiciones de los bits de información " y de una submatriz correspondiente a los bits de paridad "b' donde dicha segunda submatriz H b =[hbQ IH b1] se compone de un vector columna de n-k posiciones h bO y una estructura " bl triple diagonal, esto es , donde los elementos de las dos di agonales centrales h(i,i) , h(i+l,i), O~ i ~ n-k -2 Y de la
b1 b1
diagonal de la última línea hb¡{n-k-I,O) son iguales a 1, siendo n-k el número de filas y columnas de la matriz " 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 "1' aplica dicha matriz de paridad H sobre el vector de señal recibido, y estima el bloque de
ES 2 386449 Al
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, S 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 una de 10 las siguientes matrices compactas "1para obtener palabras código de 336 bits con una tasa de codificación de ~. La matriz :
13 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 o -} -1 -1 -1 -} -1 -1 -1 -1 -1 S -1 -1 -1 11 -1 -1 -1 4-1 6 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 15 -1 13 -1 -1 -1 -1 II -1 10 -1 9 13 -} -1 o o -} -1 -} -1 -} -1 -} -} -1 -1 13 -1 -1 6 -1 10 -1 5 -1 -1. 4 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -} -1 2 11 -} -1 -} -1 -} -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1
o o
, -, -1
-1 -1 9 -1 -1 -1 -1 -1. -1 -1 -1 -1 -1 -1 o o -1 -1 -1
20 2 -1 13 -1 9 -1 -1 -1 -1 -1 -1. -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 11 -1 -1 -1 -1 -1 -1 4 11 12 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 10 -1 -1 -1 -1 1 -1 13 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 O -1 -1 O 2 2 -1 -1 -1 -1. O -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 2 11 2 4 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 o
o bien la matriz :
-1 -1 -1 6 -1 -1 9 6 -1 -1 2 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O -1 -1 -1 3 -1 12 1 -1 -1 3 -1 O o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 9 11 -1 -1 13 -1 -1 2 12 -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 30 1 -1 -1 11 -1 -1 , -1 -1 -1 11 -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 4 a -1 -1 -1 -1 -1 2 S 4 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 3 O -1 -1 a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O o -1 -1 -1 -1 -1
-1 -} -1 O 6 -} -1 -} -1 5 13 -} -1 -1 -} -1 -1 -1 o o -1 -} -1 -1 -1 -} -1 9 -1 -} -1 3 -1 -} -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1
35 9 O 13 -1 -1 12 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1
-
1 5 -1 -} 4 -1 -} 5 -} -1 -} -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1
-1 -1 -1 8 -1 -1 8 -1 -1 9 O -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 O O
10 11 -1 -1 -1 3 -1 -1 O -1 -1 -1 8 -1 -1 -1 -1 -1 -} -1 -1 -1 O
40 En otra implementación es posible utilizar una de las siguientes matrices compactas "1para obtener palabras código de 1920 bits con una tasa de codificación de 1/2 . La 45 matriz :
-
1 52 -1 64 -1 -1 60 -1 -1 -1 -1 1. -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
ES 2 386449 Al
10 -1 -1 -1 -1 79 -1 -1 19 -1 18 51. -1 O O -1 -1 -1 -1 -1 -1 -1 -1 -1 9 -1 -1 -1 -1 -1 -1 7S 29 72 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 -1 52 16 63 -1 -1 65 -1 -1 -1 -1 -1. 40 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 24 -1 -1 39 -1 -1 -1 -1 -1. -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1
" 1 -1 -1 -1 -1 -1 -1 -1 53 79 48 -1. -1 -1 -1 -1 -1 O o -1 -1 -1 -1 -1
-
1 O -1 -1 -1 61 51 -1 -1 -1 -1. -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 SO -1 -1 -1 -1 15 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1
"
15 -1 19 -1 -1 -1 -1 -1 7S SI 43 -1. -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 12 -1 -1 -1 38 -1 -1 -1 69 -1 62 -1. -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 19 -1 41 -1 -1 41 -1 -1 -1 -1. O -1 -1 -1 -1 -1 -1 -1 -1 -1 O O 41 -1 11 -1 -1 -1 -1 -1 15 -1 30 -1 40 -1 -1 -1 -1 -1 -1 -1 -1 -1 O
O bien la matriz :
27 -1 -1 -1 55 19 -1 ~ -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -] -1 -1 -1 -1 -1 -1 o -1 1 -1 70 -1 47 -1 62 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 41 -1 -1 -1 44 -1 -1 59 W 25 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 16 77 -1 -1 -1 -1 48 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1
-
} -} -} 45 -} 27 -} 46 }9 -1 -} -1 -1 -} -1 -1 o o -1 -1 -1 -} -1 -} -} -1 63 -1 -} -} 55 -1 -} -1 48 26 }O -} -1 -1 -1 o o -1 -1 -} -1 -} -1 -1 -1 42 -1 21 -1 58 -1 41 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 79 o -1 7 S2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 29 -1 -1 -1 37 -1 -1 -1 35 21 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 22 72 -1 -1 47 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 35 -1 -1 -1 -1 13 -1 35 -1 70 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 46 28 -1 -1 -1 38 -1 -1 -1 -1 10 59 -1 -1 -1 -1 -1 -1 -1 -1 -1 O
En otra implementación es posible utilizar una de
las siguientes matrices compactas "1 para obtener palabras
código de 8640 bits con una tasa de codificación de 1/2 . La
matriz :
~"'~"~I "_~ O~~~~~~~~~~
290 O 312 -1 32 -1 120 -1 -} -1 -} -1 -} o o -1 -} -1 -} -1 -} -1 -} -} 183 57 -} -} 187 68 -} -} -} -} 260 -1 8} -} o o -} -} -} -1 -} -} -} -} -1 -1 -1 323 -1 -1 -1 137 3S4 -1 -1 162 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -} -1 228 -1 -} -} -} 224 -} 114 -} 245 -} -1 -} -1 o o -} -1 -} -} -} -}
113 98 120 23 O O 1 -} -1 -} -1 -} -} -} 138 -} 187 45 62 -} -1 -1 -1 -} -1 o o -} -} -} -}
-1 -1 142 -1 -1 -} 347 67 -1 -} -1 46 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 n9 265 -1 66 156 96 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 212 184 -} -} }02 -} -} -} -} }20 -} -1 -} -1 -} -1 -} -} -} -1 -} o o -}
-1 -1 -1 -1 -1 -1 -1 90 15 -1 329 153 o -1 -1 -1 -1 -1 -1 -} -1 -1 o o 207 70 -} 7 235 -} -} -1 -1 -} -} -1 8} }85 -} -1 -} -1 -} -1 -} -1 -} o
o bien la matriz :
-
1 34 -1 95 -1 279 -1 -1 -1 -1 249 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -} -} O-} O -} -} -} -} 134 356 275 -} O o -1 -} -} -1 -1 -1 -} -} -} 51 -1 27 -1 -1 -1 -1 -1 22 152 -1 57 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 }24 -1 290 -1 281 15 -} -1 -} -1 -1 -} -1 -} o o -1 -} -1 -} -} -} -1 -1 340 -1 99 336 -} -1 -1 -1 -1 -1 33 -1 -1 -1 o o -} -1 -} -1 -1 -1 163 -} 46 -} -1 -} -1 -} -1 306 -1 86 -} -1 -} -1 -1 o o -1 -} -} -1 -} -1 lBS -1 24 -1 -1 -1 94 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 223 -1 225 325 -} -1 -1 -1 -} 297 -1 -} -1 -1 -1 -} -1 -1 o o -} -} -} 46 -1 314 -} -1 -} 59 -} -1 67 -1 120 -} -1 -} -1 -} -1 -} -1 o o -1 -} -} -1 }21 -1 -1 -1 -1 161 -1 303 -1 264 -1 -1 -} -1 -} -1 -} -1 -} o o -} -1 303 -1 -1 185 -1 -} 138 -} -1 -1 o -1 -} -1 -1 -} -} -1 -} -} o o
ES 2 386449 Al
-1 -1 312 -1 -1 -1 100 -1 -1 144 -1 307 33 166 -1 -1 -1 -1 -1 -1 -1 -1 -1 O
En otra implementación es p osible utilizar la siguiente matriz compacta para obtener palabras código
H1
de 1440 bits con una tasa de codificación de 2/3
49 -1 -1 21 31 -1 57 -1 -1 19 -1 29 2 -1 19 -1 -1 o -1 -1 -1 -1 -1 -1 -1 7 22 -1 -1 37 -1 32 10 -1 26 -1. -1 59 -1 48 -1 o o -1 -1 -1 -1 -1 53 -1 -1 20 50 -1 -1 .3 16 -1 49 -1. -1 28 14 -1 -1 -1 o o -1 -1 -1 -1 -1 5e 23 -1 -1 15 54 -1 -1 5 -1 18 49 -1 -1 13 -1 -1 -1 o o -1 -1 -1 55 -1 -1 S8 -1 9 -1 26 57 -1 41 -1. 31 -1 21 -1 -1 -1 -1 -1 o o -1 -1 -1 10 49 -1 59 -1 1 -1 -1 JO -1 18 -1 48 -1 7 59 -1 -1 -1 -1 o o -1 48 -1 -1 50 le -1 -1 11 52 -1 59 -1. -1 37 -1 10 o -1 -1 -1 -1 -1 o o -1 24 16 -1 -1 o 53 -1 -1 41 -1 38 51 -1 58 -1 59 8 -1 -1 -1 -1 -1 o
En otra imp lementación es p osible utilizar la siguiente matriz compacta "1 para obtener palabras código de 6480 bits con una tasa de codificación de 2/3 :
78 -1 -1 167 237 -1 3 -1 266 -1 -1 1 n02 153 -1 -1 212 -1 o -1 -1 -1 -1 -1 -1 -1 83 189 -1 -1 68 -1 178 -1 90 205 -1. -1 13 4 -1 -1 o o -1 -1 -1 -1 -1 -1 226 147 -1 46 -1 -1 76 -1 116 -1 211 -1 112 -} 118 -} -1 o o -} -} -} -} 92 -1 -1 214 -1 236 241 -1 }57 -1 143 -1 214 -1 207 -1. -} -1 -} o o -} -} -}
144 -1 -1 258 264 -1 53 -1 114 -1 172 -1. -1 82 262 -1 62 -1 -1 -1 o o -1 -1 -1 153 120 -1 -1 }99 -1 126 -1 61 -1 183 15 -1 -} 134 -1 -1 -} -1 -1 o o -1 -1 100 -1 141 -1 36 -1 17 -1 156 -1 124 162 -1 -1 57 O -1 -1 -1 -1 -1 O O 196 -1 187 -1 73 -1 80 -1 139 -1 57 -1 -1 236 267 -1 62 256 -1 -1 -1 -1 -1 O
En otra implementación es p osible utilizar la siguiente matriz compacta "1 para obtener palabras código de 1152 bits con una tasa de codificación de 5/6 :
-
1 13 32 47 41 24 -1 25 22 40 1 31 8 15 20 15 42 30 13 3 -1 o -1 -1 25 46 15 43 45 29 39 47 23 38 39 12 -} 21 -} 38 33 O O -1 39 O O -} 35 45 45 38 14 16 6 11 -1 18 7 41 35 17 32 45 41 -1 le 17 o -1 o o 9 32 6 22 26 31 9 8 22 32 40 4 18 40 36 -1 -} 23 31 41 39 20 -} O
En otra implementación es posible ut ilizar la siguiente matriz compacta para obtener palabras código
H1
de 5184 bits con una tasa de codificación de 5/6 :
-
1 47 146 203 184 112 -1 116 103 181 3 140 38 68 91 70 191 138 62 14 -1 o -1 -1 117203 67194206133114 212104171 176 56 -1 % -1167149 1 -1177 o o -1 153 206 198 173 55 72 28 53 -1 82 34 186 161 eo 144 204 le7 -1 e4 77 o -1 o o
44 147 27 83 118130 41 38 100 146 183 19 85180 163 -1 -1 106140 les 177 94 -1 o
Una implementación en l a 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 siguient e
patrón de pinchado
pp~;:;IS) = [1 1 ... 1 O O ... O 1 1 ... 1 O O .•. O1
'-----------v--~~~ 720 36 360 36
para obtener una palabra código de 1080 bits y tasa de codificación de 16/18 .
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
pp\\~IS) = [1 1 ... 1 O O ... O 1 1 ... 1 O O ... O 1 1 ... 1 1
'-.r-----' '-.r-----' '-y-----' '-.,.-' '-.r-----' 3240 162 972 162 648
para obtener una palabra código de 4860 bits y tasa de codificación de 16/18 .
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
pp:¡;;21) = [1 1 ... 1 O O ... O 1 1 ... 1 O O ... O 1 1 ... 1 1
'-.r-----' '-.,.-' '-v-----" '-v-''-v-------' 720 48 240 % 48
para obtener una palabra código de 1008 bits y tasa de codificación de 20/21 .
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
pp\¡::21) = [O O ... O 1 ... 1 O O ... O 1 1 ... 1 1
---------------
'------y-------~~
216 43W 432 216
para obtener una palabra código de 4536 bits y tasa de codificación de 20/21 .
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 . Fi.gura 2. -Representa el diagrama de bloques del decodificador en el receptor . Figura 3 . -Muestra el gráfico bipartito de la matriz H del ejemplo . Fi.gura 4. -Representa el diagrama de flujo de la construcción de un código LOPC 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 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 LOPC 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~2 . En transmisión tendremos bloques de i nformación compuestos por K bits . Dicho bloque de información se denomina u ~ [u(O),II(l), ... ,u(K -1)]. Tras aplicar el procedimiento de invención se generará una palabra de un código lineal
v=[v(O),v(I), ...,v(N -I)] con N bits (donde N>K) . Dicho código se
genera mediante el producto v :;::::: uG siendo G una matriz
I
K xN binaria generadora del código LPDC . El con junto de posibles códigos generados se denominará conjunto e y la
I
tasa de codificación o cadencia del código (rate) será
R=K/N .
Por tanto, es posible definir un código e de tasa de codificación R como el conjunto de vectores VE e
2K
generados por todos los posibles vectores binarios al aplicarles la matriz generadora G. Una definición equivalente sería que e es el espacio vector ial de N dimensiones abarcado por la base compuesta de las K líneas de la matriz C. Otra forma alternativa de definir el código e es mediante su mat r iz de paridad H, que es la forma más empleada en el estado del arte . Esta matriz , de dimensiones (N-K)xN , tiene como líneas la base del
espacio
dual e, y por lo tanto GH T =0 . Cualquier vector
del
código satisface
vH T
= 0
(siendo
"TU el operador de transposición).
A la hora de utilizar estos códigos desde un punto de vista práctico, es prefer ible 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 lp]' siendo
p = [p(O), p(I), ... , 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:::I / 2
y
se define mediante la siguiente matriz de paridad:
5
o 1
O O O 1
O O
1 O 1 O 1
H;
1 1 O O O 1 O
O
O
O O
O
O O
O
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.
vH T
10 Aplicando la ecuación =0 a la matriz H se obtiene el siguiente sistema de ecuaciones :
urO) + u( l) + u(3)+ prO) + p(3)+ p(4) ; O u(O)+ u(1)+ u(2)+ prO) + p(2) + p(4); O u(O)+ u(I)+u(2)+u(4)+ p(I)+ p(3); O u(2) +u(3) + u(4) + p(O)+ p(l) + p(2) ; O u(3) + u(4) + p(l) + p(2) + p(3) + p(4); O
15 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 20 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
25 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 líneas 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 línea i;;;;; O, ...,N-K-1 y columna j ;:::: O, ... ,N -l , sea distinto de cero .
Por otro lado, es p osible definir ciclos sobre códigos LDPe , donde se define un ciclo de longitud 2c como el camino de 2c aristas de longitud que visita e 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 vj_tal 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
HQ de dimensiones (n-k)xn donde n<N , k<K Y R=k/n=K/N .
Si el peso Hamming de las columnas y líneas de "o 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 estadistica 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 " 01 se genera la matriz compacta K¡ reemplazando cada elemento igual a "1" de "o por un número entero positivo O"::; x < b
(donde b~N/n) de forma pseudo-aleatoria y cada elemento igual a "OH por el valor -l.
3 . -Para obtener la matriz de paridad H, los elementos positivos de se reemplazan por una sub-matriz
H1
i denti dad rotada ciclicamente e l numero de veces indicada por el valor del elemento positivo de en cuestión y los
H1 elementos iguales a -1 son reemplazados por una sub-matriz nula de la misma dimensión . La dimensión de estas submatrices será igualmente bxb.
El resultado es una matriz de paridad H de dimensiones (N -K)xN que defi ne un código LOPC de tasa de codificación R=K/N . El grado de densidad Isparseness) 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)
5 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 i mplementación del codificador 10 es necesario generar la matriz modelo binaria "o de una forma específica . Primero se divide dicha matriz en dos
H -[H IH J H.
partes o-b donde la submatriz corresponde a las
a
H,
posiciones de los bits de información y a los bits de paridad . La primera submat riz se genera de forma pseudo15 aleatoria de la forma descrita a nteriormente . Sin embargo, la segunda sección suele ser de carácter determinista. H,
Esta segunda sección 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
hb(ü)
O ü hb (1)
1 O
ü
hb(n -k-l)
O O
donde la primera sección es un vector columna pseudo-
aleatorio de peso Hammi ng mayor que 2 y una matriz dobl e diagonal cuyos element os hbl (i,j) son iguales a " 1" cuando
e iguales a " O" en el resto de las 25 posiciones .
,.
H,
La segunda forma de generar es totalmente doble diagonal
o
o
1
O
O
O
O
donde los elementos de la submatriz hb(i,j) son iguales a i=j i=j+ 1
5 " 1" cuando , e iguales a " O" en el resto de las posiciones . Una vez generado esta estructura de matriz base , la matriz
compacta se genera de la forma anteriormente descrita con la única excepción de que en la parte de doble diagonal H,
10 de , 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
15 gráficamente en la figura 4, donde el bloque (17) genera la Ho
matriz modelo binaria el bloque (18) genera la matriz H,
compacta 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 20 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 invención
25 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
ES 2 386449 Al
prestaciones . Para ello la estructura propuesta consiste en
que
la sección de la matriz modelo binaria
correspondiente
a los bits de paridad tenga la siguiente
forma :
h,,(O)
o o
1 O
h,,(l)
O
h,,(n-k -l)
O
donde la estructura H bl es triple diagonal, esto es, además
de los elementos de las dos diagonales centrales hb1 (i,O I
hb1 U+1,i) , el elemento de la diagonal de la última línea
hb1(n-k-J,O) también es igual a " 1" . La matriz compacta se
10 genera de la forma anteriormente descrita salvo que el elemento de la última línea igual a "1n es reemplazado por un entero estrictamente positivo w2: O.
Una matriz modelo binari a "o para r=1/2 con n=24 y k=12 pOdría tener la siguiente estructura :
15 o 00 o 00000 0000000000 000 000 o o 000000000
o 0000 o o 00 00000000 0000 o o 00 00 0000000 o o 0000000000 000000
20 o 000000 o 00000 o o o o o 00 o 00000000000 o o o o o o 0000000000000 o o o
o 000000 00000000 o o o o o o o o o o 000000000 o
25 0000 0000 000000000 00000000 000000000
Una matriz compacta "1derivada de la anterior para un tamaño de bloque N=336 y por tanto con un factor de 30 expansión b=14 sería la siguiente:
13 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
S -1 -1 -1 11 -1 -1 -1 4 -1 6 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1
ES 2 386449 Al
2 O
-
1 1.3 -1 -1 -1 -1 11 -1 10 -1 9 13 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 13 -1 -1 6 -1 10 -1 S -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 -1 8 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1
, "
-
1 .3 -1 -1 -1 -1 -1 -1 , -, , -1 -1 -1 -1 -, O O -1 -1 -1 -1 -1 -1 -1 -, 9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1
-
1 13 -1 9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1 11 -1 -1 -1 -1 -1 -1 , 11 12 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1 -1 10 -1 -1 -1 -1 -1 13 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 o -1 -1 o -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 O
"
o de manera preferente, puede utilizarse la siguiente matriz como alternativa :
-
} -} -} -} -1 9 6 -} -1 -1 -1 o -1 -} -1 -} -1 -} -} -} -} -}
-
, o -1 -1 -1 .3 -1 12 -1 -1 .3 -} o o -1 -1 -1 -1 -1 -1 -1 -1 -} -1 9 11 -1 -1 13 -1 -1 12 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 11 -1 -1 -1 -1 -1 11 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 3 o -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 o 6 -1 -1 -1 -1 5 13 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 9 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1
9 o 13 -1 -1 12 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 5 -1 -1 -1 -1 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 8 -1 -1 8 -1 -1 9 o -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 O O 10 11 -1 -1 -1 3 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O
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 .
Para obtener palabras código de 1920 bits con una tasa de codificación de 1/2 se puede utilizar la matriz :
-
1 52 -1 64 -1 -1 60 -1 -1 -1 -1 1 -1 O -} -1 -} -1 -} -1 -} -1 -} -1
10 -1 -1 -1 -1 " -1 -1 79 -1 78 51. -1 o O -1 -1 -, -, -1 -1 -, -, -, 9 -1 -1 -1 -1 -1 -1 75 29 72 -1 -1 -, O o -1 -, -, -1 -1 -, -, -,
-
1 52 16 63 -1 -1 65 -1 -1 -1 -1 -1 40 -1 -1 o O -1 -1 -1 -1 -1 -1 -1 -1 24 -1 -1 47 39 -1 -1 -1 -1 -1 -} -1 -} -1 O O -} -1 -1 -1 -} -1 52 -1 -1 -1 -1 -1 -1 -1 53 " 48 -1 -} -1 -} -1 -} O O -1 -1 -1 -} -1 -1 O -1 -1 72 -1 67 57 -1 -1 -1 -1 -} -1 -} -1 -1 -1 O O -1 -1 -} -1 -1 7 -1 -1 -1 50 -1 -1 -1 -1 15 -} -1 -1 -1 -} -1 -} O O -1 -1 -1 15 -1 19 -1 -1 -1 -1 -1 75 51 43 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 72 -1 -1 -1 38 -1 -1 -1 69 -1 62 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 19 -1 41 -1 -1 41 -1 -1 -1 -1 O -1 -} -1 -1 -1 -} -1 -} -1 O O 41 -1 17 -1 -1 -1 -1 -1 1S -1 JO -1 40 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 o
o bien, preferentemente, la matriz :
27 -1 -} -1 55 19 -} M -1 -1 -} -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O -1 -1 70 -1 47 -1 ~ -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 41 -1 -1 -1 44 -1 -1 59 W 25 -1 -1 O o -1 -1 -1 -1 -1 -1 -1 -1 16 n -1 -1 -1 -} 48 -1 -1 -} -1 -1 -1 -1 o O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 45 -1 27 -1 46 19 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 63 -1 -1 -1 55 -1 -1 -1 48 26 10 -1 -1 -1 -1 O O -1 -1 -1 -1 -1
ES 2 386449 Al
-1 -1 -1 42 -1 21 -1 SS -1 41 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1 -1 -1 -1 -1 78 O -1 7 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1 -1 -1 29 9 -1 -1 -1 37 -1 -1 -1 35 21 -1 -1 -1 -1 -1 -1 -1 -, O o -1 -1 -1 -1 22 72 -1 -1 47 -1 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 35 -1 -1 -1 -1 13 -1 35 -1 70 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 46 28 -1 -1 -1 31 -1 -1 -1 e -1 10 58 -1 -1 -1 -1 -1 -1 -1 -1 -1 o
Una matriz compacta para bits con factor de e xpansión 360 derivada a partir de una matriz modelo binaria diferente sería la siguiente :
-
} -1 -} -1 -} -1 297 106 328 -1 -} 99 -1 o -1 -} -1 -} -1 -} -1 -} -1 -} 290 o 312 -1 32 -1 120 -1 -1 -1 -1 -1 -} o o -} -1 -1 -1 -1 -1 -1 -1 -1
18.3 57 -1 -1 187 68 -1 -1 -1 -1260 -1 81 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 323 -1 -1 -1 137 354 -1 -1 162 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1228 -1 -1 -1 -1224 -1 114 -1245 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 113 98 -1 -1 120 23 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 138 -1 187 45 62 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 142 -1 -1 -1 347 67 -1 -1 -1 46 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 328 265 -1 66 156 96 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 212 184 -1 -1 102 -1 -1 -1 -1 120 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 60 15 -1 329 153 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o o 207 70 -1 1 235 -1 -1 -1 -1 -1 -1 -1 81 185 -1 -1 -1 -1 -1 -1 -1 -1 -1 o
Otra alternativa preferente para obtener palabras código de 8640 bits con una tasa de codificación de 1/2 es la matriz :
-
1 34 -1 95 -1 279 -1 -1 -1 -1 248 -1. -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 o -1 -1 -1 -1 134 356 275 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 51 -1 27 -1 -1 -1 -1 -1 22 152 -1 57 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 124 -1 290 -1 281 15 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 340 -1 99 336 -1 -1 1 -1 -1 -1 -1 33 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 163 -1 46 -1 -1 -1 -1 -1 -1 306 -1 86 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 185 -1 24 -1 -1 -1 94 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 223 -1 225 325 -1 -1 -1 -1 -1 297 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 46 -1 314 -1 -1 -1 59 -1 -1 67 -1 120 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 121 -1 -1 -1 -1 161 -1 303 -1 264 -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 303 -1 8 -1 185 -1 -1 138 -1 -1 -1. o -1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 312 -1 -1 -1 100 -1 -1 144 -1 307 33 166 -1 -1 -1 -1 -1 -1 -1 -1 -1 O
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 = [veO), v(l),..., veN -1)] se transmitirá una
palabra w = [IY{O), w(l), ... , IY{M -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 " l H los bits que han de transmitirse y con un " OH 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=5 l84 y queremos realizar un pinchado para aumentar el rate hasta R=16/l8 podemos utilizar el siguiente patrón de pinchado con lo que obtendremos un bloque con N=4860 bits :
pp\',%'" ~ [1 1 ... 1 O O ... O 1 ... 1 O O ... O 1 1 ...
'-v-' '-v------' '-v-' '----v-' '-----v-'
3240 162 972 162 648
Para realizar la implementación del codificador de códigos LOpe 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 LDPe 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
r =v+z
código transmitido siendo Z ruido aditivo del
canal , hace una estimación de ruido z de forma que
(r-z)H' ~O
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(O),u( I), ...,u(K ~ 1)], (2) es una
memoria que contiene la representación de la matriz de IJaridad 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(O),v(I)"",v(N -I)], (6) es el bloque que realiza la técnica de pinchado (puncturing) y (7 ) es la palabra obtenida tras el pinchado w = [w(O), w( 1),,,,, w(M -1)] .
5 La figura 2 muestra el diagrama de bloques para un decodificador, donde (8 ) representa la señal recibida del
canal S"" [so,s¡, ... ,S,lf_I J I 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
10 "des-pinchado", obteniendo una palabra (10 ) r = [r(O), r(I),,,.,r(N-I)] 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) . 15 La salida de este bloque será la información recompuesta
(14) íi = [ü(O),ü(l), ...,ü(K -1)].

Claims (15)

  1. REIVINDICACIONES
  2. 1 . Procedimiento de comunicación de datos a través de
    5 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 :
    10 -seleccionar un factor b que consiste en un número natural l~b~K de forma que N/b=n y K/b=k sean números naturales ;
    -
    generar una matriz modelo binaria Ho=[ HaI Hbl de tamaño (nk)x n como la combinación de una submatriz correspondiente a las posiciones de los bits de información Ha y de una 15 submatriz correspondiente a los bits de paridad Hb, donde dicha segunda submatriz Hb [h bO IHblJ se compone de un vector columna de n-k posici ones hbO y una estructura Hbl triple diagonal , en donde los elementos de las dos diagonales centrales hbl(i , i) , hhl(i+l , i) , O~i~n-k-2 y de la
    20 diagonal de la última fila hb1(n-k -l , O) son iguales a 1 , siendo n-k el número de filas y columnas de la matriz Hb, y el resto de elementos son iguales a cero ;
    generar una matriz compacta H1 a partir de la matriz modelo binaria Ho .
    25 -generar la matriz de paridad H a partir de la matriz compacta Hl ;
    -
    seleccionar un bloque de información ;
    dfJllcdL Id lIldLL"L:: de pdL"lddd H oübLe el blüque de información para determinar los bits de paridad 30 correspondientes a dicho bloque ; y
    ES 2 386449 Al
    transmitir los bits de paridad junto con el bloque de información .
  3. 2 . Procedimiento de comunicación de datos a través de 5 medios ruidosos según la reivi ndicación 1 caracterizado porque se utiliza la siguiente matriz compacta Hl para obtener palabras código de 336 bits con una tasa de codificación de 1/2:
    -1 -1 -1 6 -1 -1 6 -1 -1 2 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 10 -1 o -1 -1 -1 3 -1 12 1 -1 -1 3-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 9 11 -1 -1 13 -1 -1 2 12 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 11 -1 -1 7 -1 -1 -1 11 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 a -1 -1 -1 -1 -1 4-1-1-1 o -1 -1 -1 -1 -1 -1 ., o -1 -1 8 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 15 -1 -1 -1 6 -1 -1 -1 -1 5 13 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1 -1 -1 -1 9 -1 -1 -1 3 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
    o 13 -1 -1 12 -1 -1 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 5 -1 -1 4 -1 -1 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o ., -1 -1 -1 8 -1 -1 8 -1 -1 o -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o
    20 10 11 -1 -1 -1 3 -1 -1 O -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1
  4. 3 . Procedimiento de comunicación de datos a través de medios rui dosos según la reivindicaci ón 1 caracterizado porque se utiliza la s igu i ente matriz compacta H1 para 25 obtener palabras código 1920 bits con una tasa de codificación de 1/2:
    27 -1 -1 -1 55 19 -1 30 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 1 -1 70 -1 47 -1 62 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 41 -1 -1 -1 44 -1 -1 59 60 25 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 30 16 77 -1 -1 -1 5 -1 48 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 45 -1 27 -1 46 19 -1 -1 -1 -1 -1 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 63 -1 -1 -1 55 -1 -1 -1 48 26 10 -1 -1 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 42 -1 21 -1 58 -1 41 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1 -1 -1 -1 -1 78 O -1 7 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1 35 -1 29 9 -1 -1 -1 37 -1 -1 -1 35 21 -1 -1 -1 -1 -1 -1 -1 -1 O -1 -1 -1 -1 22 72 -1 -1 47 -1 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1 35 -1 -1 -1 -1 13 -1 35 -1 70 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 46 2B -1 -1 -1 3B -1 -1 -1 8 -1 10 58 -1 -1 -1 -1 -1 -1 -1 -1 -1 o
    40 4 . Procedimiento de comunicación de datos a través de
    medios ruidosos según la reivindicación 1 caracterizado porque se utiliza la siguiente matriz compact a 8 1 para
    ES 2 386449 Al
    obtener palabras c6di go de 8640 bits con una tasa de codificación de 1/2:
    -
    1 34 -1 9$ -1 219 -1 -1 -1 -1 248 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 () -1 o -1 -1 -1 -1 134 356 215 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 5 51 -1 27 -1 -1 -1 -1 -1 22 152 -1 57 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 124 -1 290 -1 281 15 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -L -1 -1 340 -1 99 336 -1 -1 1 -1 -1 -1 -1 33 -1 -1 -1 o -1 -1 -1 -1 -1 -1 163 -1 46 -1 -1 -1 -1 -1 -1 306 -1 86 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 185 -1 24 -1 -1 -1 94 o -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-L-1
    10 -1 223 -1 225 325 -1 -1 -1 -1 -1 297 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 46 -1 314 -1 -1 -1 59 -1 -1 67 -1 120 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 121 -1 -1 -1 -1 161 -1 303 -1 264 -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1 -1 303 -1 8 -1 195 -1 -1 138 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 312 -1 -1 -1 100 -1 -1 144 -1 307 33 166 -1 -1 -1 -1 -1 -1 -1 -1 -1
  5. 5 . 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 81 derivada de
    20 una matriz modelo binaria Ho [Ha I Hb ] formada como la combinación de una submatriz correspondiente a las posiciones de los bits de información Ha y de una submatriz correspondiente a los bits de paridad Hb , donde dicha segunda submatriz H b = [hb O IH bi ] se compone de un vector
    25 columna de n-k posiciones h bO y una estructura H bl triple diagonal , en donde los elementos de las dos diagonales centrales hb1(i ,i ), hb1(i+l,i ), O~i~n-k-2 y de la diagonal de la última fila hb dn-k-1, O) son iguales a 1 , siendo n-k el número de filas y columnas de la matriz Hb, y el resto
    30 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 35 paridad correspondientes a dicho bloque y afíadir los bits
    ES 2 386449 Al
    de pari dad al bloque de i nformaci ón ant es de se r transrni tidos .
  6. 6 . Dispositivo de comunicación de datos a través de medios ruidosos según la reivindicación 5 caracterizado porque se utiliza la siguiente matriz compacta obtener palabras código de 336 bits con una tasa de codificación de 1/2 :
    -1 -1 -1 6 -1 -1 6 -1 -1 2 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 3 -1 12 1 -1 -1 3-1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 9 11 -1 -1 13 -1 -1 2 12 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1
    1 -1 -1 11 -1 -1 7 -1 -1 -1 11 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 a -1 -1 -1 -1 -1 4-1-1-1 o -1 -1 -1 -1 -1 -1 -, -1 -1 a -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 6 -1 -1 -1 -1 5 13 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1 -1 -1 -1 -1 -1 -1 3 -1 -1 3 1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1
    o 13 -1 -1 12 -1 -1 a -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -) 5 -1 -1 4 -1 -1 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -, -1 -1 -1 e -1 -1 e -1 -1 o -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o 10 11 -1 -1 -1 3 -) -1 o -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -) -1
  7. 7 . Dispositivo de comunicación de datos a través de medios ruidosos según la reivindicación 5 caracterizado porque se utiliza la siguiente matriz compacta obtener palabras código 1920 bits con una tasa de codificación de 1/2 :
  8. 8 . Dispositivo de comunicación de datos a través de medios ruidosos según la reivindicación 5 caracterizado porque se utiliza la siguiente matriz compacta obtener
    27
    -1 -1 -1 55 19 -1 30 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
    -1
    -1
    o -1 1 -1 70 -1 47 -1 62 -1 -1 o
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    _1
    _1
    41 _1 _1 _1 44 _1 _1 _~q 60 n _1 _1 o o
    _1
    _1
    _1
    _1
    _1
    _1
    _1
    _1
    16
    77 -1 -1 -1 5 -1 49 -1 -1 -1 -1 -1 -1 -1 O -1 -) -1 -1 -1 -1 -1
    -1
    -1
    -1
    45 -1 27 -1 46 19 -1 -1 -1 -1 -1 -1 -1 o -)
    -1
    -1
    -1
    -1
    -1
    -)
    -1 63 -) -1 -1 55 -1 -1 -) 48 26 )0 -1 -1 -) -1 o -1 -1 -) -1 -1
    -1
    -1
    -1
    42 -1 21 -1 SS -1 4l -1 -1 -1 -1 -1 -1 -1 -1 o -1-1-1-1
    -1
    -1
    -1
    -1
    78 o -1 7 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1
    -1
    29 9 -1 -1 -1 37 -1 -1 -1 35 21 -1 -1 -1 -1 -1 -1 -1 -1 o -1
    -1
    -1
    -1
    22 72 -1 -1 47 -1 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -,
    35
    -1 -1 -1 -1 13 -1 35 -1 70 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 O
    -1
    46 28 -1 -1 -1 39 -1 -1 -1 9 -1 10 59
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    palabras código de 8640 bits con una tasa de codificación
    ES 2 386449 Al
    -
    1 34 -1 95 -1 279 -1 -1 -1 -1 249 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 O -1 O -1 -1 -1 -1 134 356 275 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 51 -1 27 -1 -1 -1 -1 -1 n 152 -1 57 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 124 -1 290 -1 ZSI 15 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 5 -1 340 -1 99 336 -1 -1 1 -1 -1 -1 -1 33 -1 -1 -1 o -1 -1 -1 -1 -1 -1 163 -1 46 -1 -1 -1 -1 -1 -1 306 -1 86 -1 -1 -1 -1 -1 O -1 -1 -1 -1 -1 -1 195 -1 24 -1 -1 -1 94 O -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1 -1 223 -1 225 325 -1 -1 -1 -1 -1 297 -1 -1 -1 -1 -1 -1 -1 -1 O -1 -1 -1 46 -1 314 -1 -1 -1 59 -1 -1 67 -1 120 -1 -1 -1 -1 -1 -1 -1 -1 O O -1 -1
    10 -1 -1 121 -1 -1 -1 -1 161 -1 303 -1 264 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -, -1 303 -1 e -1 lBS -1 -1 138 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 312 -1 -1 -1 100 -1 -1 144 -1 307 33 166 -1 -1 -1 -1 -1 -1 -1 -1 -1
  9. 9. Procedimiento de comunicación de datos a través de
    15 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 :
    20 -seleccionar un vector de señal del canal ;
    calcular una matriz modelo binaria Ho = [H IHbJ como la combinación de una submatriz correspondiente a las posiciones de los bits de información Ha y de una submatriz correspondiente a los bits de paridad Hb, donde dicha
    25 segunda submatriz Hb = [hbO IHb1 ] se compone de un vector columna de n-k posiciones hbO y una estructura Hbl. triple diagonal , en donde los elementos de las dos diagonales centrales hb1(i, i) , hb1(i+l , i) , O~i~n-k-2 y de la diagonal de la última fila hb¡(n-k -l , O) son iguales a 1, siendo n-k
    30 el número de filas y columnas de la matriz Hb, y el resto de elementos son iguales a cero ;
    generar una matriz compacta H1 a partir de la matriz modelo binaria Ho;
    generar la matriz de paridad H a partir de la matriz 35 compacta H1; y
    ES 2 386449 Al
    estimar el bloque de información a partir del vector de señal recibido y de la matriz de paridad H.
  10. 10 . Procedimiento de comunicación de datos a través de 5 medios ruidosos según la reivi ndicación 9 caracterizado porque se utiliza la siguiente matriz compacta H1 para obtener palabras código de 336 bits con una tasa de codificación de 1/2:
    -1 -1 -1 6 -1 -1 6 -1 -1 2 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 10 -1 o -1 -1 -1 3 -1 12 1 -1 -1 3-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 9 11 -1 -1 13 -1 -1 2 12 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 11 -1 -1 7 -1 -1 -1 11 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 a -1 -1 -1 -1 -1 4-1-1-1 o -1 -1 -1 -1 -1 -1 -, o -1 -1 8 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 15 -1 -1 -1 6 -1 -1 -1 -1 5 13 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1 -1 -1 -1 9 -1 -1 -1 3 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
    o 13 -1 -1 12 -1 -1 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 5 -1 -1 4 -1 -1 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -, -1 -1 -1 8 -1 -1 8 -1 -1 o -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o 20 10 11 -1 -1 -1 3 -1 -1 O -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1
  11. 11 . Procedimient o de comunicación de datos a través de medios ruidosos según la reivi ndicación 9 caracterizado porque se utiliza la siguiente matriz compacta Hl para
    25 obtener palabras código 1920 bits con una tasa de codificación de 1/2:
    27 -1 -1 -1 55 19 -1 JO -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 1 -1 10 -1 41 -1 62 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 4l -1 -1 -1 44 -1 -1 59 60 25 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 30 16 77 -1 -1 -1 S -1 48 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 45 -1 n -1 46 19 -1 -1 -1 -1 -1 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 6J -1 -1 -1 55 -1 -1 -1 48 26 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 42 -1 21 -1 S8 -1 41 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1 -1 -1 -1 -1 18 O -1 1 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 35 -1 29 9 -1 -1 -1 37 -1 -1 -1 35 21 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 22 72 -1 -1 47 -1 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1 35 -1 -1 -1 -1 13 -1 35 -1 70 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 46 28 -1 -1 -1 38 -1 -1 -1 8 -1 10 58 -1 -1 -1 -1 -1 -1 -1 -1 -1
    40 12 . Procedimiento de comunicación de datos a través de medios ruidosos según la reivindicación 9 caracterizado
    porque se utiliza la siguiente matriz compacta H1 para
    ES 2 386449 Al
    obtener palabras c6di go de 8640 bits con una tasa de codificación de 1/2:
    -
    1 34 -1 9$ -1 219 -1 -1 -1 -1 248 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 () -1 o -1 -1 -1 -1 134 356 215 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 5 51 -1 27 -1 -1 -1 -1 -1 22 152 -1 57 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 -1 124 -1 290 -1 281 15 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -L -1 -1 340 -1 99 336 -1 -1 1 -1 -1 -1 -1 33 -1 -1 -1 o -1 -1 -1 -1 -1 -1 163 -1 46 -1 -1 -1 -1 -1 -1 306 -1 86 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 185 -1 24 -1 -1 -1 94 o -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-L-1
    10 -1 223 -1 225 325 -1 -1 -1 -1 -1 297 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 46 -1 314 -1 -1 -1 59 -1 -1 67 -1 120 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 121 -1 -1 -1 -1 161 -1 303 -1 264 -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1 -1 303 -1 8 -1 195 -1 -1 138 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 312 -1 -1 -1 100 -1 -1 144 -1 307 33 166 -1 -1 -1 -1 -1 -1 -1 -1 -1
  12. 13 . 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 Hl derivada de
    20 una matriz modelo binaria Ho [Ha I Hb ] formada como la combinación de una submatriz correspondiente a las posiciones de los bits de información Ha y de una submatriz correspondiente a los bits de paridad Hb , donde dicha segunda submatriz Hb [hbO IHbd se compone de un vector
    25 columna de n-k posiciones hbO y una estructura Hbl triple diagonal , en donde los elementos de las dos diagonales centrales hb1(i, i), hb1(i+l,i), O:::::i:::::n-k-2 y de la diagonal de la última fila hbdn-k -1, O) son iguales a 1, siendo n-k el número de filas y columnas de la matriz Hb, y el resto
    30 de elementos son iguales a cero ;
    -
    un microprocesador que comprende medios para generar la matriz de paridad H a partir de la matriz compacta Hl, aplicar dicha matriz de paridad H sobre el vector de señal recibido , y estimar el bloque de información recibido .
    ES 2 386449 Al
  13. 14 . Dispositivo de comunicación de dat os a través de medios ruidosos según la reivindicación 13 caracterizado porque se utiliza la siguiente matriz compacta obtener palabras código de 336 bits con una tasa de codificación de 1/2 :
    -1 -1 -1 6 -1 -1 6 -1 -1 2 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 3 -1 12 1 -1 -1 3-1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 9 11 -1 -1 13 -1 -1 2 12 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1
    1 -1 -1 11 -1 -1 7 -1 -1 -1 11 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 a -1 -1 -1 -1 -1 ~-1-1-1 o -1 -1 -1 -1 -1 -1
    ~,
    -1 -1 8 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 o o -1 -1 -1 -1 -1 -1 -1 -1 6 -1 -1 -1 -1 !> 13 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1 -1 -1 -1 9 -1 -1 -1 3 -1 -1 3 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
    o 13 -1 -1 12 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1.-1 -1 5 -1 -1 4 -1 -1 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ~, -1 -1 -1 9 -1 -1 9 -1 -1 o -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1
    10 11 -1 -1 -1 3 -1 -1 o -1 -1 -1 e -1 -1 -1 -1 -1 -1 -1 -1 -1 o
  14. 15 . Dispositivo de comunicación de datos a través de medios ruidosos según la reivindicación 13 caracterizado porque se utiliza la siguiente matriz compacta obtener
    palabras código 1920 bits con una tasa de codificación de 1/2 :
    27
    -1 -1 -1 55 19 -1 30 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
    -1
    -1
    o -1 1 -1 70 -1 47 -1 62 -1 -1 o
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    41 -1 -1 -1 44 -1 -1 59 60 2S -1 -1 o
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    16
    77 -1 -1 -1 5 -1 48 -1 -1 -1 -1 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1
    -1
    -1
    -1
    45 -1 27 -1 46 19 -1 -1 -1 -1 -1 -1 -1 o
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    63 -1 -1 -1 55 -1 -1 -1 48 26 10 -1 -1 -1 -1 O
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    42 -1 21 -1 se -1 4l -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1-1
    -1
    -1
    -1
    -1
    78 O -1 7 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0-1-1-1
    -1
    29 9 -1 -1 -1 37 -1 -1 -1 35 21 -1 -1 -1 -1 -1 -1 -1 -1 O
    -1
    -1
    -1
    -1
    22 72 -1 -1 47 -1 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0
    -1
    35
    -1 -1 -1 -1 13 -1 35 -1 70 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 o
    -1
    46 28 -1 -1 -1 38 -1 -1 -1 8 -1 10 58
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
  15. 16 . Dispositivo de comunicación de datos a través de medios ruidosos según la reivindicación 13 caracterizado porque se utiliza la siguiente matriz compacta obtener palabras código de 8640 bits con una tasa de codificación de 1/2:
    -
    1 34 -1 95 -1 279 -1 -1 -1 -1 248 -1 -1 o -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 o -1 o -1 -1 -1 -1 134 356 275 -1 o -1 -1 -1 -1 -1 -1 -1 -L -1 51 -1 27 -1 -1 -1 -1 -1 n 152 -1 57 -1 -1 O -1 -1 -1 -1 -1 -1 -1 -1
    ES 2 386449 Al
    -,
    '" -, '" -, '" "
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    '" -, " '" -, -, -, -, -, -, "
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    -,
    '" -,
    -, '"' " -, -, " -, -, -, -, -, -, -, " -, 30' , -, -, -, "' -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -,
    5
    -, m -, m m -, -, -, -, -, m -, -, -, -, -, -, -, -, -, -, -,
    "
    -, n, -, -, -, " -, -, " -, '" -, -, -, -, -, -, -, -, , -, -,
    -,
    -,
    '" -, -, -, -, '" -, '" -, '" -, -, -, -, -, -, -, -, -, , -,
    10
    -, -, '" -, -, '" -, -, -, '" -, -, '00 -, -, '" -, -, '" -, -, -, '" -, -, " ", -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, , -,
ES201030066A 2009-02-06 2010-01-20 Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado. Expired - Fee Related ES2386449B1 (es)

Priority Applications (10)

Application Number Priority Date Filing Date Title
ES201030066A ES2386449B1 (es) 2010-01-20 2010-01-20 Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado.
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准循环码进行编码和解码
TW99103896A TWI469536B (zh) 2010-01-20 2010-02-08 在雜訊媒體上之資料通信程序及裝置
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
ES201030066A ES2386449B1 (es) 2010-01-20 2010-01-20 Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado.

Publications (2)

Publication Number Publication Date
ES2386449A1 ES2386449A1 (es) 2012-08-21
ES2386449B1 true ES2386449B1 (es) 2013-08-23

Family

ID=45024671

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201030066A Expired - Fee Related ES2386449B1 (es) 2009-02-06 2010-01-20 Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado.

Country Status (2)

Country Link
ES (1) ES2386449B1 (es)
TW (1) TWI469536B (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI635712B (zh) * 2017-06-21 2018-09-11 晨星半導體股份有限公司 準循環低密度同位檢查碼的解碼電路及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8261155B2 (en) * 2007-03-09 2012-09-04 Qualcomm Incorporated Methods and apparatus for encoding and decoding low density parity check (LDPC) codes

Also Published As

Publication number Publication date
ES2386449A1 (es) 2012-08-21
TWI469536B (zh) 2015-01-11
TW201126917A (en) 2011-08-01

Similar Documents

Publication Publication Date Title
EP2387157B1 (en) Efficient encoding of LDPC codes using structured parity-check matrices
US11043967B2 (en) Method and apparatus for channel encoding and decoding in a communication system using a low-density parity check code
JP5017463B2 (ja) 伝送システム
WO2010089444A1 (es) Codificar y decodificar usando códigos cuasi-cíclicos ldpc
WO2012037749A1 (zh) 一种低密度奇偶校验码的编码方法及装置
US9203434B1 (en) Systems and methods for improved encoding of data in data storage devices
US7493548B2 (en) Method and apparatus for encoding and decoding data
BRPI0514245B1 (pt) Método e aparelho para codificar e decodificar dados
CN102394659A (zh) Ldpc码校验矩阵构造方法及对应矩阵乘法运算装置
CN108832936A (zh) 一种ldpc码的构造方法及系统
EP3047575B1 (en) Encoding of multiple different quasi-cyclic low-density parity check (qc-ldpc) codes sharing common hardware resources
ES2386449B1 (es) Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos mejorado.
JP4855348B2 (ja) 符号化器及び復号器、並びに送信装置及び受信装置
Bleichenbacher et al. Decoding interleaved Reed–Solomon codes over noisy channels
Butler et al. On distance properties of quasi-cyclic protograph-based LDPC codes
KR100929080B1 (ko) 통신 시스템에서 신호 송수신 장치 및 방법
ES2363846B1 (es) Procedimiento y dispositivo de comunicación de datos a través de medios ruidosos.
JP2017505498A (ja) データ記憶方法及びデータ記憶デバイス、記憶されているデータの復号方法及び復号デバイス、並びに対応するコンピュータプログラム
JP5582088B2 (ja) 符号化装置、復号装置、符号化方法、復号方法、送信装置、送信方法
Rkizat et al. Construction and iterative threshold decoding for low rates Quasi-Cyclic One Step Majority logic decodable codes
CN118868963A (zh) 非二进制准循环低密度奇偶校验码ldpc编码方法及装置
Xiao et al. Quasi-Cyclic LDPC Codes with Parity-Check Matrices of Column Weight Two for Erasure Correction
EP1800406A2 (en) Method of encoding and decoding using ldpc code and apparatus thereof
Vignesh et al. Quasi-cyclic regenerating codes for distributed storage: Existence and near-MSR examples
Kumar et al. Structured LDPC codes over GF (2/sup m/) and companion matrix based decoding

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: 2386449

Country of ref document: ES

Kind code of ref document: B1

Effective date: 20130823

FD2A Announcement of lapse in spain

Effective date: 20210915