ES2386911T3 - Procedimiento y aparato para codificar y decodificar datos - Google Patents

Procedimiento y aparato para codificar y decodificar datos Download PDF

Info

Publication number
ES2386911T3
ES2386911T3 ES07842624T ES07842624T ES2386911T3 ES 2386911 T3 ES2386911 T3 ES 2386911T3 ES 07842624 T ES07842624 T ES 07842624T ES 07842624 T ES07842624 T ES 07842624T ES 2386911 T3 ES2386911 T3 ES 2386911T3
Authority
ES
Spain
Prior art keywords
fec
block
segments
bits
sizes
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
ES07842624T
Other languages
English (en)
Inventor
Yufei W. Blankenship
T. Keith Blankenship
Brian K. Classon
Ajit Nimbalker
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.)
Motorola Mobility LLC
Original Assignee
Motorola Mobility LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39269076&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2386911(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US11/539,404 external-priority patent/US8356232B2/en
Application filed by Motorola Mobility LLC filed Critical Motorola Mobility LLC
Application granted granted Critical
Publication of ES2386911T3 publication Critical patent/ES2386911T3/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/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
    • 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/2957Turbo codes and decoding
    • H03M13/2996Tail biting
    • 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/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent 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/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/2957Turbo codes and decoding

Abstract

Procedimiento de operación de un transmisor, en el que el procedimiento comprende: recibir un bloque de transporte concatenado de longitud X; determinar dos tamaños de bloque FEC, contiguos, disponibles Kl-1 y Kl a partir de un grupo de tamaños de bloque FEC, no contiguos, en el que los tamaños de bloque FEC, no contiguos, disponibles se encuentran entre Kmin y Kmax, y en el que Kmin <>= Kl-1 < Kmax, Kmin <>= Kl <>= Kmax, y en el que Kl-1 y Kl están basados, además, en X; segmentar el bloque de transporte concatenado de longitud X en C segmentos de tamaños CBSSi <= Kl, para i >= 1, .... Cl CBSSi <= Kl-1, para i >= Cl +1, .... C; si Cl-1 >>=1; determinar una palabra de código FEC para codificar cada uno de los C segmentos usando tamaños de bloque FEC Kl o Kl-1; y transmitir las C palabras de código FEC a través del canal. en el que C >= X / Kmax >= Cl + Cl-1, donde Y >= C Kl - X, Cl-1 >= Y / Dl , Cl >= C - Y / Dl , y Cl-1 y Cl son el número de segmentos que son codificados usando los tamaños de bloque FEC Kl-1 y Kl, respectivamente, donde Kl es el menor tamaño, de entre los tamaños de bloque FEC disponibles, que es mayor o igual que X / C , y Dl indica la diferencia entre los tamaños de bloque FEC Kl-1 y Kl contiguos.

Description

Procedimiento y aparato para codificar y decodificar datos
Campo de la invencion
La presente invenci6n se refiere, en general, a la codificaci6n y decodificaci6n de datos y, en particular, a un procedimiento y a un aparato para turbo codificar y turbo decodificar datos.
Antecedentes de la invencion
A veces, las transmisiones de datos digitales a traves de enlaces por cable o inalambricos pueden resultar corrompidas, por ejemplo, por ruido en el enlace o canal, por interferencia desde otras transmisiones o por otros factores ambientales. Para combatir los errores introducidos por el canal, muchos sistemas de comunicaci6n emplean tecnicas de correcci6n de errores para ayudar en la comunicaci6n.
Una tecnica utilizada para la correcci6n de errores es la turbo codificaci6n de un bloque de informaci6n a transmitir. Utilizando dicha tecnica, un codificador en el interior del transmisor de un sistema de comunicaci6n codificara un bloque u de entrada de K bits de longitud en un bloque x de palabra de c6digo de N bits. A continuaci6n, el bloque x de palabra de c6digo es transmitido a traves del canal, posiblemente despues de un procesamiento adicional, tal como intercalamiento de canales, tal como se define en las especificaciones IEEE 802.16e. En el receptor, el turbo decodificador toma el vector y de senal recibido, de longitud N, como entrada, y genera una estimaci6n u del vector u.
Tfpicamente, el turbo codificador esta compuesto de dos codificadores convolucionales constituyentes. El primer codificador constituyente toma el bloque u de entrada como entrada en su orden original, y el segundo codificador constituyente toma el bloque u de entrada en su orden intercalado despues de pasar u a traves de un turbo intercalador n. La salida x del turbo codificador esta compuesta de los bits sistematicos (iguales al bloque u de entrada), los bits de paridad del primer codificador constituyente y los bits de paridad del segundo codificador constituyente.
Correspondientemente, el turbo decodificador en el interior del receptor del sistema de comunicaci6n esta compuesto de dos decodificadores convolucionales constituyentes, uno para cada c6digo constituyente. Los decodificadores constituyentes estan separados por el intercalador n y el des-intercalador n -1 correspondiente. Los mensajes en el formato de relaci6n de probabilidad logarftmica (Log-Likelihood Ratios, LLRs) son pasados, iterativamente, entre los decodificadores constituyentes. La decisi6n u se toma despues de varias iteraciones.
El turbo intercalador n es el componente clave en el diseno del turbo c6digo. Es responsable de la codificaci6n del bloque u de entrada de una manera pseudo-aleatoria, proporcionando, de esta manera, las palabras de c6digo x con una buena distribuci6n de pesos y, por lo tanto, una buena capacidad de correcci6n de errores. Ademas del rendimiento de decodificaci6n, el turbo intercalador n tiene un impacto considerable sobre la implementaci6n del turbo decodificador en el interior del receptor. Normalmente, el rendimiento de los turbo c6digos mejora con una longitud de creciente del intercalador. Sin embargo, se obtiene un retorno decreciente al incrementar el tamano de intercalador. En la practica, el maximo tamano de bloque de la correcci6n de errores hacia adelante (Forward, Error Correction, FEC) (es decir, el tamano del intercalador) de un turbo c6digo esta limitado a un cierto valor debido a razones de complejidad y retraso. Por lo tanto, si el tamano del bloque de entrada (bloque de transporte concatenado o CTB) es mayor que el maximo tamano de bloque FEC soportado por el turbo c6digo, el CTB es segmentado (por ejemplo, usando una regla de segmentaci6n de bloques de c6digo) en varios segmentos pequenos, cada uno de los cuales es procesamiento, por separado, por el turbo codificador en el transmisor y, correspondientemente, por el turbo decodificador en el receptor.
En algunos sistemas, el turbo c6digo puede estar disenado para soportar solo un pequeno numero de tamanos de bloque FEC por varias razones (por ejemplo, decodificaci6n a alta velocidad, almacenamiento reducido, etc.). Por lo tanto, existe una necesidad de un procedimiento y un aparato de turbo codificaci6n y turbo decodificaci6n que adapte el CTB a los tamanos de bloque FEC disponibles.
MOTOROLA, FRANCE TELECOM, GET ANO ORANGE: "EUTRA FEC Enhancement', TOOC R1-061050 OF 3GPP TSG RAN WG 1 MEETING #44BIS, 27 de Marzo de 2006 (2006-03-27), -31 de Marzo de 2006 (2006-03-31) paginas 114, XP002475873 Atenas, Grecia, se refiere a la turbo codificaci6n para sistemas de comunicaci6n 3GPP COMA.
Breve descripcion de los dibujos
La Fig. 1 es un diagrama de bloques de un transmisor.
La Fig. 2 es un diagrama de bloques de un receptor.
La Fig. 3 es un diagrama de bloques del turbo codificador de la Fig. 1.
La Fig. 4 es un diagrama de bloques de un formador de bloques de transporte en el lado del transmisor.
La Fig. 5 es un diagrama de bloques de un ensamblador de bloques de transporte en el lado del receptor.
La Fig. 6 es un diagrama de flujo que muestra el funcionamiento del transmisor de la Fig. 1.
La Fig. 7 es un diagrama de flujo que muestra el funcionamiento del receptor de la Fig. 2.
Descripcion detallada de los dibujos
Con el prop6sito de abordar la necesidad indicada anteriormente, en la presente memoria se proporciona un procedimiento y un aparato para la turbo codificaci6n y la turbo decodificaci6n.
En una realizaci6n, se recibe un bloque de transporte concatenado (CTB) de longitud X y se determinan dos tamanos de bloque FEC, Ki-1 y Ki a partir de un grupo de tamanos de bloque FEC, no contiguos, en la que los tamanos de bloque FEC, no contiguos, estan comprendidos entre Kmin y Kmax, y en la que Kmin <= Ki-1 < Kmax, Kmin <= Ki <= Kmax y en la que Ki-1 y Ki estan basados, adicionalmente, en X. El bloque de transporte concatenado de longitud X es segmentado en C segmentos, cada uno de un tamano sustancialmente igual a Ki-1 o Ki. Una palabra de c6digo FEC para cada uno de los C segmentos es determinada usando los tamanos de bloque FEC Ki o Ki-1, y las C palabras de c6digo FEC son transmitidas a traves del canal.
El beneficio del procedimiento anterior es que reduce la inclusi6n de bits de relleno requeridos para codificar el CTB, mientras se usa el menor numero de segmentos permitidos por los tamanos de bloque FEC, no contiguos, disponibles. En particular, el procedimiento usa dos tamanos de bloque FEC diferentes (pero contiguos) para minimizar el numero de bits de relleno mientras usa el mfnimo numero de segmentos permitido por los tamanos de bloque FEC, no contiguos, disponibles. Ademas, los tamanos de bloque FEC para los tamanos de segmento y el numero de segmentos pueden ser determinados usando circuiterfa l6gica simple.
Previamente a la descripci6n de la codificaci6n y la decodificaci6n de datos, se establecen las definiciones siguientes para establecer los antecedentes necesarios:
En aras de la simplicidad de la notaci6n, un bloque de transporte concatenado se refiere al resultado de la concatenaci6n de uno o mas bloques de transporte, despues de anadir una cabecera, tal como bits de CRC, a cada bloque de transporte.
X denota el tamano de un bloque de transporte concatenado (por ejemplo, la longitud, en bits, del bloque de transporte concatenado).
Y denota el numero total de bits de relleno anadidos a un bloque de transporte concatenado.
C denota el numero de segmentos en el que un bloque de transporte concatenado es segmentado.
CBSSi denota el tamano del i-esimo segmento de un bloque de transporte concatenado (i = 1, . C), donde C es el tamano del segmento. CBSS indica el tamano del segmento del bloque de c6digo.
Ki-1 y Ki indican los tamanos de bloque FEC (por ejemplo, los tamanos para los cuales se ha definido un intercalador interno del turbo c6digo) que pueden ser usados para una codificaci6n FECde los segmentos de un bloque de transporte concatenado.
Kiabia indica un conjunto de tamanos de bloque FEC, no contiguos, disponibles (tamanos para los cuales se define un intercalador interno del turbo c6digo).
Kreiieno indica el numero de bits de relleno anadidos a un segmento.
R indica la tasa de c6digo madre del turbo codificador (por ejemplo, R = 1/3 para el turbo c6digo 3GPP)
R -1 es el inverso de la tasa de c6digo madre del turbo codificador (por ejemplo, R -1 = 3 para el turbo c6digo 3GPP).
Nib es el numero de bits finales de la palabra de c6digo FEC en la salida del codificador FEC. En particular,
o Nib = 12 para el turbo c6digo 3GPP con bits finales.
o Nib = 0 para un turbo c6digo 3GPP con tail-biting, en el que el estado inicial y el estado final son iguales.
n indica el intercalador interno del turbo c6digo. 3
• La operaci6n de redondeo hacia abajo ⎣x⎦ indica el mayor numero entero que es menor o igual que x, y la operaci6n de redondeo hacia arriba ⎡x⎤ indica el menor numero entero que es mayor o igual que x.
Ahora, con referencia a los dibujos, en los que los numeros similares indican componentes similares, la Fig. 1 es un diagrama de bloques de un ejemplo de un transmisor 100 que es util para comprender la invenci6n. Tal como se muestra, un transmisor 100 comprende circuiterfa 102 de segmentaci6n de bloques de c6digo, circuiterfa 103 de relleno, un turbo codificador 104, circuiterfa 105 de eliminaci6n de relleno, un transmisor 108, circuiterfa 106 l6gica y una tabla/almacenamiento 107. El transmisor 100 comprende ademas circuiterfa de recepci6n (no mostrada en la Fig. 1) que recibe un bloque de transporte concatenado de longitud X. La circuiterfa 106 l6gica determina un tamano Ki de bloque FEC disponible a partir de un grupo de tamanos 107 de bloque FEC, no contiguos, en el que los tamanos de bloque FEC, no contiguos, disponibles se encuentran entre Kmin y Kmax, y en el que Kmin <= Ki < Kmax y en el que Ki esta basado, ademas, en X. La circuiterfa 102 de segmentaci6n de bloques de c6digo segmenta el bloque de transporte concatenado de longitud X en C segmentos de tamanos sustancialmente iguales a Ki; y la circuiterfa 104 de codificaci6n determina una palabra de c6digo FEC para cada uno de los C segmentos usando el tamano de bloque FEC Ki. Finalmente, la circuiterfa 108 de transmisi6n transmite las C palabras de c6digo FEC sobre un canal.
En una realizaci6n, el transmisor 100 comprende circuiterfa de recepci6n (no mostrada en la Fig. 1) que recibe un bloque de transporte concatenado de longitud X, circuiterfa 106 l6gica que determina dos tamanos de bloque FEC, Ki-1 y Ki, disponibles, a partir de un grupo de tamanos 107 de bloque FEC, no contiguos, disponibles, en el que los tamanos de bloque FEC, no contiguos, disponibles estan entre Kmin y Kmax y en el que Kmin <= Ki-1 < Kmax, Kmin <= Ki <= Kmax, y en el que Ki-1 y Ki estan basados, ademas, en X. El transmisor 100 comprende circuiterfa 102 de segmentaci6n de bloques de c6digo que segmenta el bloque de transporte concatenado de longitud X en C segmentos de tamanos sustancialmente iguales a Ki-1 o Ki, y circuiterfa 104 de codificaci6n que determina una palabra de c6digo FEC para cada uno de los C segmentos usando un tamano de bloque FEC Ki o Ki-1. Finalmente, hay provista una circuiterfa 108 de transmisi6n que transmite las C palabras de c6digo FEC a traves de un canal.
La circuiterfa 104 de codificaci6n esta precedida por una circuiterfa 103 de relleno que inserta bits de relleno en los segmentos para formar un bloque FEC de entrada. El codificador 104 FEC codifica el bloque FEC de entrada, y la circuiterfa 105 de eliminaci6n de rellenos elimina los bits relacionados con los bits de relleno.
Ourante el funcionamiento del transmisor 100, los datos en forma de un bloque de transporte concatenado son recibidos por una circuiterfa 102. La circuiterfa 102 prepara el bloque de transporte concatenado antes de la codificaci6n de correcci6n de errores hacia adelante (FEC).
En general, el rango de los tamanos CTB (es decir, X) puede ser diferente del rango de tamanos de bloque FEC soportados por el esquema FEC subyacente en la capa ffsica para un sistema de comunicaciones. Por lo tanto, es necesario definir una regla que divide un CTB en segmentos que pueden ser manipulados eficientemente por el FEC. En particular, los tamanos FEC (es decir, X) son, frecuentemente, mucho mas largos que el tamano de bloque FEC maximo que el codificador 104 FEC puede manipular. Por lo tanto, el CTB necesita ser segmentado por la circuiterfa 102 en un numero de segmentos de menor tamano y cada segmento debe ser codificado por un codificador 104 FEC en una palabra de c6digo FEC separada.
La circuiterfa 102 usa una regla de segmentaci6n de bloques de c6digo que esta disenada para conseguir un buen rendimiento (es decir, el rendimiento agregado de los segmentos para un CTB determinado) con el FEC subyacente. Implica los aspectos siguientes para cualquier tamano de CTB determinado:
Elegir el numero de segmentos C;
Elegir los tamanos de cada segmento;
Insertar los bits de relleno antes de la decodificaci6n FEC y eliminar los bits de relleno despues de la codificaci6n FEC, si el tamano de segmento no puede ser manipulado directamente por el FEC.
Las reglas de segmentaci6n propuestas son particularmente utiles para un sistema de acceso radio terrestre UMTS evolucionado (EUTRA) en el que un tubo codificador puede ser definido para solo un conjunto limitado de tamanos de bloque FEC (tamanos de intercalador). A diferencia del turbo codificador 3GPP Versi6n 6, que define 5.075 intercaladores de tamanos contiguos, uno para cada tamano de intercalador Ki entre 40 bits y 5.114 bits, un turbo codificador EUTRA puede definir un numero limitado de tamanos Kiabia de bloques FEC (por ejemplo, 40-50 intercaladores con tamanos no contiguos en el rango de 128 bits a 6.144 bits) para cubrir un gran numero de tamanos de segmento (por ejemplo, 6.144128+1 = 6.017 tamanos). Cuando un tamano de segmento es igual a un tamano de bloque FEC disponible, entonces el segmento puede ser tomado como un bloque FEC de entrada directamente (sin necesidad, de esta manera, de inserci6n de bits de relleno). Sin embargo, cuando el tamano de segmento no es igual a ninguno de los tamanos de bloque FEC disponibles, puede aplicarse la inserci6n de bits de relleno, y puede usarse el siguiente tamano de bloque FEC disponible,
mas largo, (es decir, tamano de intercalador) elegido de la Kiabia 107.
Numero de segmentos:
Las reglas de segmentaci6n tienen en cuenta las propiedades siguientes de la turbo codificaci6n.
(a)
El rendimiento del turbo c6digo mejora segun conforme aumenta el tamano de bloque FEC.
(b)
La mejora del rendimiento del turbo c6digo mediante un aumento de los tamanos de bloque FEC ha reducido los retornos mas alla de unos pocos miles de bits.
(c)
Un CTB es recibido correctamente solo si todos los segmentos son recibidos correctamente.
Las propiedades (a) y (c) indican que el rendimiento global es probable que este dominado por el segmento que tiene el peor rendimiento. Oe esta manera, es preferente tener segmentos que son, aproximadamente, de tamanos iguales de manera que son sometidos a codificaci6n FEC con tamanos de bloque FEC aproximadamente iguales (y, por lo tanto, con una protecci6n contra errores aproximadamente igual correspondiente desde una perspectiva FEC).
La propiedad (b) sugiere que no es necesario incluir intercaladores para tamanos muy grandes en la tabla (Kiabia). Sin embargo, los tamanos de bloque FEC definidos en Kiabia pueden depender de otros factores. Por ejemplo, i) para almacenamiento/complejidad reducidos, puede ser deseable un pequeno numero de intercaladores Kiabia, e ii) el tamano de intercalador maximo definido en Kiabia puede ser elegido para limitar el numero de segmentos por CTB, limitando, de esta manera, la penalizaci6n por segmentaci6n de un CTB. La penalizaci6n por segmentaci6n es la perdida de rendimiento debido a la divisi6n de un CTB en varios segmentos en lugar de codificar todo el CTB en una palabra de c6digo FEC.
La propiedad (c) sugiere que deberfa usarse el mfnimo numero de segmentos para reducir la penalizaci6n por segmentaci6n.
Teniendo en consideraci6n todo lo anterior, el numero de segmentos es C = ⎡ XX/ Kmax ⎤, donde Kmax es el tamano maximo de bloque FEC definido en Kiabia. Suponiendo que CBSSi indica el tamano de segmento del segmento i-esimo (i = 1, .XC) del bloque de transporte concatenado, la suma de todos los segmentos es igual al tamano X de bloque de transporte concatenado, es decir, los tamanos de segmento estan restringidos por la ecuaci6n siguiente
La secci6n siguiente describe la determinaci6n del tamano de bloque FEC usado para la codificaci6n FEC, uno por cada uno de los tamanos C de segmento.
Oeterminaci6n del tamano de bloque FEC
Oado que un CTB de longitud X es la entrada a la funci6n de segmentaci6n de bloques de c6digo, la regla para determinar el tamano de bloque FEC (tamano de intercalador) para un turbo codificador segun se describe en la versi6n 6 de la norma 3GPP es tal como se indica a continuaci6n
donde Kmax = 5.114 es el tamano maximo de intercalador para el Turbo C6digo, Versi6n 6, C es el numero de segmentos (o bloques de c6digo), Ki es el tamano de intercalador, e Y es el numero total de bits de relleno insertados por el CTB de tamano X cuando se usan C bloques FEC de entrada de tamano Ki. En esencia, un CTB de tamano X es segmentado en C segmentos de aproximadamente igual tamano, y cada segmento es codificado usando un turbo c6digo con un intercalador de KiXbits. Si Y > 0, Y bits conocidos son incluidos al principio del primer segmento antes de la codificaci6n. Oebido a que los tamanos de bloque FEC (es decir, intercaladores) estan definidos para todos los tamanos entre Kmin = 40 y Kmax = 5.114 en turbo c6digo 3GPP, Versi6n 6, el numero de bits de relleno esta limitado a C, el numero de segmentos usados para lasegmentaci6n de bloques de c6digo.
Sin embargo, en otros sistemas, tales como el considerado para EUTRA, los tamanos de bloque FEC (tamanos de intercalador) pueden ser definidos solo para tamanos no contiguos (un conjunto mas grueso de tamanos de intercaladores) Kiabia. En dichos casos, los tamanos de segmento que no son iguales a ninguno de los tamanos de bloque FEC (es decir, no definidos en Kiabia) deben ser manipulados usando bits de relleno antes de la codificaci6n FEC (y eliminaci6n selectiva despues de la codificaci6n para alcanzar una tasa de c6digo deseada).
Suponiendo que un turbo codificador soporta solo un numero limitado de tamanos de bloque FEC distribuidos entre Kmin y Kmax, ambos incluidos, a continuaci6n, se describen dos simples procedimientos de segmentaci6n de bloques de c6digo de un bloque de transporte concatenado, de longitud X, usando Kiabia. Estos procedimientos usan tan pocos segmentos como sea posible mientras reducen tambien el numero de bits de relleno que se requieren para la codificaci6n.
Permitir solo un tamano de bloque FEC
Un procedimiento ejemplar que es util para la comprensi6n de la invenci6n es modificar (1) y permitir que todos los segmentos sean codificados con un unico tamano Ki de intercalador, donde
donde i, 1 <= i <= T, es un fndice en el grupo de tamanos de bloque FEC, no contiguos, disponibles en Kiabia, suponiendo que los T tamanos en Kiabia estan ordenados en orden ascendente. En esencia, este procedimiento elige el menor Ki de Kiabia que es mayor o igual que ⎡ X/CX⎤, es decir, Ki = ⎡ X /XCX⎤ +0, donde 0 : 0 < Ki -Ki-1, y Ki-1 < ⎡ X /XC ⎤. Observese que se asigna que Ki-1 = 0 cuando I=1. Por lo tanto, el numero de bits de relleno viene dado por
Por lo tanto, Y es grande cuando 0 es grande. Los ejemplos siguientes ilustran la manera en la que el numero de tamanos de bloque FEC disponibles (Kiabia) afecta a Y.
Si Kiabia tiene todos los valores entre Zmin =40 y Zmax = 5.114, el numero maximo de bits de relleno es igual a C-1.
Si Kiabia tiene T = 100 valores distribuidos uniformemente entre Zmin = 40 y Zmax = 5.114, el numero total maximo de bits de relleno incluidos para todos los sectores es aproximadamente igual a 50xC.
Por lo tanto, el numero de bits de relleno puede ser controlado variando la granularidad de los tamanos de bloque FEC en Kiabia. El numero de bits de relleno puede ser reducido tambien usando otro enfoque, tal como se describe a continuaci6n. Sin embargo, antes de describir el procedimiento siguiente, cabe senalar que en un caso general, puede elegirse cualquier Ki (: ⎡ X /XC ⎤) de Kiabia para aplicar una codificaci6n FEC con el coste de un numero potencialmente mayor de bits de relleno. En este caso, los tamanos de segmento obtenidos despues de la segmentaci6n de bloques de c6digo satisfacen CBSSi : Ki, para i = 1, .... C. En este caso, la circuiterfa 106 l6gica determina el numero de segmentos usando la relaci6n siguiente
C = ⎡ X / Kmax ⎤,
Permitir solo dos tamanos de bloque FEC contiguos
En una realizaci6n , en lugar de usar un tamano Ki de bloque FEC para la codificaci6n de todos los segmentos de un CTB determinado, se propone que se seleccionen dos tamanos de bloque FEC contiguos Ki-1 y Ki, Ki-1 < Ki,, 1 : I : T, desde Kiabia. Observese que se asigna que Ki-1 = 0 cuando I = 1. El numero de segmentos C y el mayor tamano Ki de bloque FEC todavfa son elegidos para ser el mismo, como en los casos anteriores, es decir, C se calcula todavfa como en (1) y Ki se calcula todavfa como en (2). Sin embargo, el numero de segmentos codificados con tamano Ki-1 y tamano Ki se determina como se indica a continuaci6n (para una facil comprensi6n, todos los calculos implicados se repiten a continuaci6n). En este caso, la circuiterfa 106 l6gica realiza las siguientes operaciones para encontrar el numero de segmentos,
y Ci-1 y Ci son el numero de segmentos que son codificados usando tamanos de bloque FEC Ki-1 y Ki, respectivamente, donde Ki es el menor tamano de entre los tamanos de bloque FEC disponibles que es mayor o igual que ⎡X /XC⎤, y 0i indica la diferencia entre los tamanos de intercalador Ki-1 y Ki, contiguos.
5 Observese que en (4), Y no indica el numero de bits de relleno necesarios si se permiten dos tamanos contiguos, pero indica el numero de bits de relleno requeridos si solo se usa un tamano de Ki para todos los C segmentos.
Oe esta manera, la segmentaci6n de bloques de c6digo forma C segmentos, de los cuales Ci-1 segmentos son codificados en FEC con un tamano de bloque FEC Ki-1. Observese que cuando Y < 0i, (4) proporciona Ci-1 = 0, y este procedimiento degenera al uso de un tamano de bloque FEC de Ki. (es decir, se permite el tamano Ki-1, pero no se usa en realidad). Por
10 otro lado, cuando Y >= 0i, este procedimiento requiere menos bits de relleno que la inclusi6n de todos los C segmentos hasta el mayor tamano de bloque FEC Ki. Este procedimiento es 6ptimo en el sentido de que el numero de bits de relleno Y' anadidos por cada CTB se garantiza que es el mfnimo mientras se usan los menos segmentos posibles. Y' se determina como se indica a continuaci6n
Puede probarse que Y' esta limitado por 0i, independientemente de C,
En este caso, los tamanos de segmento obtenidos despues de la segmentaci6n de bloques de c6digo tienen las
20 restricciones siguientes, suponiendo (sin perdida de generalidad que los primeros Ci segmentos son codificados con Ki y el resto con Ki-1).
X CBSSi : Ki, para i = 1, .. Ci
X CBSSi : Ki-1, para i = Ci +1, . C; si Ci-1 : l.
Con referencia a la Fig. 1, tal como se ha expuesto anteriormente, debe elegirse un tamano de bloque FEC apropiado a
25 partir de la tabla 107 de tamanos de bloque FEC, no contiguos. La circuiterfa 106 l6gica realiza la tarea de elegir el tamano/los tamanos de bloque FEC apropiados, tal como se ha expuesto anteriormente. Un ejemplo de la tabla 107 se proporciona en la Tabla 1. Por ejemplo, en el primer caso, la circuiterfa 106 l6gica elige el tamano de bloque FEC a partir de los tamanos de bloque FEC, no contiguos, disponibles entre Kmin y Kmax, y en el que Kmin : Ki : Kmax, y en el que Ki esta basado, adicionalmente, en X. Particularmente si debe usarse un unico tamano de bloque FEC Ki, la circuiterfa 106 l6gica
30 elige el menor Ki (desde Kiabia) que no es menor que ⎡ X /XCX⎤, es decir, Ki = ⎡ X /XC ⎤ +0, donde 0 : 0, y KK-1 < ⎡ X /XC ⎤. Sin embargo, si se van a usar dos tamanos de bloque FEC, Ki-1 y Ki se determinan con la ecuaci6n (4) que proporciona el numero de segmentos que son codificados usando los tamanos de bloque FEC Ki-1 y Ki.
Tabla 1: El conjunto de tamanos de bloque FEC para los cuales hay definido un intercalador interno del turbo codificador
Kiabia
128
256 512 1.024 2.048 4.096
144
288 576 1.152 2.304 4.608
160
320 640 1.280 2.560 5.120
176
352 704 1.408 2.816 5.632
192
384 768 1.536 3.072 6.144
208
416 832 1.664 3.328
216
440 888 1.776 3.568
240
480 960 1.920 3.840
El codificador 104 FEC subyacente soporta solo un conjunto limitado de tamanos de bloque FEC (o tamanos de entrada). Sin perdida de generalidad, se supone que el codificador 104 FEC es un turbo codificador, y el conjunto de tamanos de bloque FEC soportados por el turbo codificador es el conjunto de tamanos de intercalador para los cuales esta definido el intercalador interno del turbo c6digo. Sin embargo, una persona con conocimientos ordinarios en la materia, reconocera que pueden usarse otros esquemas FEC en 104, incluyendo c6digos de comprobaci6n de paridad de baja densidad (LOPC), c6digos convolucionales, turbo c6digos de bloque, c6digos Reed-Solomon, etc.
Una vez determinados el numero de segmentos C y el tamano de bloque FEC para cada segmento, esta informaci6n es pasada a la circuiterfa 102 de segmentaci6n de bloques de c6digo, donde el CTB (X bits) es segmentado en C segmentos que son codificados con un tamano de bloque FEC Ki, si s6lo se permite un tamano de bloque FEC. Como alternativa, si se permiten dos tamanos de bloque FEC contiguos, la circuiterfa 102 de segmentaci6n de bloques de c6digo puede poner en la salida Ci segmentos que deben ser codificados con un tamano de bloque FEC Ki y Ci-1 segmentos que deben ser codificados con un tamano de bloque FEC Ki-1.
Inserci6n de bits de relleno
El numero de bits de relleno (incluidos para cada segmento) puede ser determinado en base al tamano de segmento y al tamano del bloque FEC que esta siendo usado para la codificaci6n FEC del segmento. Hay al menos dos maneras de distribuir los bits de relleno totales en los C segmentos.
Relleno concentrado. Colocar los bits de relleno en tan pocos segmentos como sea posible sin hacer que los tamanos de segmento sean demasiado pequenos. En un ejemplo, todos los bits de relleno pueden aparecer al comienzo del primer segmento. La ventaja es que s6lo debe manipularse, por separado, un segmento (que contiene todos los bits de relleno). Ademas, los bits de relleno pueden ser incluidos en el segmento que es codificado con el mayor tamano de bloque FEC Ki en lugar de un tamano de bloque FEC mas pequeno Ki-1 cuando se usan dos tamanos de bloque FEC para un CTB. Este procedimiento es particularmente atractivo cuando se permiten dos tamanos de bloque FEC contiguos para la codificaci6n.
Relleno distribuido. Oistribuir uniformemente los bits de relleno (tanto como sea posible) en una pluralidad de segmentos. Los bits de relleno pueden ser distribuidos hasta en todos los C segmentos.
Para una implementaci6n eficiente del transmisor y del receptor, es preferente un relleno concentrado. Una realizaci6n preferente es anadir (si se permiten dos tamanos de bloque FEC contiguos, Y si se permite un solo tamano de bloque FEC) bits de relleno consecutivos en la parte delantera de uno de los segmentos (por ejemplo, el primero o el ultimo) usando un tamano de bloque FEC Ki antes de enviarlo al codificador. En terminos de rendimiento, es equivalente a anadir los Y' bits consecutivos al final de un segmento que tiene un tamano de bloque FEC Ki.
Con referencia a la Fig. 1, para cada segmento (producido por la circuiterfa 102), una palabra de c6digo FEC es determinada usando las etapas de inserci6n de bits de relleno en el segmento para formar un bloque de entrada FEC; realizando una codificaci6n FEC del bloque de entrada FEC, y eliminando los bits relacionados con los bits de relleno.
Cada segmento producido por la circuiterfa 102 es pasado a la circuiterfa 103 de relleno, donde tiene lugar la inserci6n de bits de relleno. Si no se requieren bits de relleno, entonces, la circuiterfa de relleno es transparente, es decir, no se anaden
bits de relleno (Kreiieno = 0). Los segmentos (junto con los bits de relleno) son pasados, a continuaci6n, a un turbo codificador 104 en el que una turbo codificaci6n de los C segmentos conduce a C palabras de c6digo FEC. A continuaci6n, los bits de relleno son eliminados por la circuiterfa 105 y las C palabras de c6digo resultantes son transmitidas apropiadamente por la circuiterfa 108 de transmisi6n. Si la circuiterfa 103 no anade bits de relleno, entonces la circuiterfa 105 de eliminaci6n de relleno es transparente, es decir, no se eliminan bits de relleno (Kreiieno = 0). Observese que es posible que la circuiterfa 105 no elimine ningun bit correspondiente a los bits de relleno.
La Fig. 2 es un diagrama de bloques de un receptor. Ourante el funcionamiento, el vector de senal recibido pasa a traves de la circuiterfa 202 de des-segmentaci6n de bloques de c6digo que organiza las partes del vector de senal recibido segun el segmento con el que estan asociadas. El tamano de segmento, el numero de segmentos, el tamano de bloque FEC usado para turbo-decodificar cada segmento, el numero de bits de relleno pueden ser determinados usando la circuiterfa 213 l6gica y la tabla 215 de tamanos de bloque FEC disponibles, en una manera similar a la del codificador. La circuiterfa 204 de manipulaci6n de relleno usa el conocimiento de la posici6n de los bits de relleno en favor del turbo decodificador 206, por ejemplo, estableciendo las LLRs correspondientes a los bits de relleno a una alta magnitud. Oespues de la turbo decodificaci6n, la circuiterfa 208 elimina los bits de relleno para obtener una estimaci6n de un segmento. El ensamblador 211 bloques de c6digo ensambla el transporte estimado recogiendo y organizando, de manera adecuada, las estimaciones de los segmentos obtenidas desde la circuiterfa 208.
Eliminaci6n de los bits de paridad del codificador constituyente
Esta secci6n proporciona una manera especffica de determinaci6n de la palabra de c6digo FEC. Se describe el procedimiento, que aprovecha el conocimiento de la inserci6n de los bits de relleno en el transmisor. En particular, el procedimiento determina que bits (tanto bits sistematicos como bits de paridad) pueden ser eliminados de la salida del turbo codificador con una nula o insignificante degradaci6n del rendimiento. En general, los bits de relleno son conocidos y, por lo tanto, los bits sistematicos de estos bits (igual a los bits conocidos) pueden ser eliminados antes de la transmisi6n. Sin embargo, no esta claro si puede eliminarse alguno de los bits de paridad.
La Fig. 3 es un diagrama de bloques del turbo codificador 104 de la Fig. 1. Ourante el funcionamiento, el bloque de entrada de Ki bits de longitud es introducido tanto al intercalador 301 como al codificador 302 constituyente. El intercalador 301 intercala el bloque de entrada y pasa el bloque de entrada en un orden intercalado al codificador 303 constituyente. A continuaci6n, el codificador 303 constituyente codifica el bloque de entrada intercalado. En una manera similar, el codificador 302 constituyente codifica el bloque de entrada original. El bloque x de la palabra de c6digo esta compuesto de un bloque sistematico (igual al bloque de entrada FEC), la salida del codificador 302 constituyente y la salida del codificador 303 constituyente. A continuaci6n, el bloque x de la palabra de c6digo es enviado a la circuiterfa 105.
En un turbo codificador convencional, tal como por ejemplo, turbo c6digos de cola, los estados iniciales de los codificadores constituyentes (contenidos de los registros de desplazamiento) se supone que son todos iguales a cero. En tal caso, cuando Kreiieno bits de relleno (generalmente 0s) son insertados al comienzo del bloque de entrada del turbo c6digo, los bits sistematicos y los bits de paridad del codificador 302 constituyente, correspondientes a las Kreiieno posiciones de bit, son todos igual a cero. Por lo tanto, estos bits pueden ser eliminados en el transmisor y el receptor puede utilizar este conocimiento mientras realiza una turbo decodificaci6n. Sin embargo, en el codificador 303 constituyente, los Kreiieno bits son codificados por el intercalador del turbo c6digo y, por lo tanto, los bits de paridad del codificador 303 constituyente, correspondientes a los bits de relleno, no son conocidos y, de esta manera, no pueden ser eliminados de manera simple.
Cuando el turbo codificador tiene codificadores constituyentes de tipo tail-biting, es posible que el estado inicial de los codificadores constituyentes no sea siempre cero. Para los c6digos de tipo tail-biting, el estado inicial y el estado final para un codificador constituyente son iguales y dependen del bloque de entrada. Por lo tanto, cuando Kreiieno bits de relleno consecutivos (es decir, ceros) son insertados al comienzo del bloque de entrada del turbo c6digo, los bits de paridad del codificador 302 constituyente, correspondientes a las Kreiieno posiciones de bit, no son siempre ceros. Sin embargo, puede probarse que la mayorfa de estos Kreiieno bits de paridad del codificador 302 constituyente no transportan ninguna informaci6n.
En general, los grupos de bits de relleno consecutivos son insertados en un segmento para formar un bloque de entrada FEC en el que la longitud de grupo es un multiplo de 2m-1 (= 7 para los c6digos convolucionales constituyentes dentro del turbo codificador 3GPP). A continuaci6n, el bloque de entrada FEC es codificado en FEC y los bits de paridad relacionados con los bits de relleno son eliminados. El codificador FEC puede ser un c6digo convolucional de tipo tailbiting usado individualmente, o un c6digo convolucional de tipo tail-biting usado como un c6digo constituyente de un turbo codificador.
En particular, cuando se usan para turbo c6digos con c6digos constitutivos de tipo tail-biting, los grupos de bits sistematicos correspondientes a los bits de relleno pueden ser eliminados, y los bits de paridad correspondientes a los grupos de bits de relleno en la salida de un codificador constituyente pueden ser eliminados, en el que el codificador
constituyente toma el bloque de entrada FEC sin intercalaci6n para los turbo codificadores de tipo tail-biting. Esto puede demostrarse como se indica a continuaci6n.
Sea S(ij el estado del registro de desplazamiento del codificador 302 constituyente en la etapa i, sea m el numero de elementos en el registro de desplazamiento, y sea g cualquier numero entero mayor que 0. Cuando (2m-1) x g ceros son introducidos al codificador constituyente desde la etapa i+1 a la etapa i+(2m-1) x g, la siguiente es una propiedad del codificador convolucional recursivo (tal como el usado en el turbo c6digo 3GPP, versi6n 6),
Observese que es posible que S(ij no sea una constante. Ademas, es posible que los estados S()j en el medio no sean una constante o sean iguales al estado S(ij, i < j < i+(2m-1)g.
Por lo tanto, el estado del codificador constituyente permanece inalterado entre una etapa i+1 y la etapa i+(2m-1)xg. Por lo tanto, el transmisor puede aprovechar (7) eliminando la salida del codificador constituyente durante estas etapas, ya que esos bits de relleno no cambian el estado del registro de desplazamiento y, de esta manera, no proporcionan ninguna informaci6n para el decodificador. El decodificador en el interior del receptor tambien puede aprovechar (7), de manera similar, en base al conocimiento de las posiciones y valores de los bits de relleno. A continuaci6n, el procedimiento anterior se describe con un ejemplo en el que Kreiieno bits de relleno (ceros) son insertados en posiciones consecutivas en la entrada de un turbo c6digo de tipo tail-biting.
Oebido a que Kreiieno bits de relleno consecutivos (ceros) son insertados en el bloque de entrada del turbo c6digo, g = ⎣Kreiieno / (2m-1) ⎦ y, por lo tanto, pxgx(2m-1) bits de paridad del codificador 302 constituyente pueden ser eliminados, donde p es el numero bits de paridad en la salida del codificador 302 constituyente que son generados para cada biten el bloque de entrada FEC. Por lo tanto, s6lo los bits de paridad correspondientes a los grupos de bits de relleno en la salida del codificador 302 constituyente son eliminados, donde el codificador 302 constituyente toma el bloque de entrada FEC no intercalado los turbo codificadores de tipo tail-biting.
Para un turbo codificador 3GPP de tipo tail-biting, p = 1 en codificador constituyente, m = 3. Oe esta manera, 7⎣Kreiieno / (2m-1) ⎦ bits de paridad pueden ser eliminados del codificador 302 constituyente para Kreiieno bits de relleno consecutivos. Oebido a que m = 3, como maximo s6lo 6 bits de paridad correspondientes a los Kreiieno bits de relleno del codificador 302 constituyente pueden necesitar ser mantenidos en la salida del codificador 302 constituyente.
En el codificador 303 constituyente, los Kreiieno bits de relleno pueden resultar dispersados debido al intercalador de turbo c6digo. Por lo tanto, puede que no sea posible eliminar los bits de paridad del codificador 303 constituyente sin afectar al rendimiento.
La secci6n siguiente describe algunos escenarios ejemplares en los que puede usarse la regla de segmentaci6n de bloques de c6digo, por ejemplo, Solicitud de repetici6n automatica-hfbrida (hybrid-Automatic Repeat reQuest, HARQ), multiple entrada multiple salida (MIMO), etc.
Formador de bloques de transporte (TB)
La regla de segmentaci6n de bloques de c6digo, descrita anteriormente, es aplicada a un bloque de transporte concatenado (CTB) en un canal ARQ hfbrido (HARQ). Antes de la segmentaci6n de bloques de c6digo, los bits de informaci6n a enviar a un solo usuario desde la estaci6n base dentro de un intervalo de tiempo de transmisi6n (TTI) pueden necesitar ser divididos en al menos un bloque de transporte, pasando, de esta manera, a traves de al menos un canal HARQ. Por ejemplo, la Fig. 4 muestra un ejemplo en el que los bits de informaci6n son transmitidos usando dos canales HARQ (correspondientes a HARQ1 y HARQ2), y dos bloques de transporte TB1 y TB2. Ourante el funcionamiento, los bits de informaci6n de longitud A son recibidos por la circuiterfa 402 de formaci6n de TB para ser transmitidos en una o mas secuencias espaciales. La circuiterfa 402 designa bits como un bloque de transporte TB1, en el que : A; el procesador 404 HARQ1 adjunta los bits de CRC a los bits para formar el bloque de transporte concatenado, de longitud X; el bloque de transporte concatenado de longitud X, es asignado a un primer canal HARQ. El bloque de transporte concatenado es enviado a la circuiterfa 102 de segmentaci6n de bloques de c6digo.
La circuiterfa 402 designa WX = A - bits a partir de los bits de informaci6n como un segundo bloque de transporte TB2; el procesador 406 HARQ2 adjunta los bits de CRC a Y bits y forma un segundo bloque de transporte concatenado; el bloque de transporte concatenado es asignado a un segundo canal HARQ. El bloque de transporte concatenado es enviado a la circuiterfa 102 de segmentaci6n de bloques de c6digo.
Observese que los circuitos 404 y 406 pueden realizar funciones adicionales, tales como otras funcionalidades relacionadas con HARQ, adici6n de informaci6n de control, etc.
Aunque los conceptos en la Fig. 4 se ilustran usando dos canales HARQ, los mismos pueden extenderse facilmente a una pluralidad de canales HARQ. Si hay mas de un canal HARQ soportado por un usuario dentro de un intervalo de tiempo de transmisi6n (TTI), la regla de segmentaci6n de bloques de c6digo puede aplicarse a cada TB.
Pueden ocurrir multiples canales HARQ debido aque hay demasiadas palabras de c6digo FEC (o segmentos) por TTI por usuario, tal como por un gran ancho de banda (por ejemplo, 20 MHz), una modulaci6n de mayor orden (por ejemplo, 64 QAM), MIMO de multiples secuencias, etc. Tambien pueden usarse multiples canales HARQ para TBS que tienen diferente calidad de servicio, tales como VoIP y "best-effort data'.
Una palabra de c6digo MIMO comprende los bits que son enviados a un solo usuario en un TTI en una secuencia MIMO. Oe esta manera, una palabra de c6digo MIMO puede comprender una o mas palabras de c6digo FEC. Algunas veces, una palabra de c6digo MIMO es usada para hacer referencia a los bits en una secuencia MIMO.
Pueden definirse reglas para la creaci6n de un TB. En una realizaci6n, un TB comprendera no mas de x (por ejemplo, x = 8) palabras de c6digo FEC (valor de x determinado por el planificador eNodeB en EUTRA). En otra realizaci6n, si se necesitan mas de x palabras de c6digo FEC para un TB, entonces se crean dos TBs, tal como se indica a continuaci6n. El paquete es dividido, de manera aproximadamente homogenea, entre dos TBs, teniendo cada TB casi el mismo numero de palabras de c6digo FEC de aproximadamente el mismo tamano. En todavfa otra realizaci6n, para las palabras de c6digo FEC que deben ser enviadas a dos secuencias MIMO, cada una pertenece a un TB separado. En todavfa otra realizaci6n, para las palabras de c6digo FEC que deben ser enviadas a tres secuencias MIMO mientras se usan 2 canales HARQ simultaneos, el primero (en promedio, la secuencia demejor calidad) pertenece a un TB y las secuencias segunda y tercera pertenecen a un segundo TB. En todavfa otra realizaci6n, cuatro palabras de c6digo MIMO a ser enviadas usando dos canales HARQ, son posibles varias combinaciones. Por ejemplo, (a) TB1 = 1,2 TB2 = 3,4 (b) TB1 = 1,3 TB2 = 2,4 (c) TB1 = 1,2 TB2 = 2,3 (d) TB1 = 1, TB2 = 2,3,4. Aquf TBi se refiere al TB del i-esimo canal HARQ; los numeros 1 al 4 indican el numero de la palabra de c6digo MIMO (o secuencia).
La Fig. 5 es un diagrama de bloques de procesamiento del receptor cuando los bits de informaci6n son recibidos sobre al menos un canal HARQ. Los bits recibidos desde el ensamblador 211 de bloques de c6digo son introducidos a los procesadores 504 y 506 de canal apropiados. La salida de los procesadores de canal son los bloques de transporte TB1 y TB2 estimados que son introducidos a la circuiterfa 502 del ensamblador de TB que combina los TBs y pone en la salida los bit de informaci6n estimados.
La Fig. 6 es un diagrama de flujo que muestra el funcionamiento del transmisor de la Fig. 1. El flujo de la l6gica comienza en la etapa 601, donde la circuiterfa de segmentaci6n recibe un bloque de transporte concatenado de longitud X. En la etapa 603, la circuiterfa l6gica accede a la tabla 107 y elige un tamano de bloque FEC apropiado. Tal como se ha expuesto anteriormente, en una primera realizaci6n de la presente invenci6n, el tamano de bloque FEC Ki es determinado a partir de un grupo de tamanos de bloque FEC, no contiguos, situados en la tabla 107, donde los tamanos de bloque FEC, no contiguos, disponibles en la tabla 107 se encuentran entre Kmin y Kmax, y en el que Kmin <= Ki < Kmax. Tal como se ha expuesto anteriormente, Ki se basa en X. X es determinado por la circuiterfa 106 l6gica a partir del bloque de transporte concatenado. Una vez determinado X, se determinan Ki = ⎡ X /XC ⎤ +0 y C = ⎡ X /XKmax ⎤. En una segunda realizaci6n de la presente invenci6n, se determinan los tamanos de bloque FEC Ki y Ki-1, donde Ki = ⎡X /XC⎤ + 0.
Continuando, en la etapa 605, el numero de segmentos C y los tamanos de bloque FEC son pasados a la circuiterfa 102 de segmentaci6n y, en la etapa 607, la circuiterfa de segmentaci6n segmenta el bloque de transporte concatenado de longitud X en C segmentos de tamano sustancialmente igual a Ki (o, como alternativa, Ki y Ki-1). Los bits de relleno son anadidos (si es necesario) en la etapa 609 por la circuiterfa 103 y, en la etapa 611, cada uno de los C segmentos es codificado (es decir, se determina una palabra de c6digo FEC para cada uno de los C segmentos). Finalmente, en la etapa 613, las palabras de c6digo FEC son transmitidas a traves de la circuiterfa 108 de transmisi6n.
Tal como se ha expuesto anteriormente, la etapa de determinaci6n de una palabra de c6digo FEC comprende las etapas de inserci6n de los bits de relleno en el segmento para formar un bloque de entrada FEC, codificaci6n FEC del bloque de entrada FEC, y eliminaci6n de los bits relacionados con los bits de relleno. Esta etapa puede implicar la inserci6n de grupos de bits de relleno consecutivos en un segmento para formar un bloque de entrada FECdonde la longitud de grupo es un multiplo de 7, la codificaci6n FEC del bloque de entrada FEC y la eliminaci6n de los bits relacionados con los bits de relleno. La eliminaci6n de los bits de relleno comprende las etapas de eliminar los grupos de bits sistematicos correspondientes a los bits de relleno y eliminar los bits de paridad correspondientes a los grupos de bits de relleno en la salida del codificador 1 constituyente, donde el codificador constituyente toma el bloque de entrada FEC no intercalado para los turbo codificadores de tipo tail-biting.
La Fig. 7 es un diagrama de flujo que muestra el funcionamiento del receptor de la Fig. 2. El flujo l6gico comienza en la etapa 701, donde el tamano del segmento, el numero de segmentos, el tamano de bloque FEC usado para turbodecodificar cada segmento, y el numero de bits de relleno se determinan usando circuiterfa 213 l6gica y la tabla 215. Tal como se ha expuesto anteriormente, en un ejemplo util para la comprensi6n de la presente invenci6n, el tamano de bloque FEC Ki se determina a partir de un grupo de tamanos de bloque FEC, no contiguos, situados en la tabla 215, donde los tamanos de bloque FEC, no contiguos, disponibles en la tabla 215 se encuentran entre Kmin y Kmax, y en el que Kmin <= Ki < Kmax. Tal como se ha expuesto anteriormente, Ki se basa en X. X es determinado por la circuiterfa 213 l6gica a partir del vector de senal recibido. A continuaci6n, la circuiterfa 213 l6gica determina Ki = ⎡ X /XC ⎤ +0 y C = ⎡ X /XKmax ⎤. En una
5 realizaci6n de la presente invenci6n, se determinan los tamanos de bloque FEC Ki y Ki-1, donde Ki = ⎡ X /XC ⎤ + 0.
En la etapa 703, un vector de senal recibido pasa a traves de la circuiterfa 202 de segmentaci6n de bloques de c6digo, que organiza las partes del vector de senal recibido segun los C segmentos con los que estan asociadas. En la etapa 705, la circuiterfa 204 de manipulaci6n de relleno usa el conocimiento de la posici6n de los bits de relleno para ayudar al turbo decodificador 206, por ejemplo, estableciendo las LLRs correspondientes a los bits de relleno a una magnitud alta. Cada
10 uno de los C segmentos es decodificado en la etapa 707. Oespues de la turbo decodificaci6n, la circuiterfa 208 elimina los bits de relleno para obtener una estimaci6n de un segmento (etapa 709). El ensamblador 211 de bloques de c6digo ensambla el transporte estimado recogiendo y organizando, de manera adecuada, las estimaciones de los segmentos obtenidos desde la circuiterfa 208 (etapa 711).
Aunque la invenci6n ha sido mostrada y descrita, particularmente, con referencia a una realizaci6n particular, las personas
15 con conocimientos en la materia entenderan que pueden realizarse diversos cambios a la misma, en la forma y los detalles, sin alejarse del alcance de la invenci6n, segun se define en las reivindicaciones adjuntas.

Claims (2)

  1. REIVINDICACIONES
    1. Procedimiento de operaci6n de un transmisor, en el que el procedimiento comprende: recibir un bloque de transporte concatenado de longitud X; determinar dos tamanos de bloque FEC, contiguos, disponibles Ki-1 y Ki a partir de un grupo de tamanos de
    bloque FEC, no contiguos, en el que los tamanos de bloque FEC, no contiguos, disponibles se encuentran entre Kmin y Kmax, y en el que Kmin <= Ki-1 < Kmax, Kmin <= Ki <= Kmax, y en el que Ki-1 y Ki estan basados, ademas, en X; segmentar el bloque de transporte concatenado de longitud X en C segmentos de tamanos X CBSSi : Ki, para i = 1, ..XCi
    X CBSSi : Ki-1, para i = Ci +1, .. C; si Ci-1 >=1; determinar una palabra de c6digo FEC para codificar cada uno de los C segmentos usando tamanos de bloque FEC Ki o Ki-1; y
    transmitir las C palabras de c6digo FEC a traves del canal. en el que C = ⎡ X /XKmax ⎤ = Ci + Ci-1, donde Y = CXKi -X, Ci-1 = ⎣YX/X0i ⎦, Ci = C -⎣YX/X0i ⎦, y Ci-1 y Ci son el numero de segmentos que son codificados usando los tamanos de bloque FEC Ki-1 y Ki,
    respectivamente, donde Ki es el menor tamano, de entre los tamanos de bloque FEC disponibles, que es mayor
    o igual que ⎡ X /XC ⎤, y 0i indica la diferencia entre los tamanos de bloque FEC Ki-1 y Ki contiguos.
  2. 2. Un aparato que comprende: circuiterfa de recepci6n que recibe un bloque de transporte concatenado de longitud X; circuiterfa l6gica para determinar dos tamanos de bloque FEC, contiguos, disponibles Ki-1 y Ki, a partir de un
    grupo de tamanos de bloque FEC, no contiguos, en el que los tamanos de bloque FEC, no contiguos, disponibles se encuentran entre Kmin y Kmax, y en el que Kmin <= Ki-1 < Kmax, Kmin <= Ki <= Kmax, y en el que Ki-1 y Ki estan basados, ademas, en X;
    circuiterfa (102) de segmentaci6n de bloques de c6digo que segmenta el bloque de transporte concatenado de longitud X en C segmentos de tamanos X CBSSi : Ki, para i = 1, ..XCi
    X CBSSi : Ki-1, para i = Ci +1, .. C; si Ci-1 >=1; circuiterfa (104) de codificaci6n para la determinaci6n de una palabra de c6digo FEC para cada uno de los C segmentos usando el tamano de bloque FEC Ki o Ki-1; y
    circuiterfa (108) de transmisi6n que transmite las C palabras de c6digo FEC a traves de un canal; en el que C = ⎡ X /XKmax ⎤ = Ci + Ci-1, donde Y = CXKi -X, Ci-1 = ⎣YX/X0i ⎦, Ci = C -⎣YX/X0i ⎦, y Ci-1 y Ci son el numero de segmentos que son codificados usando los tamanos de bloque FEC Ki-1 y Ki,
    respectivamente, donde Ki es el menor tamano, de entre los tamanos de bloque FEC disponibles, que es mayor
    o igual que ⎡ X /XC ⎤, y 0i indica la diferencia entre los tamanos de bloque FEC Ki-1 y Ki contiguos.
ES07842624T 2006-10-04 2007-09-17 Procedimiento y aparato para codificar y decodificar datos Active ES2386911T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US82821306P 2006-10-04 2006-10-04
US828213P 2006-10-04
US11/539,404 US8356232B2 (en) 2006-10-06 2006-10-06 Method and apparatus for encoding and decoding data
US539404 2006-10-06
PCT/US2007/078676 WO2008042586A2 (en) 2006-10-04 2007-09-17 Method and apparatus for encoding and decoding data

Publications (1)

Publication Number Publication Date
ES2386911T3 true ES2386911T3 (es) 2012-09-05

Family

ID=39269076

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07842624T Active ES2386911T3 (es) 2006-10-04 2007-09-17 Procedimiento y aparato para codificar y decodificar datos

Country Status (9)

Country Link
EP (1) EP2080271B1 (es)
JP (2) JP4714941B2 (es)
KR (1) KR101429786B1 (es)
CN (1) CN101573872B (es)
AR (1) AR064591A1 (es)
BR (1) BRPI0717506B8 (es)
ES (1) ES2386911T3 (es)
PL (1) PL2080271T3 (es)
WO (1) WO2008042586A2 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5453268B2 (ja) * 2007-09-14 2014-03-26 エージェンシー フォー サイエンス, テクノロジー アンド リサーチ ビット列の符号化方式および符号化回路
JP4922242B2 (ja) * 2008-06-05 2012-04-25 パナソニック株式会社 符号化装置、符号化方法、及びビタビ復号装置
JP2010004416A (ja) * 2008-06-23 2010-01-07 Fujitsu Ltd 移動無線装置
US8726137B2 (en) * 2009-02-02 2014-05-13 Telefonaktiebolaget L M Ericsson (Publ) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
CN107659384A (zh) * 2012-11-16 2018-02-02 华为技术有限公司 数据处理的方法和装置
EP3264613A4 (en) * 2015-04-01 2018-04-11 Huawei Technologies Co. Ltd. Encoding method, apparatus, base station and user equipment
WO2021044765A1 (ja) * 2019-09-04 2021-03-11 株式会社日立国際電気 通信システム及び通信方法
WO2022220394A1 (ko) * 2021-04-12 2022-10-20 삼성전자 주식회사 전송 데이터 손실 복구 방법 및 그 전자 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09321634A (ja) * 1996-05-27 1997-12-12 Toshiba Corp ブロック・デ・インターリーブ装置
FI106758B (fi) * 1999-04-16 2001-03-30 Nokia Networks Oy Segmentointimekanismi lohkoenkooderia varten
US6397368B1 (en) * 1999-12-06 2002-05-28 Intellon Corporation Forward error correction with channel adaptation
JP3880542B2 (ja) * 2003-05-19 2007-02-14 松下電器産業株式会社 誤り訂正符号化/復号化装置および誤り訂正符号化/復号化方法
JP3847733B2 (ja) 2003-06-12 2006-11-22 松下電器産業株式会社 マルチキャリア通信方法及びその通信装置
CN1691785A (zh) * 2004-04-19 2005-11-02 上海国皓电子有限公司 基于dvb数字电视射频信道测量的前端装置
WO2008013528A1 (en) * 2006-07-25 2008-01-31 Thomson Licensing Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction
KR20080094192A (ko) * 2007-04-19 2008-10-23 엘지전자 주식회사 신호 송수신 방법 및 신호 송수신 장치

Also Published As

Publication number Publication date
JP5110407B2 (ja) 2012-12-26
JP4714941B2 (ja) 2011-07-06
EP2080271B1 (en) 2012-07-11
BRPI0717506B1 (pt) 2019-12-03
CN101573872B (zh) 2013-06-12
CN101573872A (zh) 2009-11-04
WO2008042586A2 (en) 2008-04-10
KR101429786B1 (ko) 2014-08-18
BRPI0717506B8 (pt) 2019-12-17
JP2011066932A (ja) 2011-03-31
BRPI0717506A8 (pt) 2017-03-07
JP2008092570A (ja) 2008-04-17
AR064591A1 (es) 2009-04-15
EP2080271A2 (en) 2009-07-22
BRPI0717506A2 (pt) 2014-06-24
KR20090074183A (ko) 2009-07-06
WO2008042586A3 (en) 2008-07-03
PL2080271T3 (pl) 2012-10-31

Similar Documents

Publication Publication Date Title
ES2386911T3 (es) Procedimiento y aparato para codificar y decodificar datos
ES2381595T3 (es) Turbo codificación con intercaladores QPP de libre contención
US7924763B2 (en) Method and appratus for rate matching within a communication system
US8543884B2 (en) Communications channel parallel interleaver and de-interleaver
JP4955150B2 (ja) 高並列map復号器
JP3359913B1 (ja) 移動通信システムの直列鎖状コンボルーション符号化器に使用するためのインタリーバ及びそのインタリービング方法
CN101553990B (zh) Turbo码交织器尺寸的确定
US6859906B2 (en) System and method employing a modular decoder for decoding turbo and turbo-like codes in a communications network
JP2008219892A (ja) データを符号化および復号化する方法および装置
EP3639374B1 (en) Low latency polar coding and decoding by merging of stages of the polar code graph
CN110999095B (zh) 用于极化码的按块并行冻结位生成
KR20220141767A (ko) 고정 길이 시그널링 정보 부호화를 위한 패리티 펑처링 장치 및 이를 이용한 패리티 펑처링 방법
US9444494B2 (en) Systems and methods for network coding using convolutional codes
KR102453472B1 (ko) 가변 길이 시그널링 정보 부호화를 위한 패리티 펑처링 장치 및 이를 이용한 패리티 펑처링 방법
KR20160105311A (ko) 가변 길이 시그널링 정보 부호화를 위한 패리티 인터리빙 장치 및 이를 이용한 패리티 인터리빙 방법
KR20220142404A (ko) 고정 길이 시그널링 정보 부호화를 위한 제로 패딩 장치 및 이를 이용한 제로 패딩 방법
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
KR20220141766A (ko) 고정 길이 시그널링 정보 부호화를 위한 패리티 인터리빙 장치 및 이를 이용한 패리티 인터리빙 방법
KR20220141769A (ko) 가변 길이 시그널링 정보 부호화를 위한 제로 패딩 장치 및 이를 이용한 제로 패딩 방법
KR20160105312A (ko) 가변 길이 시그널링 정보 부호화를 위한 제로 패딩 장치 및 이를 이용한 제로 패딩 방법
US8924829B2 (en) Device and method for turbo-encoding a block of data
KR20160105308A (ko) 고정 길이 시그널링 정보 부호화를 위한 제로 패딩 장치 및 이를 이용한 제로 패딩 방법
CN114079530A (zh) 编码方法及装置
KR20160105313A (ko) 고정 길이 시그널링 정보 부호화를 위한 패리티 인터리빙 장치 및 이를 이용한 패리티 인터리빙 방법
KR20220139279A (ko) 가변 길이 시그널링 정보 부호화를 위한 패리티 펑처링 장치 및 이를 이용한 패리티 펑처링 방법