ES2647127T3 - Procedimientos de codificación y decodificación con protección diferenciada - Google Patents

Procedimientos de codificación y decodificación con protección diferenciada Download PDF

Info

Publication number
ES2647127T3
ES2647127T3 ES16164904.1T ES16164904T ES2647127T3 ES 2647127 T3 ES2647127 T3 ES 2647127T3 ES 16164904 T ES16164904 T ES 16164904T ES 2647127 T3 ES2647127 T3 ES 2647127T3
Authority
ES
Spain
Prior art keywords
code
subframe
systematic
decoding
subframes
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
ES16164904.1T
Other languages
English (en)
Inventor
Mathieu Raimondi
Benjamin Gadat
Hanaa Al Bitar
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.)
Thales SA
Original Assignee
Thales 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 Thales SA filed Critical Thales SA
Application granted granted Critical
Publication of ES2647127T3 publication Critical patent/ES2647127T3/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/27Coding, 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 using interleaving techniques
    • H03M13/2792Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
    • 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
    • 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
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/157Polynomial evaluation, i.e. determination of a polynomial sum at a given value
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)

Abstract

Procedimiento de codificación con protección diferenciada aplicada a una trama (T) que comprende un conjunto de bits, efectuándose la codificación al menos a partir de un primer código corrector sistemático de tipo código LDPC, representado por un gráfico bipartito, llamado gráfico de Tanner, que comprende una pluralidad de primeros nodos, llamados nodos variables, comprendiendo dicho gráfico, además, una pluralidad de segundos nodos, llamados nodos de control, conectándose cada nodo variable a al menos un nodo de control por una rama, llamándose al número de ramas conectadas a un nodo variable grado del nodo variable, en el que cada nodo variable se asocia a un bit de una palabra de dicho primer código, llamándose a los nodos variables asociados a los bits sistemáticos de la palabra del primer código nodos variables sistemáticos, comprendiendo dicho procedimiento las siguientes etapas: - descomponer (102, 103) la trama (T) en una pluralidad de subtramas (ST0, ST1,...) teniendo cada una un nivel de prioridad diferente, - aplicar (104) a cada subtrama (ST1,...) obtenida, salvo a la subtrama (ST0) de menor nivel de prioridad, un segundo código corrector algebraico de rendimiento predeterminado, aumentando dicho rendimiento con la disminución del nivel de prioridad de cada subtrama cuando el número de subtramas (ST0, ST1,...) es al menos igual a tres, - aplicar (105) un entrelazado de bits de todas las subtramas (ST0, ST1,.... ) concatenadas que comprenden dicha subtrama (ST0) de menor prioridad y cada subtrama codificada por el segundo código corrector algebraico, para efectuar una puesta en correspondencia entre los nodos variables sistemáticos de dicho primer código corrector sistemático, ordenados según el valor de su grado y los bits de cada subtrama (ST0, ST1,...), ordenándose las subtramas según su nivel de prioridad, - codificar (106), con ayuda del primer código corrector sistemático, la trama compuesta por los bits entrelazados de todas las subtramas concatenadas.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Procedimientos de codificación y decodificación con protección diferenciada
La presente invención se refiere al campo de las telecomunicaciones digitales y, más precisamente, al campo de la codificación de canal que tiene como objetivo l uso de códigos correctores con el fin de aumentar el nivel de redundancia de la información transmitida para poder reconstruir el mensaje inicialmente generado, a pesar de los errores introducidos en el momento de la transmisión de este mensaje a través de un canal de propagación no perfecto.
La invención se refiere más particularmente al campo de los códigos correctores del tipo códigos LDPC (del inglés Low Density Parity Codes) o cualquier otro tipo de código corrector que pueda representarse en forma de un gráfico bipartito llamado gráfico de Tanner.
La invención se refiere a un procedimiento de codificación y a un procedimiento de decodificación que permite aplicar una protección diferenciada a los datos que se transmitirán en función de niveles de prioridad diferentes.
La invención se aplica ventajosamente a los estándares de navegación por satélite o estándares GNSS (Sistema Global de Navegación por Satélite) tales como los estándares GPS o Galileo.
Los estándares GNSS definen mensajes GNSS que se transmiten a través de tramas de datos. Tales mensajes comprenden datos relacionados con información de posicionamiento tales como efemérides de satélite, información sobre el reloj del satélite, datos de servicio o incluso de integridad. En los estándares actuales, estos datos se protegen por un código corrector simple que se aplica directamente en el conjunto de una trama de datos. Este procedimiento presenta el inconveniente de no permitir una optimización precisa del compromiso entre el flujo consumido por la adición del código corrector y el nivel de protección necesario.
En efecto, los datos transmitidos en una trama GNSS son de diversos tipos y pueden clasificarse en varios grupos que presentan niveles de prioridad diferentes. Por nivel de prioridad, se entiende aquí, un nivel de prioridad en la criticidad de los datos que se transmitirán. Ciertos datos son más importantes que otros y necesitan, por lo tanto, un nivel mayor de protección por codificación correctora para asegurar su transmisión correcta con un nivel de fiabilidad compatible con el nivel de prioridad.
La invención puede aplicarse de forma similar a otros sistemas de transmisión de datos para los que es posible reagrupar los datos en varios conjuntos que tienen niveles de prioridad diferentes.
Se conocen, por otra parte, los documentos "Design of bandwidth-efficient unequal error protection LDPC codes", Sandberg S, von Deetzen N, IEEE Transactions on communications y "Low-floor decoders for LDPC codes", Yang Han, W Ryan, IEEE transactions on communications que describen procedimientos de codificación con protección diferenciada.
La invención propone un procedimiento de codificación con protección diferenciada que permite proteger con un rendimiento de protección diferente, varios grupos de datos en una trama que se transmitirá.
La invención se basa en el empleo de un código corrector de tipo LDPC concatenado con un código corrector algebraico.
La invención propone igualmente un procedimiento de decodificación compatible con el procedimiento de codificación con protección diferenciada.
Los procedimientos según la invención son ventajosamente aplicables a sistemas de transmisión de datos para los cuales los datos se formatean en tramas de corta duración, típicamente del orden de algunas centenas de bits. En particular, la invención se aplica a la protección de datos transmitidos en un sistema GNSS.
La invención tiene por objeto un procedimiento de codificación con protección diferenciada aplicada a una trama que comprende un conjunto de bits, efectuándose la codificación al menos a partir de un primer código corrector sistemático de tipo código LDPC, representado por un gráfico bipartito, llamado gráfico de Tanner, que comprende una pluralidad de primeros nodos, llamados nodos variables, comprendiendo dicho gráfico, además, una pluralidad de segundos nodos, llamados nodos de control, conectándose cada nodo variable a al menos un nodo de control por una rama, llamándose al número de ramas conectadas a un nodo variable grado del nodo variable, en el que cada nodo variable se asocia a un bit de una palabra de dicho primer código, llamándose a los nodos variables asociados a los bits sistemáticos de la palabra del primer código nodos variables sistemáticos, comprendiendo dicho procedimiento las siguientes etapas:
- descomponer la trama en una pluralidad de subtramas que tiene cada una un nivel de prioridad diferente,
- aplicar a cada subtrama obtenida, salgo a la subtrama de menor nivel de prioridad, un segundo código corrector algebraico de rendimiento predeterminado, siendo dicho rendimiento ascendente con la disminución del nivel de prioridad de cada subtrama cuando el número de subtramas es al menos igual a tres,
- aplicar un entrelazado de bits de todas las subtramas para efectuar una puesta en correspondencia entre los
5
10
15
20
25
30
35
40
45
50
nodos variables sistemáticos de dicho primer código corrector sistemático, ordenados según el valor de su grado y los bits de cada subtrama, ordenándose las subtramas según su nivel de prioridad,
- codificar, con ayuda del primer código corrector sistemático, la trama compuesta por los bits entrelazados de todas las subtramas concatenadas.
Según un aspecto particular del procedimiento de codificación según la invención, los bits de cada subtrama se
ponen en correspondencia con los nodos variables sistemáticos de dicho primer código corrector sistemático,
ordenados en orden ascendente del valor de su grado según un orden descendente de los niveles de prioridad de las subtramas.
Según un aspecto particular del procedimiento de codificación según la invención, los bits de cada subtrama se
ponen en correspondencia con los nodos variables sistemáticos de dicho primer código corrector sistemático,
ordenados en orden ascendente del valor de su grado según un orden ascendente de los niveles de prioridad de las subtramas.
Según un aspecto particular del procedimiento de codificación según la invención, el primer código corrector sistemático se construye de manera que la proporción de nodos variables sistemáticos de grado igual al grado máximo es igual a la relación entre el número de bits de la subtrama de mayor nivel de prioridad y el número de bits de una palabra de dicho primer código corrector sistemático.
Según un aspecto particular del procedimiento de codificación según la invención, la descomposición de la trama en subtramas se efectúa reordenando los bits de la trama según su nivel de prioridad.
Según un aspecto particular del procedimiento de codificación según la invención, el nivel de prioridad de un bit se define en función de la criticidad de la información asociada al bit, del peso del bit o de la frecuencia de actualización de la información asociada al bit.
Según un aspecto particular del procedimiento de codificación según la invención, los datos transmitidos en la trama son datos de un mensaje de navegación por satélite generado por un sistema de navegación por satélite.
Según un aspecto particular del procedimiento de codificación según la invención, el segundo código corrector algebraico es un código BCH.
La invención tiene también por objeto un procedimiento de decodificación con protección diferenciada aplicado a una trama codificada que comprende un conjunto de bits codificados con ayuda del procedimiento de codificación con protección diferenciada según la invención, comprendiendo el procedimiento de decodificación las siguientes etapas:
- efectuar una primera decodificación de la trama codificada con ayuda de un primer algoritmo de decodificación de un primer código corrector sistemático, de tipo código LDPC, basada en la explotación de un gráfico bipartito, para obtener una primera trama decodificada,
- descomponer la primera trama decodificada en subtramas, conteniendo cada subtrama los bits correspondientes a los nodos variables sistemáticos ordenados según el valor de su grado, ordenándose las subtramas según su nivel de prioridad,
- efectuar una segunda decodificación de cada subtrama obtenida, salvo de la trama de menor nivel de prioridad, con ayuda de un segundo algoritmo de decodificación de un segundo código corrector algebraico de rendimiento predeterminado, siendo dicho rendimiento ascendente con la disminución del nivel de prioridad de cada subtrama cuando el número de subtramas es al menos igual a tres.
El procedimiento de decodificación con protección diferenciada según la invención puede comprender, además, una etapa de concatenación de subtramas en una segunda trama decodificada.
Según un aspecto particular del procedimiento de decodificación según la invención, el segundo código corrector es un código corrector y detector de errores, comprendiendo dicho procedimiento de decodificación, además, las siguientes etapas:
- en el momento de la segunda decodificación de cada subtrama, detectar si la subtrama se decodifica correctamente o no,
- si la subtrama se decodifica correctamente,
i. Codificar, con dicho segundo código corrector algebraico, cada subtrama decodificada para obtener una subtrama codificada,
ii. Aplicar una segunda iteración de la primera decodificación especificando el algoritmo de decodificación de dicho primer código corrector sistemático, una verosimilitud máxima para los bits de cada subtrama codificada.
Según un aspecto particular del procedimiento de codificación según la invención, el segundo código corrector algebraico es un código BCH.
Según un aspecto particular del procedimiento de codificación según la invención, la decodificación del primer código corrector sistemático y la decodificación del segundo código corrector algebraico, se realizan de forma conjunta.
5
10
15
20
25
30
35
40
45
50
55
La invención tiene también por objeto un dispositivo de codificación configurado para ejecutar las etapas del procedimiento de codificación con protección diferenciada según la invención, un dispositivo de decodificación configurado para ejecutar las etapas del procedimiento de decodificación con protección diferenciada según la invención, un transmisor de señales de navegación por satélite que comprende un dispositivo de codificación según la invención para codificar de forma diferenciada mensajes de navegación por satélite y un receptor de señales de navegación por satélite que comprende un dispositivo de decodificación según la invención para decodificar de manera diferenciada mensajes de navegación por satélite.
Otras características y ventajas de la presente invención resultarán más evidentes tras la lectura de la descripción que sigue en relación con los dibujos adjuntos que representan:
- la figura 1, un organigrama que describe el procedimiento de codificación con protección diferenciada según la invención,
- la figura 2, un organigrama que describe el procedimiento de decodificación con protección diferenciada según la invención según un primer modo de realización,
- la figura 3, un organigrama que describe el procedimiento de decodificación con protección diferenciada según la invención según un segundo modo de realización,
- la figura 4, un diagrama que ilustra los desempeños de la invención en tasas de errores de bits y en tasas de errores de tramas en función de la relación señal a ruido,
- la figura 5, un cuadro sinóptico que describe los elementos constituyentes de un codificador con protección diferenciada según la invención,
- la figura 6, un cuadro sinóptico que describe los elementos constituyentes de un decodificador con protección diferenciada según la invención,
- la figura 7, un cuadro sinóptico de un transmisor que comprende un codificador con protección diferenciada según la invención,
- la figura 8, un cuadro sinóptico de un receptor que comprende un codificador con protección diferenciada según la invención.
La figura 1 representa un cuadro sinóptico que describe la secuencia de las etapas de implementación del procedimiento de codificación con protección diferenciada según la invención.
El procedimiento recibe en la entrada una trama T que comprende un conjunto de bits y produce en su salida una trama de codificada Tc en vista de su transmisión en un canal de radio, por ejemplo, un canal de transmisión por satélite.
Según una primera etapa 101, se asigna un nivel de prioridad a los datos transmitidos en la trama T.
El nivel de prioridad de cada bit se selecciona en función de la importancia de la información contenida en este bit. Dicho de otro modo, un nivel de prioridad elevado se asigna a los bits que deben recibirse con prioridad. Un nivel de prioridad elevado significa que los bits asociados deben protegerse por un código corrector de rendimiento de menor protección con el fin de aumentar el nivel de protección en esos bits para aumentar de este modo la probabilidad de que se reciban correctamente después de la transmisión a través de un canal de radio.
Por el contrario, un nivel de prioridad bajo puede asignarse a los bits que no necesitan una probabilidad de recepción correcta elevada y que pueden transmitirse sin la adición de protección por un código corrector o con una protección con ayuda de un código corrector de rendimiento de protección elevada.
En el ámbito de la aplicación de la invención con una trama de datos GNSS, el nivel de prioridad puede asignarse a los bits de la trama teniendo en cuenta las siguientes limitaciones. En primer lugar, el nivel de prioridad puede fijarse en función del tipo de información que se transmitirá. En efecto, toda la información que se transmitirá no tiene un mismo nivel de criticidad.
En segundo lugar, se puede asignar un mayor nivel de prioridad a los bits más significativos de los datos cuantificados con el fin de diferenciar la protección que se aplicará en función del nivel de cuantificación de los datos. Por otro lado, los bits menos significativos pueden asociarse a un nivel de prioridad bajo ya que son menos significativos y no necesitan, por lo tanto, una alta probabilidad de recepción correcta.
Finalmente, cierta información se repite en el trascurso del tiempo con una frecuencia de actualización más o menos grande. Un nivel de prioridad elevado puede asignarse a la información que nunca se repite o que se repite con una frecuencia baja. Por otro lado, a la información repetida con una frecuencia elevada puede asignarse un nivel de prioridad bajo.
Los ejemplos de asignación de niveles de prioridad a los bits de la trama T dados anteriormente son a título ilustrativo y no limitante. El experto en la materia que busca aplicar la invención a un estándar particular, podrá definir otras políticas de gestión de los niveles de prioridad en función de las necesidades requeridas. La idea general en la aplicación de la etapa 101 es definir un nivel de prioridad elevado a los bits que necesitan una gran probabilidad de recepción correcta y definir un nivel de prioridad bajo a los bits que presentan menos limitaciones en sus tasas de recepción correcta.
5
10
15
20
25
30
35
40
45
50
55
El nivel de prioridad puede ser un valor entero que varía en un intervalo dado, por ejemplo, entre 0 y M entero estrictamente positivo, siendo 0 el menor nivel de prioridad y M el mayor nivel de prioridad.
En una segunda etapa 102, la trama T se descompone en Nt subtramas reagrupando cada subtrama, los bits de nivel de prioridad equivalentes. Por ejemplo, si Nt es igual a dos, la etapa 102 consiste en reagrupar en una primera subtrama, los bits de mayor nivel de prioridad y en una segunda subtrama, los bits de menor nivel de prioridad. Si Nt es superior a dos, se disponen los bits en función de su nivel de prioridad ascendente y se construye Nt subtramas que comprende cada una los bits que tienen un nivel de prioridad idéntico o cercano. La descomposición 102 de la trama T en subtramas puede realizarse fijando longitudes idénticas para las subtramas o, reagrupando en una subtrama los bits que tienen un mismo nivel de prioridad en cuyo caso las subtramas pueden tener longitudes diferentes.
En una tercera etapa 103, las subtramas obtenidas se demultiplexan para tratarse cada una por una primera operación de codificación de canal separado para cada subtrama. El ejemplo de la figura 1 se limita a la generación de dos subtramas, pero puede extenderse fácilmente a un número de subtramas superior a dos.
La subtrama ST0 que reagrupa los bits de menor nivel de prioridad no se somete a ninguna operación de codificación de canal en un primer momento y se transmite directamente hacia una etapa 106 de multiplexación.
La subtrama ST1 que reagrupa los bits de mayor nivel de prioridad se transmiten se transmite a una etapa 104 de codificación de canal que consiste en aplicar a la subtrama ST1 un código corrector algebraico, por ejemplo, un código corrector BCH.
Si un número Nt, superior a dos, de subtramas se genera, un código corrector algebraico del tipo de código BCH se aplica a las Nt -1 subtramas que comprenden los bits de mayor nivel de prioridad. Cada código corrector se aplica con un rendimiento de protección diferente y que asciende con la disminución del nivel de prioridad medio de cada subtrama. La subtrama de menor nivel de prioridad medio se transmite sin codificación directa a la etapa 106 de multiplexación.
A título de ejemplo, si se consideran tres subtramas, los rendimientos de codificación utilizados pueden ser, por ejemplo, iguales a 0, 2/3 y 3/4 respectivamente.
El conjunto de subtramas se multiplexa seguidamente, en una etapa 105, para reconstruir una trama de igual tamaño que la trama T recibida en la entrada de la primera etapa 101. Esta trama reconstruida a continuación se codifica, en una etapa 106, por un segundo código corrector. El segundo código corrector es un código corrector de tipo código LDPC (Low Density Parity Code) o cualquier código corrector del mismo tipo que pueda representarse con ayuda de un gráfico bipartito llamado gráfico de Tanner.
El libro de referencia [1] y, en particular, el capítulo 5 titulado "Low-density parity-check codes", describen en detalle la construcción y la representación de un código corrector de tipo LDPC con ayuda de un gráfico bipartito llamado de Tanner.
Un gráfico de Tanner se compone de dos tipos de nodos. Un primer tipo de nodo se llama nodo variable o, en inglés "variable node" o también "code-bit node" según los usos. Los nodos variables se asocian cada uno a un bit de una palabra de código. Hay, por lo tanto, tantos nodos variables como bits en la palabra de código para decodificar. Cada nodo variable se conecta a uno o varios nodos de control, llamados "check nodes" o "constraint nodes", en inglés. El número de nodos de control es igual al número de líneas de la matriz de paridad del código corrector. El número de nodos variables es igual a un número de columnas de la matriz de paridad. Un nodo de control de índice i se conecta a un nodo variable de índice j si y solamente sí el elemento de la línea i y de la columna j de la matriz de paridad del código es igual a 1. Una conexión entre un nodo variable y un nodo de control se llama una rama. El número de conexiones que parten de un nodo es el grado de un nodo.
El código corrector utilizado en la etapa 106 para codificar la trama multiplexada debe, además, ser un código corrector sistemático. Este tipo de código se describe, por ejemplo, en el capítulo 6.5.2 del libro [1] que se basa en los códigos llamados "Irregular Repeat-Accumulate Codes", también conocidos como códigos IRA. Tales códigos tienen la particularidad de generarse a partir de una matriz de paridad de forma H=[Hu Hp]. Hp es una matriz cuadrada de tamaño m x m donde m es el número de nodos de control del código. Hu es una matriz con m líneas y n-m columnas, con R=m/n el rendimiento del código. Hp es una matriz llamada bidiagonal cuya forma se da en la página 269, relación (6.4) del libro [1]. Como se indicó anteriormente, el número de nodos variables es igual al número de columnas de la matriz de paridad H. En el caso de códigos sistemáticos IRA, se pueden distinguir los nodos variables asociados a las columnas de la matriz Hu y los nodos variables asociados a las columnas de la matriz Hp. Éstos últimos corresponden a los bits sistemáticos de la palabra de código y se llamarán nodos variables sistemáticos en lo sucesivo. Los bits sistemáticos son los bits útiles en la entrada de la operación de codificación, por oposición a los bits de paridad que son los bits de redundancia añadidos por la operación de codificación. Como alternativa, la matriz de paridad H puede tomar igualmente la forma H=[Hp Hu], la selección del orden entre las matrices Hp y Hu determinándose por convención.
Volviendo ahora a la descripción del procedimiento de codificación según la invención. En una etapa 105 adicional,
5
10
15
20
25
30
35
40
45
50
55
ejecutada tras la etapa 104 y antes de la etapa 106, las subtramas codificadas por aplicación de un código corrector algebraico en el momento de la etapa 104 se entrelazan con ayuda de un elemento de entrelazado que tiene como función poner en correspondencia los bits de las subtramas codificadas con los nodos variables sistemáticos del gráfico bipartito del código corrector sistemático LDPC. La puesta en correspondencia depende, por una parte, del nivel de prioridad medio de la subtrama y, por otra parte, del grado de los nodos variables sistemáticos.
La introducción de la etapa 105 se basa en la observación de que los nodos variables más conectados en un gráfico de Tanner, es decir, los nodos de mayor grado, son para los que los bits de la palabra de código asociados a estos nodos tienen una gran probabilidad de ser falsos tras la decodificación de la palabra de código.
La invención saca provecho de esta observación para poner en correspondencia los bits de las subtramas codificadas y los nodos variables sistemáticos del gráfico de Tanner del código LDPC para optimizar los rendimientos globales de decodificación de la trama codificada Tc en la salida de la operación de codificación 106 por un código corrector sistemático de tipo LDPC.
La etapa 105 consiste, por lo tanto, en un primer tiempo para ordenar los nodos variables sistemáticos del gráfico de Tanner del código LDPC usado en la etapa 106 según un orden, ascendente o descendente, de sus grados. Esta etapa puede efectuarse a partir de la matriz de paridad H del código puesto que los nodos variables sistemáticos que corresponden a los n-m primeras (o últimas) columnas de la matriz H y el grado de cada nodo variable y dado por la suma de los valores de la columna de la matriz H asociada al nodo variable.
En un segundo tiempo, se ponen en correspondencia las subtramas codificadas y la subtrama no codificada con los nodos variables sistemáticos del código LDPc en función del nivel de prioridad medio de la subtrama y de los grados de los nodos variables.
Para esto, una primera estrategia consiste en asociar las subtramas de mayor nivel de prioridad con los nodos variables sistemáticos de menor grado. De este modo, se favorece una probabilidad de decodificación correcta más elevada para las subtramas de mayor prioridad.
En el ejemplo de la figura 1, los bits de la subtrama ST1 codificados 104 por el código corrector algebraico BCH, se ponen en correspondencia con los nodos variables sistemáticos de menor grado. Los bits de la subtrama ST0 no codificados se ponen en correspondencia con los nodos variables sistemáticos de mayor grado. La puesta en correspondencia puede realizarse por una operación de entrelazado que consiste en ordenar los bits de cada subtrama en una trama T' producida en la entrada de la etapa 106 de codificación. Los índices de estos bits de la trama T' corresponden a los índices de los nodos variables sistemáticos de la matriz de paridad del código corrector de tipo LDPC. La operación de entrelazado o puesta en correspondencia puede realizarse con ayuda de un vector de mismo tamaño que la trama T' que contiene los índices de los nodos variables sistemáticos ordenados en orden ascendente o descendente de los valores de sus grados. Cualquier otra implementación equivalente de la etapa 105 es posible.
Para explicar mejor la operación efectuada por la etapa 105, se describe un ejemplo numérico que no es necesariamente representativo de una situación real, pero que permite comprender cómo implementar la etapa 105.
Supongamos que la trama T que hay que codificar se demultiplexa en dos subtramas. La subtrama más prioritaria ST1 contiene, tras la codificación 104, 10 bits y la subtrama de menor prioridad ST0 contiene 5 bits. Se define un vector Vdeg de igual tamaño que la trama T' en la entrada de la etapa 106 de codificación LDPC. El tamaño del vector Vdeg y de la trama T', en este ejemplo, es igual a 15. El vector Vdeg contiene los índices de los nodos variables sistemáticos clasificados en el orden ascendente de sus grados. Por ejemplo, el vector Vdeg es igual a [5; 1; 15; 6; 12; 8; 14; 3; 7; 11; 2; 4; 9; 13; 10]. La operación de puesta en correspondencia 105 consiste, pues, en asignar los 10 bits de la subtrama de mayor prioridad ST1 a los 10 primeros nodos variables sistemáticos identificados en el vector Vdeg, a saber, los nodos de índices [5; 1; 15; 6; 12; 8; 14; 3; 7; 11]. Los 5 bits de la subtrama de menor prioridad ST0 se asignan a los nodos variables de índices [2; 4; 9; 13; 10].
La descripción anterior realizada de la etapa 105 puede extenderse fácilmente a un número de subtramas superior a dos.
Una segunda estrategia de implementación de la etapa 105 consiste, por el contrario, en combinar las subtramas de mayor nivel de prioridad con los nodos variables sistemáticos de mayor grado. Según esta segunda estrategia, se considera que las subtramas de mayor nivel de prioridad ya están protegidos por la adición de un código corrector algebraico (etapa 104) y se desea privilegiarse, en la segunda etapa 106 de codificación, esta vez la subtrama ST0 de menor nivel de prioridad que no está protegido por un código corrector algebraico.
Además, esta segunda estrategia presenta una ventaja en el caso en el que la decodificación se realiza en dos iteraciones como se explicará en mayor detalle a continuación en el párrafo asociado con la figura 3.
Según una variante de la segunda estrategia de implementación de la etapa 105, es posible construir un código corrector LDPC fijando el número de nodos variables sistemáticos cuyo grado es igual al grado máximo entre el conjunto de los nodos variables. Para ello, se fija primeramente un valor de grado máximo dmax, siendo un valor
5
10
15
20
25
30
35
40
45
50
55
típico posible un grado máximo igual a diez. Este parámetro afecta al nivel del mínimo error en el momento de la decodificación del código LDPC, pero también a la relación señal a ruido obtenida por una tasa de error dada por el algoritmo de decodificación. Cuando mayor es el grado máximo, más bajo será el mínimo error, pero más grande será la relación señal a ruido a partir de la cual el algoritmo de decodificación empieza a decodificar.
Se fija a continuación una cantidad de nodos de grado dmax que es exactamente igual a la relación entre el número de bits de la subtrama codificada de mayor nivel de prioridad y el número de bits de una palabra del código LDPC. La cantidad de los otros nodos variables se define según principios bien conocidos por el experto en la materia y se describen, en particular en el libro de referencia [1] en los capítulos 5 y 6. Con ayuda de procedimientos conocidos, se puede generar una matriz de paridad del código que es compatible con las limitaciones fijadas anteriormente. De esta forma, los bits de la subtrama de mayor nivel de prioridad se asociarán únicamente a los nodos variables sistemáticos de grados iguales al grado máximo.
Una ventaja de esta variante es que permite limitar la cantidad de nodos variables de grados máximos, lo que permite mejorar el mínimo de error en la curva de tasa de error obtenida tras la decodificación. En efecto, según esta variante, se limita la proporción de nodos variables de grados máximos a la proporción de número de bits de la subtrama codificada de mayor nivel de prioridad entre el conjunto de los bits.
La variante descrita anteriormente también es igualmente posible fijando esta vez el número de nodos variables sistemáticos cuyo grado es igual al menor grado entre el conjunto de los nodos variables sistemáticos.
La etapa 105 de puesta en correspondencia permite generar una trama T' a partir de las diferentes subtramas. La trama T' se codifica 106 a continuación por un código corrector sistemático LDPC IRA según un procedimiento de codificación conocido por el experto en la materia, por ejemplo, descrito en el capítulo 6.5.2 del libro de referencia [1].
La elección de los rendimientos de codificación del o de los códigos correctores algebraicos BCH y del código corrector LDPC puede hacerse para obtener un rendimiento de codificación global entre la trama de entrada T y la trama de salida Tc que sea igual a un rendimiento dado.
La figura 2 describe, en un organigrama, la secuencia de las etapas de implementación de un procedimiento de decodificación, según un primer modo de realización de la invención, adaptado para decodificar una trama Tc codificada con ayuda del procedimiento de codificación descrito en la figura 1.
La trama Tc se recibe en la entrada del procedimiento de decodificación según la invención tras haberse transmitido a través de un canal de propagación no perfecto, por ejemplo, un canal de transmisión por satélite o por vía radio, que genera potencialmente errores en los bits de la trama Tc cuando se recibe por un receptor.
En una primera etapa 201 del procedimiento de decodificación, la trama recibida se decodifica con ayuda de un algoritmo de decodificación de un código de tipo LDPC. El algoritmo de decodificación se basa en el gráfico de Tanner generado a partir de la matriz de paridad del código LDPC elegido para implementar el procedimiento de codificación. Un algoritmo de decodificación posible puede ser uno de los descritos en el capítulo 5 del libro de referencia [1] o cualquier otro algoritmo equivalente basado en un gráfico bipartito de Tanner. Un tal algoritmo no se describe en detalle en el presente documento ya que el experto en la materia, especialista en códigos correctores, sabrá referirse al libro [1] o cualquier otro libro de referencia del campo para implementar este algoritmo.
En una segunda etapa 202, una operación de desentrelazado se efectúa en la misma trama decodificada obtenida en la salida de la primera etapa 201 de decodificación. La operación de desentrelazado consiste en la operación inversa a la implementada en la etapa 105 del procedimiento de codificación. Dicho de otro modo, en la etapa 105 del procedimiento de codificación, la función de entrelazado implementada para poner en correspondencia los bits de las subtramas según sus niveles de prioridad con los nodos variables sistemáticos del código LDPC según sus grados, se guarda y transmite al receptor encargado de implementar el procedimiento de decodificación según la invención.
La operación de desentrelazado ejecutada por la etapa 202 produce en la salida Nt subtramas de niveles de prioridad diferentes, que corresponden a las Nt subtramas generadas durante el procedimiento de codificación. La figura 2 describe un ejemplo de escenario para el cual Nt es igual a dos, pero el lector sabrá extender sin dificultad este ejemplo a una implementación por un valor de Nt superior a dos.
Volviendo al ejemplo numérico descrito para ilustrar la etapa 105 del procedimiento de codificación según la invención, la etapa 202 consiste en generar las subtramas ST 1 y ST0 de la siguiente manera. La subtrama ST1 contienen los bits que tienen los índices siguientes en la trama en la salida de la etapa 201 de decodificación: [5; 1; 15; 6; 12; 8; 14; 3; 7; 11]. La subtrama ST0 contiene los bits que tienen los índices siguientes: [2; 4; 9; 13; 10].
Cada subtrama producida en la salida de la etapa 202 se somete a continuación, con excepción de la subtrama ST0 de menor nivel de prioridad, a una etapa 203 de decodificación con ayuda de un algoritmo de decodificación de un código corrector algebraico de tipo código BCH que consiste en la operación inversa de la operación de codificación efectuada en la etapa 104 del procedimiento de codificación según la invención. Un algoritmo de decodificación
5
10
15
20
25
30
35
40
45
50
55
posible es, por ejemplo, el algoritmo de Berlekamp-Massey descrito en el párrafo 3.3.2 del libro de referencia [1].
Las subtramas decodificadas ST1, así como la subtrama ST0 de menor nivel de prioridad se concatenan 204 a continuación para generar una trama única, después una última etapa 205 de desentrelazado se aplica para realizar la operación inversa a la operación de entrelazado ejecutada en la etapa 101 del procedimiento de codificación según la invención que tiene como objetivo ordenar los bits de la trama T que se codificarán en función de su nivel de prioridad.
La figura 3 ilustra, en un organigrama, una variante de implementación del procedimiento de decodificación según la invención.
Según esta variante, las etapas 201 a 205 del procedimiento de decodificación descrito en la figura 2 se repiten de forma idéntica. El código corrector algebraico usado para codificar ciertas subtramas es, en el caso de esta variante, un código corrector y detector de errores que permite detectar si la subtrama se ha decodificado correctamente, es decir, si ya no contiene errores o, al contrario, si los errores persisten. Señalemos P al indicador de decodificación correcto o incorrecto, obtenido al final de la etapa 203 de decodificación. Si el indicador P de decodificación correcto es positivo, una segunda iteración de decodificación se ejecuta entonces. En esta segunda iteración, la o las etapas 213 de codificación por un código corrector algebraico de la o las subtramas de niveles de prioridad elevados se repiten de forma idéntica con la etapa 104 de codificación del procedimiento descrito en la figura 1.
En una etapa 211 adicional, el indicador de decodificación correcto P proporcionado por el algoritmo 203 de decodificación del código BCH se usa para proporcionar una información adicional al algoritmo 201 de decodificación del código LDPC. Esta información consiste en abastecer una alta fiabilidad, en la segunda iteración de la decodificación 201 del código LDPC, a los bits que se han decodificado correctamente por el código BCH. La alta fiabilidad puede introducirse saturando, en el gráfico de Tanner del código LDPC, a un valor máximo la información de verosimilitud asociada a los bits que se han decodificado correctamente por el algoritmo 203 de decodificación del código BCH. De este modo, esta segunda iteración permite mejorar la capacidad de corrección del algoritmo 201 de decodificación del código LDPC y, en particular, en los bits de la subtrama ST0 no protegida por un código BCH.
Dicho de otro modo, la etapa 211 consiste en proporcionar al algoritmo 201 de decodificación del código LDPC, un vector de verosimilitudes de los bits producidos en la salida de la etapa 213 de codificación BCH en los que los valores se saturan a los valores máximos. Por ejemplo, si el valor máximo posible de una verosimilitud es igual a 50, las verosimilitudes proporcionadas en la etapa 211 son iguales a +50 para un bit igual a 1 y a -50 para un bit igual a 0. El término verosimilitud se conoce bien en el campo de los algoritmos de decodificación de códigos correctores, designa una información flexible asociada a un bit, dicho de otra manera, una información sobre la probabilidad de su valor. Por ejemplo, si los valores de verosimilitudes varían entre -50 y +50. El valor -50 corresponde a una certeza elevada de que el bit es igual a 0, el valor +50 corresponde a una certeza elevada de que el bit es igual a 1 y los valores intermedios corresponden a probabilidades menos elevadas. El valor 0 corresponde a una probabilidad de que el bit sea 0 o 1. Debido a la información de decodificación correcta, se sabe que los bits en la salida de la etapa 213 de codificación BCH son correctos, se puede, por lo tanto, saturar sus valores de verosimilitud a valores máximos en valor absoluto.
Cuando el decodificador 203 BCH no decodifica correctamente una subtrama en la primera iteración, dicho de otra manera, cuando el indicador P indica una mala decodificación, la segunda iteración del algoritmo no se implementa.
La etapa 212 de entrelazado y de puesta en correspondencia del vector de verosimilitudes (asociadas a los bits producidos por la etapa 213 de codificación BCH) con los nodos variables sistemáticos del código LDPC es similar a la etapa 105 del procedimiento de codificación descrito en la figura 1 con la diferencia de que la etapa 212 se limita a reemplazar, en la palabra de código en la entrada de la etapa 201 de decodificación LDPC, los valores de los bits que corresponden a las subtramas codificadas por un código algebraico BCH, por los valores de los bits obtenidos en la salida de la etapa 213 de codificación BCH. Asimismo, los valores de verosimilitudes asociados a estos bits se reemplazan por valores saturados de verosimilitudes calculadas en la etapa 211 adicional.
La segunda variante del procedimiento de decodificación según la invención, que incluye una segunda iteración de decodificación, es particularmente ventajosa cuando los bits de las subtramas de mayor nivel de prioridad se asocian a los nodos variables sistemáticos de mayor grado. En efecto, en la segunda iteración, los bits de las subtramas de mayor prioridad, que están protegidos por un código BCH, se benefician de una alta fiabilidad debido a la información de decodificación correcta proporcionada por el decodificador BCH en la primera iteración de decodificación. Como estos bits se asocian a los nodos variables de mayor grado que son los nodos que presentan una mayor probabilidad de error debido a sus numerosas conexiones, la segunda iteración de decodificación mejorará sustancialmente la decodificación de la subtrama menos prioritaria (la que no está protegida por un código BCH) puesto que ésta se asocia a los nodos variables de menor grado.
Si, por el contrario, se asocian los bits de la subtrama menos prioritaria a los nodos variables de mayor grado y los bits de las subtramas protegidas por el código BCH a los nodos variables de menor grado, la información de decodificación correcta proporcionada por el decodificador BCH mejorará la fiabilidad en los nodos variables de menor grado, lo que es menos ventajoso ya que, naturalmente, los nodos variables de menor grado están menos
5
10
15
20
25
30
35
40
45
50
conectados y tienen una menor probabilidad de error que los nodos de mayor grado.
También según otra variante (no descrita en las figuras), el algoritmo 203 de decodificación del código BCH puede integrarse y fusionarse directamente con el algoritmo 201 de decodificación del código LDPC.
Para ello, se genera una matriz de paridad global asociada al procedimiento de codificación según la invención, a partir de estas matrices de paridad respectivas del código BCH y del código LDPC. Las primeras líneas de la matriz de paridad global corresponden a las ecuaciones de paridad del código BCH. El algoritmo 201 de decodificación global puede, entonces, ejecutarse directamente en forma de un algoritmo de decodificación de un código LDPC.
Cuando el procedimiento de decodificación funciona en dos iteraciones, al final de la primera iteración, se verifican las ecuaciones de paridad en la parte de la matriz de paridad que corresponde al código BCH y se calculan los síndromes asociados con estas ecuaciones, según un principio conocido en el campo de los algoritmos de decodificación de códigos BCH. Si los síndromes son cero, se efectúa una segunda iteración de decodificación de la misma manera que la descrita en la figura 3. Es decir, que se aplican las etapas 213, 211, 212, antes del segundo paso de decodificación LDPC. Si los síndromes no son cero, la segunda iteración no se inicia.
Realizando conjuntamente la decodificación LDPC y la decodificación BCH mediante un único algoritmo de decodificación, la etapa 203 de decodificación BCH específica se elimina.
La figura 4 ilustra los rendimientos obtenidos gracias a la invención en un diagrama que representa de manera ordenada las tasas de errores en función de la relación señal a ruido Eb/N0 expresada en decibelios. El canal de propagación es un canal simulado basado en un modelo de ruido blanco Gaussiano aditivo. Los resultados de medidas de tasa de errores se obtienen por simulaciones realizadas en un gran número de tramas T codificadas con ayuda del procedimiento de codificación según la invención, sometidas a la adición de errores representativos de los generados por un canal de propagación y después decodificadas con ayuda del procedimiento de decodificación según la invención. Las curvas de rendimiento de la figura 4 se obtienen para tramas T que comprenden 300 bits, descompuestas en dos subtramas. La subtrama ST1 de mayor prioridad se protege por un código corrector BCH de parámetros (K,N)=(40,64), con R=K/N el rendimiento del código BCH. El código LDPC se define por una matriz generadora H de 300 líneas y 600 columnas. Los parámetros del código LDPC se dan por las proporciones Ai de nodos variables de grados i:{A1=0,0004; A2=0,2546; A4=0,0899; A7=0,2097; A10=0,44551. El grado máximo es igual a diez. Este ejemplo numérico se da a título puramente ilustrativo y no limitante. En este ejemplo, los bits de la subtrama de mayor prioridad ST1 se ponen en correspondencia con los nodos variables sistemáticos de grado máximo.
La curva 401 representa la tasa de errores de bits medida tras la decodificación en la subtrama de mayor prioridad ST1.
La curva 402 representa la tasa de errores de bits medida tras la decodificación en la subtrama de menor prioridad ST0.
La curva 403 representa la tasa de errores de tramas medidas únicamente en las subtramas de menor prioridad ST0.
La curva 404 representa la tasa de errores de tramas medida únicamente en las subtramas de mayor prioridad ST1.
La curva 405 representa la tasa de errores de tramas medidas únicamente en las subtramas de menor prioridad ST0 con una decodificación operada según la variante de realización descrita en la figura 3 en la que se realiza una segunda iteración de decodificación.
Las diferentes curvas representadas en la figura 4 permiten evaluar la aportación de la invención en términos de ganancia en la relación señal a ruido obtenida por una tasa de errores dada. En particular, se observa que la tasa de errores (bits o tramas) en las subtramas de mayor prioridad se mejora en relación con la tasa de errores en las subtramas de menos prioridad. Además, la adición de una segunda iteración de decodificación permite reducir la tasa de errores en la clase de bits de menor prioridad sustancialmente al mismo nivel que la tasa de errores obtenida en la clase de bits de mayor prioridad.
La figura 5 representa esquemáticamente un cuadro sinóptico de un codificador con protección diferenciada según la invención, apto para implementar el procedimiento de codificación descrito en la figura 1.
El codificador 500 según la invención recibe en la entrada una trama T de bits para codificar y produce en la salida una trama Tc de bits codificados. El codificador 500 comprende diferentes módulos configurados para ejecutar las etapas del procedimiento de codificación descrito en la figura 1. En particular, el codificador 500 comprende un primer módulo 501 de asignación de un nivel de prioridad a los bits de la trama T, un segundo módulo 502 de entrelazado para reagrupar los bits en grupos de niveles de prioridad equivalentes o cercanos, un demultiplexor 503 para separar la trama T en varias subtramas ST0, ST1, al menos un codificador 504 algebraico de tipo codificador BCH, un tercer módulo 505 de entrelazado y de multiplexación de las subtramas y un codificador 506 sistemático de tipo codificador LDPC.
5
10
15
20
25
30
35
40
45
50
55
La figura 6 representa esquemáticamente un cuadro sinóptico de un decodificador según la invención adaptado para decodificar tramas codificadas por el codificador según la invención descrito en la figura 5.
El decodificador 600 según la invención recibe en la entrada una trama Tc de bits codificados y producen en la salida una trama T de bits decodificados. El decodificador 600 comprende diferentes módulos configurados para ejecutar las etapas del procedimiento de decodificación descrito en las figuras 2 y 3. En particular, el decodificador 600 comprende un decodificador 601 para decodificar una palabra de código LDPC, un módulo 602 de desentrelazado y de demultiplexación para generar subtramas asociadas a niveles de prioridad, al menos un decodificador 603 para decodificar una palabra de un código algebraico de tipo código BCH, un multiplexor 604 para concatenar varias subtramas en una única trama y un elemento 605 de desentrelazado para reconstituir el orden inicial de los bits en la trama de origen.
El decodificador 600 puede comprender otros módulos para ejecutar las etapas adicionales descritas en la variante del procedimiento de decodificación ilustrado en la figura 3.
Los diferentes módulos descritos en las figuras 5 y 6 se dan a título de ejemplos de realización. Sin salir del ámbito de la invención, otras arquitecturas son posibles, por ejemplo, reagrupando varias etapas de un procedimiento en el seno de un mismo módulo o, al contrario, ejecutando una etapa por varios módulos.
La figura 7 representa un cuadro sinóptico de un transmisor 700 que comprende un codificador 702 según la invención. El transmisor 700 puede constar, además, de un módulo 701 de aplicación para generar tramas de bits T y un módulo 703 de radio para modular, filtrar, formatear y convertir analógicamente una trama de bits codificada Tc antes de su transmisión a una antena 704 para emitirse en un canal de radio. El transmisor 700 puede, por ejemplo, ser un transmisor compatible de un sistema de navegación por satélite. Con este fin, el transmisor 700 puede embarcarse en la carga útil de un satélite.
La figura 8 representa un cuadro sinóptico de un receptor 800 que comprende un decodificador 803 según la invención. El receptor 800 consta, además, de una antena 801 para recibir una señal, un módulo 802 de radio para convertir digitalmente, filtrar y desmodular la señal y un módulo 804 de aplicación que recibe las tramas decodificadas. El receptor 800 puede, por ejemplo, ser un receptor compatible de un sistema de navegación por satélite. Con este fin, el receptor 800 puede ser un receptor GNSS.
Los módulos del codificador y del decodificador según la invención pueden implementarse a partir de elementos de hardware y/o de software. Con este fin, la invención puede, en particular, implementarse como un programa informático que consta de instrucciones para su ejecución. El programa informático puede grabarse en un soporte de grabación legible por un procesador. El soporte puede ser electrónico, magnético, óptico o electromagnético.
En particular, la invención en su conjunto o cada módulo del codificador o del decodificador según la invención puede implementarse por un dispositivo que comprende un procesador y una memoria. El procesador puede ser un procesador genérico, un procesador específico, un circuito integrado propio de una aplicación (conocido también bajo el nombre inglés ASIC de "Application-Specific Integrated Circuit") o una red de puertas programables in situ (conocido también bajo el nombre inglés FPGA de "Field-Programmable Gate Array").
El dispositivo puede utilizar uno o varios circuitos electrónicos dedicados o un circuito de uso general. La técnica de la invención puede realizarse en una máquina computación reprogramable (un procesador o un microcontrolador, por ejemplo) que ejecuta un programa que comprende una secuencia de instrucciones o, en una máquina de computación dedicada (por ejemplo, un conjunto de puertas lógicas como un FPGA o un ASIC o cualquier otro módulo de hardware).
Según un modo de realización, el dispositivo comprende al menos un soporte de almacenamiento legible por ordenador (RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, DVD u otro soporte de disco óptico, cinta magnética, banda magnética, disco de almacenamiento magnético u otro dispositivo de almacenamiento u otro soporte de almacenamiento no transitorio legible por ordenador) codificado con un programa informático (es decir, varias instrucciones ejecutables) que, cuando se ejecuta en un procesador o varios procesadores, efectúa las funciones de los modos de realización de la invención descritos anteriormente.
A título de ejemplo de arquitectura de hardware adaptada a implementar la invención, un dispositivo según la invención puede constar de un bus de comunicación al que se conecta una unidad central de procesamiento o microprocesador (CPU, acrónimo de "Central Processing Unit" en inglés), una memoria de solo lectura (ROM, acrónimo de "Read Only Memory" en inglés) que pueda constar de los programas necesarios para la implementación de la invención; una memoria de acceso aleatorio o memoria caché (RAM, acrónimo de "Random Access Memory" en inglés) que consta de registros adaptados para registrar variables y parámetros creados y modificados durante la ejecución de los programas mencionados; y una interfaz de comunicación o E/S (I/O acrónimo de "Input/ouput" en inglés) adaptada para transmitir y recibir datos.
La referencia a un programa informático que, cuando se ejecuta, efectúa una cualquiera de las funciones descritas anteriormente, no se limita a un programa de aplicación que se ejecuta en un solo ordenador anfitrión. Al contrario, los términos programa informático y software se utilizan aquí en un sentido general para hacer referencia a cualquier
tipo de código informático (por ejemplo, un software de aplicación, un microsoftware, un microcódigo o cualquier otra forma de instrucción informática) que puede utilizarse para programar uno o varios procesadores para implementar aspectos de las técnicas descritas aquí. Los medios o recursos informáticos pueden, en particular, distribuirse ("Cloud computing"), posiblemente con según tecnologías de red de pares. El código de software puede ejecutarse 5 en cualquier procesador apropiado (por ejemplo, un microprocesador) o núcleo de procesador o un conjunto de procesadores, que se proporcionan en un solo dispositivo de computación o se reparten entre varios dispositivos de computación (por ejemplo, tales como posiblemente accesibles en el entorno del dispositivo). El código ejecutable de cada programa que permite al dispositivo programable implementar los procedimientos según la invención, puede almacenarse, por ejemplo, en el disco duro o en la memoria ROM. De manera general, el o los programas podrán 10 cargarse en medios de almacenamiento del dispositivo antes de ejecutarse. La unidad central puede controlar y dirigir la ejecución de las instrucciones o porciones de código de software o de los programas según la invención, instrucciones que se almacenan en el disco duro o en la memoria ROM, o bien en los otros elementos de almacenamiento anteriormente mencionados.
Referencias
15 [1] "Channel codes, classical and modern", William E. Ryan, Shu Lin, Cambridge university press.

Claims (17)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    REIVINDICACIONES
    1. Procedimiento de codificación con protección diferenciada aplicada a una trama (T) que comprende un conjunto de bits, efectuándose la codificación al menos a partir de un primer código corrector sistemático de tipo código LDPC, representado por un gráfico bipartito, llamado gráfico de Tanner, que comprende una pluralidad de primeros nodos, llamados nodos variables, comprendiendo dicho gráfico, además, una pluralidad de segundos nodos, llamados nodos de control, conectándose cada nodo variable a al menos un nodo de control por una rama, llamándose al número de ramas conectadas a un nodo variable grado del nodo variable, en el que cada nodo variable se asocia a un bit de una palabra de dicho primer código, llamándose a los nodos variables asociados a los bits sistemáticos de la palabra del primer código nodos variables sistemáticos, comprendiendo dicho procedimiento las siguientes etapas:
    - descomponer (102, 103) la trama (T) en una pluralidad de subtramas (ST0, ST1,...) teniendo cada una un nivel de prioridad diferente,
    - aplicar (104) a cada subtrama (ST1,...) obtenida, salvo a la subtrama (ST0) de menor nivel de prioridad, un segundo código corrector algebraico de rendimiento predeterminado, aumentando dicho rendimiento con la disminución del nivel de prioridad de cada subtrama cuando el número de subtramas (ST0, ST1,...) es al menos igual a tres,
    - aplicar (105) un entrelazado de bits de todas las subtramas (ST0, ST1,.... ) concatenadas que comprenden dicha subtrama (ST0) de menor prioridad y cada subtrama codificada por el segundo código corrector algebraico, para efectuar una puesta en correspondencia entre los nodos variables sistemáticos de dicho primer código corrector sistemático, ordenados según el valor de su grado y los bits de cada subtrama (ST0, ST1,...), ordenándose las subtramas según su nivel de prioridad,
    - codificar (106), con ayuda del primer código corrector sistemático, la trama compuesta por los bits entrelazados de todas las subtramas concatenadas.
  2. 2. Procedimiento de codificación con protección diferenciada según la reivindicación 1 en el que los bits de cada subtrama se ponen en correspondencia (105) con los nodos variables sistemáticos de dicho primer código corrector sistemático, ordenados en orden ascendente del valor de su grado según un orden descendente de los niveles de prioridad de las subtramas.
  3. 3. Procedimiento de codificación con protección diferenciada según la reivindicación 1 en el que los bits de cada subtrama se ponen en correspondencia (105) con los nodos variables sistemáticos de dicho primer código corrector sistemático, ordenados en orden ascendente del valor de su grado según un orden ascendente de los niveles de prioridad de las subtramas.
  4. 4. Procedimiento de codificación con protección diferenciada según la reivindicación 3 en el que el primer código corrector sistemático se construye de manera que la proporción de nodos variables sistemáticos de grado igual al grado máximo sea igual a la relación entre el número de bits de la subtrama de mayor nivel de prioridad y el número de bits de una palabra de dicho primer código corrector sistemático.
  5. 5. Procedimiento de codificación con protección diferenciada según una de las reivindicaciones anteriores en el que la descomposición (102) de la trama (T) en subtramas (ST0, ST1,...) se efectúa reordenando los bits de la trama (T) según su nivel de prioridad.
  6. 6. Procedimiento de codificación con protección diferenciada según la reivindicación 5 en el que el nivel de prioridad de un bit se define en función de la criticidad de la información asociada al bit, del peso del bit o de la frecuencia de actualización de la información asociada al bit.
  7. 7. Procedimiento de codificación con protección diferenciada según la reivindicación 6 en el que los datos transmitidos en la trama son datos de un mensaje de navegación por satélite generado por un sistema de navegación por satélite.
  8. 8. Procedimiento de codificación con protección diferenciada según una de las reivindicaciones anteriores en el que el segundo código corrector algebraico es un código BCH.
  9. 9. Procedimiento de decodificación con protección diferenciada aplicado a una trama codificada (Tc) que comprende un conjunto de bits codificados con ayuda del procedimiento de codificación con protección diferenciada según una de las reivindicaciones 1 a 8, comprendiendo el procedimiento de decodificación las siguientes etapas:
    - efectuar una primera decodificación (201) de la trama codificada con ayuda de un primer algoritmo de decodificación de un primer código corrector sistemático, de tipo código LDPC, basada en la explotación de un gráfico bipartito, para obtener una primera trama decodificada,
    - descomponer (202) la primera trama decodificada en subtramas, conteniendo cada subtrama los bits correspondientes a los nodos variables sistemáticos ordenados según el valor de su grado, ordenándose las subtramas según su nivel de prioridad,
    - efectuar una segunda decodificación (203) de cada subtrama obtenida, salvo de la trama de menor nivel de prioridad, con ayuda de un segundo algoritmo de decodificación de un segundo código corrector algebraico de
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    rendimiento predeterminado, siendo dicho rendimiento ascendente con la disminución del nivel de prioridad de cada subtrama cuando el número de subtramas es al menos igual a tres.
  10. 10. Procedimiento de decodificación con protección diferenciada según la reivindicación 9 que comprende, además, una etapa (204) de concatenación de las subtramas en una segunda trama decodificada.
  11. 11. Procedimiento de decodificación con protección diferenciada según una de las reivindicaciones 9 o 10 en el que el segundo código corrector es un código corrector y detector de errores, comprendiendo dicho procedimiento de decodificación, además, las siguientes etapas:
    - en el momento de la segunda decodificación (203) de cada subtrama, detectar (P) si la subtrama se decodifica correctamente o no,
    - si la subtrama se decodifica correctamente,
    i. codificar (213), con dicho segundo código corrector algebraico, cada subtrama decodificada para obtener una subtrama codificada,
    ii. aplicar una segunda iteración de la primera decodificación (201) especificando el algoritmo de decodificación de dicho primer código corrector sistemático, una verosimilitud máxima para los bits de cada subtrama codificada.
  12. 12. Procedimiento de decodificación con protección diferenciada según una de las reivindicaciones 9 a 11 en el que el segundo código corrector algebraico es un código BCH.
  13. 13. Procedimiento de decodificación con protección diferenciada según una de las reivindicaciones 9 a 12 en el que le decodificación (201) du primer código corrector sistemático y la decodificación (203) del segundo código corrector algebraico, se realizan de forma conjunta.
  14. 14. Dispositivo de codificación con protección diferenciada, destinándose la codificación a aplicarse a una trama (T) que comprende un conjunto de bits, comprendiendo el dispositivo al menos un primer codificador corrector de errores para codificar un código sistemático de tipo código LDPC, representado por un gráfico bipartito, llamado gráfico de Tanner, que comprende una pluralidad de primeros nodos, llamados nodos variables, comprendiendo dicho gráfico, además, una pluralidad de segundos nodos, llamados nodos de control, conectándose cada nodo variable a al menos un nodo de control por una rama, llamándose al número de ramas conectadas a un nodo variable grado del nodo variable, en el que cada nodo variable se asocia a un bit de una palabra de dicho primer código, llamándose a los nodos variables asociados a los bits sistemáticos de la palabra del primer código nodos variables sistemáticos, comprendiendo el dispositivo, además,
    - medios para descomponer la trama (T) en una pluralidad de subtramas (ST0, ST1,...) teniendo cada una un nivel de prioridad diferente,
    - medios para aplicar a cada subtrama obtenida, salvo a la subtrama (ST0) de menor nivel de prioridad, un segundo código corrector algebraico de rendimiento predeterminado, siendo dicho rendimiento ascendente con la disminución del nivel de prioridad de cada subtrama cuando el número de subtramas es al menos igual a tres,
    - medios para aplicar un entrelazado de los bits de todas las subtramas concatenadas que comprende dicha subtrama de menor prioridad y cada subtrama codificada por el segundo código corrector algebraico, para efectuar una puesta en correspondencia entre los nodos variables sistemáticos de dicho primer código corrector sistemático, ordenados según el valor de su grado y los bits de cada subtrama, ordenándose las subtramas según su nivel de prioridad,
    - medios para codificar, con ayuda del primer código corrector sistemático, la trama compuesta por los bits entrelazados de todas las subtramas concatenadas.
  15. 15. Dispositivo de decodificación con protección diferenciada, destinándose la decodificación a aplicarse a una trama codificada (Tc) que comprende un conjunto de bits codificados con ayuda del procedimiento de codificación con protección diferenciada según una de las reivindicaciones 1 a 8, comprendiendo el dispositivo de decodificación:
    - medios para efectuar una primera decodificación de la trama codificada con ayuda de un primer algoritmo de decodificación de un primer código corrector sistemático, de tipo código LDPC, basada en la explotación de un gráfico bipartito, para obtener una primera trama decodificada,
    - medios para descomponer la primera trama decodificada en subtramas, conteniendo cada subtrama los bits correspondientes a los nodos variables sistemáticos ordenados según el valor de su grado, ordenándose las subtramas según su nivel de prioridad,
    - medios para efectuar una segunda decodificación de cada subtrama obtenida, salvo de la trama de menor nivel de prioridad, con ayuda de un segundo algoritmo de decodificación de un segundo código corrector algebraico de rendimiento predeterminado, siendo dicho rendimiento ascendente con la disminución del nivel de prioridad de cada subtrama cuando el número de subtramas es al menos igual a tres.
  16. 16. Transmisor de señales de navegación por satélite que comprende un dispositivo de codificación según la reivindicación 14 para codificar de forma diferenciada mensajes de navegación por satélite.
  17. 17. Receptor de señales de navegación por satélite que comprende un dispositivo de decodificación según la reivindicación 15 para decodificar de forma diferenciada mensajes de navegación por satélite.
ES16164904.1T 2015-04-17 2016-04-12 Procedimientos de codificación y decodificación con protección diferenciada Active ES2647127T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1500806A FR3035286A1 (fr) 2015-04-17 2015-04-17 Procedes de codage et decodage a protection differenciee
FR1500806 2015-04-17

Publications (1)

Publication Number Publication Date
ES2647127T3 true ES2647127T3 (es) 2017-12-19

Family

ID=54291324

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16164904.1T Active ES2647127T3 (es) 2015-04-17 2016-04-12 Procedimientos de codificación y decodificación con protección diferenciada

Country Status (6)

Country Link
US (1) US9941905B2 (es)
EP (1) EP3082266B1 (es)
CA (1) CA2927165C (es)
ES (1) ES2647127T3 (es)
FR (1) FR3035286A1 (es)
RU (1) RU2703974C2 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11296823B2 (en) * 2017-05-30 2022-04-05 Qualcomm Incorporated Priority based mapping of encoded bits to symbols
CN108809522B (zh) * 2018-07-09 2021-09-14 上海大学 多码的深度学习译码器的实现方法
FR3097388B1 (fr) 2019-06-13 2021-10-29 Centre Nat Etd Spatiales Codage ldpc à protection différenciée
CN115296784B (zh) * 2022-08-10 2023-10-20 横川机器人(深圳)有限公司 伺服驱动器低延时同步方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020150100A1 (en) * 2001-02-22 2002-10-17 White Timothy Richard Method and apparatus for adaptive frame fragmentation
WO2008093717A1 (ja) * 2007-01-31 2008-08-07 Panasonic Corporation 無線通信装置およびパンクチャリング方法
KR100921465B1 (ko) * 2007-04-19 2009-10-13 엘지전자 주식회사 디지털 방송 신호 송수신기 및 그 제어 방법
KR20090094738A (ko) * 2008-03-03 2009-09-08 삼성전자주식회사 무선 디지털 방송 시스템에서 시그널링 정보를 부호화하는 장치 및 방법
KR101742451B1 (ko) * 2009-11-13 2017-05-31 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
US8694868B1 (en) * 2010-10-21 2014-04-08 Marvell International Ltd. Systems and methods for performing multi-state bit flipping in an LDPC decoder
US8954822B2 (en) * 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9553610B2 (en) * 2013-09-11 2017-01-24 Samsung Electronics Co., Ltd. Transmitter, receiver, and signal processing method thereof

Also Published As

Publication number Publication date
FR3035286A1 (fr) 2016-10-21
EP3082266B1 (fr) 2017-08-16
US20160308557A1 (en) 2016-10-20
RU2703974C2 (ru) 2019-10-22
CA2927165A1 (en) 2016-10-17
RU2016113724A3 (es) 2019-09-03
CA2927165C (en) 2023-06-20
EP3082266A1 (fr) 2016-10-19
RU2016113724A (ru) 2017-10-17
US9941905B2 (en) 2018-04-10

Similar Documents

Publication Publication Date Title
JP5875713B2 (ja) 送信機および受信機、並びに符号化率可変方法
KR100709545B1 (ko) 부호기 및 복호기
ES2647127T3 (es) Procedimientos de codificación y decodificación con protección diferenciada
KR102601215B1 (ko) 폴라 코딩 장치
KR100949519B1 (ko) 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법
US8910014B2 (en) Coding device, error-correction code configuration method, and program thereof
CN104917536B (zh) 一种支持低码率编码的方法及装置
JP6046403B2 (ja) 誤り訂正符号の符号化方法及び復号方法
KR20080072392A (ko) 통신 시스템에서 신호 수신 장치 및 방법
EP3047575B1 (en) Encoding of multiple different quasi-cyclic low-density parity check (qc-ldpc) codes sharing common hardware resources
EP2037586A1 (en) Encoding method and device for Tail-biting Trellis LDPC codes
US10447300B2 (en) Decoding device, decoding method, and signal transmission system
US9160364B1 (en) Code word formatter of shortened non-binary linear error correction code
US20150381210A1 (en) Parity check matrix creation method, encoding apparatus, and recording/reproduction apparatus
ES2930132T3 (es) Codificación LDPC con protección diferenciada
KR101391859B1 (ko) 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
CN108234069B (zh) 低码率数据发送方法和装置
KR101391853B1 (ko) 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치