Procedimiento y aparato para codificar bits de datos en paralelo.

Un procedimiento de codificación 5 de datos con un codificador (1200) de un sistema de comunicación inalámbrica

, en el que el codificador es síncrono, comprendiendo el procedimiento: recibir una pluralidad de bits de información de entrada I[0]:I[3] en el codificador, en donde el procedimiento procesa la pluralidad de bits de información de entrada, I, y realiza los siguientes pasos durante un solo ciclo de reloj:

- calcular los valores de estado S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3], para el codificador, en base a la pluralidad de bits de información de entrada I[0]:I[3] y los valores de estado iniciales o almacenados S0[0] y S1[0]; y

- generar un conjunto de valores codificados de salida X[0]:X[3], Y0[0]:Y0[3], Y1[0]:Y1[3] usando los valores de estado calculados S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3], y la pluralidad de bits de información de entrada I[0]:I[3] y los valores de estado iniciales o almacenados S0[0] y S1[0] aplicando de forma recursiva:

X[n] ≥ I[n];

Y0 [n] ≥ I[n] - S1[n] - S0[n]; y Y1 [n] ≥ I[n] - S0[n];

en las que I[n] representa un elemento n-ésimo de bits de dicha pluralidad de bits de información de entrada I[0]:I[3], X[n] representa una salida del codificador igual al n-ésimo bit de información de entrada;

S0[n] y S1[n] representan elementos n-ésimos de bit de un primer y un segundo valor de estado de los valores de estado S0[0]:S03], S1[0]:S1[3],

Y0[n] representa el primer elemento de bit de paridad enésimo de dicho conjunto de valores codificados de salida X[0]:X[3], Y0[0]: Y0[3], Y1[0]:Y1[3], Y1[n] representa el segundo elemento de bit de paridad enésimo de dicho conjunto de valores codificados de salida X[0]:X[3], Y0[0]:Y0[3], Y1[0]:Y1[3], - representa la operación lógica digital XOR y n representa un índice de iteración de la operación recursiva,

en el que dicha etapa de cálculo de dichos valores de estado S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3] utiliza:

S0 [n + 1] ≥ I[n] - S1[n] - S2[n];

S1 [n + 1] ≥ S0[n]; y

S2 [n + 1] ≥ S1[n],

en las que S2[n] representa un elemento enésimo de bit de un tercer valor de estado S2[0]:S2[3].

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2002/040049.

Solicitante: QUALCOMM INCORPORATED.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: 5775 MOREHOUSE DRIVE SAN DIEGO, CA 92121 ESTADOS UNIDOS DE AMERICA.

Inventor/es: HURT,JAMES Y, HOWARD,MICHAEL A, FUCHS,ROBERT J.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION H — ELECTRICIDAD > CIRCUITOS ELECTRONICOS BASICOS > CODIFICACION, DECODIFICACION O CONVERSION DE CODIGO,... > Codificación, decodificación o conversión de código... > H03M13/29 (combinando dos o más códigos o estructuras de códigos, p. ej. códigos de productos, códigos de producto generalizados, códigos concatenados, códigos internos y externos)

PDF original: ES-2474215_T3.pdf

 

google+ twitter facebook

Fragmento de la descripción:

Procedimiento y aparato para codificar bits de datos en paralelo Antecedentes

Campo de la invenciïn La presente invenciïn se refiere a comunicaciones de datos. Mïs particularmente, la presente invenciïn se refiere a la codificaciïn de mïltiples bits de datos en paralelo (por ejemplo, usando una memoria de mïltiples puertos) para reducir de manera significativa los retrasos asociados con la codificaciïn.

Descripciïn de la tïcnica relacionada En un sistema tïpico de comunicaciones digitales, los datos se procesan, modulan y acondicionan a una unidad transmisora para generar una seïal modulada que, a continuaciïn, se transmite a una o mïs unidades de recepciïn. El procesamiento de datos puede incluir, por ejemplo, formatear los datos en un formato de trama en particular, codificar los datos formateados con un esquema de codificaciïn particular para proporcionar una detecciïn y/o correcciïn de errores en las unidades de recepciïn, canalizar (es decir, cubrir) los datos codificados y difundir los datos canalizados sobre el ancho de banda del sistema. El procesamiento de datos viene definido tïpicamente por el sistema o estïndar que se estï aplicando.

En la unidad receptora, se recibe la seïal transmitida, acondicionada, demodulada y procesada digitalmente para recuperar los datos transmitidos. El procesamiento en la unidad receptora es complementario al llevado a cabo en la unidad transmisora y puede incluir, por ejemplo, al desensanchar las muestras recibidas, descubrir las muestras desensanchadas, y decodificar los sïmbolos descubiertos para recuperar los datos transmitidos.

La capacidad de corregir errores de transmisiïn mejora la fiabilidad de una transmisiïn de datos. Muchos sistemas de comunicaciones digitales emplean un cïdigo convolucional o un cïdigo Turbo para proporcionar capacidad de correcciïn de errores en las unidades receptoras. Los cïdigos convolucionales operan en los datos en serie, uno o unos pocos bits a la vez. Hay una variedad de cïdigos convolucionales ïtiles y una variedad de algoritmos para la decodificaciïn de las secuencias de informaciïn codificada recibida para recuperar los datos originales. La codificaciïn Turbo es especïficamente un esquema de codificaciïn convolucional concatenada en paralelo. Un cïdigo concatenado es una combinaciïn en cascada de dos o mïs cïdigos y se utiliza para proporcionar capacidades adicionales de correcciïn de errores. Para un cïdigo concatenado, los bits de cïdigo entre las etapas de codificaciïn pueden intercalarse (es decir, reordenarse) para proporcionar diversidad temporal, lo que puede mejorar aïn mïs el rendimiento. Todo paquete o trama de bits de cïdigo se almacena normalmente antes de llevar a cabo el reordenamiento. Los bits de cïdigo reordenados se recuperan a continuaciïn en serie y son codificados por la siguiente etapa de codificaciïn.

Convencionalmente, la codificaciïn convolucional y Turbo se llevan a cabo en serie en un flujo de bits de entrada. Para cada ciclo de reloj, se proporciona un bit de datos al codificador y se generan dos o mïs bits de cïdigo en funciïn de la tasa de cïdigo del codificador. Algunos de los bits de cïdigo puede entonces ser perforados (es decir, borrados) para obtener bits de cïdigo a otras tasas de cïdigo.

Los sistemas de comunicaciïn de acceso mïltiple digital normalmente transmiten los datos en paquetes o tramas para posibilitar el intercambio eficiente de los recursos del sistema entre los usuarios activos. Para los servicios que no pueden tolerar largos retrasos (por ejemplo, voz, video) , los paquetes se seleccionan para ser de corta duraciïn (por ejemplo, 10 ms) y los cïdigos de forma tal que se seleccionan para que tenga retrasos en el procesamiento mïs cortos. Sin embargo, para mejorar la eficacia de la codificaciïn, es deseable procesar y codificar los paquetes de mayor tamaïo, lo que puede dar lugar a retrasos de procesamiento mïs largos utilizando la tïcnica convencional de codificar datos en serie. Retrasos largos en el procesamiento pueden afectar negativamente al rendimiento del sistema de comunicaciones. Por ejemplo, un tipo de usuario o de datos en particular puede ser seleccionado para una transmisiïn de datos en particular en base a las condiciones del enlace de comunicaciones. Si los retrasos en el procesamiento son excesivamente largos, las condiciones de enlace pueden haber cambiado en el momento de la transmisiïn de datos y el rendimiento puede verse comprometido o afectado adversamente.

El documento EP 1 085 660 A1 divulga una implementaciïn paralela de un codificador turbo. Un proceso de sustituciïn de variables de estado interno se aplica a cada variable de estado interno de la descripciïn formalizada en general, en donde la representaciïn de las variables de estado internas se analiza en busca de elementos mïximos del ïndice de tiempo que luego son sustituidos a travïs de la realizaciïn de transiciones retroactivas del ïndice de tiempo utilizando representaciones sustitutas del ïndice de tiempo determinadas previamente de las variables de estado internas. Los pasos de sustituciïn se repiten hasta que la representaciïn de cada variable de estado interno sïlo depende de los elementos del vector de entrada y variables para las variables de estado internas del cïdigo turbo estïn siendo retardadas de acuerdo con el grado de paralelizaciïn.

El documento BENEDETTO, S et al: "A soft-input soft-output mïximum a posteriori (MAP) module to decode parallel and serial concatenated codes ", TDA PROGRESS REPORT, volumen 42, nïmero 127, 15 de noviembre de 1996, pïginas 1-20, divulga un codificador para cïdigos concatenados en serie y paralelo.

El documento WO 00/13323 A1 divulga un codificador de cïdigos turbo que consta de una concatenaciïn en paralelo de dos codificadores convolucionales recursivos constituyentes. Un codificador constituyente emplea una configuraciïn de complementos modulares y registros de desplazamiento acoplados a travïs de nodos para producir bits de salida.

Resumen de la invenciïn La invenciïn se define en las reivindicaciones independientes. A continuaciïn se describen otros aspectos y realizaciones de la invenciïn. Breve descripciïn de los dibujos Las caracterïsticas, naturaleza y ventajas de la presente invenciïn serïn mïs evidentes a partir de la descripciïn detallada expuesta a continuaciïn cuando se toma en conjunciïn con los dibujos en los que caracteres de referencia identifican elementos correspondientes y en donde:

La Figura 1 es un diagrama de bloques de un sistema de comunicaciones;

La Figura 2 es un codificador concatenado en serie de acuerdo con una realizaciïn;

La Figura 3 es un diagrama de un codificador concatenado que implementa un conjunto particular de matrices polinomio generador;

La Figura 4 es un diagrama de bloques de un codificador convolucional para codificar mïltiples bits de datos en

paralelo; Las Figuras 5A y 5B son diagramas esquemïticos de un codificador convolucional que implementa una matriz polinomio generador especïfica y para la codificaciïn de ocho bits de datos en paralelo;

La Figura 6 es un diagrama esquemïtico de un codificador convolucional que implementa otra matriz polinomio generador especïfica y puede codificar cuatro bits de cïdigo en paralelo;

La Figura 7A es un diagrama de un intercalador; Las Figuras 7B y 7C son diagramas de una interfaz entre un codificador convolucional y un intercalador exterior sin y con perforaciïn, respectivamente, de acuerdo con diversas realizaciones;

La Figura 8 es un diagrama de bloques de un codificador de acuerdo con una realizaciïn;

La Figura 9 es un diagrama de flujo de un procedimiento para llevar a cabo codificaciïn concatenada de mïltiples bits de datos... [Seguir leyendo]

 


Reivindicaciones:

1. Un procedimiento de codificaciïn de datos con un codificador (1200) de un sistema de comunicaciïn inalïmbrica, en el que el codificador es sïncrono, comprendiendo el procedimiento:

recibir una pluralidad de bits de informaciïn de entrada I[0]:I[3] en el codificador, en donde el procedimiento procesa la pluralidad de bits de informaciïn de entrada, I, y realiza los siguientes pasos durante un solo ciclo de reloj:

-calcular los valores de estado S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3], para el codificador, en base a la pluralidad de bits de informaciïn de entrada I[0]:I[3] y los valores de estado iniciales o almacenados S0[0] y S1[0]; y

-generar un conjunto de valores codificados de salida X[0]:X[3], Y0[0]:Y0[3], Y1[0]:Y1[3] usando los valores de estado calculados S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3], y la pluralidad de bits de informaciïn de entrada I[0]:I[3] y los valores de estado iniciales o almacenados S0[0] y S1[0] aplicando de forma recursiva:

X[n] = I[n];

Y0[n] = I[n] E S1[n] E S0[n]; y

Y1[n] = I[n] E S0[n];

en las que I[n] representa un elemento n-ïsimo de bits de dicha pluralidad de bits de informaciïn de entrada I[0]:I[3], X[n] representa una salida del codificador igual al n-ïsimo bit de informaciïn de entrada;

S0[n] y S1[n] representan elementos n-ïsimos de bit de un primer y un segundo valor de estado de los valores de estado S0[0]:S03], S1[0]:S1[3],

Y0[n] representa el primer elemento de bit de paridad enïsimo de dicho conjunto de valores codificados de salida X[0]:X[3], Y0[0]: Y0[3], Y1[0]:Y1[3], Y1[n] representa el segundo elemento de bit de paridad enïsimo de dicho conjunto de valores codificados de salida X[0]:X[3], Y0[0]:Y0[3],

Y1[0]:Y1[3], E representa la operaciïn lïgica digital XOR y n representa un ïndice de iteraciïn de la operaciïn recursiva,

en el que dicha etapa de cïlculo de dichos valores de estado S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3] utiliza:

S0[n + 1] = I[n] E S1[n] E S2[n]; S1[n + 1] = S0[n]; y S2[n + 1] = S1[n],

en las que S2[n] representa un elemento enïsimo de bit de un tercer valor de estado S2[0]:S2[3].

2. EI procedimiento segïn la reivindicaciïn 1, en el que el conjunto de valores de salida codificados comprende: I, Y0, y Y1,

en donde Y0 representa una primera salida de bit de paridad de mïltiples bits e Y1 representa una segunda salida de bit de paridad de mïltiples bits.

3. EI procedimiento segïn la reivindicaciïn 1, que comprende ademïs: almacenar los valores de estado S0[4], S1[4], S2[4] en un dispositivo de almacenamiento de memoria.

4. Un procedimiento de codificaciïn turbo que comprende primera y segunda codificaciïn segïn el procedimiento segïn la reivindicaciïn 1,

en el que el procedimiento comprende ademïs antes de la segunda codificaciïn:

intercalar bits de informaciïn de entrada de un paquete de datos, en donde el intercalado comprende ademïs producir el equivalente funcional de: escribir los bits de informaciïn de entrada como una matriz en una secuencia de direcciones y generar otra secuencia de direcciones de salida para la lectura de los bits de informaciïn de entrada del paquete de datos.

5. EI procedimiento segïn la reivindicaciïn 4, en el que el intercalado comprende ademïs:

incrementar (2002) un contador, en donde el valor del contador se utiliza para generar una direcciïn para intercalar datos de entrada; determinar (2004) si el valor del contador se traducirï en una direcciïn no vïlida que es mayor que el

paquete de datos, en donde las direcciones no vïlidas se almacenan en un dispositivo de almacenamiento de memoria, si el valor del contador se traduce en una direcciïn no vïlida, ajustar (2006) el contador a una siguiente direcciïn vïlida, y generar (2008) una direcciïn en base al valor del contador.

6. EI procedimiento segïn la reivindicaciïn 5, en el que un mapeo de los valores de contador de direcciones vïlidas se almacena en una tabla de consulta (LUT) .

7. EI procedimiento segïn la reivindicaciïn 4, en el que el intercalado comprende ademïs: recibir un valor de contador de un contador; determinar informaciïn de bit mïs significativo (MSB) a partir del valor del contador, incrementar la informaciïn MSB; determinar informaciïn de bit menos significativo (LSB) a partir del valor del contador; utilizar la informaciïn LSB para direccionar una tabla de consulta (LUT) , almacenando la LUT un mapeo de

los valores de contador y direcciones, y

multiplicar la informaciïn MSB incrementada y un valor almacenado en la ubicaciïn de la LUT direccionada por la informaciïn LSB para generar un producto; invertir los bits de la informaciïn LSB; generar una direcciïn de salida en base a la informaciïn LSB Invertida y el producto.

8. EI procedimiento segïn las reivindicaciones 6 ï 7, que comprende ademïs: determinar si la direcciïn de salida generada es vïlida, y si la direcciïn de salida generada no es vïlida, desechar la direcciïn de salida generada.

9. Un aparato codificador (1200) de un sistema de comunicaciïn inalïmbrica, en el que el aparato codificador es sïncrono, que comprende:

medios para recibir una pluralidad de bits de informaciïn de entrada I[0]:I[3] en el codificador, en donde el aparato codificador procesa la pluralidad de bits de informaciïn de entrada, I, y realiza los siguientes pasos durante un solo ciclo de reloj:

medios para calcular los valores de estado S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3], para el codificador, en base a la pluralidad de bits de informaciïn de entrada I[0]:I[3] y los valores de estado iniciales o almacenados S0[0] y S1[0]; y

medios para generar un conjunto de valores codificados de salida X[0]:X[3], Y0[0]:Y0[3], Y1[0]:Y1[3] usando los valores de estado calculados S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3] y la pluralidad de bits de informaciïn de entrada I[0]:I[3] y los valores de estado iniciales o almacenados S0[0] y S1[0] aplicando de forma recursiva:

X[n] = I[n]; Y0[n] = I[n] E S1[n] E S0[n]; y

Y1[n] = I[n] E S0[n];

en las que I[n] representa un elemento n-ïsimo de bits de dicha pluralidad de bits de informaciïn de entrada I[0]:I[3], X[n] representa una salida del codificador igual al n-ïsimo bit de informaciïn de entrada;

S0[n] y S1[n] representan elementos n-ïsimos de bit de un primer y un segundo valor de estado de los valores de estado S0[0]:S03], S1[0]:S1[3], S2[0]:S2[3]

Y0[n] representa el primer elemento de bit de paridad enïsimo de dicho conjunto de valores codificados de salida X[0]:X[3], Y0[0]: Y0[3], Y1[0]:Y1[3], Y1[n] representa el segundo elemento de bit de paridad enïsimo de dicho conjunto de valores codificados de salida X[0]:X[3], Y0[0]:Y0[3],

Y1[0]:Y1[3], E representa la operaciïn lïgica digital XOR y n representa un ïndice de iteraciïn de la operaciïn recursiva,

en el que dichos valores de estado S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3] se calculan utilizando:

S0[n + 1] = I[n] E S1[n] E S2[n]; S1[n + 1] = S0[n]; y S2[n + 1] = S1[n],

en las que S2[n] representa un elemento enïsimo de bit de un tercer valor de estado S2[1]:S2[3]; en el que los medios para calcular un conjunto de valores de estado S0[1]:S0[3], S1[1]:S1[3], S2[1]:S2[3] y los medios para generar un conjunto de valores de salida codificados X[0]:X[3], Y0[0]:Y0[3], Y1[0]:Y1[3] estïn habilitados durante un ïnico ciclo de reloj.

10. El aparato segïn la reivindicaciïn 9, en el que el conjunto de valores de salida codificados comprende: I, Y0, y Y1,

en donde Y0 representa una primera salida de bit de paridad de mïltiples bits e Y1 representa una segunda salida de bit de paridad de mïltiples bits.

11. EI aparato segïn la reivindicaciïn 9, que comprende ademïs: medios para almacenar los valores de estado S0[4], S1[4] y S2[4].

12. Un codificador turbo que comprende un primer y un segundo aparato codificador segïn la reivindicaciïn 9 que comprende ademïs

un intercalador anterior al segundo codificador, adaptado para intercalar los bits de informaciïn de entrada de un paquete de datos, produciendo el intercalador el equivalente funcional de: escribir los bits de informaciïn de entrada como una matriz en una secuencia de direcciones, y generar otra secuencia de direcciones de salida para leer los bits de informaciïn de entrada del paquete de datos.

13. EI codificador turbo segïn la reivindicaciïn 12, en el que el intercalador comprende ademïs:

medios para incrementar (2002) un contador, en donde el valor del contador se utiliza para generar una direcciïn para intercalar datos de entrada;

medios para determinar (2004) si el valor del contador se traducirï en una direcciïn no vïlida que es mayor que el paquete de datos, en el que las direcciones no vïlidas se almacenan en un dispositivo de almacenamiento de memoria; si el valor del contador se traduce en una direcciïn no vïlida, ajustar (2006) el contador a una siguiente direcciïn vïlida, y

medios para generar una direcciïn basïndose en el valor del contador.

14. EI codificador turbo segïn la reivindicaciïn 13, en el que un mapeo de los valores de contador a las direcciones vïlidas se almacena en una tabla de consulta (LUT) .

15. EI codificador turbo segïn la reivindicaciïn 14, en el que el intercalador comprende ademïs: medias para recibir un valor de contador de un contador; medios para determinar informaciïn de bit mïs significativo (MSB) a partir del valor del contador; medios para incrementar la informaciïn MSB; medios para determinar informaciïn de bit menos significativo (LSB) a partir del valor del contador, medios para utilizar la informaciïn LSB para direccionar una tabla de consulta (LUT) , almacenando la LUT un

mapeo de los valores de contador y direcciones, y

medios para multiplicar la informaciïn MSB incrementada y un valor almacenado en la ubicaciïn de la LUT direccionada por la informaciïn LSB para generar un producto; medios para invertir los bits de la informaciïn LSB; medios para generar una direcciïn de salida en base a la informaciïn LSB invertida y el producto.

16. EI aparato segïn las reivindicaciones 14 ï 15, que comprende ademïs: medios para determinar si la direcciïn de salida generada es vïlida; y medios para desechar la direcciïn de salida generada si la direcciïn de salida generada no es vïlida.

FUENTE DE CODIFI-DECODIFI-SUMIDERO DATOS CADOR CADOR DE DATOS

FIG. 3

[estado de la tïcnica]

FIG. 4

[estado de la tïcnica]

FIG. 5A

[estado de la tïcnica]

FIG. 5B

[estado de la tïcnica]

FIG. 6

[estado de la tïcnica]

FIG. 7A

FIG. 7B

FIG. 7C

FIG. 8

FIG. 11

[estado de la tïcnica]

FIG. 12

FIG. 14

FIG. 15

FIG. 17