ES2875101T3 - Codificación/descodificación por código LDPC cuasicíclico semirregular de corta duración para aplicaciones de bajo consumo tal como la lectura remota - Google Patents

Codificación/descodificación por código LDPC cuasicíclico semirregular de corta duración para aplicaciones de bajo consumo tal como la lectura remota Download PDF

Info

Publication number
ES2875101T3
ES2875101T3 ES16306546T ES16306546T ES2875101T3 ES 2875101 T3 ES2875101 T3 ES 2875101T3 ES 16306546 T ES16306546 T ES 16306546T ES 16306546 T ES16306546 T ES 16306546T ES 2875101 T3 ES2875101 T3 ES 2875101T3
Authority
ES
Spain
Prior art keywords
graph
protograph
node
matrix
nodes
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.)
Active
Application number
ES16306546T
Other languages
English (en)
Inventor
Jean-Louis Dornstetter
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.)
GRDF SA
Vigie Groupe SAS
Original Assignee
Suez Groupe SAS
GRDF 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
Application filed by Suez Groupe SAS, GRDF SA filed Critical Suez Groupe SAS
Application granted granted Critical
Publication of ES2875101T3 publication Critical patent/ES2875101T3/es
Active 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1177Regular LDPC codes with parity-check matrices wherein all rows and columns have the same row weight and column weight, respectively
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • H04L1/0063Single parity check
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/40Arrangements in telecontrol or telemetry systems using a wireless architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/50Arrangements in telecontrol or telemetry systems using a mobile data collecting device, e.g. walk by or drive by
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/60Arrangements in telecontrol or telemetry systems for transmitting utility meters data, i.e. transmission of data from the reader of the utility meter
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Selective Calling Equipment (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Codificador LDPC (Verificación de paridad de baja densidad) configurado para codificar señales mediante un código LDPC caracterizado porque admite una matriz de control representada por un gráfico bipartito de Tanner compuesto por 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, siendo dicho gráfico tal que: - cada uno de los nodos restringidos del gráfico está conectado a exactamente 7 nodos variables del gráfico; - cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6; en el que dicho gráfico bipartito de Tanner es un gráfico derivado de un protógrafo (400a), comprendiendo dicho protógrafo 8 nodos variables del protógrafo (410a, 411a, 412a, 413a, 414a, 415a, 416a, 417a), siendo cada nodo variable del protógrafo un grupo de 16 nodos variables del gráfico y 4 nodos restringidos del protógrafo (420a, 421a, 422a, 423a), siendo cada nodo restringido del protógrafo un grupo de 16 nodos restringidos del gráfico, en el que cada nodo restringido del protógrafo está conectado a 7 de dichos nodos variables del protógrafo según una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, comprendiendo cada celda de la matriz, definida en una fila y una columna, el valor 1 cuando el nodo variable representado por la fila de la celda y el nodo restringido representado por la columna de la celda están vinculados, y el valor 0, en el caso contrario, estando dicha matriz definida por los valores: **(Ver fórmula)** estando dicho codificador LDPC caracterizado porque la distancia mínima del código es igual a 14.

Description

DESCRIPCIÓN
Codificación/descodificación por código LDPC cuasicíclico semirregular de corta duración para aplicaciones de bajo consumo tal como la lectura remota
Campo de la invención
La presente invención se refiere al campo de los códigos de corrección de errores. Se refiere más específicamente a los códigos LDPC que permiten transmitir señales con bajo consumo de energía y baja complejidad de descodificación, manteniendo buenas propiedades de corrección de errores, en particular para la transmisión de datos de lectura remota de contadores de agua o energía.
Estado de la técnica anterior
La transmisión de datos puede tener lugar a través de diferentes canales de comunicación, por ejemplo, por radiocomunicación, fibra óptica, etc... En la gran mayoría de los casos, el canal de transmisión no es completamente fiable y la transmisión puede estar sujeta a errores. De manera general, cuanto menor sea la relación señal/ruido o SNR (del inglés Signal to Noise Ratio) del canal de transmisión, cuanto más ruidoso sea el canal, mayor será la tasa de error.
Los códigos de corrección de errores permiten, añadiendo bits de redundancia a la señal a codificar, detectar y corregir los errores de transmisión. Existen muchos códigos de corrección de errores. De manera general, tienen como objetivo obtener una tasa máxima de detección y/o corrección de errores, añadiendo la menor cantidad de bits de redundancia posible. Según las aplicaciones, también puede ser importante limitar la complejidad de codificar y/o descodificar el código de corrección de errores.
Los llamados códigos LDPC (del acrónimo en inglés Low Density Parity Check Code o Código de Verificación de la Paridad de Baja Densidad) son una familia de códigos de corrección de errores. Los códigos LDPC son populares para transmitir datos en canales particularmente ruidosos. Se utilizan en particular como códigos de corrección de errores en el estándar DVB-S2.
Los códigos LDPC están representados por un gráfico bipartito, denominado de Tanner, formado por nodos variables y nodos restringidos. Al descodificar, una o más iteraciones, sucesivamente, permiten comprobar si el mensaje se transmite sin errores y, en caso de error(es), corregirlos. Los códigos de tipo LDPC son, por ejemplo, introducidos por Davey, M. C., y MacKay, D. J. (1998, Junio). Low density parity check codes over GF (q). En Information Theory Workshop, 1998 (pág. 70-71). iEe E.
La lectura remota, por ejemplo contadores de agua o energía del tipo de gas o electricidad, consiste en recuperar información de forma remota de cada medidor, periódicamente, por ejemplo, el consumo diario. La lectura remota tiene muchas ventajas sobre la lectura manual del consumo: los datos se transmiten con mayor regularidad y la lectura remota permite recuperar valores de sensores que son de difícil acceso para un operario. Por lo demás, el envío automático y remoto de valores de consumo es una solución más económica y rápida que la lectura manual de contadores. De manera general, en la lectura remota, los contadores envían regularmente datos de consumo a los concentradores a través de un enlace de radio y los concentradores envían estos datos a una plataforma de procesamiento.
La lectura remota de este tipo de contadores presenta dificultades particulares: los contadores suelen estar en zonas de difícil acceso y suelen funcionar con una batería eléctrica. Luego, el medidor está diseñado para funcionar de forma autónoma durante un largo período de tiempo, por ejemplo del orden de 20 años, sin intervención. Para preservar la vida de la batería, este tipo de contador generalmente reduce la potencia de transmisión para limitar el consumo debido a la transmisión de datos. Sin embargo, esto lleva a obtener, por parte del receptor, una señal muy ruidosa.
Los códigos LDPC del estado de la técnica tienen el inconveniente de incrementar significativamente la energía consumida por bit útil transmitido. Por lo demás, la mayoría de los códigos LDPC de última generación son códigos largos. Por tanto, estos códigos largos requieren numerosas iteraciones de descodificación. Esto hace que el número de operaciones a realizar para la descodificación sea alto y, por lo tanto, la descodificación sea compleja. Por lo demás, los códigos largos pueden, cuando el tamaño de las tramas útiles a transmitir es pequeño, causar un aumento indebido en el tamaño del bloque, para poder codificar los datos.
SHORT PROTOGRAPH-BASED LDPC CODES, Dariush Divsalar, Sam Dolinar y Christopher Jones, Military Communications Conférence, 2007. MIL-COM 2007. IEEE, section IV. desvela un código LDPC que comprende 128 nodos variables, 64 nodos restringidos, y para los cuales cada nodo restringido está vinculado a 7 nodos variables. Estos códigos LDPC tienen buenas capacidades de corrección de errores. Sin embargo, la distancia mínima del código es 12.
Por tanto, es necesario un código de corrección de errores, que permita reducir, en la codificación, la energía consumida por bit útil transmitido, manteniendo una complejidad de descodificación limitada y una buena tasa de corrección de errores para señales muy ruidosas.
Sumario de la invención
Para este efecto, la invención describe un codificador LDPC (Control de Paridad de Baja Densidad) configurado para codificar señales utilizando un código LDPC caracterizado porque admite una matriz de control representada por un gráfico bipartito de Tanner compuesto por 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, siendo dicho gráfico tal que: cada uno de los nodos restringidos del gráfico está conectado a exactamente 7 nodos variables del gráfico; cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6; en el que dicho gráfico bipartito de Tanner es un gráfico derivado de un protógrafo, comprendiendo dicho protógrafo 8 nodos variables del protógrafo, siendo cada nodo variable del protógrafo un grupo de 16 nodos variables del gráfico y 4 nodos restringidos del protógrafo, siendo cada nodo restringido del protógrafo un grupo de 16 nodos restringidos del gráfico, en el que cada nodo restringido del protógrafo está conectado a 7 de dichos nodos variables del protógrafo según una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, cada celda de la matriz, definida en una fila y una columna, que comprende el valor 1 cuando el nodo variable representado por la fila de la celda y el nodo restringido representado por la columna de la celda están vinculados, y el valor 0, en el caso contrario, estando dicha matriz definida por los valores:
Figure imgf000003_0001
dicho codificador LDPC se caracteriza porque la distancia mínima de código es igual a 14
Un nodo variable del gráfico corresponde a un bit de datos codificados, que puede ser un bit de datos útiles o un bit de redundancia.
Un nodo restringido del gráfico define una restricción que se comprobará en los nodos variables a los que está conectado.
Un borde del gráfico representa una relación entre un nodo restringido del gráfico y un nodo variable del gráfico. Un ciclo es una serie de bordes que tienen el mismo nodo de origen y de final.
La longitud de un ciclo es el número de bordes en la serie de bordes que forman el ciclo.
Un código LDPC según la invención es un llamado código corto, es decir tiene un número reducido de nodos variables en comparación con los códigos habitualmente utilizados. Esto permite descodificarlo con un número limitado de iteraciones, por tanto, la descodificación de un código LDPC según la invención no es muy compleja. Un código LDPC según la invención comprende el doble de nodos variables que nodos restringidos y cada nodo restringido está vinculado a 7 nodos variables. Esto permite conectar cada nodo variable al menos a 3 nodos restringidos y evitar la presencia de configuraciones de autobloqueo que pueden ocurrir en presencia de nodos variables de grado 2.
Por otra parte, las familias más famosas de códigos LDPC, como, por ejemplo, las familias desveladas por Gallager, R. (1962). Low-density parity-check codes. IRE Transactions on information theory, 8(1), 21-28., o MacKay, D. J., y Neal, R. M. (1996). Near Shannon limit performance of low density parity check codes. Electronics Letters, 32(18), 1645-1646., son más bien familias en las que cada nodo restringido está vinculado a 6 nodos variables y cada nodo variable a exactamente 3 nodos restringidos. Estos códigos se denominan códigos regulares (cada nodo variable está vinculado al mismo número de nodos restringidos y viceversa). Los llamados códigos regulares son los códigos más utilizados, debido a su simplicidad de implementación.
Sin embargo, el solicitante ha observado experimentalmente que los llamados códigos irregulares, en los que los nodos variables no están todos vinculados con el mismo número de nodos restringidos, tenía una mayor distancia mínima entre palabras y, por tanto, una mayor probabilidad de corrección de errores. Esta observación también ha sido realizada por algunos autores, por ejemplo, en SHORT PROTOGRAPH- BASED LDPC CODES, Dariush Divsalar, Sam Dolinar y Christopher Jones, Military Communications Conference, 2007. MILCOM 2007. IEEE, section IV.
Un código LDPC que comprende 128 nodos variables, 64 nodos restringidos, y para el cual cada nodo restringido está vinculado a 7 nodos variables, por lo tanto, permite, ventajosamente:
- disponer de un código corto;
- que cada nodo variable esté conectado a 3 nodos restringidos o más. Esto permite tanto evitar la presencia de nodos variables de grado 2, como obtener un código irregular, lo que permite una mayor distancia entre las palabras de código;
Por tanto, esta combinación de características permite obtener códigos cortos con un rendimiento de descodificación muy elevado.
Un código LDPC según la invención no tiene un ciclo de longitud 4. Esto permite evitar, tener ciclos muy cortos, tener una alta probabilidad de propagación de creencias falsas y, por lo tanto, permite aumentar significativamente la fiabilidad del código.
Un código LDPC según la invención permite transmitir datos en canales muy ruidosos, con una tasa de error de descodificación baja. De este modo, permite transmitir datos a largas distancias, con emisión de energía y, por lo tanto, bajo consumo de energía. Un código LDPC según la invención permite así prolongar la vida útil de una batería de un contador de agua, gas o electricidad que transmite tramas de datos por radioenlace para lectura remota, para limitar el número de concentradores de datos de lectura remota en una red de agua, electricidad o gas, y/o incrementar el número de contadores de agua, gas o electricidad accesibles para lectura remota.
El código LDPC según la invención se puede utilizar, por ejemplo, para transmitir datos de lectura remota, particularmente datos procedentes de un contador de agua o energía, por ejemplo, gas o electricidad
El uso de un protógrafo permite una definición simple del gráfico, mientras distribuye los bordes uniformemente sobre todos los nodos. Esto permite una definición simple de una familia de códigos LDPC, con un número limitado de ciclos cortos. Por lo demás, el uso de un protógrafo permite factorizar un conjunto de operaciones del codificador y, por lo tanto, renderizar el codificador LDPC y, en menor medida, el descodificador LDPC, menos complejo.
Ventajosamente, dicho gráfico bipartito de Tanner comprende, para cada borde entre un nodo variable del protógrafo y un nodo restringido del protógrafo, 16 bordes entre un nodo variable del gráfico y un nodo restringido del gráfico, dichos 16 bordes están definidos por una permutación circular según un orden comprendido entre 0 y 15.
Los protógrafos de este tipo permiten definir el gráfico de Tanner, por la simple definición, para cada borde del gráfico, del orden de permutación. La caracterización mediante un protógrafo permite una representación simple y compacta del gráfico de Tanner del código.
Ventajosamente, cada orden de permutación está definido por una celda de una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, cada celda de la matriz, definida en una fila y una columna que contiene un orden de permutación circular para un borde entre un nodo restringido representado por la fila y un nodo variable representado por la columna, estando dicha matriz (500c) definida por los valores:
/O 0 0 0 0 0
1 11 4 13 o 7
1 8 10 14 6 11 11
\9 13 4 3 11 6 8
Figure imgf000004_0001
Esta matriz define un código LDPC que tiene muy buenas propiedades de descodificación. Su longitud mínima de código es 14, no tiene una duración de ciclo 4 y un número limitado de ciclos de duración 6, y experimentalmente tiene un excelente rendimiento de descodificación y corrección de errores.
Por otra parte, una distancia mínima igual a 14 entre dos palabras de código hace posible tener palabras de código que sean lo más diferentes posible entre sí. Estas características permiten obtener un código LDPC que corrija tantos errores como sea posible.
Ventajosamente, dicho gráfico de Tanner de dos partes comprende un número de ciclos de longitud igual a 6 menos de 640.
Esto permite limitar el número de ciclos a un número bajo para un gráfico de Tanner que comprende 128 nodos variables y 64 nodos restringidos y, por lo tanto, obtener un código LDPC en el que se propagarán muy pocas creencias falsas durante la descodificación. Esta característica permite obtener un código LDPC que corrija tantos errores como sea posible.
Ventajosamente, el código LDPC tiene una tasa de error de descodificación de menos del 50 %, cuando se transmite con una relación señal/ruido de -1,17 dB.
Esta característica permite limitar la tasa de error, en casos de una relación señal/ruido muy baja. La posibilidad de transmitir datos con una baja relación señal/ruido permite que los datos sean transmitidos por un transmisor de radio a larga distancia, con bajo gasto energético.
Ventajosamente, el codificador está configurado para codificar una trama de datos que comprende datos de lectura remota de agua, gas o electricidad.
Una trama según la invención permite transmitir datos leídos a distancia codificados por un código de la invención. El código según la invención permite enviar datos de lectura remota a larga distancia con un bajo consumo de energía. La invención también describe un procedimiento para definir un código LDPC, que comprende: una etapa para definir un conjunto de códigos LDPC (Comprobación de Paridad de Baja Densidad) caracterizado porque admiten una matriz de control representada por un gráfico bipartito que comprende 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, siendo dicho gráfico tal que: cada uno de los nodos restringidos del gráfico está conectado a 7 nodos variables del gráfico; cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6; una etapa de selección de código, cuya distancia mínima es igual o mayor que un umbral de distancia mínima predefinido.
El procedimiento según la invención permite definir una familia de códigos LDPC de alto rendimiento.
Ventajosamente, el procedimiento también incluye una etapa de seleccionar los códigos, para lo cual el gráfico de Tanner comprende un número de ciclos de duración 6 menos que un número predefinido de ciclos.
Esta etapa le permite eliminar rápidamente, entre una gran cantidad de códigos, los que tienen ciclos de longitud 4 y que presentarán un rendimiento menos bueno.
Ventajosamente, el procedimiento también incluye una etapa de selección de códigos cuya tasa de error es menor que una tasa de error predefinida, durante una transmisión asignada a una relación señal/ruido predefinida.
Esta etapa permite seleccionar de forma determinista, los códigos que cumplen los criterios de rendimiento específicos.
Un codificador LDPC según la invención permite codificar tramas de datos que se pueden transmitir y descodificar en un canal muy ruidoso. Esto hace posible enviar las tramas de datos a través de relaciones de radio, en tramos largos y con energía limitada.
La invención también describe un transmisor configurado para transmitir tramas de datos que comprenden datos de lectura remota de agua, gas o electricidad, codificados por un codificador LDPC según la invención.
El uso de un código LDPC en un transmisor de un dispositivo de lectura remota permite, autorizando la transmisión de datos en un canal muy ruidoso, para transmitir datos a largas distancias, con baja energía por bit emitido. Esto permite conservar la vida útil de la batería del dispositivo de lectura remota.
La invención también describe un descodificador LDPC configurado para descodificar señales codificadas por un código LDPC caracterizado porque admite una matriz de control representada por un gráfico bipartito de Tanner compuesto por 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, siendo dicho gráfico tal que: cada uno de los nodos restringidos del gráfico está conectado a exactamente 7 nodos variables del gráfico; cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6; la distancia mínima de dicho código es igual o superior a 14, en el que dicho gráfico bipartito de Tanner es un gráfico derivado de un protógrafo, comprendiendo dicho protógrafo 8 nodos variables del protógrafo, siendo cada nodo variable del protógrafo un grupo de 16 nodos variables del gráfico y 4 nodos restringidos del protógrafo, siendo cada nodo restringido del protógrafo un grupo de 16 nodos restringidos del gráfico, en el que cada nodo restringido del protógrafo está conectado a 7 de dichos nodos variables del protógrafo según una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, cada celda de la matriz, definida en una fila y una columna, que comprende el valor 1 cuando el nodo variable representado por la fila de la celda y el nodo restringido representado por la columna de la celda están vinculados, y el valor 0, en el caso contrario, estando dicha matriz definida por los valores:
/ I 1 1 1 0 1 1 1 \
1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
\1 1 1 1 1 1 1 0 /
estando dicho descodificador LDPC caracterizado porque la distancia mínima de código es igual a 14.
El uso de un código LDPC según la invención permite reducir el número de iteraciones necesarias para descodificar el código y, por tanto, la potencia de cálculo necesaria en el descodificador. El descodificador puede estar ubicado en un concentrador de datos o en un módem conectado a un concentrador de datos. Por otra parte, el uso de un código LDPC según la invención permite, autorizando la transferencia de datos de lectura remota en canales muy ruidosos, aumentar la distancia máxima entre un dispositivo de contador y un concentrador, y así reducir el número de concentradores, y/o aumentar el número de dispositivos de contador desde los que se reciben datos.
Ventajosamente, dicho gráfico bipartito de Tanner comprende, para cada borde entre un nodo variable del protógrafo y un nodo restringido del protógrafo, 16 bordes entre un nodo variable del gráfico y un nodo restringido del gráfico, dichos 16 bordes están definidos por una permutación circular según un orden comprendido entre 0 y 15.
Ventajosamente, cada orden de permutación está definido por una celda de una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, cada celda de la matriz, definida en una fila y una columna que contiene un orden de permutación circular para un borde entre un nodo restringido representado por la fila y un nodo variable representado por la columna, estando dicha matriz definida por los valores:
Figure imgf000006_0001
Ventajosamente, dicho gráfico de Tanner de dos partes comprende un número de ciclos de longitud igual a 6 menos de 640.
Ventajosamente, el código tiene una tasa de error de descodificación de menos del 50 %, durante una transmisión afectada por una relación señal/ruido de -1,17 dB.
Ventajosamente, el descodificador está configurado para descodificar una trama de datos que comprende datos de lectura remota de agua, gas o electricidad.
La invención también describe un receptor configurado para recibir tramas de datos que comprenden datos de lectura remota de agua, gas o electricidad, codificado por un codificador LDPC según la invención, comprendiendo dicho receptor un descodificador según la invención.
El receptor puede ser un módem que comprende una antena, radioeléctrica, estando dicho módem conectado a un concentrador.
Lista de las figuras
Otras características aparecerán al leer la descripción detallada que se da a modo de ejemplo y no limitante siguiente, hecha con referencia a los dibujos adjuntos que representan:
- la figura 1, una arquitectura de una red para recopilar y concentrar mediciones de sensores de una red de distribución en un modo de realización de la invención;
- la figura 2, una arquitectura física de un concentrador de datos en un modo de realización de la invención;
- la figura 3, una trama de mensaje para la transmisión de datos de lectura remota desde una red de distribución de agua en un modo de realización de la invención;
- las figuras 4a y 4b, respectivamente, un ejemplo de un protógrafo y un ejemplo de permutación que permite obtener un gráfico bipartito de Tanner a partir de un protógrafo en un modo de realización de la invención;
- las figuras 5a, 5b y 5c, respectivamente, la estructura de un código LDPC según la invención, un conjunto de restricciones sobre un código LDPC según la invención, que permite asegurar que no incluye ningún ciclo de longitud 4, y un ejemplo de un código LDPC según la invención;
- las figuras 6a y 6b, dos procedimientos para definir un código LDPC según la invención;
- las figuras 7a y 7b, una comparación de rendimiento entre un código LDPC según la invención y un código LDPC del estado de la técnica, respectivamente según una escala lineal y una escala logarítmica;
- las figuras 8a y 8b, ejemplos del número de iteraciones necesarias para descodificar el código LDPC según la invención, respectivamente a SNR malo y bueno.
Descripción detallada
En el resto de la descripción, los códigos de LDPC, codificador, descodificador y procedimiento según la invención se ilustran mediante ejemplos relacionados con la lectura remota, en particular, de datos relacionados con el consumo de agua. Sin embargo, un código LDPC según la invención es aplicable a la transmisión de todo tipo de datos.
La figura 1 representa una arquitectura de una red para recopilar y concentrar mediciones de sensores de una red de distribución en un modo de realización de la invención.
La arquitectura 100 está formada por:
- Un conjunto de dispositivos contadores. 6 dispositivos contadores 110, 111, 112, 113, 114, 115 se representa en la figura 1;
- Módem LAN (del inglés Local Area Network, o red de área local) 120, 130, 140;
- Concentradores 150, 151;
- Una red WAN (del acrónimo en inglés Wide Area Network o red Ethernet) 160;
- Un sistema de información (SI) 170.
Los dispositivos de medición 110, 111, 112, 113, 114, 115 pueden ser contadores de agua, pero también contadores de gas, electricidad, o cualquier tipo de consumo. Los dispositivos contadores envían los datos de conteo o los datos de lectura remota, por ondas de radio. La transmisión de datos por ondas de radio permite que los datos se envíen de forma remota, incluso si el dispositivo contador está aislado o en un lugar inaccesible. Por lo demás, el envío de datos por ondas de radio hace que sea mucho más fácil y económico implementar nuevos medidores, que si fuera necesaria una conexión por cable. Los dispositivos contadores 110, 111, 112, 113, 114, 115 son generalmente alimentados por una batería. El uso de una conexión de radio para transmitir datos localmente a un módem LAN permite que los dispositivos contadores puedan transmitir sus datos con un bajo consumo de energía, preservando así la vida útil de la batería.
Para transmitir los datos de lectura remota, los dispositivos contadores están equipados con un codificador LDPC configurado para codificar señales usando un código LDPC que admite una matriz de control representada por un gráfico bipartito de Tanner que comprende 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, estando dicho código caracterizado porque: cada uno de los nodos restringidos del gráfico está conectado a 7 nodos variables del gráfico; cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6; la distancia mínima de dicho código es igual o mayor que un umbral de distancia mínima predefinido. Los diversos modos de realización de dicho código LDPC se describen con referencia a las siguientes figuras. Este codificador se puede implementar en forma de hardware o software. Por ejemplo, puede estar presente en forma de instrucciones de código que permiten configurar un procesador para descodificar un código LDPC según la invención. En otro modo de realización de la invención, puede ser una lógica de cálculo electrónico. El uso de un codificador LDPC según la invención permite enviar las tramas de datos de lectura remota con baja energía, y así preservar la vida de la batería.
Los datos de lectura remota forman, después de la aplicación del código LDPC, una trama de datos codificados. Para transmitir dichas tramas de datos, los dispositivos contadores están equipados con al menos un transmisor configurado para transmitir tramas de datos que comprenden datos de lectura remota de agua, gas o electricidad, codificados por un codificador LDPC según la invención. El transmisor de datos puede ser, por ejemplo, un módem integrado en el dispositivo contador, que comprende un modulador y una antena de radio. Según modos de realización diferentes de la invención, la modulación puede ser, por ejemplo, del tipo GMSK (del inglés Gauss Minimum Shift Keying, o Modulación por Desplazamiento Mínimo Gaussiano) o GFSK (del inglés, Gaussian Frequency Shift Keying o Modulación por Desplazamiento de Frecuencia Gaussiana). La invención también se puede aplicar a otros tipos de modulación, tales como las modulaciones BPSK (del inglés, Binary Phase Shift Keying, o Modulación por desplazamiento de fase binaria), QPSK (del inglés, Quadrature Phase Shift Keying, o modulación por desplazamiento de fase en cuadratura), OQPSK (del inglés Offset Quadrature Phase Shift Keying, o modulación de fase en cuadratura compensada), etc...
Los módem LAN 120, 130, 140 están configurados para recibir datos de los dispositivos contadores 110, 11, 112, 113, 114, 115 por enlace de radio. Cada uno de los módem LAN 120, 130, 140 es capaz de recibir datos de dispositivos contadores ubicados dentro de su área de cobertura de radio. Las zonas de cobertura de radio de 3 módem 120, 130, 140 son, respectivamente, las zonas 121, 131, 141. Por ejemplo, el dispositivo contador 110 está ubicado en la zona 121 de cobertura de radio: los datos enviados por el dispositivo contador 110 serán recibidos por el módem LAN 120. El dispositivo contador 111, por su parte, está situado tanto en la zona de cobertura de radio 121 como en la zona de cobertura de radio 131. Por lo tanto, los datos enviados por el dispositivo contador 111 serán recibidos tanto por el módem LAN 120 como por el módem LAN 130. Según modos de realización diferentes de la invención, las relaciones entre los dispositivos contadores y los módem pueden ser relaciones unidireccionales o relaciones bidireccionales. En el caso de una relación unidireccional, el dispositivo contador puede enviar periódicamente datos de consumo. En el caso de una relación bidireccional, los datos de consumo se pueden enviar en respuesta a un mensaje de un módem 120, 130 o 140. En otros modos de realización de la invención, los módem 120, 130, 140 son móviles.
El uso de un código LDPC según la invención permite, autorizando la transmisión en un canal muy ruidoso, aumentar el intervalo de transmisión de datos de lectura remota. De este modo, se amplían las áreas de cobertura de radio. Esto permite al mismo tiempo reducir el número de concentradores/módem para cubrir el mismo número de dispositivos contadores y/o aumentar el número de dispositivos contadores cuyas señales se perciben. El uso de un código LDPC según la invención permite así la lectura remota en dispositivos contadores muy inaccesibles, por ejemplo, dispositivos contadores en sitios profundamente enterrados.
Los módem LAN 120, 130, 140 están vinculados a los concentradores 150, 151 a través de enlaces Ethernet, respectivamente, las relaciones 122, 132 y 142.
Los concentradores 150, 151 envían los datos de los dispositivos contadores al SI 170 a través de una red WAN 160. La red WAN 160 puede ser, por ejemplo, una red 2G o 3G. El sistema 170 de información puede así recuperar todos los datos provenientes de los dispositivos contadores y realizar eficientemente la lectura remota del consumo. Por tanto, estos datos se pueden utilizar para calcular el consumo de los distintos usuarios. Según otros modos de realización de la invención, los datos de los dispositivos contadores también se pueden utilizar para mejorar la detección de eventos en una red de distribución. Por ejemplo, en un modo de realización en el que los dispositivos contadores son dispositivos para medir el consumo en una red de distribución de agua, los datos de consumo se pueden utilizar para detectar fugas en la red de distribución de agua. Las solicitudes de patente europea n ° 15306029.8 y n ° 15306546.1, presentadas por el solicitante, describen cada una un procedimiento de detección de eventos en una red de distribución de agua, en las que los datos del sensor, que pueden incluir datos emitidos por la lectura remota, se utilizan para detectar eventos, por ejemplo fugas, en una red de distribución de agua.
La arquitectura 100 se describe únicamente a modo de ejemplo no limitativo. Un experto en la técnica puede imaginar otras arquitecturas, que comprende en particular un mayor o menor número de dispositivos contadores, concentradores y/o módem LAN.
La figura 2 representa una arquitectura física de un concentrador de datos en un modo de realización de la invención.
El concentrador 200 comprende al menos un receptor, que puede ser un módem LAN. Puede ser un módem LAN interno 210 y/o un módem LAN externo 220. El módem LAN puede comprender una antena 211, 221 para recibir datos de los dispositivos contadores y está vinculado a una tarjeta de conexión 230 a través de un enlace Ethernet 212, 222. El enlace Ethernet 221, 222 se puede utilizar tanto para la transmisión de datos como para alimentar el módem. En el caso de un módem externo, el enlace Ethernet cableado puede tener una longitud limitada, por ejemplo a 100 m.
En un modo de realización de la invención, el enlace de radio entre los dispositivos contadores y el receptor 211,221 usa un protocolo basado en la norma EN13757-4 y puede, por ejemplo, usar una banda de recepción de /- 50 KHz alrededor de la frecuencia central, que puede ser, por ejemplo, 169,45 MHz. El módem LAN 210, 211 se puede configurar para filtrar simultáneamente 6 canales de 12,5 kHz de ancho. El módem LAN 210, 211 incluye al menos un desmodulador. En la invención se puede utilizar cualquier tipo de modulación. En modos de implementación de la invención, el desmodulador se puede configurar, por ejemplo, para desmodular cada uno de los canales utilizando uno de los siguientes desmoduladores:
• un desmodulador GFSK (del acrónimo en inglés Gaussian Frequency-Shift Keying, o modulación por desplazamiento de frecuencia gaussiana) compatible con un modo de transmisión a 2400 bps (bits por segundo);
• un desmodulador GFSK compatible con el modo de transmisión N/2400 bps de la norma pr-EN13757-4;
• un desmodulador GFSK compatible con el modo N/4800bps de la norma pr-EN13757-4;
• un desmodulador 4GFSK compatible con el modo WM-HSPEED (6400 bps);
• un desmodulador GMSK de orden A, siendo la modulación GMSK de orden A particularmente eficaz para la transmisión de códigos LDPC.
El módem 210, 220 también comprende un descodificador LDPC según la invención. Este descodificador se puede implementar en forma de hardware o software. Por ejemplo, puede estar presente en forma de instrucciones de código para configurar un procesador para descodificar un código LDPC según la invención. En otro modo de realización de la invención, puede ser una lógica de cálculo electrónico.
La presencia de un descodificador LDPC según la invención permite que el módem 210, 220 descodifique las señales transmitidas a través de un canal muy ruidoso. De este modo, las tramas de lectura remota enviadas por un dispositivo contador remoto o enterrado y/o enviadas con baja potencia pueden, incluso si algunos bits se han alterado durante la transmisión, estar correctamente descodificadas. Se aumenta el área de cobertura de radio del módem 210, 220. Entonces es posible reducir el número de concentradores y/o recibir tramas de dispositivos contadores más distantes o menos accesibles. Esto aumenta la eficiencia operativa de la lectura remota.
La tarjeta de conexión 230 está vinculada a sí misma a través de un enlace Ethernet 242 a un módem WAN. El módem WAN permite enviar datos a un SI (sistema de información). Por ejemplo, el módem WAN 240 puede enviar datos al SI 170 a través de la red WAN 160. Según modos de realización diferentes de la invención, el módem WAN 240 puede ser un módem 2G si la red WAN es una red 2G, un módem 3G si la red WAN es una red 32G, etc... El módem WAN está equipado con una antena WAN 241 adecuada para el tipo de red WAN considerada. En un modo de realización de la invención, el módem WAN 240 también está equipado con un receptor GPS 243.
El concentrador 200 está alimentado por una fuente de alimentación 250. La fuente de alimentación 250 comprende un disyuntor, un protector de sobretensión 252 y un convertidor de CA/CC 253, y es alimentado por una entrada de suministro de red 254.
El concentrador 200 puede así recibir, a través de módem LAN 210, 220, los mensajes enviados por los dispositivos contadores ubicados en las zonas de cobertura de radio de los módem LAN 210, 220, luego transmitirlos, a través del módem WAN 240, a un SI, por ejemplo el SI 170. La arquitectura del concentrador de datos 200 permite así transmitir, a un SI remoto, mensajes enviados localmente por los dispositivos contadores.
La figura 3 representa una trama de mensaje para la transmisión de datos de lectura remota desde una red de distribución de agua en un modo de realización de la invención.
La trama del mensaje 300 estará representada según las sucesivas etapas de su formación, desde los datos brutos hasta la trama modulada.
La trama del mensaje 300 según la invención puede contener cualquier tipo de datos. En un modo de realización de la invención, comprende datos para lectura remota de agua o energía, por ejemplo gas o electricidad.
Una primera etapa 310 consiste en recuperar datos brutos 311. Los datos brutos 311 contienen, por ejemplo, datos de la lectura remota del consumo de agua o energía. Los datos de lectura remota pueden contener, por ejemplo, el consumo diario. En un modo de realización, los datos brutos comprenden entre 6 y 254 bytes.
Una segunda etapa 320 consiste en añadir antes de los datos brutos 311 un encabezado 321 que contiene un campo de longitud que indica la longitud de la trama, y añadir después de los datos brutos un byte CRC (del inglés, Cyclic Redundancy Check o Comprobación de redundancia cíclica) 322. El byte CRC se utiliza para detectar errores de transmisión en los datos brutos. En un modo de realización de la invención, el campo de longitud 321 está codificado en un byte, y la trama al final de la segunda etapa 320 tiene una longitud comprendida entre 8 y 256 bytes.
Una tercera etapa 330 consiste en separar la trama en bloques 331, 332, 333. En un modo de realización de la invención, el tamaño de cada bloque está comprendido entre 6 y 8 bytes, la distribución de los tamaños de los bloques es función del tamaño de la trama. El uso de bloques de 6 a 8 bytes da como resultado bloques de tamaño suficiente para una codificación LDPC eficiente. La trama 300 comprende tres bloques 331, 332, 333. Sin embargo, en otros modos de realización de la invención, una trama según la invención puede comprender más o menos bloques.
Una cuarta etapa 340 consiste en aplicar una codificación LDPC a cada bloque. Al final de esta etapa, la trama contiene bloques 341, 342, 343 que comprenden bytes de redundancia codificados según un código LDPC de la invención.
Una quinta etapa 350 consiste en aplicar a los bloques una secuencia de dispersión pseudoaleatoria. Esta secuencia de dispersión pseudoaleatoria permite obtener una densidad media de transiciones que depende poco de la trama transmitida. En un modo de realización de la invención, la secuencia de dispersión se define como sigue:
• La trama codificada está definida por una secuencia de N bits {c0... cn-1};
• La trama codificada se transforma en una serie de N símbolos {mc...mN-i} aplicando un operador O binario exclusivo con una secuencia de dispersión dk mediante la siguiente operación: mk = ck © dk, donde el operador ® representa el O binario exclusivo entre los bits del operando izquierdo y los bits del operando derecho;
• La secuencia se define de forma iterativa:
o Los doce valores iniciales son {dodid2...dii} = {101110010101};
o Los valores posteriores se definen por: dk= dk-2 © dk-10 © dk-ii © dk-12
Una sexta etapa 360 consiste en añadir un encabezado 361 a la trama. Este encabezado 361 predefinido permite que un receptor identifique las tramas de datos de la invención.
Una séptima trama 370 consiste en aplicar una codificación diferencial a la trama.
Una octava etapa 380 consiste en aplicar una modulación a la trama después de la codificación diferencial. En un modo de realización de la invención, la modulación de la trama es del tipo GMSK.
La trama 300 se da solo a modo de ejemplo, los expertos en la técnica podrían desarrollar muchos otros formatos de trama. Por ejemplo, los expertos en la técnica podrán seleccionar diferentes tamaños de bloque, seleccionar una secuencia de dispersión diferente, no aplicar una secuencia de dispersión o aplicar otro tipo de modulación.
Las figura 4a y 4b representan, respectivamente, un ejemplo de protógrafo y un ejemplo de permutación que permiten obtener un gráfico bipartito de Tanner a partir de un protógrafo en un modo de realización de la invención. La figura 4a representa un protógrafo en un modo de realización de la invención. En un conjunto de modos de realización de la invención, el gráfico bipartito deriva de un protógrafo, por ejemplo, el protógrafo 400a representado en la figura 4a. Los protógrafos hacen posible construir, de forma sencilla y eficaz, gráficos de Tanner. El uso de protógrafos es descrito en particular por Thorpe, J. (2003). Low-density parity-check (LDPC) codes constructed from protographs. IPN progress report, 42(154), 42-154.
Un código LDPC según la invención admite una matriz de control representada por un gráfico bipartito de Tanner que comprende 128 nodos variables del gráfico y 64 nodos variables del gráfico. El gráfico de Tanner es notable porque cada uno de los nodos restringidos del gráfico está conectado a 7 nodos variables del gráfico.
Por lo demás, dicho gráfico bipartito de Tanner no comprende ningún ciclo de longitud menor a 6, lo que permite aumentar aún más el rendimiento de un código LDPC según la invención. En efecto, la presencia de ciclos de corta duración en un gráfico de Tanner aumenta la probabilidad, en la descodificación, de tener una propagación de creencias incorrectas y, por lo tanto, no detectar o propagar un error. La ausencia de un ciclo de longitud 4 en un gráfico según la invención permite, por tanto, eliminar los casos de propagación de errores más críticos y aumentar el rendimiento del código LDPC según la invención.
En un modo de realización de la invención, el número de ciclos de longitud 6 del gráfico de Tanner es además menor que un número predefinido de ciclos. Aunque la presencia de ciclos de duración 6 en el gráfico es menos crítica que la presencia de ciclos de duración 4, es deseable limitar su presencia para limitar el número de ciclos durante los cuales se puede propagar una falsa creencia. En un modo de realización de la invención, el número de ciclos de longitud 6 de un gráfico bipartito de Tanner es inferior a 640. Este valor permite obtener una familia de códigos LDPC lo suficientemente grande como para contener códigos de alto rendimiento, mientras que de facto se eliminan los códigos que tienen un mayor número de ciclos de longitud 6 y, por lo tanto, generalmente tienen un rendimiento menor.
Por lo demás, la distancia mínima o distancia de Hamming de un código LDPC según la invención es mayor o igual a un umbral predefinido. Esta característica permite aumentar aún más el rendimiento de un código LDPC según la invención, asegurándose de que las palabras de código sean lo suficientemente diferentes entre sí. En un modo de realización de la invención, la distancia mínima de un código LDPC según la invención es 14.
En un conjunto de modos de realización de la invención, un código LDPC según la invención tiene una tasa de error menor que una tasa de error predefinida, durante una transmisión asignada una relación señal/ruido predefinida. Esta característica se puede verificar experimentalmente, codificando mensajes y simulando una transmisión con una determinada relación señal/ruido. En un modo de realización de la invención, la tasa de error es inferior al 50 %, durante una transmisión afectada por una relación señal/ruido de -1,17 dB.
El protógrafo 400a comprende 8 nodos variables del protógrafo 410a, 411a, 412a, 413a, 414a, 415a, 416a y 417a. Los nodos variables del protógrafo 410a, 411a, 412a y 413a comprenden los bits útiles del mensaje a transmitir, mientras que los nodos variables 414a, 415a, 416a, 417a del protógrafo comprenden los bits de redundancia. Cada nodo variable del protógrafo es un grupo de 16 nodos variables del gráfico. El protógrafo 400a también comprende 4 nodos restringidos 420a, 421a, 422a y 423a. Cada uno de los nodos restringidos del protógrafo está conectado a 7 nodos variables del protógrafo. Las líneas de la Figura 4a representan las relaciones entre los nodos. Por ejemplo, el nodo restringido 420a está conectado a los 7 nodos variables 410a, 411a, 412a, 413a, 415a, 416a y 417a.
De forma equivalente, el protógrafo se puede representar mediante una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, cada celda de la matriz, definida en una fila y una columna, que comprende el valor 1 cuando el nodo variable representado por la fila de la celda y el nodo restringido representado por la columna de la celda están vinculados, y el valor 0, en el caso contrario, estando dicha matriz definida por los valores. El protógrafo de la figura 4a estaría representado por la matriz:
/ I 1 1 1 0 1 1 1 \
1 1 1 1 1 0 11
1 1 1 1 1 1 0 1
\l 1 1 1 1 1 1 0/
La figura 4b representa un ejemplo de una permutación circular de orden 1 que permite obtener un gráfico bipartito de Tanner a partir de un protógrafo en un modo de realización de la invención.
La permutación 440b representada en la figura 4b representa una permutación aplicada a las relaciones entre el grupo de 16 nodos variables del gráfico asociado con el nodo variable del protógrafo 410a, y el grupo de 16 nodos restringidos del gráfico asociado con el nodo restringido del protógrafo 421a. Se pueden aplicar permutaciones similares a todas las transiciones que se muestran en la Figura 4a. Los nodos variables y restringidos del gráfico se alinean según su orden en el grupo de nodos variables o nodos restringidos. En el ejemplo mostrado, la permutación es 1: si se considera que a cada nodo variable o restringido del gráfico se le asigna un orden i comprendido entre 0 y 15 que representa su posición en el grupo de nodos, cada nodo variable, de orden i, está conectado al nodo restringido de orden i 1, con la excepción del nodo variable de orden 15, que está vinculado al nodo variable de orden 0.
Más generalmente, en un modo de realización de la invención, cuando un nodo variable del protógrafo está conectado a un nodo restringido del protógrafo, la permutación que permite obtener las conexiones entre los nodos variables del gráfico y los nodos restringidos del gráfico asociado está definida por un orden n único de permutación entre 0 y 15. Según la notación definida anteriormente, el nodo variable del gráfico de orden i del grupo de nodos variables del gráfico está vinculado al nodo restringido de orden (i n) mod 16. En otro modo de realización de la invención, el nodo variable del gráfico de orden i del grupo de nodos variables del gráfico está vinculado al nodo restringido de orden (i - n) mod 16. En otro modo de realización de la invención, una de estas dos posibilidades se utiliza para las relaciones con los nodos variables representativos de bits útiles y la otra para las relaciones con los nodos variables representativos de bits de redundancia. En la continuación de la descripción, cada una de las posibilidades (conectar el nodo variable de orden i al nodo restringido de orden (i n) mod 16; conectar el nodo variable de orden i al nodo restringido de orden (i - n) mod 16) se definirá como una convención de permutación, las dos convenciones de permutación se denotan respectivamente "convención de permutación (i n) mod 16" y "convención de permutación (i-n) mod 16)".
Las figuras 5a, 5b y 5c representan respectivamente la estructura de un código LDPC según la invención, un conjunto de restricciones sobre un código LDPC según la invención, que permite asegurar que no incluye ningún ciclo de longitud 4 y un ejemplo de un código LDPC según la invención.
La figura 5a representa la estructura de un código LDPC según la invención.
Un código LDPC según la invención puede definirse mediante la matriz 500a. Cada una de las celdas de la matriz 500a almacena un orden de permutación, tal como se define, por ejemplo, por la permutación 400b.
Las 4 líneas 520a, 521a, 522a, 523a representan, respectivamente, los 4 nodos restringidos del protógrafo 420a, 421a, 422a, 423a. Las 4 columnas 510a, 511a, 512a, 513a representan, respectivamente, los 4 nodos variables del protógrafo asociados con los bits útiles 410a, 411a, 412a, 413a. Las 4 columnas 514a, 515a, 516a, 517a representan respectivamente los 4 nodos variables del protógrafo asociados con los bits de redundancia 414a, 415a, 416a, 417a. De este modo, la celda 540a contiene, por ejemplo, el orden de permutación de la relación entre el nodo variable del protógrafo 410a (primera columna) y el nodo restringido del protógrafo 421a (segunda fila).
La estructura de la matriz 500a refleja claramente la estructura del protógrafo 400a: cada nodo restringido del protógrafo está vinculado a los 4 nodos variables del protógrafo que representan bits útiles y a 3 nodos variables del protógrafo que representan bits de redundancia, es decir, 7 nodos variables del protógrafo en total. Por otra parte, la ausencia de una celda que comprenda un orden de permutación entre las columnas y filas 520a y 514; 521a y 515a; 522a y 516a; 523a y 517a corresponden, respectivamente, a la ausencia de relaciones entre los nodos 420a y 414a; 421a y 415a; 422a y 416a; 423a y 417a respectivamente.
El conjunto de órdenes de permutación contenido en las celdas de la matriz 500a permite, por tanto, definir el gráfico de Tanner de manera determinista: la aplicación del orden de permutación de cada celda a los grupos de 16 nodos variables y 16 nodos restringidos del correspondiente gráfico permite generar todas las relaciones entre los nodos restringidos y los nodos variables del gráfico. En un modo de realización de la invención, estas relaciones se expresan en forma de una matriz de relaciones derivada de la matriz 500a, estando cada fila de la matriz 500a dividida en 16, cada columna de la matriz 500a también se divide en 16, y las relaciones o ausencia de relaciones entre los nodos restringidos y los nodos variables del gráfico se materializan respectivamente por "1" y "0" en la matriz de control.
La figura 5b representa un conjunto de restricciones sobre un código LDPC según la invención, que permite asegurarse de que no comprende ningún ciclo de duración 4.
La estructura bipartita del gráfico de Tanner genera las siguientes dos propiedades: un ciclo en el gráfico tiene necesariamente una longitud uniforme, superior o igual a 4. Por otra parte, un ciclo de longitud 4 solo se obtiene si dos nodos restringidos del gráfico están conectados al mismo nodo variable del gráfico representativo de un bit útil, y al mismo nodo variable del gráfico representativo de un bit de redundancia. En los modos de realización de la invención en los que el gráfico de Tanner se obtiene mediante un protógrafo como el protógrafo 400a, y mediante permutaciones como la permutación 400b, se obtiene un ciclo de longitud 4 si, para dos filas 1 y 2 diferentes entre las filas 520a, 521a, 522a, 523a, una columna ci entre las columnas 510a, 511a, 512a, 513a, y una segunda columna C2 entre las columnas 514a, 515a, 516a y 517a, los valores de los órdenes de permutación i{ci, li}, i{ci, 2}, i{c2, li} y i{c2, 2} contenidos en las celdas de coordenadas respectivamente i{ci, li}, i{ci, 2}, i{c2, li} y i{c2, 2} de la matriz son tales que:
(i{ ci, li} - i{c2, li}) mod 16 = (i{ci, 2} - i{c2, 2}) mod 16, si a las relaciones con los nodos variables representativos de bits útiles se les asigna la misma convención de permutación que a los nodos variables representativos de bits de redundancia;
(i{ci, li} + i{c2, li}) mod 16 = (i{ci, 2} + i{c2, 2}) mod 16, si a las relaciones con los nodos variables que representan bits útiles y los nodos variables que representan bits de redundancia se les asignan convenciones de permutación diferentes;
La figura 500b muestra un ejemplo de detección de la duración del ciclo 4. En este ejemplo, se llevará a cabo una detección de ciclos de longitud 4 en las celdas 541b, 542b, 543b y 544b. Las celdas 541b y 542b están ubicadas en la fila 521b, las celdas 543b y 544b en la fila 523b, las celdas 541b y 543b en la columna 511b y las celdas 542b y 544b en la fila 514b. Por tanto, las cuatro celdas contienen los siguientes órdenes de permutación:
- La celda 541b un orden, representativa de la permutación asignada a la relación entre los nodos 411a y 421a del protógrafo 400a;
- la celda 542b un orden c, representativa de la permutación asignada a la relación entre los nodos 414a y 421a del protógrafo 400a;
- la celda 543b un orden c, representativa de la permutación asignada a la relación entre los nodos 411a y 423a del protógrafo 400a;
- la celda 544b un orden d, representativa de la permutación asignada a la relación entre los nodos 414a y 423a del protógrafo 400a.
En este ejemplo, se supondrá que se asigna una permutación según la convención (i n) mod 16 a todos las relaciones del protógrafo, si se trata de relaciones con nodos variables representativos de bits útiles o relaciones con nodos variables representativos de bits de redundancia. Un experto en la técnica puede adaptar fácilmente estas condiciones, si se usaran otras convenciones de permutación.
Si se verifica la condición (a-c) mod 16 = (b-d) mod 16, esto significa que un nodo variable de orden i, dentro del grupo de 16 nodos variables del gráfico asociado con el nodo variable 411a del protógrafo está conectado a un nodo variable de orden (i ac) mod 16 en el grupo de 16 nodos variables del gráfico asociado con el nodo variable 414b del protógrafo por el intermedio de dos bordes que pasan a través de uno de los nodos restringidos 521b.
Sin embargo, este mismo nodo variable de orden i también está relacionado por dos bordes que pasan a través de uno de los nodos restringidos 523b, en el nodo variable de orden (i b- d) mod 16 en el grupo de 16 nodos variables del gráfico asociado con el nodo variable 414b del protógrafo. Si se verifica la condición (a-c) mod 16 = (b-d) mod 16, los nodos de orden (i a-c) mod 16 y de orden (i b-d) mod 16 son por tanto idénticos: los dos nodos están conectados por dos grupos de dos bordes distintos y se forma un ciclo de longitud 4.
Un ciclo de longitud 4 solo puede estar formado por dos grupos de bordes que conectan un nodo variable representativo de un bit útil y un nodo variable representativo de un bit de redundancia, y pasan por dos nodos restringidos diferentes. Por tanto, se puede demostrar la ausencia de un ciclo de longitud 4 en un gráfico, si ningún grupo de 4 órdenes dispuestos en dos filas y dos columnas (una de las columnas correspondiente a un nodo del protógrafo representativo de bits útiles, y la otra correspondiente a un nodo del protógrafo representativo de bits de redundancia) no verifica una de las condiciones establecidas anteriormente.
La figura 5c representa un ejemplo de un código LDPC según la invención.
La matriz 500c, define, a través de órdenes de permutación según la convención de la matriz 500a, un gráfico de Tanner que define un código LDPC según la invención. La matriz de control 500c está representada por un gráfico de Tanner que no muestra ningún ciclo de longitud 4, 544 ciclos de longitud 6, una distancia mínima entre dos palabras de código igual a 14. El código LDPC que admite esta matriz de control presenta un rendimiento particularmente alto.
De hecho, cabe señalar que esta matriz tiene propiedades interesantes. La distancia mínima del código es 14, para un código de longitud 128. Por tanto, la relación mínima distancia/longitud de código de esta matriz es 0,1094. Las relaciones típicas de distancia mínima/longitud de código se desvelan, por ejemplo, en SHORT PROTOGRAPH-BASED LDPC CODES, Dariush Divsalar, Sam Dolinar y Christopher Jones, Military Communications Conference, 2007. MILCOM 2007. IEEE, section IV. Por lo tanto, una relación típica para un código regular (3,6) es 0,023, mientras que una relación típica para un código aleatorio es 0,11. Por tanto, se puede ver que la relación mínima distancia/longitud de código de esta familia es muy alta (cercana a la de un código aleatorio, y mucho mayor que la de un código regular convencional (3,6)). Esto permite que un código LDPC según la invención tenga un buen rendimiento de descodificación. Sin embargo, un código según la invención está más estructurado que un código aleatorio, lo que permite que sea mucho más fácil de codificar y descodificar que un código aleatorio.
Las figuras 6a y 6b representan dos procedimientos para definir un código LDPC según la invención.
La definición de un código LDPC que tiene buen rendimiento es una tarea compleja. Una solución denominada de "fuerza bruta" que consiste en probar todas las combinaciones posibles y retener el mejor código es imposible de implementar en la práctica. En efecto, la combinación del conjunto de códigos posibles hace que el número de códigos a probar sea demasiado grande para poder probarse de manera exhaustiva. Uno de los objetivos de la invención es proporcionar un procedimiento para definir un código LDPC que presente un alto rendimiento, puede implementarse, incluso con capacidades de cálculo estándar, por ejemplo, al implementarse en una estación de trabajo personal.
El procedimiento 600a es un procedimiento para definir un código LDPC en un modo de implementación de la invención. El procedimiento 600a comprende una primera etapa 610 de definir un conjunto de códigos LDPC que admiten una matriz de control representada por un gráfico bipartito de Tanner que comprende 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, cada uno de dichos códigos se caracteriza porque: cada uno de los nodos restringidos del gráfico está conectado a 7 nodos variables del gráfico; cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6; una segunda etapa 620 de seleccionar los códigos, cuya distancia mínima es igual o mayor que un umbral de distancia mínima predefinido. En un conjunto de modos de realización de la invención, el umbral de distancia mínima predefinido es igual a 14.
El procedimiento 600a es ventajoso, ya que la etapa 610 de definir un conjunto de códigos LDPC se puede implementar construyendo gráficos de Tanner que cumplan las características anteriores. La etapa 610 permite crear un gran conjunto de códigos LDPC, asegurando al mismo tiempo que los códigos LDPC del conjunto así producido tengan altas tasas de rendimiento, asegurando al mismo tiempo que los códigos LDPC del conjunto así producido tengan altas tasas de rendimiento. La etapa 620 permite filtrar un subconjunto de códigos LDPC, quitando a los que, debido a una distancia mínima demasiado corta, presenten un rendimiento reducido.
El procedimiento 620b es un procedimiento para definir un código LDPC en un conjunto de modos de realización de la invención. El procedimiento 620b comprende la primera etapa 610 y la segunda etapa 620. La primera etapa 610 se divide en varias subetapas sucesivas.
Una primera subetapa 611b consiste en construir uno o más protógrafos sobre el modelo del protógrafo 400a. En un conjunto de modos de realización de la invención, el protógrafo se define por un conjunto de permutaciones, como la permutación 440b, y una matriz de órdenes de permutación tales como la matriz 500a. En un modo de realización de la invención, la subetapa 611b consiste en construir el conjunto de protógrafos correspondiente al conjunto de posibles combinaciones de orden en una matriz tal como la matriz 500a. La subetapa 611b permite definir una familia de códigos LDPC que presentan un alto rendimiento.
Una segunda subetapa 612b consiste en seleccionar los códigos que no tienen ciclo de longitud 4. Esta subetapa se puede realizar ventajosamente analizando los órdenes de permutaciones entre los nodos del protógrafo, por ejemplo según el procedimiento definido con referencia a la figura 5b. Este procedimiento permite una detección extremadamente simple y rápida de gráficos con ciclos de longitud 4.
Una tercera subetapa 613b consiste en seleccionar los gráficos para los que el número de ciclos de longitud 6 es menor que un umbral predefinido. Esta tercera subetapa permite retener únicamente los códigos LDPC que tienen pocos ciclos de longitud 6 y, por tanto, para los que se reduce la probabilidad de propagación de una falsa creencia. En un conjunto de modos de realización de la invención, el número de ciclos de longitud 6 de un gráfico se cuenta de la siguiente manera: para cada borde del gráfico, el borde se elimina y luego se calcula, por ejemplo, ejecutando un algoritmo Djikstra, el camino más corto entre los dos nodos en los extremos del borde. Si el camino más corto encontrado es de longitud 5, luego, cuando el borde está presente en el gráfico, se forma un ciclo de longitud 6. Para evitar que el mismo ciclo se cuente dos veces, en un modo de realización de la invención, se asigna una clave a cada ciclo candidato. Se asigna un orden a cada nodo del gráfico. Un ciclo se define por la secuencia de los órdenes de los nodos que forman el ciclo, siendo el nodo de inicio el del orden más bajo, y la dirección de viaje va desde el nodo de inicio al de los dos vecinos del nodo de inicio con el orden más bajo. De este modo se pueden eliminar los duplicados y se cuenta de forma determinista el número de ciclos de longitud 6.
En un conjunto de modos de realización, el procedimiento 600b comprende una tercera etapa 630b, consistente en realizar una simulación de la tasa de error obtenida por la codificación LDPC, sobre un gran número de bloques, cuando los bloques se transmiten en un canal asignado a un informe SNR dado, y seleccionar solo los candidatos para los que la tasa de error es menor que un umbral predefinido. Esta etapa permite seleccionar, determinísticamente, los códigos que cumplen los criterios de rendimiento. Esta sola etapa podría, en teoría, ser suficiente para determinar los mejores códigos LDPC. Sin embargo, esta es la etapa que requiere los cálculos más pesados. Por tanto, el orden de las etapas del procedimiento 600b hace posible aplicar esta tercera etapa 630b sólo a un subconjunto de buenos candidatos preseleccionados por las etapas anteriores. Por tanto, el procedimiento 600b permite obtener códigos LDPC que cumplen estrictos criterios de rendimiento, mientras que requiere una cantidad de cálculo suficientemente pequeña para poder ejecutarse en máquinas informáticas ordinarias.
En otros modos de implementación de la invención, sólo se realizan algunas de las etapas del procedimiento 620b. Por ejemplo, la tercera etapa 630b puede no ejecutarse y puede elegirse un código LDPC directamente al final de la segunda etapa 620, la subetapa 613b puede no ejecutarse, etc... Los expertos en la técnica podrán, según sus necesidades, definir el procedimiento más adecuado para obtener un código LDPC según la invención.
Las figuras 7a y 7b representan una comparación de rendimientos entre un código LDPC según la invención y un código LDPC de la técnica anterior, respectivamente según una escala lineal y una escala logarítmica.
El gráfico 700a representa una comparación de rendimientos entre un código LDPC según la invención y un código LDPC de la técnica anterior, en una escala lineal. El gráfico representa la evolución de PER (del inglés, Packet Error Rate, Tasa de error de bloque o tasa de bloques que presentan un error después de la descodificación en comparación con el código original), para una relación señal/ruido determinada. Este resultado se produce codificando un solo bloque según un código LDPC, simulando un canal ruidoso, luego simulando la descodificación del bloque recibido. Se describe que un bloque tiene un error, cuando al menos un bit en el bloque descodificado incluye un error. El eje de abscisas 701a representa la relación señal/ruido del canal, en dB, y el eje de ordenadas 702a representa la tasa de error en porcentaje, es decir el porcentaje de bloques que comprenden al menos un bit mal descodificado.
La curva 710a representa la evolución del PER (Packet Error Rate) obtenido por el código LDPC "Orange Book" desarrollado por la NASA, desvelado por: Consultative Committee for Space Data Systems Short Block Length LDPC Codes for TC Synchronization and Channel Coding Experimental Specification CCSDS 231.1-O-1, Orange Book, abril de 2015 http://public.ccsds.org/publications/archive/231x1o1.pdf. La curva 720a representa la tasa de error obtenida por un código LDPC según la invención, en este caso el código representado por la matriz 500c.
Se puede observar que el código LDPC según la invención exhibe, para todas las relaciones señal/ruido, rendimientos superiores al código "Orange Book" de última generación, es decir, una tasa de error de bloque LDPC más baja.
El gráfico 700b representa una comparación de rendimientos entre un código LDPC según la invención y un código LDPC de la técnica anterior, en una escala lineal. El eje de abscisas 701b representa la relación señal-ruido del canal, en dB, y el eje de ordenadas 702b representa la tasa de error, según una escala logarítmica. Las curvas 710b y 720b representan respectivamente la evolución de la tasa de error obtenida para un bloque por el código LDPC "Orange Book", y el código LDPC según la invención, en este caso el código representado por la matriz 500c.
La curva 711b representa el cambio en la tasa de errores no detectados por el código "Orange Book" según la relación señal/ruido, y la curva 721b representa la variación en la tasa de errores no detectados por el código LDPC según la invención según el relación señal/ruido.
Se puede observar que, aunque ambas tasas son muy bajas en cualquier relación señal/ruido, la tasa de errores no detectados por el código según la invención es mayor que la tasa de errores no detectados por el código "Orange Book" (10-3 en lugar de 10-4). Sin embargo, la capacidad de corrección de errores del código según la invención es significativamente mayor que la del estado de la técnica (tasa de error del 10 % para el código según la invención a 0 dB, contra el 15% en el estado de la técnica). Esta característica permite utilizar el código LDPC según la invención para transmitir información en canales muy ruidosos. Esto permite más particularmente, en el caso de la lectura remota, limitar tanto el número de concentradores como la energía utilizada por los dispositivos contadores para enviar los datos y, por lo tanto, preservar la vida útil de la batería de los dispositivos contadores.
Las figuras 8a y 8b representan ejemplos del número de iteraciones necesarias para descodificar el código LDPC según la invención, respectivamente a SNR malo y bueno.
La figura 8a representa seis gráficos 810a, 820a, 830a, 840a, 850a y 860a, cada uno de los cuales representa la distribución del número de iteraciones necesarias para descodificar un bloque, para una relación señal/ruido determinada. Se sabe que la descodificación LDPC utiliza varias iteraciones sucesivas para descodificar datos. Una primera etapa es comprobar si no se ha transmitido ningún error. Si es el caso, no se utilizará ninguna iteración de descodificación (esto corresponde a los casos de "0 iteraciones de descodificación" en los gráficos). En caso contrario, la descodificación LDPC comprende sucesivas iteraciones de descodificación, estando cada iteración seguida de una fase de comprobación de que el código descodificado ya no incluye errores. Si el código ya no contiene errores, se detiene la descodificación. En caso contrario, se realiza una nueva iteración de descodificación, hasta que el código ya no incluya errores o se alcance un número máximo de iteraciones de descodificación. La descodificación LDPC es una operación bastante pesada, la limitación del número de iteraciones de descodificación permite ahorrar una potencia de cálculo significativa dentro del descodificador.
El histograma 810a representa la distribución del número de iteraciones de descodificación LDPC necesarias para descodificar diferentes bloques codificados por un código LDPC según la invención, en este caso el código definido por la matriz 500c, para una señal transmitida en un canal al que se le ha asignado una relación SNR de -0,5 dB. Los números de iteraciones representados en el eje de abscisas representan los diferentes números de posibles iteraciones de descodificación, y el eje de ordenadas representa el porcentaje de bloques para los que es necesario un número dado de iteraciones. De este modo, para una relación SNR de -0,5 dB, aproximadamente el 2 % de los bloques se descodificaron en una iteración, aproximadamente el 25 % de los bloques se decodificaron en dos iteraciones, aproximadamente el 32% de los bloques se descodificaron en 2 iteraciones, etc...Para esta SNR, se observa un PER (en inglés, Packet Error Rate o tasa de error de trama de aproximadamente el 90 %) y un número promedio de iteraciones de descodificación de 3,49. Cabe señalar que los resultados que se muestran en las figuras 8a y 8b se refieren a paquetes que comprenden 4 bloques, y que se considera que un paquete tiene un error, si hay al menos un error en al menos un bloque descodificado.
En los otros casos que se muestran en la figura 8a, se obtienen los siguientes resultados:
- Histograma 820a: canal afectado por una relación SNR de 0 dB: PER de aproximadamente el 70 %, número medio de iteraciones de descodificación: 3,01;
- Histograma 830a: canal afectado por una relación SNR de 0,5 dB: PER de aproximadamente el 43 %, número medio de iteraciones de descodificación: 2,53;
- Histograma 840a: canal afectado por una relación SNR de 1 dB: PER de aproximadamente el 23 %, número medio de iteraciones de descodificación: 2,09;
- Histograma 850a: canal afectado por una relación SNR de 1,5 dB: PER de aproximadamente el 11 %, número medio de iteraciones de descodificación: 1,74;
- Histograma 860a: canal afectado por una relación SNR de 2 dB: PER de aproximadamente el 5 %, número medio de iteraciones de descodificación: 1,44.
La figura 8b muestra dos gráficos 810b y 820b, cada uno de los cuales representa la distribución del número de iteraciones necesarias para descodificar un bloque, para una relación señal/ruido dada, en casos de alta relación señal/ruido. En estos dos casos, se obtienen los siguientes resultados:
- Histograma 810b: canal afectado por una relación SNR de 5 dB: PER cercano al 0%, número medio de iteraciones de descodificación: 0,58;
- Histograma 820b: canal asignado a una relación SNR de 5,5 dB: PER cercano al 0 %, número medio de iteraciones de descodificación: 0,43.
Los resultados experimentales presentados en las figuras 8a y 8b muestran que es posible, incluso para señales transmitidas en un canal con una relación SNR baja, limitar el número de iteraciones de descodificación, sin disminuir, o disminuyendo marginalmente, la eficacia del código LDPC. Por ejemplo, podría ser posible, en vista de los resultados anteriores, limitar el número de iteraciones de descodificación a 12 sin perder la efectividad del código LDPC, o limitarlas a 8 o 10 iteraciones de descodificación, reduciéndolo sólo marginalmente. Por tanto, un código LDPC según la invención permite limitar el número de iteraciones de descodificación del código LDPC, lo que hace posible lograr ganancias significativas en la velocidad de ejecución y/o potencia del procesador a nivel del descodificador LDPC.
Los ejemplos anteriores demuestran la capacidad de un código LDPC según la invención para permitir una corrección de errores efectiva durante la transmisión de datos, al tiempo que se limita el consumo de energía por bit útil transmitido y se limita la complejidad de la descodificación. Sin embargo, se dan solo a modo de ejemplo y de ninguna manera limitan el alcance de la invención, definido en las reivindicaciones a continuación.

Claims (12)

REIVINDICACIONES
1. Codificador LDPC (Verificación de paridad de baja densidad) configurado para codificar señales mediante un código LDPC caracterizado porque admite una matriz de control representada por un gráfico bipartito de Tanner compuesto por 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, siendo dicho gráfico tal que: - cada uno de los nodos restringidos del gráfico está conectado a exactamente 7 nodos variables del gráfico; - cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6;
en el que dicho gráfico bipartito de Tanner es un gráfico derivado de un protógrafo (400a), comprendiendo dicho protógrafo 8 nodos variables del protógrafo (410a, 411a, 412a, 413a, 414a, 415a, 416a, 417a), siendo cada nodo variable del protógrafo un grupo de 16 nodos variables del gráfico y 4 nodos restringidos del protógrafo (420a, 421a, 422a, 423a), siendo cada nodo restringido del protógrafo un grupo de 16 nodos restringidos del gráfico, en el que cada nodo restringido del protógrafo está conectado a 7 de dichos nodos variables del protógrafo según una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, comprendiendo cada celda de la matriz, definida en una fila y una columna, el valor 1 cuando el nodo variable representado por la fila de la celda y el nodo restringido representado por la columna de la celda están vinculados, y el valor 0, en el caso contrario, estando dicha matriz definida por los valores:
Figure imgf000016_0001
estando dicho codificador LDPC caracterizado porque la distancia mínima del código es igual a 14.
2. Codificador LDPC según la reivindicación 1, en el que dicho gráfico bipartito de Tanner comprende, para cada borde entre un nodo variable del protógrafo y un nodo restringido del protógrafo, 16 bordes entre un nodo variable del gráfico y un nodo restringido del gráfico, estando dichos 16 bordes definidos por una permutación circular según un orden comprendido entre 0 y 15.
3. Codificador LDPC según la reivindicación 2, en el que cada orden de permutación está definido por una celda de una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, comprendiendo cada celda de la matriz, definida en una fila y una columna un orden de permutación circular para un borde entre un nodo restringido representado por la fila y un nodo variable representado por la columna, estando dicha matriz (500c) definida por los valores:
Figure imgf000016_0002
4. Codificador LDPC según una de las reivindicaciones 1 a 3, caracterizado porque dicho gráfico bipartito de Tanner comprende un número de ciclos de longitud igual a 6 menos de 640.
5. Codificador LDPC según una de las reivindicaciones 1 a 4, configurado para codificar una trama de datos que comprende datos de lectura remota de agua, gas o electricidad.
6. Transmisor configurado para enviar tramas de datos, que comprenden datos de lectura remota de agua, gas o electricidad, que comprende un codificador LDPC según una de las reivindicaciones 1 a 5.
7. Descodificador LDPC configurado para descodificar señales codificadas por un código LDPC caracterizado porque admite una matriz de control representada por un gráfico bipartito de Tanner compuesto por 128 nodos variables del gráfico y 64 nodos restringidos del gráfico, siendo dicho gráfico tal que:
- cada uno de los nodos restringidos del gráfico está conectado a exactamente 7 nodos variables del gráfico; - cada uno de los ciclos del gráfico tiene una longitud mayor o igual a 6;
en el que dicho gráfico bipartito de Tanner es un gráfico derivado de un protógrafo (400a), comprendiendo dicho protógrafo 8 nodos variables del protógrafo (410a, 411a, 412a, 413a, 414a, 415a, 416a, 417a), siendo cada nodo variable del protógrafo un grupo de 16 nodos variables del gráfico y 4 nodos restringidos del protógrafo (420a, 421a, 422a, 423a), siendo cada nodo restringido del protógrafo un grupo de 16 nodos restringidos del gráfico, en el que cada nodo restringido del protógrafo está conectado a 7 de dichos nodos variables del protógrafo según una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, comprendiendo cada celda de la matriz, definida en una fila y una columna, el valor 1 cuando el nodo variable representado por la fila de la celda y el nodo restringido representado por la columna de la celda están vinculados, y el valor 0, en el caso contrario, estando dicha matriz definida por los valores:
Figure imgf000017_0001
estando dicho descodificador LDPC caracterizado porque la distancia mínima de código es igual a 14.
8. Descodificador LDPC según la reivindicación 7, en el que dicho gráfico bipartito de Tanner comprende, para cada borde entre un nodo variable del protógrafo y un nodo restringido del protógrafo, 16 bordes entre un nodo variable del gráfico y un nodo restringido del gráfico, estando dichos 16 bordes definidos por una permutación circular según un orden comprendido entre 0 y 15.
9. Descodificador LDPC según la reivindicación 8, en el que cada orden de permutación está definido por una celda de una matriz, estando cada nodo restringido representado por una fila de la matriz, estando cada nodo variable representado por una columna de la matriz, comprendiendo cada celda de la matriz, definida en una fila y una columna un orden de permutación circular para un borde entre un nodo restringido representado por la fila y un nodo variable representado por la columna, estando dicha matriz (500c) definida por los valores:
Figure imgf000017_0002
10. Descodificador LDPC según una de las reivindicaciones 7 a 9, caracterizado porque dicho gráfico bipartito de Tanner comprende un número de ciclos de longitud igual a 6 menos de 640.
11. Descodificador LDPC según una de las reivindicaciones 7 a 10, configurado para descodificar una trama de datos que comprende datos de lectura remota de agua, gas o electricidad.
12. Receptor configurado para recibir tramas de datos que comprenden datos de lectura remota de agua, gas o electricidad, codificado por un codificador LDPC según una de las reivindicaciones 1 a 6, comprendiendo dicho receptor un descodificador según una de las reivindicaciones 7 a 11.
ES16306546T 2016-11-23 2016-11-23 Codificación/descodificación por código LDPC cuasicíclico semirregular de corta duración para aplicaciones de bajo consumo tal como la lectura remota Active ES2875101T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP16306546.9A EP3327936B1 (fr) 2016-11-23 2016-11-23 Codage/décodage par code ldpc quasi-cyclique semi-régulier de courte longueur pour applications à faible consommation telles que la télérelève

Publications (1)

Publication Number Publication Date
ES2875101T3 true ES2875101T3 (es) 2021-11-08

Family

ID=57485425

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16306546T Active ES2875101T3 (es) 2016-11-23 2016-11-23 Codificación/descodificación por código LDPC cuasicíclico semirregular de corta duración para aplicaciones de bajo consumo tal como la lectura remota

Country Status (10)

Country Link
US (1) US11177906B2 (es)
EP (1) EP3327936B1 (es)
KR (1) KR102444110B1 (es)
CN (1) CN110268634B (es)
ES (1) ES2875101T3 (es)
IL (1) IL266479B (es)
MA (1) MA45755B1 (es)
PL (1) PL3327936T3 (es)
PT (1) PT3327936T (es)
WO (1) WO2018095817A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113052083A (zh) * 2021-03-26 2021-06-29 陕西大步实业有限公司 一种多近邻图约束矩阵分解的动作行为分割方法
CN114598423B (zh) * 2022-03-14 2023-11-21 西安电子科技大学 联合gmsk与ldpc的解调译码的方法、装置及介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526717B2 (en) * 2004-06-16 2009-04-28 Samsung Electronics Co., Ltd. Apparatus and method for coding and decoding semi-systematic block low density parity check codes
CN1713530A (zh) * 2004-06-22 2005-12-28 印芬龙科技股份有限公司 解码低密度奇偶校验(ldpc)码字的ldpc解码器
US7395490B2 (en) * 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
KR20060016061A (ko) * 2004-08-16 2006-02-21 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
US20060085720A1 (en) * 2004-10-04 2006-04-20 Hau Thien Tran Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes
US20070245217A1 (en) * 2006-03-28 2007-10-18 Stmicroelectronics S.R.L. Low-density parity check decoding
CN101150730B (zh) * 2006-09-18 2011-07-27 国家广播电影电视总局广播科学研究院 用于视频广播应用的低密度奇偶校验码族的产生方法及装置
US8650451B2 (en) * 2011-06-30 2014-02-11 Lsi Corporation Stochastic stream decoding of binary LDPC codes
US8832520B2 (en) * 2011-11-29 2014-09-09 California Institute Of Technology High order modulation protograph codes
CN102843145A (zh) * 2012-10-09 2012-12-26 浙江大学 一种低码率准循环累积重复累积码构造方法
US9203440B1 (en) * 2013-01-29 2015-12-01 Xilinx, Inc. Matrix expansion
WO2014127129A1 (en) * 2013-02-13 2014-08-21 Qualcomm Incorporated Ldpc design using quasi-cyclic constructions and puncturing for high rate, high parallelism, and low error floor
US9172400B2 (en) * 2013-05-29 2015-10-27 Cisco Technology, Inc. Encoding techniques using multiple coding strengths within a single LDPC code word
US20160218750A1 (en) * 2015-01-23 2016-07-28 Empire Technology Development Llc Parity check code encoder

Also Published As

Publication number Publication date
MA45755B1 (fr) 2019-12-31
US11177906B2 (en) 2021-11-16
KR102444110B1 (ko) 2022-09-15
PT3327936T (pt) 2021-06-18
IL266479A (en) 2019-07-31
CN110268634B (zh) 2023-06-13
EP3327936B1 (fr) 2021-04-21
US20200067636A1 (en) 2020-02-27
PL3327936T3 (pl) 2021-10-25
KR20190101361A (ko) 2019-08-30
WO2018095817A1 (fr) 2018-05-31
IL266479B (en) 2022-06-01
MA45755A1 (fr) 2019-09-30
CN110268634A (zh) 2019-09-20
EP3327936A1 (fr) 2018-05-30

Similar Documents

Publication Publication Date Title
ES2427179T3 (es) Codificación de los códigos de comprobación de paridad de baja densidad
ES2273177T3 (es) Metodo y aparato para codificar codigos de comprobacion de paridad de baja densidad (ldpc) en bloques largos y cortos.
ES2856961T3 (es) Método y aparato para generar código Polar híbrido
ES2390489T3 (es) Códigos de comprobación de paridad de baja densidad ( LDPC) de tasa compatible con H-ARQ para aplicaciones de alto rendimiento
US8369448B2 (en) Bit mapping scheme for an LDPC coded 32APSK system
US7831884B2 (en) Method of correcting message errors using cyclic redundancy checks
US8782489B2 (en) Method and system for providing Low Density Parity Check (LDPC) encoding and decoding
ES2875101T3 (es) Codificación/descodificación por código LDPC cuasicíclico semirregular de corta duración para aplicaciones de bajo consumo tal como la lectura remota
WO2009153746A2 (en) Node information storage method and system for a low-density parity-check decoder
Ohashi et al. Multi-dimensional spatially-coupled codes
CN102970047A (zh) 基于平均幅度的ldpc码加权梯度下降比特翻转译码算法
US20070271496A1 (en) 3-Stripes Gilbert Ldpc Codes
CN101026436B (zh) 一种低密度奇偶校验码译码方法
Shehadeh et al. Higher-Order Staircase Codes
Mittelholzer et al. Symmetry-based subproduct codes
US20050135262A1 (en) Low-complexity, capacity-achieving code for communication systems
Pandey et al. Comparative performance analysis of block and convolution codes
EP1901436A2 (en) Bit mapping scheme for an LDPC coded 16APSK system
Nguyen et al. A high coding-gain reduced-complexity serial concatenated error-control coding solution for wireless sensor networks
Siegel An introduction to low-density parity-check codes
Knudsen Randomised construction and dynamic decoding of LDPC codes
Eslami A non-asymptotic approach to the analysis of communication networks: From error correcting codes to network properties
KR20230156883A (ko) 통신 시스템 또는 방송 시스템에서 미래 제약을 이용한 극부호의 복호화를 위한 장치 및 방법
Keti Reed-Solomon Error-correcting Codes The Deep Hole Problem
Meyer Codes generated by matrix expansions