ES2430361T3 - Turbo-descodificación con intercaladores QPP libres de contención - Google Patents

Turbo-descodificación con intercaladores QPP libres de contención Download PDF

Info

Publication number
ES2430361T3
ES2430361T3 ES11008483T ES11008483T ES2430361T3 ES 2430361 T3 ES2430361 T3 ES 2430361T3 ES 11008483 T ES11008483 T ES 11008483T ES 11008483 T ES11008483 T ES 11008483T ES 2430361 T3 ES2430361 T3 ES 2430361T3
Authority
ES
Spain
Prior art keywords
interleaver
size
turbo
block
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
ES11008483T
Other languages
English (en)
Inventor
Ajit Nimbalker
Yufei W. Blankenship
Brian K. Classon
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
Application filed by Motorola Mobility LLC filed Critical Motorola Mobility LLC
Application granted granted Critical
Publication of ES2430361T3 publication Critical patent/ES2430361T3/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/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/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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
    • 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/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Un método para operar un turbo-descodificador, el método que comprende los pasos de: recibir un vector de señal; y turbo-descodificar el vector de señal recibido usando un intercalador (402) de tamaño K' y una permutación π (i)>= (f1 x i + f2 x i2)mod K', donde 0 <= i <= K'-1 es el índice secuencial de las posiciones de símbolos después deintercalar, π (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K' es el tamaño delintercalador en símbolos, y f1 y f2 son los factores que definen el intercalador (402) y en donde los valores de K',f1, f2 se toman de al menos una fila de la siguiente tabla

Description

Turbo-descodificación con intercaladores QPP libres de contención
Campo de la invención
La presente invención se refiere de manera general a codificar y descodificar datos y en particular, a un método y aparato para turbo-codificar y descodificar.
Antecedentes de la invención
Las transmisiones de datos digitales sobre enlaces cableados e inalámbricos pueden estar dañadas, por ejemplo, por el ruido en el enlace o canal, por la interferencia de otras transmisiones, o por otros factores ambientales. Para combatir los errores introducidos por el canal, muchos sistemas de comunicación emplean técnicas de corrección de errores para ayudar en la comunicación.
Una técnica utilizada para corrección de errores es la turbo-codificación de un bloque de información antes de que se transmita sobre el canal. Utilizando tal técnica, un codificador dentro del transmisor de un sistema de comunicación codificará un bloque de entrada u de longitud K’ bits en un bloque de palabra de código x de N bits. El bloque de palabra de código entonces se transmite sobre el canal, posiblemente después del procesamiento adicional tal como el intercalado del canal como se define en las especificaciones IEEE 802.16e. En el receptor, el turbo-descodificador toma el vector de la señal recibida y de longitud N como entrada, y genera una estimación û del vector u.
Típicamente el turbo-codificador está compuesto de dos codificadores convolucionales constituyentes. El primer codificador constituyente toma el bloque de entrada u como entrada en su orden original, y el segundo codificador constituyente toma el bloque de entrada u en su orden intercalado después de pasar u a través de un turbointercalador I . La salida del turbo-codificador x está compuesta de los bits sistemáticos (iguales al bloque de entrada u), los bits de paridad del primer codificador constituyente, y los bits de paridad del segundo codificador constituyente.
De la misma manera el turbo-descodificador dentro del receptor del sistema de comunicación está compuesto de dos descodificadores convolucionales constituyentes, uno para cada código constituyente. Los descodificadores constituyentes están separados por el intercalador I y el desintercalador correspondiente I -1. Se pasan mensajes en el formato de relaciones de probabilidad logarítmica (LLR) entre los descodificadores constituyentes de manera iterativa. La decisión û se toma después de varias iteraciones.
El turbo-intercalador I es el componente clave en el diseño del turbo-código. Es responsable de aleatorizar el bloque de entrada u en una forma pseudo-aleatoria, proporcionando de esta manera las palabras de código x con buena distribución de ponderación, por lo tanto buenas capacidades de corrección de errores. Además del rendimiento de descodificación, la definición del turbo-intercalador I impacta extremadamente la implementación del turbo-descodificador dentro del receptor. Para permitir un alto nivel de procesamiento en paralelo sin contenciones de acceso a memoria, el turbo-intercalador I necesita tener propiedades libres de contención.
ERICSSON: “Quadratic Permutation Polynomial Interleavers for LTE Turbo Coding” TDOC R1-063137 DE LA REUNIÓN #47 DEL TSG RAN WG 1 DEL 3GPP, [En línea] 10 de noviembre de 2006 (), páginas 1-5, XP002473949 Riga, Letonia Recuperado de Internet: URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_47/Docs/> [recuperado el ] propone intercaladores basados en polinomios de permutación cuadrática.
MOTOROLA: “Code Block Segmentation for Contention-Free Turbo Interleavers” TDOC R1-063062 DE LA REUNIÓN #47 DEL TSG RAN WG 1, [En línea] 10 de noviembre de 2006 (), páginas 1-4, XP002473950 Riga, Letonia Recuperado de Internet: URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_47/Docs/> [recuperado el ] propone una regla de segmentación de bloque de código modificado para turbocodificación EUTRA.
ROSNES E ET AL: “Optimum distance quadratic permutation polynomial-based interleavers for turbo-codes” ACTAS DEL SIMPOSIO INTERNACIONAL DEL IEEE DE 2006 SOBRE TEORÍA DE LA INFORMACIÓN, 9 de julio de 2006 (), - 14 de julio de 2006 () páginas 1988-1992, XP002473952 Seattle, EE.UU. ISBN: 1-42440504-1 considera en detalle la distancia mínima de los intercaladores basados en turbo códigos QPP.
TAKESHITA O Y: “On maximum contention-free interleavers and permutation polynomials over integer rings”TRANSACCIONES DEL IEEE SOBRE TEORÍA DE LA INFORMACIÓN IEEE EE.UU., vol. 52, nº 3, marzo de 2006 (03-2006), páginas 1249-1253, XP002473953 ISSN: 0018-9448 expresa que muestra que los polinomios de permutación generan intercaladores libres de contención máxima.
Breve descripción de los dibujos
La FIG. 1 es un diagrama de bloques de un transmisor.
La FIG. 2 es un diagrama de bloques del turbo-codificador de la FIG. 1.
La FIG. 3 es un diagrama de bloques de un receptor.
La FIG. 4 es un diagrama de bloques del turbo-descodificador de la FIG. 3.
La FIG. 5 es un diagrama de flujo que muestra la operación del transmisor de la FIG. 1.
La FIG. 6 es un diagrama de flujo que muestra la operación del receptor de la FIG. 3. Descripción detallada de los dibujos Para abordar la necesidad anteriormente mencionada de intercaladores libres de contención, se proporciona en la presente memoria un método y aparato para seleccionar tamaños de intercalador para turbo-códigos.
Durante la operación se recibe un bloque de información de tamaño K. Se determina un tamaño de intercalador K’ donde K’ está relacionado con K’’ donde K’’ es de un conjunto de tamaños; en donde el conjunto de tamaño comprende K’’ = ap x f, pmin < p < pmax; fmin < f < fmax, en donde a es un entero, f es un entero continuo entre fmin y fmax, y p toma valores enteros entre pmin y pmax, a>1, pmax > pmin, pmin>1. El bloque de información de tamaño K se rellena en un bloque de entrada de tamaño K’. El bloque de entrada se intercala usando un intercalador de tamaño K’. El bloque de entrada original y el bloque de entrada intercalado se codifican para obtener un bloque de palabra de código. La palabra de código se transmite a través del canal.
En una realización adicional de la presente invención el paso de determinar el tamaño de intercalador K’ que está relacionado con K” comprende el paso de usar K’ = K”.
Aún en otra realización de la presente invención el paso de determinar el tamaño del intercalador K’ que está relacionado con K’’ comprende el paso de usar K’ = K’’ cuando K’’ no es un múltiplo de (2m–1); de otro modo usar
K’=K’’+ 0 (K’’) cuando K’’ es un múltiplo de (2m–1), en donde m es la longitud de la memoria del codificador convolucional constituyente, y 0 (K’’) es un entero positivo o negativo pequeño no igual a un múltiplo de (2m–1). En una realización m=3.
En un ejemplo de ARP útil para comprender la presente invención el paso de intercalar el bloque de entrada comprende el paso de usar una permutación I (i) = (iP0 + A + d(i)) mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, P0 es un número que es relativamente primo con K’, A es una constante, C es un número pequeño que divide K’, y d(i) es un vector oscilatorio de pequeña
amplitud de la forma d(i) = f (i mod C) + P0 xa (i mod C) donde a (·) y f (·) son vectores cada uno de longitud C, aplicados periódicamente para 0 < i < K’-1.
Aún en otra realización de la presente invención el paso de intercalar el bloque de entrada comprende el paso de usar una permutación I (i) = (f1 x i + f2 x i2)mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, y f1 y f2 son los factores que definen el intercalador.
Anterior a describir la codificación y descodificación de datos, se proporcionan las siguientes definiciones para establecer los antecedentes necesarios:
K indica el tamaño de un bloque de información.
K’ indica un tamaño de intercalador (es decir, el tamaño del bloque de entrada para el que se define un intercalador de turbo-código).
K’’ indica una variable auxiliar que se puede usar en determinar un tamaño de intercalador.
Krelleno indica el número de bits de relleno añadidos al bloque de información.
I indica el intercalador interno de turbo-código.
La operación de suelo LJindica el entero más grande menor o igual que x y la operación de techo Ilindica
xx
el entero más pequeño mayor o igual que x.
•u indica un bloque de entrada, que tiene una longitud de K’ y se envía al turbo-codificador en el transmisor. û indica el bloque de entrada estimado, que tiene una longitud de K’ y se produce por el turbo-descodificador en el receptor. Señalar que û=u cuando no hay error de descodificación. De otro modo û -u.
Volviendo ahora a los dibujos, en donde números iguales designan componentes iguales, la FIG. 1 es un diagrama de bloques del transmisor 100. Como se muestra, el transmisor 100 comprende la circuitería de inserción de relleno 109, el turbo-codificador 101, la circuitería de determinación del tamaño del intercalador 103, la tabla de parámetros del intercalador 105, y el transmisor 107. El codificador 101 es preferiblemente un turbo-codificador del 3GPP de tasa 1/3, no obstante, las técnicas descritas en la presente memoria para operar el codificador 101 se pueden aplicar a otros codificadores, incluyendo, pero no limitado a turbo-codificadores que realizan la turbo-codificación con bits de cola o bits de no cola, de mordedura de cola, turbo-codificadores binarios y duo-binarios, turbo-codificadores que usan diferentes técnicas de perforación y coincidencia de tasa, …, etc. La circuitería 103 determina el tamaño del intercalador K’ que está relacionado con K’’, donde K’’ es de un conjunto de tamaños; en donde el conjunto de tamaños comprende K’’ = ap x f, pmin < p < pmax; fmin < f < fmax, en donde a es un entero, f es un entero continuo entre fmin y fmax, y p toma valores enteros entre pmin y pmax, a>1, pmax > pmin, pmin>1.
Durante la operación del transmisor 100, el bloque de información de tamaño K necesita ser codificado por el turbocodificador 101. Para algunos sistemas de comunicación donde se usa un número grande de diferentes K, no es eficiente (y a menudo imposible) definir un intercalador libre de contención (CF) para cada tamaño de bloque de información K. Es preferible si un conjunto pequeño (K’) de intercaladores CF bien diseñados es capaz de cubrir todos los tamaños de bloques de información. Dado un tamaño de bloque de información K, se puede elegir un tamaño de intercalador adecuado K’ mediante la circuitería 103 a partir del conjunto de tamaños disponibles (por ejemplo, los tamaños de intercalador enumerados en la tabla 105). El bloque de información entonces se rellena en un bloque de entrada de tamaño K’ mediante la circuitería 109 y envía como entrada al turbo-codificador 101. Una adaptación típica es rellenar el bloque de información con bits de relleno Krelleno (a través de la circuitería de inserción de relleno 109). Señalar que el término “tamaño” y “longitud” se usan de manera intercambiable para indicar el número de elementos en un bloque o vector.
Una vez que se elige K’ por la circuitería 103, se proporciona al turbo-codificador 101. Durante la codificación, se puede usar un intercalador libre de contención (no se muestra en la FIG. 1). Por ejemplo, el intercalador puede usar una permutación I(i) = (iP0 + A + d(i)) mod K’, en donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I(i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, P0 es un número que es relativamente primo con K’, A es una constante,
C es un número pequeño que divide K’, y d(i) es un vector “oscilatorio de pequeña amplitud” de la forma d(i) = f(i
mod C) + P0 xa(i mod C) donde a(·) y f(·) son vectores cada uno de longitud C, aplicados periódicamente para 0 < i < K’-1. Como otro ejemplo, el intercalador puede usar una permutación I(i) = (f1 x i + f2 x i2) mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I(i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, y f1 y f2 son los factores que definen el intercalador. En general un símbolo puede estar compuesto de múltiples bits y el paso de intercalado puede usar un paso adicional de permutar los bits dentro de un símbolo. Sin perder generalidad, la discusión de más adelante considera el caso típico donde un símbolo está compuesto de un bit solamente (de esta manera no necesita de permutación de bits dentro de un símbolo), y los términos “bit” y “símbolo” se pueden usar de manera intercambiable.
La salida del turbo-codificador 101 comprende un bloque de palabra de código x, y x se envía al transmisor 107 donde se transmite a través del canal. El transmisor puede realizar un procesamiento adicional tal como hacer coincidir la tasa, intercalar el canal, modulación, etc., antes de transmitir el bloque de palabra de código x a través del canal.
La FIG. 2 es un diagrama de bloques del codificador 101 de la FIG. 1. Como se muestra, el codificador 101 comprende el intercalador 201, la circuitería de codificación 202, y la circuitería de codificación 203. Un ejemplo del codificador es el turbo-codificador definido en la especificación del 3GPP. La tasa de código madre del turbocodificador definido en el 3GPP tiene una tasa de código nativa de R = 1/3. En la salida del turbo-codificador, se producen 3 bits para cada bit dentro del bloque de entrada: un bit sistemático (igual al bit en el bloque de entrada), un bit de paridad del codificador constituyente 1, un bit de paridad del codificador constituyente 2. Además, la salida del turbo-codificador también puede incluir NTB bits de cola, que se usan para terminar el enrejado de los códigos constituyentes. Por ejemplo, para el turbo-código del 3GPP, NTB = 12 bits en la salida del turbo-codificador, 6 bits de cola por código constituyente. Por otra parte, es posible usar códigos convolucionales constituyentes de mordedura de cola, que hacen de esta manera NTB = 0.
El intercalador 201 puede ser un intercalador libre de contención. Un intercalador I (i), 0 < i < K’, se dice que es libre de contención para un tamaño de ventana W si y sólo si satisface la siguiente restricción tanto para ' = I (intercalador) como ' = I -1 (desintercalador),
donde 0 < j < W, 0 < t; V < M(= K’/W), y t -V . Aunque no es siempre necesario, para un diseño eficiente del turbodescodificador, típicamente todas las ventanas M están llenas, donde K’=MW. Los términos en (1) son las direcciones del banco de memoria a las que se accede concurrentemente por los procesadores M cuando se escriben los valores extrínsecos a los bancos de memoria de salida durante la descodificación iterativa. Si estas direcciones del banco de memoria son todas únicas durante cada una de las operaciones de lectura y escritura, no hay contenciones en el acceso a memoria y por lo tanto se puede evitar la latencia de (des)intercalado, conduciendo a una implementación de descodificador de alta velocidad.
Durante la operación del turbo-codificador 101, el bloque de entrada de longitud K’ bits entra tanto en el intercalador 201 como en la circuitería de codificación 202. El intercalador 201 puede ser un intercalador libre de contención de tamaño K’.
El intercalador 201 intercala el bloque de entrada y pasa el bloque de entrada en el orden intercalado a la circuitería de codificación 203. La circuitería de codificación 203 entonces codifica el bloque de entrada intercalado. De una manera similar, la circuitería de codificación 202 codifica el bloque de entrada original. El bloque de palabra de código x está compuesto de un bloque sistemático (igual al bloque de entrada), una salida de la circuitería de codificación 202, y una salida de la circuitería de codificación 203. El bloque de palabra de código x entonces se envía al transmisor 107 que también puede recibir una copia del bloque de entrada directamente.
Como ejemplo del intercalador libre de contención, se da un intercalador de permutación casi regular (ARP) mediante la expresión
I (i) = (iP0 + A + d(i))mod K’
donde 0 < i < K’-1 es el índice secuencial de las posiciones de bit después del intercalado, I (i) es el índice de bit antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador, P0 es un número que es relativamente primo con K’, A es una constante, C es un número pequeño que divide K’, y d(i) es un vector oscilatorio de pequeña amplitud de la forma d(i) = f (i mod C) + P0 xa (i mod C) donde a (·) y f (·) son vectores
cada uno de longitud C, aplicados periódicamente para 0 < i < K’-1. Tanto a (·) como f (·) están compuestos de múltiplos de C. El intercalador general I (·) construido de esta manera tiene propiedades cuasi-cíclicas (es decir, periódicas) con periodo C, y cuando se usa en turbo-códigos de mordedura de cola, el turbo-código en sí mismo llega a ser cuasi-cíclico conduciendo a un procedimiento de diseño de código simplificado.
Como otro ejemplo del intercalador libre de contención, se da un intercalador de Permutación Polinómica Cuadrática (QPP) por la siguiente expresión I (i) = (f1 x i + f2 x i2)mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, y f1 y f2 son los factores que definen el intercalador. Similar a los intercaladores de ARP, el turbo-código también es cuasi-cíclico en caso de mordedura de cola.
Si el intercalador 201 puede satisfacer (1) para varios valores de M, entonces se puede implementar el descodificador usando varios grados de paralelismo (uno para cada M). De esta manera es deseable elegir K’ que tenga varios factores. Para un intercalador de ARP de longitud K’, se puede usar cualquier tamaño de ventana W, donde W es un múltiplo de C y un factor de K’, para descodificación de alta velocidad sin contenciones de acceso a memoria. Con una definición diferente de las ventanas paralelas, es posible usar cualquier factor de K como el número de ventanas paralelas. Para un intercalador de QPP, cada factor del tamaño del intercalador K’ que es un nivel posible de paralelismo M. Esto proporciona flexibilidad y escalabilidad en el diseño del descodificador permitiendo una gama amplia de factores de paralelismo M. De esta manera, se puede hacer un buen compromiso entre velocidad de descodificación y complejidad en base a los requerimientos del sistema (o clases de elementos de usuario).
Elección del tamaño de intercalador K’
Como se trató anteriormente, la circuitería de determinación del tamaño del intercalador 103 necesita determinar un tamaño de intercalador K’ para un K dado. Esta sección describe una forma de seleccionar un número limitado de tamaños (es decir, K’) para el que se pueden definir intercaladores de turbo-código. Como se indicó previamente, se puede usar una circuitería de inserción de relleno (junto con métodos de perforación o coincidencia de tasa) para manejar cualquier tamaño de bloque de información K. En general, la selección del tamaño del intercalador debe tener en consideración la carga de descodificación y la degradación del rendimiento debidas a los bits de relleno.
El número de bits de relleno Krelleno rellenados con un bloque de información para formar un bloque de entrada es
5 deseable que esté limitado a un porcentaje pequeño (por ejemplo, alrededor del 10-13%) del tamaño del bloque de información K. Esto se logra limitando la diferencia entre los tamaños de intercalador adyacentes, es decir, los valores de K’ adyacentes (suponiendo que todos los valores K’ disponibles se clasifican en orden ascendente). El número de bits de relleno se minimiza eligiendo el menor K’ disponible de manera que K’>K. El número de bits de relleno es Krelleno = K’ – K. No obstante, también se pueden elegir otros valores disponibles de K’>K, si se desea.
10 Consideramos el siguiente conjunto de tamaños definidos para cubrir los tamaños de información entre Kmin y Kmax.
K’’ = ap x f, pmin < p < pmax; fmin < f < fmax (2)
donde a es un entero, f es un entero continuo entre fmin y fmax, y p toma valores enteros entre pmin y pmax, a>1, pmax > pmin, pmin>1. Aunque no es necesario, uno puede elegir estos parámetros de manera que Kmin = apmin x fmin, y Kmax = apmax x fmax, mientras que se descarta cualquier tamaño que se pueda no necesitar. Este método de seleccionar un
15 conjunto limitado de tamaños para cubrir una gama de tamaños de bloque de información se conoce como segmentación semilogarítmica. Para un bloque de información dado de tamaño K, un tamaño K’ se relaciona con un K’’ en base a la tabla de segmentación semilogarítmica, y el tamaño del bloque de entrada K.
La segmentación semilogarítmica es similar a la operación de compansión empleada en la compresión de señales de gran rango dinámico, por ejemplo, compansores de Ley-A y Ley-f usados en códec de habla. La regla de
20 segmentación semilogarítmica permite un diseño eficiente para cubrir una amplia gama de tamaños de bloque de información.
De las diversas formas de elegir los parámetros, una forma de elegir los valores de fmin y fmax es permitir a los valores de K’’ resultantes de la p adyacente alinearse unos con otros, es decir, ap x (fmax +1) = ap+1 x fmin, de esta manera
fmax = a x fmin -1
25 Para un valor de p dado, la separación entre dos tamaños de bloques adyacentes K’’ se da por ap, que significa que se añaden un máximo de ap -1 bits de relleno si el tamaño del bloque de información K está en el grupo p y el tamaño del intercalador es igual a K’’. De esta manera, la fracción de los bits de relleno Krelleno sobre el tamaño del bloque de información K está unida como se muestra más adelante, lo cual ocurre cuando el tamaño del bloque K es ligeramente mayor que el tamaño dado por (p, fmin) y usando K’ = K’’ dado por (p, fmin+1) para,
Alternativamente, los valores K’’ resultantes de la p adyacente puede alinearse unos con otros a través de ap x fmax = ap+1 x (fmin -1), provocando fmax = a x (fmin -1). Esto daría una unión Krelleno/K similar. Por lo tanto, los parámetros para la segmentación semilogarítmica se pueden sintonizar según la gama de tamaños de bloque a ser soportados, y también en la fracción tolerable de bits de relleno. La elección de fmin requiere un equilibrio entre los dos
35 requerimientos siguientes:
fmin debería ser grande para reducir la fracción de los bits de relleno;
fmin debería ser pequeño para limitar el tamaño de la tabla del intercalador, dado que el número de tamaños de bloque definidos para cada p es fmax -fmin + 1 = (a - 1)x fmin, suponiendo fmax = a x fmin -1.
El método de segmentación semilogarítmica es muy simple porque para cualquier tamaño de bloque, el tamaño del
40 intercalador K’ a ser usado se puede determinar fácilmente en base a un K’’ calculado a partir de (2). Una vez se definen los tamaños del segmento semilogarítmico (K’’), se puede obtener el tamaño del intercalador K’ a partir de los tamaños del segmento semilogarítmico (sin desviarse sustancialmente), por ejemplo,
1. Usando K’ = K’’. En otras palabras, se pueden usar los tamaños de segmentos semilogarítmicos como tamaños de intercalador válidos directamente.
2. Usando K’ = K’’ cuando K’’ no es un múltiplo de (2m–1), de otro modo usando K’=K’’+ 0 (K’’) cuando K’’ es un múltiplo de (2m–1), en donde m es una longitud de memoria de un codificador convolucional constituyente, y 0 (K’’) es un entero positivo o negativo pequeño no igual a un múltiplo de (2m–1). Esto es útil si los códigos convolucionales constituyentes son de mordedura de cola, donde no son válidos múltiplos de (2m–1). Los tamaños definidos por el método de segmentación semilogarítmica de (2) pueden incluir algunas veces tamaños que son tamaños de intercalador inadecuados para turbo-codificación. Por ejemplo, la versión de mordedura de cola del turbo-codificador del 3GPP de ocho estados (m=3) no soporta tamaños de bloque de entrada (es decir, tamaños de intercalador) que sean múltiplos de 7 (es decir, 2m–1). En tales casos, siempre que la ecuación (2) provoque un tamaño que es múltiplo de 2m–1, se sustrae o añade un valor pequeño a él de manera que el tamaño resultante ya no es un múltiplo de 2m–1. Por ejemplo, si a=2, fmin =8, y fmax =15, entonces los tamaños de intercalador de la forma K’=K’’=2px14 son múltiplos de 7, y por lo tanto son tamaños de intercalador no válidos cuando se usa TC del 3GPP de mordedura de cola. Por lo tanto, este caso se debe manejar con una ligera alteración, por ejemplo, usando K’ = K’’ cuando K’’ no es un múltiplo de 7; de otro modo usando K’=K’’+0 (K’’)
cuando K’’ es un múltiplo de 7, y 0 (K’’) es un entero positivo o negativo pequeño no igual a un múltiplo de 7.
Para los tamaños K’’ que son una elección no válida para intercaladores de mordedura de cola, una forma simple para determinar un tamaño de intercalador relacionado K’ es sustraer (la adición es sólo como válido) dxC de K’’, donde d es un entero positivo pequeño y d no es un múltiplo de 7. Para un intercalador de ARP, C puede ser una longitud de ciclo de intercalador de ARP usada para los tamaños de bloque próximos a K’ en el conjunto de tamaños disponibles. (Recordar que el tamaño del bloque de un intercalador de ARP es un múltiplo de las longitudes de ciclo C.) En otras palabras,
K’ = K’’- dC (3)
o
K’ = K’’+ dC (4)
cuando K’’ es un múltiplo de 7. Dado que C normalmente es un entero par, tal como, 4, 8, 12, o 16, este ajuste da dos ventajas, concretamente, (a) K’ no es un múltiplo de 7, y (b) K’ es un múltiplo de C y por lo tanto se puede diseñar un intercalador de ARP para el tamaño K’.
Por simplicidad, se puede elegir el mismo d para todos los K’’ que necesitan ser ajustados. Una consideración importante para elegir d es que debería ser tal que todos los tamaños obtenidos por (3) o (4) tengan un número considerable de factores, que permita soportar una amplia gama de paralelismo para el intercalador CF definido de esta manera.
Ejemplo de selección del tamaño del intercalador
Para LTE del 3GPP, no es esencial definir un intercalador CF para cada tamaño de bloque entre 40 y 5114 bits. Un conjunto limitado o uno pequeño de intercaladores CF bien diseñados es suficiente para cubrir todos los tamaños de bloques. Para tamaños de bloques indefinidos (es decir, para los que no están definidos los intercaladores CF), se puede usar el rellenado con ceros (es decir, bits de relleno adjuntos) de manera efectiva, como se describió anteriormente.
Como un primer ejemplo, se definen un conjunto de intercaladores adecuado para cubrir los tamaños de bloques de información para Evolución de Largo Plazo (LTE) del 3GPP en la tabla 105 en base al método de segmentación semilogarítmica descrito anteriormente. Específicamente,
K’’ = 2p x f, p=4, 5, …, 9; f = 8, 9, …, 15, (5)
y K’ se determina a partir de K’’. Los tamaños de intercalador se determinan como sigue: usando K’ = K’’ y para p=4, 5, 6, 7, 8, 9 y f =8, 9, 10, 11, 12, 13, 15, y usando K’ = K’’- dC para p=4, 5, 6, 7, 8, 9 y f =14, cubriendo K desde 128 hasta 7680. Los últimos tres tamaños (f=13, 14, 15) correspondientes a p=9 se pueden quitar de manera que Kmax = 6144, con Kmin=128. La ecuación (3) se usa junto con d = 2 cuando f=14 (es decir, para evitar los tamaños de intercalador que son múltiplos de 7) para manejar el TC de mordedura de cola. Una vez que se determinan los tamaños de intercalador en 105, se puede diseñar un intercalador CF para cada tamaño de intercalador.
Dado cualquier tamaño de bloque de información K, la circuitería 103 puede determinar el tamaño del intercalador K’ a ser usado por K eligiendo el valor más pequeño de K’ desde 105 que es mayor o igual que K. Con K conocido, y fmin = 2b, fmax = 2b+1-1, donde b es un entero, se pueden calcular los parámetros p y f como sigue,
En particular, para los parámetros en (5), b=3, y
Con los parámetros p y f, se puede calcular el tamaño del bloque K’ usando (2) o (5), y además, cuando f es un
5 múltiplo de 7 y se usa la codificación de mordedura de cola, se puede usar además un tamaño del intercalador calculado usando (3) o (4). Los parámetros asociados con el intercalador de tamaño K’ entonces se buscan a partir de los medios de almacenamiento para el parámetro de intercalador 105, que normalmente está almacenado en memoria para el dispositivo de comunicación.
Como un segundo ejemplo, un conjunto sugerido de tamaños de intercalador completo K’ para cubrir K desde 40 a 10 8192 bits son:
Para K’ E[264, 8192], K’ = 2p x f, p=3, …, 7; f = 33, 34, …, 64;
Para K’ por debajo de 264, se usa un tamaño de paso de 8 de manera que K’ = 40, 48, …, 256.
Estos tamaños también se enumeran más adelante.
40
48 56 64 72 80 88 96 104 112
120
128 136 144 152 160 168 176 184 192
200
208 216 224 232 240 248 256 264 272
280
288 296 304 312 320 328 336 344 352
360
368 376 384 392 400 408 416 424 432
440
448 456 464 472 480 488 496 504 512
528
544 560 576 592 608 624 640 656 672
688
704 720 736 752 768 784 800 816 832
848
864 880 896 912 928 944 960 976 992
1008
1024 1056 1088 1120 1152 1184 1216 1248 1280
1312
1344 1376 1408 1440 1472 1504 1536 1568 1600
1632
1664 1696 1728 1760 1792 1824 1856 1888 1920
1952
1984 2016 2048 2112 2176 2240 2304 2368 2432
2496
2560 2624 2688 2752 2816 2880 2944 3008 3072
3136
3200 3264 3328 3392 3456 3520 3584 3648 3712
3776
3840 3904 3968 4032 4096 4224 4352 4480 4608
4736
4864 4992 5120 5248 5376 5504 5632 5760 5888
6016
6144 6272 6400 6528 6656 6784 6912 7040 7168
7296
7424 7552 7680 7808 7936 8064 8192
Señalar que los tamaños mostrados anteriormente son solamente un ejemplo definido para un K’ máximo de 8192
bits y usado en el estudio de comparación de los 42 tamaños de bloque de información. Si se usa otro máximo como 6144 bits, entonces cualquier K’ mayor que el máximo se quitará de la lista. También, por simplicidad, los tamaños no consideraban la diferencia entre usar códigos constituyentes encolados o de mordedura de cola. Si el turbo5 codificador está hecho de mordedura de cola, entonces no se pueden usar los K’ que son múltiplos de 7. Estos o bien serán quitados o bien modificados como se describió anteriormente. Finalmente, se pueden añadir tamaños de intercalador adicionales a aquéllos anteriores para disminuir la separación entre intercaladores. Por ejemplo, si se usa una separación máxima de 64, se definirán intercaladores adicionales entre medias de los intercaladores con separación 128 en la tabla. Si se usa entonces mordedura de cola y se quita K’ múltiplo de 7, la separación máxima
10 es entonces de nuevo 128.
Aún otro ejemplo de selección del tamaño de intercalador, el sistema puede usar un intercalador CF solamente cuando el bloque de transporte (TB) (número de bits de información anteriores a la segmentación) está por encima de un cierto valor. Por ejemplo, si el tamaño máximo definido es 5114, cuando un bloque de transporte es mayor que
5114 se puede usar un intercalador CF tal como ARP o QPP. En estos casos, la segmentación puede crear K’
15 menor que 5114, pero el intercalador CF se usa para esa K’. Un K por lo tanto puede ser tanto turbo intercalado usando un primer intercalador (tal como un intercalador del 3gpp, no-CF, u otro intercalador) como un segundo intercalador (tal como un intercalador libre de contención), dependiendo del tamaño del bloque de transporte anterior a la segmentación. El primer y segundo intercalador pueden tener diferentes conjuntos de K’. Por ejemplo, el primer intercalador puede ser definido considerablemente para todo K=K’, mientras que el segundo intercalador se define
20 con K’ como anteriormente. En algunos casos, se puede usar un procesador único o menos para el primer intercalador.
Ejemplo de intercalador de ARP
Un subconjunto de 42 intercaladores ARP CF adecuados para cubrir los tamaños del bloque de información para Evolución de Largo Plazo (LTE) del 3GPP se muestra en la Tabla 1. La longitud del ciclo C=4 se usa para K<1024, 25 C=8 para K>1024. Una longitud de ciclo más grande C conduce a una distancia mínima mejor dmin en tamaños de bloque mayores. También, en lugar de A=3, se usa A=0 para todos los tamaños. Además, en lugar de permitir que
cada K tenga un vector a (·) y f (·) diferente, solamente se permiten un conjunto pequeño de valores de a y P para reducir almacenamiento de la definición de intercalador. El conjunto de valores de a y P permitidos se define más adelante.
30 Cuando la longitud del ciclo C=4,
a =
[0 0 4 4
0 4 4 0];
f =
35 [0 4 12 8
0 12 24 8
0 24 8 12
0 16 8 4
0 12 24 4
40 0 12 16 24
0 8 20 24
0 4 8 12];
Cuando la longitud del ciclo C=8,
a =
45 [0 0 8 0 8 0 8 8
8 0 8 8 8 0 0 0]; f =
[0 16 24 88 64 8 32 40 0 64 136 160 48 192 24 120 0 24 80 40 16 96 64 32 0 8 72 40 88 48 32 96 0 16 88 96 56 24 48 64 0 8 48 32 64 88 40 56 0 32 8 56 80 16 72 48 0 72 64 48 88 8 184 248 0 16 48 24 8 32 40 88 0 16 120 152 24 216 64 240 0 32 176 216 136 64 224 248 0 16 40 96 88 80 32 48 0 24 208 112 224 168 184 48 0 8 16 64 24 48 80 32 0 8 40 16 96 80 56 88];
De esta manera cada fila de a se podría usar como un vector a , cada fila de f se puede usar como un vector
f . Los índices a y b se definen por lo tanto para cada K para indexar en las filas de a y f , donde 1 <=a<=2, 1 <=b<=2C. El método de indexación reduce considerablemente el almacenamiento del intercalador de ARP dado que solamente necesitan ser almacenados por intercalador P0 (8bits), el índice a (1 bit) y b (3-4 bits). La longitud de ciclo
C se puede determinar en base a si K es menor que 1024 bits. Además, la cantidad de almacenamiento de parámetros para usar C=8 frente a C=4 es solamente la diferencia en el tamaño de la matriz de a y f , que es trivial, que permite por lo tanto la libertad de usar una C mayor si es necesario.
Los medios de almacenamiento para el parámetro del intercalador 105 pueden almacenar parámetros del
intercalador de ARP usando los valores de K’, C, P0, a (·) y f (·) que se toman a partir de al menos una fila de la Tabla 1. El intercalador 201 puede usar un intercalador de ARP con los valores de K’, C, P0, a (·) y f (·) que se toman a partir de al menos una fila de la tabla siguiente:
Tabla 1. Parámetros del conjunto de intercaladores de ARP definidos para LTE. Se usa un desplazamiento constante A=0 para todos los tamaños. Se enumeran posibles paralelismos M que usan ventanas naturalmente paralelas menores o iguales a 32.
K_info
K C P0 Índice a Índice b Paralelismo disponible
40
40
4 41 1 6 1, 2, 5, 10
52
56 4 13 1 1 1, 2, 7, 14
K_info
K C P0 Índice a Índice b Paralelismo disponible
67
72 4 13 1 4 1, 2, 3, 6, 9, 18
87
88 4 75 2 3 1, 2, 11, 22
99
104 4 23 1 1 1, 2, 13, 26
113
120 4 73 1 8 1, 2, 3, 5, 6, 10, 15, 30
129
136 4 11 1 6 1, 2, 17
146
152 4 129 1 5 1, 2, 19
167
168 4 25 1 4 1, 2, 3, 6, 7, 14, 21
190
192 4 43 1 1 1, 2, 3, 4, 6, 8, 12, 16, 24
216
216
4 133 1 1 1, 2, 3, 6, 9, 18, 27
246
248 4 57 2 6 1, 2, 31
280
280
4 33 2 1 1, 2, 5, 7, 10, 14
319
320 4 207 1 4 1, 2, 4, 5, 8, 10, 16, 20
363
368 4 87 2 3 1, 2, 4, 23
384
384
4 91 1 1 1, 2, 3, 4, 6, 8, 12, 16, 24, 32
414
416 4 77 1 1 1, 2, 4, 8, 13, 26
471
472 4 61 1 4 1, 2
536
544 4 237 1 1 1, 2, 4, 8, 17
611
624 4 49 1 7 1, 2, 3, 4, 6,12, 13, 26
695
704 4 43 1 4 1, 2, 4, 8, 11, 16, 22
792
800 4 151 1 1 1, 2, 4, 5, 8, 10, 20, 25
902
912 4 49 1 1 1, 2, 3, 4, 6, 12, 19
1027
1056 8 217 2 1 1, 2, 3, 4, 6, 11, 12, 22
1169
1184 8 49 1 11 1, 2, 4
1331
1344 8 253 2 2 1, 2, 3, 4, 6, 7, 8, 12, 14, 21, 24, 28
1536
1536
8 187 2 8 1, 2, 3, 4, 6, 8, 12, 16, 24, 32
1725
1728 8 65 1 3 1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 27
1965
1984 8 121 1 14 1, 2, 4, 8, 31
2237
2240 8 137 2 6 1, 2, 4, 5, 7, 8,10, 14, 20, 28
2304
2304
8 193 1 4 1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 32
2547
2560 8 157 1 3 1, 2, 4, 5, 8, 10, 16, 20, 32
2900
2944 8 121 1 7 1, 2, 4, 8, 16, 23
K_info
K C P0 Índice a Índice b Paralelismo disponible
3302
3328 8 137 2 1 1, 2, 4, 8, 13, 16, 26, 32
3760
3776 8 119 1 3 1, 2, 4, 8
4096
4096
8 169 2 11 1, 2, 4, 8, 16, 32
4281
4352 8 179 1 3 1, 2, 4, 8, 16, 17, 32
4874
4992 8 211 1 3 1, 2, 3, 4, 6, 8, 12, 13, 16, 24, 26
5550
5632 8 237 1 7 1, 2, 4, 8, 11, 16, 22, 32
6144
6144
8 253 2 13 1, 2, 3, 4, 6, 8, 12, 16, 24, 32
7195
7296 8 181 1 7 1, 2, 3, 4, 6, 8, 12, 16, 19, 24
8192
8192
8 203 1 7 1, 2, 4, 8, 16, 32
Propiedades del intercalador de ARP
Hay diversas formas para modificar la tabla del intercalador. Por ejemplo, se puede reducir almacenamiento usando un conjunto de parámetros de ARP que aplican a más de un tamaño de intercalador. Por ejemplo, los intercaladores de 1024 bit, 2048 bit, 4096 bit todos pueden usar los mismos parámetros de ARP. En otra variación, se pueden
5 rediseñar algunas de las filas de la tabla en base a diferentes valores C, si se necesita. En otra mejora, algunas de las entradas de los parámetros (por ejemplo, a (0) y f (0)) pueden ser fijas (por ejemplo, siempre cero).
A continuación están algunos comentarios adicionales sobre el procedimiento de selección de intercalador usado para obtener la Tabla 1.
1. Se elige un valor de Desplazamiento constante A = 3 o A = 0 para reducir el almacenamiento.
10 2. En base al almacenamiento y estudio de rendimiento, se usa una longitud de ciclo C=4 para K’<1024, C=8 para K’>1024.
3. Para cada tamaño de bloque, se realizaron simulaciones para asegurar que el rendimiento del intercalador de ARP (con codificación de mordedura de cola) está cerca de o es mejor que el rendimiento con el intercalador definido en la especificación para Turbo-código del 3GPP.
15 4. La Tabla 1, en base a (5) se definió para cubrir un conjunto particular de tamaños de intercalador (por ejemplo, 40 a 8192). Si se prefiere, se pueden eliminar o añadir otros tamaños de intercalador.
5. Todos los intercaladores definidos en 105 que no son múltiplos de 7 se pueden usar o bien para turbo-códigos encolados o bien de mordedura de cola dependiendo de la degradación de rendimiento permisible. Aquéllos que son múltiplos de 7 también se pueden usar encolados.
20 Ejemplo de intercalador de QPP
Un subconjunto de 42 intercaladores CF de QPP adecuados para cubrir tamaños de bloque de información para la Evolución de Largo Plazo (LTE) del 3GPP se muestra en la Tabla 2. Estos intercaladores tienen un polinomio cuadrático inverso de manera que el desintercalador también es QPP.
Los medios de almacenamiento para el parámetro del intercalador 105 pueden almacenar parámetros de 25 intercalador de QPP usando los valores de K’, f1, f2 que se toman de al menos una fila de la Tabla 2. El intercalador
201 puede usar un intercalador de QPP con los valores de K’, f1, f2 que se toman de al menos una fila de la siguiente tabla: Tabla 2. Parámetros del conjunto de interca ladores de QPP definidos para LTE. Se enumeran posibles paralelismos menores o iguales a 32.
K_info
K f1 f2 Paralelismo disponible
40
40
37 20 1, 2, 4, 5, 8, 10, 20
K_info
K f1 f2 Paralelismo disponible
52
56 19 42 1, 2, 4, 7, 8, 14, 28
67
72 19 60 1, 2, 3, 4, 6, 8, 9, 12, 18, 24
87
88 5 22 1, 2, 4, 8, 11, 22
99
104 45 26 1, 2, 4, 8, 13, 26
113
120 103 90 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30
129
136 19 102 1, 2, 4, 8, 17
146
152 135 38 1, 2, 4, 8, 19
167
168 101 84 1, 2, 3, 4, 6, 7, 8, 12, 14, 21, 24, 28
190
192 85 24 1, 2, 3, 4, 6, 8, 12, 16, 24, 32
216
216
13 36 1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 27
246
248 33 62 1, 2, 4, 8, 31
280
280
103 210 1, 2, 4, 5, 7, 8, 10, 14, 20, 28
319
320 21 120 1, 2, 4, 5, 8, 10, 16, 20, 32
363
368 25 138 1, 2, 4, 8, 16, 23
384
384
25 240 1, 2, 3, 4, 6, 8, 12, 16, 24, 32
414
416 77 52 1, 2, 4, 8, 13, 16, 26, 32
471
472 175 118 1, 2, 4, 8
536
544 35 68 1, 2, 4, 8, 16, 17, 32
611
624 41 234 1, 2, 3, 4, 6, 8, 12, 13, 16, 24, 26
695
704 155 44 1, 2, 4, 8, 11, 16, 22, 32
792
800 207 80 1, 2, 4, 5, 8, 10, 16, 20, 25, 32
902
912 85 114 1, 2, 3, 4, 6, 8, 12, 16, 19, 24
1027
1056 229 132 1, 2, 3, 4, 6, 8, 11, 12, 16, 22, 24, 32
1169
1184 217 148 1, 2, 4, 8, 16, 32
1331
1344 211 252 1, 2, 3, 4, 6, 7, 8, 12, 14, 16, 21, 24, 28, 32
1536
1536
71 48 1, 2, 3, 4, 6, 8, 12, 16, 24, 32
1725
1728 127 96 1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 27, 32
1965
1984 185 124 1, 2, 4, 8, 16, 31, 32
2237
2240 209 420 1, 2, 4, 5, 7, 8, 10, 14, 16, 20, 28, 32
2304
2304
253 216 1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 32
2547
2560 39 240 1, 2, 4, 5, 8, 10, 16, 20, 32
K_info
K f1 f2 Paralelismo disponible
2900
2944 231 184 1, 2, 4, 8, 16, 23, 32
3302
3328 51 104 1, 2, 4, 8, 13, 16, 26, 32
3760
3776 179 236 1, 2, 4, 8, 16, 32
4096
4096
95 192 1, 2, 4, 8, 16, 32
4281
4352 477 408 1, 2, 4, 8, 16, 17, 32
4874
4992 233 312 1, 2, 3, 4, 6, 8, 12, 13, 16, 24, 26, 32
5550
5632 45 176 1, 2, 4, 8, 11, 16, 22, 32
6144
6144
263 480 1, 2, 3, 4, 6, 8, 12, 16, 24, 32
7195
7296 137 456 1, 2, 3, 4, 6, 8, 12, 16, 19, 24, 32
8192
8192
417 448 1, 2, 4, 8, 16, 32
La FIG. 3 es un diagrama de bloques del receptor 300. En la entrada, la circuitería de manejo del relleno 302 recibe un vector de señal que puede haber sido transmitido a través del canal, por ejemplo, sobre el aire. La circuitería 306 entonces determina el tamaño del intercalador K’ que se puede hacer de una forma similar como se trató anteriormente, por ejemplo realizando una búsqueda de tabla desde el almacenamiento 308, o a través de cálculos 5 tales como (7), (8) y (2). Por lo tanto, dado el tamaño del bloque de información K, el descodificador 304 usa el mismo tamaño de intercalador K’ que fue usado por el codificador 101. La circuitería de manejo de relleno 302 se usa para procesar adecuadamente el vector de señal recibida y las posiciones de bits de relleno (por ejemplo, si se conocen las posiciones de bits de relleno, entonces se puede fijar las magnitudes LLR correspondientes a magnitudes muy altas durante la descodificación). Entonces el turbo-descodificador 304 realiza la descodificación y
10 obtiene una estimación û del bloque de entrada de longitud K’. Finalmente la circuitería de extracción de bloque de información 310 extrae un bloque de información estimado a partir de û. Aunque la circuitería de manejo de relleno 302 se muestra fuera el turbo-descodificador por facilidad de explicación, estos dos se pueden combinar en la implementación.
La FIG. 4 es un diagrama de bloques del turbo-descodificador de la FIG. 3. Como es evidente, el intercalador 402 y
15 el desintercalador 401 existen entre la circuitería de descodificación 403 y la circuitería de descodificación 404. La descodificación iterativa tiene lugar como se conoce en la técnica, no obstante, a diferencia de los descodificadores de la técnica anterior, el tamaño del intercalador K’ está relacionado con K’’ donde K’’ es de un conjunto de tamaños; en donde el conjunto de tamaños comprende K’’ = ap x f, pmin < p < pmax; fmin < f < fmax, en donde a es un entero, f es un entero continuo entre fmin y fmax, y p toma valores enteros entre pmin y pmax, a>1, pmax > pmin, pmin>1. El parámetro
20 Krelleno puede ser necesario o no por el turbo-descodificador 304, etiquetado de esta manera como la línea continua en FIG. 4.
Como se trató anteriormente, en una realización K’ = K’’. Aún en otra realización K’ = K’’ cuando K’’ no es un múltiplo de (2m-1), usando de otro modo K’=K’’+ 0 (K’’) cuando K’’ es un múltiplo de (2m-1), en donde m es la longitud de la memoria de un codificador convolucional constituyente, y 0 (K’’) es un entero positivo o negativo pequeño no igual a
25 un múltiplo de (2m-1). En una realización, m=3.
El intercalador 402 puede utilizar la permutación I (i) = (iP0 + A + d(i))mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, P0 es un número que es relativamente primo con K’, A es una constante, C es un número pequeño que divide K’, y d(i) es un vector oscilatorio de pequeña amplitud de la forma d(i) = f (i mod C) + P0 xa (i mod C) donde a (·) y f (·) son vectores cada uno de longitud C,
aplicados periódicamente para 0 < i < K’-1. Los valores de K’, C, P0, a (·) y f (·) se toman preferiblemente de una fila de la Tabla 1. El desintercalador 401 realiza una función inversa del intercalador 402.
El intercalador 402 puede utilizar la permutación I (i) = (f1 x i + f2 x i2) mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, y f1 y f2 son los factores que definen el intercalador. Los valores de K’, f1, f2 se toman preferiblemente de una fila de la Tabla 2. El desintercalador 401 realiza una función inversa del intercalador 402.
La FIG. 5 es un diagrama de flujo que muestra la operación del transmisor 100. El flujo lógico comienza en el paso 501 donde la circuitería 103 determina el tamaño del intercalador K’ que está relacionado con K’’ donde K’’ es de un conjunto de tamaños; en donde el conjunto de tamaños comprende K’’ = ap x f, pmin < p < pmax; fmin < f < fmax, en donde a es un entero, f es un entero continuo entre fmin y fmax, y p toma valores enteros entre pmin y pmax, a>1, pmax > pmin, pmin>1. Como se trató anteriormente, en una realización K’ = K’’. Aún en otra realización K’ = K’’ cuando K’’ no
es un múltiplo de (2m-1), usando de otro modo K’=K’’+ 0 (K’’) cuando K’’ es un múltiplo de (2m-1), en donde m es la
longitud de la memoria de un codificador convolucional constituyente, y 0 (K’’) es un entero positivo o negativo pequeño no igual a un múltiplo de (2m-1). En una realización, m=3.
En el paso 503 la circuitería de inserción de relleno 109 recibe un bloque de información de tamaño K y rellena el bloque de información de tamaño K en un bloque de entrada u de tamaño K’ y saca el bloque de entrada u. El intercalador 201 entonces intercala el bloque de entrada de tamaño K’ (paso 507) (preferiblemente usando un intercalador libre de contención) y envía el bloque intercalado de tamaño K’ a la circuitería de codificación 203 (paso 509). Finalmente, en el paso 511, se codifican el bloque de entrada original y el bloque de entrada intercalado.
Como se trató anteriormente, el paso de intercalar el bloque de entrada puede comprender el paso de usar una permutación I (i) = (iP0 + A + d(i))mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de bit después de intercalar, I (i) es el índice de bit antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en bits, P0 es un número que es relativamente primo con K’, A es una constante, C es un número
pequeño que divide K’, y d(i) es un vector oscilatorio de pequeña amplitud de la forma d(i) = f (i mod C) + P0 xa (i
mod C) donde a (·) y f (·) son vectores cada uno de longitud C, aplicados periódicamente para 0 < i < K’-1. Los
valores de K’, C, P0, a (·) y f (·) se toman preferiblemente de la Tabla 1. El paso de intercalar el bloque de entrada también puede comprender el paso de usar una permutación I (i) = (f1 x i + f2 x i2)mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, y f1 y f2 son los factores que definen el intercalador. Los valores de K’, f1, f2 se toman preferiblemente de una fila de la Tabla 2.
La FIG. 6 es un diagrama de flujo que muestra la operación del receptor de la FIG. 3. El flujo lógico comienza en el paso 601 donde la circuitería 306 determina el tamaño del intercalador K’. En el Paso 603, la Circuitería 302 añade la información de bits de relleno al vector de señal recibida, por ejemplo, si se conocen los bits de relleno y las posiciones de bit de relleno la circuitería 302 puede fijar a magnitudes altas las Relaciones de Probabilidad Logarítmicas (LLR) de esas posiciones en la entrada del turbo-descodificador. En el paso 607 el turbodescodificador descodifica el bloque de entrada del descodificador usando el intercalador y el desintercalador de tamaño K’ y saca un û estimado del bloque de entrada de longitud K’. En el paso 609 la circuitería de extracción del bloque de información 310 quita los bits de relleno para obtener una estimación del bloque de información de longitud K. Finalmente en el Paso 611, se saca el bloque de información estimada.
Mientras que la invención se ha mostrado y descrito de manera particular con referencia a una realización particular, se entenderá por aquellos expertos en la técnica que se pueden hacer diversos cambios en la forma y detalles dentro de la misma sin apartarse del alcance de la invención. En un ejemplo, la tabla del intercalador se puede mejorar más para manejar casos especiales, incluyendo: (a) Usar un conjunto adicional de tamaños de intercalador definidos para cubrir cualquier tamaño de bloque especial que deba ser manejado, por ejemplo, sin bits de relleno o con menos bits de relleno. (b) Los tamaños del intercalador se pueden ajustar ligeramente añadiendo o sustrayendo un valor pequeño de los tamaños de segmento semilogarítmico. En otro ejemplo, aunque la invención se ha descrito anteriormente suponiendo un turbo-codificador de entrada binaria, el mismo principio se puede aplicar cuando el turbo-codificador tome símbolos como entrada. Por ejemplo, un turbo-código duo-binario toma un símbolo de dos bits binarios a la vez, y el turbo intercalador permuta los símbolos (se puede realizar aleatorización adicional tal como alternar los bits dentro de un símbolo). En tal caso, el tamaño del bloque de entrada se mide en símbolos, y el tamaño del intercalador es igual al número de símbolos en el bloque de entrada. En otro ejemplo, aunque la descripción anterior supone que los tamaños del intercalador y los parámetros del intercalador se almacenan en una tabla de búsqueda, es posible que se puedan determinar a través de otros medios tales como un cálculo algebraico. Aún en otro ejemplo, aunque la descripción anterior supone un turbo-código, el método también es aplicable a otros esquemas FEC incluyendo, por ejemplo, códigos de comprobación de paridad de baja densidad (LDPC), Códigos Reed-Solomon (RS), etc. Se pretende que tales cambios queden dentro del alcance de las siguientes reivindicaciones.

Claims (2)

  1. REIVINDICACIONES
    1. Un método para operar un turbo-descodificador, el método que comprende los pasos de:
    recibir un vector de señal; y
    turbo-descodificar el vector de señal recibido usando un intercalador (402) de tamaño K’ y una permutación I (i) = (f1 x i + f2 x i2)mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, y f1 y f2 son los factores que definen el intercalador (402) y en donde los valores de K’, f1, f2 se toman de al menos una fila de la siguiente tabla:
    K’
    f1 f2
    40
    37 20
    56
    19 42
    72
    19 60
    104
    45 26
    120
    103 90
    136
    19 102
    152
    135 38
    168
    101 84
    192
    85 24
    216
    13 36
    248
    33 62
    280
    103 210
    320
    21 120
    368
    25 138
    384
    25 240
    416
    77 52
    472
    175 118
    544
    35 68
    624
    41 234
    704
    155 44
    800
    207 80
    912
    85 114
    1056
    229 132
    1184
    217 148
    1344
    211 252
    1536
    71 48
    K’
    f1 f2
    1728
    127 96
    1984
    185 124
    2240
    209 420
    2304
    253 216
    2560
    39 240
    2944
    231 184
    3328
    51 104
    3776
    179 236
    4096
    95 192
    4352
    477 408
    4992
    233 312
    5632
    45 176
    6144
    263 480
    7296
    137 456
    8192
    417 448
  2. 2. Un aparato para operar un turbo-descodificador, el aparato que comprende:
    circuitería de recepción que recibe un vector de señal; y
    un turbo-descodificador (304) que descodifica el vector de señal recibida usando un intercalador (402) de tamaño K’ y una permutación I (i) = (f1 x i + f2 x i2)mod K’, donde 0 < i < K’-1 es el índice secuencial de las posiciones de símbolos después de intercalar, I (i) es el índice de símbolo antes del intercalado correspondiente a la posición i, K’ es el tamaño del intercalador en símbolos, y f1 y f2 son los factores que definen el intercalador (402); y en donde los valores de K’, f1, f2 se toman de al menos una fila de la siguiente tabla:
    K’
    f1 f2
    40
    37 20
    56
    19 42
    72
    19 60
    104
    45 26
    120
    103 90
    136
    19 102
    152
    135 38
    168
    101 84
    192
    85 24
    216
    13 36
    K’
    f1 f2
    248
    33 62
    280
    103 210
    320
    21 120
    368
    25 138
    384
    25 240
    416
    77 52
    472
    175 118
    544
    35 68
    624
    41 234
    704
    155 44
    800
    207 80
    912
    85 114
    1056
    229 132
    1184
    217 148
    1344
    211 252
    1536
    71 48
    1728
    127 96
    1984
    185 124
    2240
    209 420
    2304
    253 216
    2560
    39 240
    2944
    231 184
    3328
    51 104
    3776
    179 236
    4096
    95 192
    4352
    477 408
    4992
    233 312
    5632
    45 176
    6144
    263 480
    7296
    137 456
    8192
    417 448
ES11008483T 2006-11-30 2007-11-12 Turbo-descodificación con intercaladores QPP libres de contención Active ES2430361T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US86789906P 2006-11-30 2006-11-30
US867899P 2006-11-30
US11/683,024 US7949926B2 (en) 2006-11-30 2007-03-07 Method and apparatus for encoding and decoding data
US683024 2007-03-07

Publications (1)

Publication Number Publication Date
ES2430361T3 true ES2430361T3 (es) 2013-11-20

Family

ID=39186041

Family Applications (3)

Application Number Title Priority Date Filing Date
ES11008483T Active ES2430361T3 (es) 2006-11-30 2007-11-12 Turbo-descodificación con intercaladores QPP libres de contención
ES07864260T Active ES2381595T3 (es) 2006-11-30 2007-11-12 Turbo codificación con intercaladores QPP de libre contención
ES11008453T Active ES2397665T3 (es) 2006-11-30 2007-11-12 Turbo-codificación con intercaladores libres de contención

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES07864260T Active ES2381595T3 (es) 2006-11-30 2007-11-12 Turbo codificación con intercaladores QPP de libre contención
ES11008453T Active ES2397665T3 (es) 2006-11-30 2007-11-12 Turbo-codificación con intercaladores libres de contención

Country Status (12)

Country Link
US (2) US7949926B2 (es)
EP (3) EP2102989B1 (es)
JP (2) JP4858991B2 (es)
KR (1) KR101459801B1 (es)
CN (1) CN101601188B (es)
AR (1) AR064088A1 (es)
AT (1) ATE553541T1 (es)
BR (1) BRPI0721176B1 (es)
ES (3) ES2430361T3 (es)
PL (3) PL2102989T3 (es)
RU (1) RU2437208C2 (es)
WO (1) WO2008067149A2 (es)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2034613A4 (en) * 2006-05-17 2009-08-12 Nec Corp ENCODER TURBO AND HARQ PROCESSING METHOD APPLIED FOR TURBO ENCODER
US8356232B2 (en) 2006-10-06 2013-01-15 Motorola Mobility Llc Method and apparatus for encoding and decoding data
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
ES2562788T3 (es) 2007-09-25 2016-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Aleatorización de interferencia de elementos de canal de control
US8250448B1 (en) * 2008-03-26 2012-08-21 Xilinx, Inc. Method of and apparatus for implementing a decoder
US8284732B2 (en) 2009-02-03 2012-10-09 Motorola Mobility Llc Method and apparatus for transport block signaling in a wireless communication system
US9130728B2 (en) 2009-06-16 2015-09-08 Intel Mobile Communications GmbH Reduced contention storage for channel coding
CN101931419B (zh) * 2009-06-24 2013-04-03 中兴通讯股份有限公司 一种turbo码内交织器的计算方法及装置
JP5360218B2 (ja) 2009-08-25 2013-12-04 富士通株式会社 送信機、符号化装置、受信機、及び、復号化装置
US8495476B2 (en) * 2009-12-17 2013-07-23 Samsung Electronics Co., Ltd System and method for coding and interleaving for short frame support in visible light communication
US8448033B2 (en) * 2010-01-14 2013-05-21 Mediatek Inc. Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same
RU2010111027A (ru) * 2010-03-24 2011-09-27 ЭлЭсАй Корпорейшн (US) Устройство и способ для высокоскоростного расчета таблиц перемежения для нескольких стандартов беспроводной связи
EP2706667A1 (en) * 2010-09-13 2014-03-12 Hughes Network Systems, LLC Method and apparatus for a parameterized interleaver design process
CN101969310B (zh) * 2010-10-22 2012-11-28 上海交通大学 Turbo码并行译码器的QPP内交织器及其交织方法
KR101286021B1 (ko) * 2012-02-02 2013-07-19 주식회사 이노와이어리스 인터리버 인덱스 생성장치 및 방법
US9128888B2 (en) 2012-08-30 2015-09-08 Intel Deutschland Gmbh Method and apparatus for turbo decoder memory collision resolution
CN107659384A (zh) 2012-11-16 2018-02-02 华为技术有限公司 数据处理的方法和装置
CN103973319B (zh) * 2013-02-06 2017-04-19 联想(北京)有限公司 全整数Turbo码迭代译码的方法和系统
JP6193051B2 (ja) * 2013-08-15 2017-09-06 Necプラットフォームズ株式会社 アドレス生成回路及びアドレス生成方法
WO2015137712A1 (en) 2014-03-14 2015-09-17 Samsung Electronics Co., Ltd. Method and apparatus for controlling interleaving depth
US10135467B2 (en) * 2016-06-08 2018-11-20 Echelon Corporation Methods and systems for applying an improved interleaver for modems operating on power grid
CN110071728B (zh) * 2018-01-24 2021-02-05 华为技术有限公司 一种交织方法及交织设备
CN112398486B (zh) * 2020-11-10 2023-01-31 中国人民解放军战略支援部队信息工程大学 利用多种纠错方式进行优化的Turbo码交织参数识别方法及系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3037419B2 (ja) 1990-10-24 2000-04-24 ドイチエ トムソン−ブラント ゲゼルシヤフト ミツト ベシユレンクテル ハフツング データ伝送および/またはデータ記憶のための方法、エンコーダおよびデコーダ
US5898698A (en) * 1996-09-24 1999-04-27 Orckit Communications Ltd. Multiple codeword interleaver method and apparatus
KR19990012821A (ko) 1997-07-31 1999-02-25 홍성용 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법
US6339834B1 (en) * 1998-05-28 2002-01-15 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Interleaving with golden section increments
US6347385B1 (en) * 1998-08-03 2002-02-12 Nortel Networks Limited Interleavers for turbo code
US6427214B1 (en) 1998-09-29 2002-07-30 Nortel Networks Limited Interleaver using co-set partitioning
FR2785743A1 (fr) 1998-11-09 2000-05-12 Canon Kk Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
US6304991B1 (en) * 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
KR100346170B1 (ko) 1998-12-21 2002-11-30 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
FR2790621B1 (fr) * 1999-03-05 2001-12-21 Canon Kk Dispositif et procede d'entrelacement pour turbocodage et turbodecodage
US6314534B1 (en) * 1999-03-31 2001-11-06 Qualcomm Incorporated Generalized address generation for bit reversed random interleaving
CA2333032C (en) * 1999-04-02 2005-11-29 Samsung Electronics Co., Ltd. Interleaving / deinterleaving apparatus and method for a communication system
US6591381B1 (en) 1999-04-06 2003-07-08 Samsung Electronics Co., Ltd. 2-dimensional interleaving apparatus and method
FI106758B (fi) 1999-04-16 2001-03-30 Nokia Networks Oy Segmentointimekanismi lohkoenkooderia varten
US6775800B2 (en) 2000-01-03 2004-08-10 Icoding Technology, Inc. System and method for high speed processing of turbo codes
JP3399904B2 (ja) 2000-03-17 2003-04-28 松下電器産業株式会社 インタリーブアドレス生成装置
US6785859B2 (en) * 2000-08-04 2004-08-31 Texas Instruments Incorporated Interleaver for variable block size
US6854077B2 (en) * 2000-08-05 2005-02-08 Motorola, Inc. Apparatus and method for providing turbo code interleaving in a communications system
KR100713331B1 (ko) 2000-12-23 2007-05-04 삼성전자주식회사 부호분할다중접속 이동통신시스템의 반복복호 중지 장치 및 방법
US7170849B1 (en) 2001-03-19 2007-01-30 Cisco Systems Wireless Networking (Australia) Pty Limited Interleaver, deinterleaver, interleaving method, and deinterleaving method for OFDM data
US7236480B2 (en) 2002-06-07 2007-06-26 Sandbridge Technologies, Inc. Method of first interleaving of a two interleaver transmitter
WO2004055992A1 (en) * 2002-12-16 2004-07-01 Telecom Italia S.P.A. Addresses generation for interleavers in turbo encoders and decoders
JP3880542B2 (ja) 2003-05-19 2007-02-14 松下電器産業株式会社 誤り訂正符号化/復号化装置および誤り訂正符号化/復号化方法
JP3847733B2 (ja) 2003-06-12 2006-11-22 松下電器産業株式会社 マルチキャリア通信方法及びその通信装置
US7428669B2 (en) * 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
KR100739511B1 (ko) * 2004-06-25 2007-07-13 삼성전자주식회사 직교 주파수 분할 다중 방식을 사용하는 통신 시스템에서파일럿 신호 송수신 장치 및 방법
US7583586B2 (en) * 2004-07-02 2009-09-01 Samsung Electronics Co., Ltd Apparatus and method for transmitting/receiving pilot signal in communication system using OFDM scheme
US7409626B1 (en) * 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
WO2006082923A1 (ja) * 2005-02-03 2006-08-10 Matsushita Electric Industrial Co., Ltd. 並列インターリーバ、並列デインターリーバ及びインターリーブ方法
US7644340B1 (en) * 2005-07-08 2010-01-05 Marvell International Ltd. General convolutional interleaver and deinterleaver
US7925956B2 (en) * 2006-10-03 2011-04-12 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
US8356232B2 (en) 2006-10-06 2013-01-15 Motorola Mobility Llc Method and apparatus for encoding and decoding data
JP2010508790A (ja) * 2006-11-01 2010-03-18 クゥアルコム・インコーポレイテッド 高データレートのためのターボインターリーバ
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data

Also Published As

Publication number Publication date
BRPI0721176B1 (pt) 2020-04-07
ATE553541T1 (de) 2012-04-15
JP4858991B2 (ja) 2012-01-18
KR20090094262A (ko) 2009-09-04
BRPI0721176A2 (pt) 2014-03-18
WO2008067149A2 (en) 2008-06-05
US7949926B2 (en) 2011-05-24
EP2493079A1 (en) 2012-08-29
AR064088A1 (es) 2009-03-11
WO2008067149B1 (en) 2008-10-09
JP5396599B2 (ja) 2014-01-22
WO2008067149A3 (en) 2008-08-28
EP2493079B1 (en) 2013-09-18
RU2437208C2 (ru) 2011-12-20
JP2008141756A (ja) 2008-06-19
CN101601188A (zh) 2009-12-09
BRPI0721176A8 (pt) 2017-04-04
ES2397665T3 (es) 2013-03-08
JP2011147188A (ja) 2011-07-28
US20110197104A1 (en) 2011-08-11
ES2381595T3 (es) 2012-05-29
EP2102989A2 (en) 2009-09-23
EP2442450A2 (en) 2012-04-18
CN101601188B (zh) 2013-03-27
RU2009124925A (ru) 2011-01-10
KR101459801B1 (ko) 2014-11-13
US8850286B2 (en) 2014-09-30
US20080133998A1 (en) 2008-06-05
PL2493079T3 (pl) 2014-01-31
EP2442450B1 (en) 2012-12-19
PL2442450T3 (pl) 2013-04-30
EP2442450A3 (en) 2012-05-23
PL2102989T3 (pl) 2012-07-31
EP2102989B1 (en) 2012-04-11

Similar Documents

Publication Publication Date Title
ES2430361T3 (es) Turbo-descodificación con intercaladores QPP libres de contención
US7873893B2 (en) Method and apparatus for encoding and decoding data
US7925956B2 (en) Method and apparatus for encoding and decoding data
US6323788B1 (en) Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system
KR101331516B1 (ko) 절단된 인터리버들 및 디-인터리버들을 위한 능률적인 어드레스 생성기
JP5122480B2 (ja) 高速な符号化方法および復号方法ならびに関連する装置
US7100101B1 (en) Method and apparatus for concatenated and interleaved turbo product code encoding and decoding
US20080109618A1 (en) Parallel interleaving apparatus and method
KR20060106132A (ko) 연접 ldgm 부호 부호화/복호화 방법
Ould‐Cheikh‐Mouhamedou Reducing the complexity of distance measurement methods for circular turbo codes that use structured interleavers
Sunkara et al. Turbo code using a novel hybrid interleaver
Islam et al. Designing a sensible Block Semi-Random Interleaver for Turbo Codes