MXPA01007021A - Intercalacion de bloque para la turbocodificacion. - Google Patents

Intercalacion de bloque para la turbocodificacion.

Info

Publication number
MXPA01007021A
MXPA01007021A MXPA01007021A MXPA01007021A MXPA01007021A MX PA01007021 A MXPA01007021 A MX PA01007021A MX PA01007021 A MXPA01007021 A MX PA01007021A MX PA01007021 A MXPA01007021 A MX PA01007021A MX PA01007021 A MXPA01007021 A MX PA01007021A
Authority
MX
Mexico
Prior art keywords
matrix
elements
row
interleaver
frame
Prior art date
Application number
MXPA01007021A
Other languages
English (en)
Inventor
Jian Cui
Original Assignee
Nortel Networks Ltd
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 Nortel Networks Ltd filed Critical Nortel Networks Ltd
Publication of MXPA01007021A publication Critical patent/MXPA01007021A/es

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/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/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/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations

Landscapes

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

Abstract

Un intercalador recibe tramas de datos entrantes de tamano N. El intercalador indiza los elementos de la trama con una matriz indice de N1 x N2. El intercalador reacomoda (permuta) entonces en forma efectiva los datos al permutar las filas de la matriz indice. El intercalador utiliza la ecuacion I (j, k) = I (j, (?jk + ?j) modP) para permutar las columnas (que tienen el indice k) de cada fila (que tiene el indice j). P es al menos igual a N2, ?j es una constante que puede ser diferente para cada fila y cada ?j es un numero primo relativo con respecto a P. Despues de la permutacion, el intercalador emite los datos en un orden diferente al recibido (por ejemplo, recibe en forma secuencial fila por fila y emite en forma secuencial columna por columna).

Description

INTERCALACIÓN DE BLOQUE PARA LA TURBOCODIFICACION CAMPO DE LA INVENCIÓN Esta invención se relaciona en general con sistemas de comunicaciones y, de manera más particular, con intercaladores para realizar la modulación de código.
ANTECEDENTES DE LA INVENCIÓN Se ha encontrado que las técnicas para codificar canales de comunicación, conocidas como modulación codificada, mejoran el índice de errores binarios (BER por sus siglas en inglés) de los sistemas de comunicaciones electrónicas, tales como los sistemas de comunicación inalámbrica y por módem. La modulación turbocodificada ha demostrado ser un método de modulación práctico, de uso eficiente de la energía y de uso eficiente de la anchura de banda en canales de "error aleatorio", caracterizados por ruido blanco Gaussiano aditivo (AWGN por sus siglas en inglés) o por desvanecimiento. Estos canales de error aleatorio pueden encontrarse en, por ejemplo, el entorno del acceso múltiple por división de código (CDMA por sus siglas en inglés) . Ya que la capacidad de un entorno CDMA depende de la relación operativa de señal a ruido, un rendimiento mejorado se traduce en una mayor capacidad. Un aspecto de los turbocodificadores que los hace tan efectivos es un intercalador que permuta la trama de 52/l29 *"*-**•»-• fÉ_fi_lt_l_ ---^*» -'*-.- - .«» &<<__--£. _fcá*_._ datos original recibida o transmitida antes de la entrada a un segundo codificador. La permutación se logra mediante la aleatorización de porciones de la señal basada en uno o más algoritmos de aleatorización. Se ha mostrado que la 5 combinación de tramas de datos permutados con las tramas de datos originales alcanza bajas BER en canales con AWGN y con desvanecimiento. El proceso de intercalación aumenta la diversidad en los datos, en una forma tal que si el símbolo modulado se distorsiona en la transmisión, el error 10 puede ser recuperable mediante el uso, en el decodificador, de algoritmos de corrección de errores. Un intercalador convencional recolecta o trama los puntos de señal que serán transmitidos a un arreglo o matriz, en donde la matriz se llena secuencialmente fila 15 por fila. Después de que se ha tramado un número predefinido de puntos de señal, el intercalador se vacía leyendo secuencialmente las columnas de la matriz para su transmisión. Como resultado, los puntos de señal de la misma fila de la matriz que estaban cercanos entre sí en el 20 flujo de punto de señal original, están separados por un número de puntos de señal igual al número de filas de la matriz o arreglo. Idealmente, el número de columnas y filas se escogerían, de tal forma que los puntos de señal interdependientes, después de la transmisión, estarían 25 separados por más que la longitud esperada de una ráfaga de 52/l29 -* errores del canal . La intercalación no uniforme logra la "máxima dispersión" de los datos y el "máximo desorden" de la secuencia de salida. De este modo, la redundancia introducida por los dos codificadores convolucionales está más uniformemente extendida en la secuencia de salida del turbocodificador . La distancia mínima se aumenta a valores mucho mayores que para la intercalación uniforme. Un problema persistente en la intercalación no uniforme es la manera de implementar en forma práctica la intercalación, al tiempo que se obtiene la suficiente "no-uniformidad" y se reducen al mínimo las compensaciones por retraso que limitan el uso en aplicaciones con requerimientos de tiempo real . El hallazgo de un intercalador efectivo es un tema común en las actividades estándar del CDMA de tercera generación. Se ha determinado y, en general se ha acordado que, conforme el tamaño de la trama se aproxima al infinito, el intercalador más efectivo es el intercalador aleatorio. Sin embargo, para tamaños de trama finitos, la decisión en cuanto al intercalador más efectivo está aún abierta a la discusión. Por consiguiente, existe la necesidad de sistemas y métodos para intercalar códigos que mejoren la no- uniformidad en tamaños de trama finitos. 5 /l29 Í-___ ___ ... __________.. _______-!_ _ , .«._ ._.,...,, ... ... . „._,,___ ,...„.,_„ __-.., .... „«__A_ _- A-faiüJ También existe la necesidad de sistemas y métodos para intercalar códigos que sean relativamente sencillos de implementar. Así, es un objeto de la presente invención proporcionar sistemas y métodos para intercalar códigos que mejoren la no-uniformidad en tamaños de trama finitos. También es un objeto de la presente invención proporcionar sistemas y métodos para intercalar códigos que sean relativamente sencillos de implementar. Estos y otros objetos de la invención serán evidentes para los experimentados en la técnica, a partir de la siguiente descripción de la misma.
SUMARIO DE LA INVENCIÓN Estos objetivos así como otros objetivos pueden lograrse mediante la presente invención, que intercala una trama de datos, en donde la trama de datos tiene un tamaño predeterminado y está constituida por porciones. Una modalidad de la invención incluye un intercalar estas tramas de datos. El intercalador incluye una memoria de entrada, configurada para almacenar una trama de datos recibida como un arreglo organizado en filas y columnas, un procesador conectado a la memoria de entrada y configurado para permutar la trama de datos recibida, de conformidad con la ecuación D(j,k)=D (j , (ajk + ßj)modP) y una memoria de 52/129 ___..- _ ,« ...| ft||¡fcfr.¿-___________.....__<_,_,_. - . ^ _._____J.. _ ___,- __,. *¿,»_aa. ___,i._t trabajo en comunicación eléctrica con el procesador y configurada para almacenar la versión permutada de la trama de datos. Los elementos de la ecuación son como sigue: D es la trama de datos, j y k son los índices de las filas y las columnas, respectivamente, de la trama de datos, ayß son los conjuntos de constantes seleccionados de conformidad con la fila presente, y P y cada a-, son números primos relativos (el término "números primos relativos" denota un conjunto de números que no tienen otro divisor común diferente de 1. Los miembros de un conjunto de números primos relativos, considerados por sí mismos, no necesitan ser números primos) . Otra modalidad de la invención incluye un método para almacenar una trama de datos e indizarla mediante una matriz índice I de índice Ni x N2/ en donde el producto de i y N2 es al menos igual a N. Los elementos de la matriz índice indican posiciones de los elementos de la trama de datos. Los elementos de la trama de datos pueden almacenarse en cualquier forma conveniente y no necesitan estar organizados como una matriz. El método incluye además permutar la matriz índice de conformidad con I(j,k)= I (j , (a-,k +ß-,)modP), en donde I es el arreglo de índice y, al igual que anteriormente, j y k son los índices de las filas y las columnas, respectivamente, del arreglo de índice, x y ß son conjuntos de constantes seleccionadas de 52/129 _j_*,«......_ ¡>-.f|fJÉ,,f i |É—«a- * ----. .*-?. conformidad con la fila presente y P y cada CCJ son los números primos relativos. La trama de datos, según fue indizada mediante el arreglo de índice I permutado, está efectivamente permutado. Otra modalidad adicional de la invención incluye un intercalador que incluye un dispositivo de almacenamiento para almacenar una trama de datos y para almacenar una matriz índice I, en donde el producto de Ni y N2 es al menos igual a N. Los elementos del arreglo de índice indican las posiciones de los elementos de la trama de datos. Los elementos de la trama de datos pueden almacenarse en cualquier forma conveniente y no necesitan estar organizados como un arreglo. El intercalador incluye además un dispositivo permutador para permutar la matriz índice, de conformidad con I (j , k) =1 (j , (ajk + ßj)modP), en donde I es la matriz índice y, al igual que anteriormente, j y k son los índices de las filas y las columnas, respectivamente, de la matriz índice, ay ß son conjuntos de constantes seleccionados de conformidad con la fila presente y P y cada ot-, son números primos relativos. La trama de datos, conforme se indiza mediante la matriz índice permutada I, se permuta en forma efectiva. A continuación se describirá la invención con relación a ciertas modalidades ilustradas y prácticas. Sin embargo, debe quedar claro para los experimentados en la 52/l29 ______ ? _ tJ- rt tf - iJHJÉlin fif ¡ i i — * ' - - ~ ^ —^- - ---------- . .1-»^ ¿Mfc-i i técnica que pueden efectuarse diversas modificaciones, adiciones y sustracciones sin desviarse del espíritu o alcance de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La invención se comprenderá más claramente mediante la referencia a la siguiente descripción detallada de una modalidad ejemplificativa, junto con los dibujos acompañantes, en los cuales: la Figura 1 representa un diagrama de un turbocodificador convencional; la Figura 2 representa un diagrama de bloques del intercalador ilustrado en la Figura 1 ; la Figura 3 representa un arreglo que contiene una trama de datos y la permutación de ese arreglo; la Figura 4 representa una trama de datos almacenada en lugares o ubicaciones de almacenamiento consecutivas ; la Figura 5 representa un arreglo de índice para indizar la trama de datos mostrada en la Figura 4 y la permutación del arreglo de índice.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN La Figura 1 ilustra un turbo codificador convencional. Según se ilustra, los turbo codificadores 52/129 '***, _• .. -convencionales incluyen dos codificadores 20 y un intercalador 100. Un intercalador 100, de conformidad con la presente invención, recibe las tramas de datos entrantes 110 de tamaño N, en donde N es el número de bits, el número 5 de bytes o el número de alguna otra porción en que la trama puede separarse, que son considerados como elementos de trama. El intercalador 100 separa los N elementos de trama en conjuntos de datos, tales como filas. El intercalador reacomoda (permuta) entonces los datos de cada conjunto 10 (fila) en una forma pseudoaleatoria. El intercalador 100 puede utilizar diferentes métodos para reacomodar los datos de los diferentes conjuntos. Sin embargo, los experimentados en la técnica reconocerán que podrían volver a utilizarse uno o más de los métodos sobre uno o más de 15 los conjuntos sin desviarse del alcance de la invención. Después de permutar los datos de cada uno de los conjuntos, el intercalador emite los datos en un orden diferente al recibido. El intercalador 100 puede almacenar la trama de 20 datos 110 en una matriz con tamaño de Ni x N2, como puede ser de Ni * N2=N. Un ejemplo representado en la figura 3 muestra una matriz 350 que tiene 3 filas (N?=3) de 6 columnas (N2=6) para almacenar una trama de datos 110 que tiene 18 elementos, denotados como elemento de trama 00 25 (FE00) a FE17 (N=18) . En tanto que éste es el método 52/129 XM-, referido, la matriz también puede diseñarse de modo que Ni * N2 sea una fracción de N, de tal forma que se opere sobre una o más de estas matrices más pequeñas, de conformidad con la presente invención, y los resultados de cada una de las matrices más pequeñas se combinen posteriormente. Para permutar la matriz 350 de conformidad con la presente invención, se opera sobre cada fila j de la matriz 350 para permutar las columnas k de cada fila, de conformidad con la ecuación: D?(j ,k)=D(j (ak + ß)modP) en donde : j y k son los índices de fila y de columna, respectivamente, en la matriz 350; P es un número mayor o igual a N2 ; OCJ y P son números primos relativos (uno o ambos pueden ser números no primos, no obstante, el único divisor que tienen en común es 1) ; ßj es una constante, un valor asociado a cada fila. Una vez que se permutaron los datos de todas las filas, la nueva matriz se lee columna por columna. También, una vez que se han permutado las filas, es posible (aunque no se requiere) permutar los datos agrupados por columnas antes de emitir los datos. En el caso de que se permuten tanto 52/129 g í a--- __.._ __. _________ ________ las filas como las columnas, las filas, las columnas o ambas pueden permutarse de conformidad con la presente invención. También es posible transponer filas de la matriz, por ejemplo, transponiendo los bits de la representación binaria del índice de fila j (en una matriz de 4 filas, por ejemplo, las filas segunda y tercera serían transpuestas en este esquema) . También es posible que o las filas o las columnas, pero no ambas puedan permutarse de conformidad con un método de permutación diferente. Los experimentados en la técnica reconocerán que el sistema podría ser reacomodado para almacenar los datos columna por columna, permutar cada conjunto de datos de una columna y leer los resultados fila por fila sin desviarse del alcance de la invención. Estos métodos para la intercalación están basados en la teoría de los números y pueden ser implantados en el software y/o en el hardware (es decir, en circuitos integrados de aplicación específica (ASIC) , en matrices lógicas programables (PLA) o en cualesquiera otros dispositivos lógicos adecuados) . Además, como intercalador puede utilizarse un solo generador de secuencias pseudoaleatorio (es decir, m-secuencia, M-secuencia, secuencia Gold, secuencia Kasami, etcétera) . En el ejemplo representado en la Figura 3, el valor seleccionado para P es 6, los valores de a son 5 para 52/129 las tres filas y los valores de ß son 1, 2 y 3, respectivamente, para las tres filas (éstos son solamente ejemplificativos . Pueden elegirse otros números para obtener diferentes resultados de permutación) . Los valores de a (5) son cada uno números primos relativos con respecto al valor de P (6), según se estipuló anteriormente. El cálculo de la ecuación especificada con los valores especificados para permutar la fila 0 de la matriz D 350 en la fila 9 de la matriz Di 360 procede como sigue: D?(0,0)=D(0, (5*0 + l)mod6)=D(0, ( 1) modd) =D (0 , 1) =FE01 D?(0,l)=D(0, (5*1 + l)mod6)=D(0, ( 6) mod6) =D (0 , 0) =FE00 D?(0,2)=D(0, (5*2 + l)mod6) =D(0, (11) mod6) =D (0 , 5) =FE05 D?(0,3) =D(0, (5*3 + l)mod6)=D(0, (16) mod6) =D (0 , 4) =FE04 D1(0,4)=D(0, (5*4 + 1) mod6) =D (0 , (21) mod6) =D (0 , 3) =FE03 D?(0,5) =D(0, (5*5 + l)mod6)=D(0, (26) od6) =D (0 , 2) =FE02 Así, la fila 0 se convierte en: FE01 FE00 FE05 FE04 FE03 FE02 Para la fila 1, las ecuaciones se convierten en: D?(l,0)=D(l, (5*0 + 2)mod6)=D(l, ( 2) mod6) =D (1 , 2) =FE08 D?(l,l)=D(l, (5*1 + 2)mod6)=D(l, ( 7) mod6) =D (1, 1) =FE07 D?(l,2) =D(1, (5*2 + 2)mod6) =D(1, (12)mod6) =D(1,0)=FE06 Di (1,3) =D(1, (5*3 + 2) mod6) =D (1, (17) modd) =D (1, 5) =FE11 52/129 _ - I 1___m_ I .-*-_____._._. . , . .. _„ . . .__„_.. ___ .-......._¿a»&t__ ______Í ___I D?(l,4)=D(l, (5*4 + 2)mod6)=D(l, (22)mod6) =D(1,4)=FE10 D?(l,5) =D(1, (5*5 + 2)mod6)=D(l, (27) modd) =D (O , 3) =FE09 Así, la fila 1 se convierte en: FE08 FE07 FE06 FE11 FE10 FE09 Para la fila 2, las ecuaciones se convierten en: D?(2,0)=D(2, (5*0 + 3)mod6)=D(2, ( 3 ) modd) =D (2 , 3 ) =FE15 D?(2,l)=D(2, (5*1 + 3)modd) =D(2, ( 8) modd) =D (2 , 2) =FE14 D?(2,2)=D(2, (5*2 + 3 ) modd) =D (2 , (13 ) mod6) =D (2 , 1) =FE13 D?(2,3) =D(2, (5*3 + 3) odd) =D (2 , (18) modd) =D (2 , 0) =FE12 D?(2,4)=D(2, (5*4 + 3 ) modd) =D (2 , (23 ) mod6) =D (2 , 5) =FE17 D?(2,5)=D(2, (5*5 + 3 ) modd) =D (2 , (28) modd) =D (0 , 4) =FE16 Así, la fila 2 se convierte en: FE15 FE14 FE13 FE12 FE17 FE16 y la trama de datos permutados está contenida en la matriz Di 360, mostrada en la figura 3. La emisión o salida de la matriz columna por columna emite los elementos de trama con el siguiente orden: 1,8,15,0,7,14,5,6,13,4,11,12,3,10,17,2,9,16. En una práctica alternativa de la invención, la trama de datos 110 se almacena en ubicaciones de almacenamiento consecutivas, no como un arreglo o matriz, y se almacena una matriz índice separada para indizar los 52/129 ^.J-ÉUI-*-»-. .____._., elementos de la trama de datos, la matriz índice se permuta de conformidad con las ecuaciones de la presente invención y la trama de datos se emite conforme se indizó mediante la matriz índice permutada. La Figura 4 representa un bloque 400 para el almacenamiento de 32 elementos de largo (que de este modo tienen desplazamientos de 0 a 31 desde una ubicación de almacenamiento inicial) . Una trama de datos 110, que en este ejemplo se consideró era de 22 elementos de largo y, de este modo, para que consistiera de los elementos FE00 a FE21 ocupa las ubicaciones de desplazamiento de 00 a 21, dentro del bloque 400. Las ubicaciones de desplazamiento 22 a 31 del bloque 400 contienen un contenido desconocido. Una longitud de trama de 22 elementos es meramente ejemplificativa y podrían elegirse otras longitudes. También, el almacenamiento de los elementos de trama en ubicaciones consecutivas es ejemplificativo y podrían utilizarse ubicaciones no consecutivas. La Figura 5 representa la matriz índice I 550 para indizar el bloque de almacenamiento 400. Está organizado como cuatro filas de ocho columnas cada una (N?=4, N2=8, N=N?*N2=32) . El contenido inicial de la matriz I 550 se llena, según se muestra en la figura 5, en forma secuencial. Esta inicialización secuencial produce el mismo efecto que una lectura fila por fila de la trama de 52/129 b?__¿-.&¡_'"¿ ' **"*•*•"- r__??_-. t. ,____.* -Í:_ datos 110. La matriz índice se permuta de conformidad con: I?(j,k) = I(j, (a3*k + ßj)modP) en donde a= 1,3,5,7 ß=0, 0,0,0 P=8 Estos números son ejemplificativos y podrían elegirse otros números, siempre y cuando se observen las estipulaciones de que P es al menos igual a N2 y que cada valor de a es un número primo relativo, con respecto al valor seleccionado para P. Si la ecuación se aplica a las columnas de la fila 2, por ejemplo, ésta produce: I?(2,0) = I (2, (5*0)mod8) = 1(2, ( 0)mod8) = 1(2,0) = 16 I?(2,l) = I (2, (5*l)mod8) = 1(2, ( 5)mod8) = 1(2,5) = 21 I?(2,2) = I (2, (5*2)mod8) = I (2 , (10) modd) = 1(2,2) = 18 I?(2,3) = I (2, (5*3)mod8) = I (2 , (15) mod8) = 1(2,7) = 23 I?(2,4) = I (2, (5*4)mod8) = I (2 , (20) mod8) = 1(2,4) = 20 I?(2,5) = I (2, (5*5)mod8) = I (2 , (25) mod8) = 1(2,1) = 17 I?(2,6) = I (2, (5*6)mod8) = I (2 , (30) mod8) = 1(2,6) = 22 I?(2,7) = I (2, (5*7)mod8) = I (2 , (35) mod8) = 1(2,3) = 19 La aplicación en forma comparable de la ecuación a las filas 0, 1 y 3 produce la matriz índice permutada Ix 560 mostrada en la Figura 5. La trama de datos 110 se lee del bloque de 52/129 almacenamiento 400 y se emite en el orden que se especifica en la matriz índice permutada Ii 560 tomada columna a columna. Esto emitiría las ubicaciones de almacenamiento en el orden desplazado: 0,8,16,24,1,11,21,31,2,14,18,30,3,9,23,29,4,12,20,28,5,15,1 7,27,6,10,22,26,7,13,19,25. Sin embargo, el ejemplo supone una longitud de trama de 22 elementos, en donde las ubicaciones de desplazamiento 22-31 en el bloque 400 no son parte de la trama de datos. De conformidad con lo anterior, cuando se emite la trama de datos, ésta sería punzonada o podada hasta una longitud de 22; es decir, se ignorarían las ubicaciones mayores a 21. La trama de datos se emite así con el orden de elementos: 0,8,16,1,11,21,2,14,18,3,9,4,12,20,5,15,17,6,10,7,13,19. En un aspecto de la invención, las filas de la matriz pueden transponerse antes de la emisión, por ejemplo, al invertir los bits de las representaciones binarias del índice de fila j . Existen varias formas diferentes de implementar los intercaladores 100 de la presente invención. La Figura 2 ilustra una modalidad de la invención en donde el mtercalador 100 incluye una memoria de entrada 300 para recibir y almacenar la trama de datos 110. Esta memoria 300 puede incluir registros de desplazamiento, RAM o lo similar. El intercalador 100 también puede incluir una 52/129 memoria de trabajo 310 que también puede incluir RAM, registros de desplazamiento o lo similar. El intercalador incluye un procesador 320 (por ejemplo, un microprocesador, un ASIC, etcétera) que puede configurase para procesar I(j,k) en tiempo real, de conformidad con la ecuación anteriormente identificada o para tener acceso a una tabla que incluye los resultados de I(j,k) ya almacenados en la misma. Los experimentados en la técnica reconocerán que la memoria 300 y la memoria 310 pueden ser la misma memoria o pueden ser memorias separadas. Para las determinaciones en tiempo real de I(j,k), la primera fila de la matriz índice se permuta y los bytes que corresponden al índice permutado se almacenan en la memoria de trabajo. Después, se permuta y almacena la siguiente fila, etcétera, hasta que todas las filas se han permutado y almacenado. La permutación de las filas puede efectuarse en forma secuencial o en paralelo. Independientemente de si la I(j,k) permutada se determina en tiempo real o mediante búsqueda o consulta, los datos pueden almacenarse en la memoria de trabajo en varias formas diferentes. Éstos pueden almacenarse al seleccionar los datos de la memoria de entrada en el mismo orden que las I(j,k) en la matriz índice permutada (es decir, indizando la memoria de entrada con la función de permutación) y colocándolos en la memoria de trabajo en 52/129 j>tt. _ „|fe-,¿_,».,¡...J_^__^__^,.f,._..._-_-.«___,«-_ _ ___„ ^ ^ . ^_ „ „ _____. . _s-______ ,____, i LA. ubicaciones de memoria secuenciales disponibles. También pueden almacenarse al seleccionar los bytes de la secuencia que se almacenaron en la memoria de entrada (es decir, FIFO) y almacenándolos en la memoria de trabajo directamente en la ubicación determinada por las I(j,k) permutadas (es decir, indizando la memoria de trabajo con la función de permutación) . Una vez realizado lo anterior, los datos pueden leerse de la memoria de trabajo columna por columna, basado en la matriz índice permutada. Conforme se estableció anteriormente, los datos podrían someterse a otra vuelta de permutación después de que éstos se almacenan en la memoria de trabajo, basado en columnas en vez de en filas para obtener diferentes resultados. Si el sistema es suficientemente rápido, podría eliminarse una de las memorias y conforme se reciben los elementos de datos, podrían colocarse en la memoria de trabajo, en tiempo real o mediante la consulta en tabla, en el orden que corresponde a la matriz índice permutada. Los intercaladores que se muestran son compatibles con las estructuras de turbo código existentes. Estos intercaladores ofrecen un desempeño superior sin aumentar la complejidad del sistema. Además, los experimentados en la técnica se darán cuenta que pueden utilizarse desintercaladores para decodificar las tramas de datos intercaladas. La 52/129 utilizados en la bien conocida en la s no se describirán Sin embargo, puede construirse un desintercalador que corresponda a las modalidades, utilizando las secuencias permutadas anteriormente descritas. Aunque la modalidad antes descrita es un turbo codificador, tal como el que se encuentra en un sistema CDMA, los experimentados en la técnica se darán cuenta que la práctica de la invención no está limitada al mismo y que la invención puede ponerse en práctica para cualquier tipo de intercalación y desintercalación en cualquier sistema de comunicaciones . Así, se observará que la invención alcanza en forma eficiente los objetos anteriormente expuestos, entre aquellos que se hicieron evidentes a partir de la descripción precedente. En particular, la invención proporciona un aparato y métodos mejorados para intercalar códigos de longitud finita, al tiempo que reduce al mínimo la complejidad de la implementación. Se comprenderá que en la anterior construcción pueden efectuarse cambios, así como en las precedentes secuencias de operación, sin desviarse del alcance de la invención. De conformidad con lo anterior, se pretende que 52/129 toda materia contenida en la anterior descripción o mostrada en los dibujos acompañantes se interprete en forma ilustrativa en vez de en un sentido limitante. También se comprenderá que se pretende que las siguientes reivindicaciones cubran todas las particularidades genéricas y específicas de la invención, según se describe en la presente, y que pueda decirse que, como una cuestión de lenguaje, todas las declaraciones del alcance de la invención quedan dentro de aquellas. Habiéndose descrito la invención, lo que se reivindica como novedoso y se asegura mediante el Título de Patente es: 2/129 fcM______á___ _______._..

Claims (35)

REIVINDICACIONES !
1. Un método para intercalar elementos de tramas de datos, el método comprende: almacenar una trama de datos que comprende una multitud de elementos como una matriz D que tiene Ni filas enumeradas según 0, 1,..., N?-1; y N2 columnas enumeradas según 0, 1,..., N2-l, en donde Ni y N2 son enteros positivos mayores de 1 Y permutar la matriz D en una matriz Di, de conformidad con: D?(j,k)=D(j, (a-j-k + ß3) odP) en donde j es un índice de las filas de las matrices D y Di; k es un índice de las columnas de las matrices D y Di; OCJ y ß-, son enteros predeterminados para cada fila j ; P es un entero al menos igual a N2 y cada a-, es un número primo relativo relacionado con P. 2. El método según la reivindicación 1, en donde los elementos de la matriz D se almacenan de conformidad con un primer orden y, en donde, los elementos de la matriz Di se emiten de conformidad con un segundo 52/129
¡JÉi ií iT i- íiliiilil i i liBlÉÉIiiH i iniitlílii - - -- - • ._---. ... . - , ^.. ~. _..______._.__. .. __h_-. ,______..* _ orden .
3. El método según la reivindicación 2, en donde los elementos de la matriz D se almacenan fila por fila y los elementos de la matriz Di se almacenan columna por columna .
4. El método según la reivindicación 1, que incluye además la emisión de una matriz Di y, en donde, el producto de Nx y N2 es mayor que el número de elementos de la trama y la trama se punzona al número de elementos de la trama durante la emisión.
5. Un método para intercalar elementos de tramas de datos, el método comprende: crear y almacenar una matriz índice I que tiene Ni filas enumeradas según 0, 1,..., N?-1; y N2 columnas enumeradas según 0, 1,..., N2-l, en donde Ni y N2 son enteros positivos mayores de 1 Y almacenar los elementos de una trama de datos en cada una de una multitud de ubicaciones de almacenamiento; almacenar, en las posiciones secuenciales fila por fila de la matriz I, los valores indicativos de las ubicaciones correspondientes de los elementos de trama y permutar la matriz I en una matriz Il f de conformidad con: I?(j,k) = I(j,(a-jk + ßj)modP) 52/129 ,.„_.__.___ . en donde j es un índice de las filas de las I y I1#* k es un índice de las columnas de las matrices I y Ii; ct] y ß] son enteros predeterminados para cada fila j ; P es un entero al menos igual a N2 y cada a-, es un número primo relativo relacionado con P, con lo que la trama de datos conforme se indiza mediante la matriz Ii, se permuta en forma efectiva.
6. El método según la reivindicación 5, que incluye además la permutación de los elementos almacenados de conformidad con la matriz índice permutada Ii.
7. El método según la reivindicación 5, en donde los elementos de la trama de datos se emiten conforme se indizan mediante las entradas de la matriz Ii tomada en otra forma diferente a fila por fila.
8. El método según la reivindicación 7, en donde los elementos de trama de datos se emiten conforme se indizan mediante las entradas de la matriz Ii tomada en otra forma diferente a columna por columna.
9. El método según la reivindicación 5, que incluye el paso de transponer las filas de la matriz I antes del paso de permutar la matriz I . 52/129 -_B¡__ft__>yA, -- ._— .. _ _ ^ ^_ .....,,...... .. _ .._. _>___^ AAl,- -¿
10. El método según la reivindicación 5, en donde Ni es igual a 4, N2 es igual a 8, P es igual a 8 y los valores de aj son diferentes para cada fila y se eligen de un grupo que consiste de 1 , 3, 5 y 7.
11. El método según la reivindicación 10, en donde los valores de aj son 1, 3, 5 y 7 para j = 0, 1, 2 y 3, respectivamente.
12. El método según la reivindicación 10, en donde los valores de aj son 1, 5, 3 y 7 para j = 0, 1, 2 y 3, respectivamente.
13. El método según la reivindicación 5, en donde todos los valores de ß son cero.
14. El método según la reivindicación 5, en donde al menos dos valores de ß son cero.
15. El método según la reivindicación 11, en donde todos los valores de ß son cero.
16. El método según la reivindicación 12, en donde todos los valores de ß son cero.
17. El método según la reivindicación 5, que incluye además la emisión de la trama de datos y, en donde, el producto de Ni y N2 es mayor que el número de elementos de la trama de datos y la trama de datos se punzona al número de elementos de la trama de datos durante la emisión.
18. Un intercalador para intercalar elementos de 52/129 tramas de datos, el intercalador comprende: un medio de almacenamiento para almacenar una trama de datos que comprende una multitud de elementos como una matriz D que tiene Ni filas enumeradas según 0, 1,..., N?-1; y N2 columnas enumeradas según 0, 1,..., N2-l, en donde Ni y N2 son enteros positivos mayores de i y un medio de permutación para permutar la matriz D en una matriz Di, de conformidad con: D?(j ,k)=D(j, (a3k + ßD)modP) en donde j es un índice de las filas de las matrices D y Di; k es un índice de las columnas de las matrices D y Di; a-, y ß-, son enteros predeterminados para cada fila j ; P es un entero al menos igual a N2 y cada a-, es un número primo relativo relacionado con P.
19. El intercalador según la reivindicación 18, que incluye un medio para almacenar los elementos de la matriz D, de conformidad con un primer orden, y un medio para emitir los elementos de la matriz Di, de conformidad con un segundo orden. 52/129 „_t.J_Í______ J _1_- -¿.-_-i.--J
20. El intercalador según la reivindicación 19, en donde el medio para almacenar los elementos de la matriz D almacena fila por fila y el medio para emitir los elementos de la matriz Di emite columna por columna.
21. El intercalador según la reivindicación 18, que incluye un medio para la emisión de la matriz Di y para punzonar la matriz Di al número de elementos de la trama cuando el producto de Nx y N2 es mayor que el número de elementos de la trama.
22. Un intercalador para intercalar elementos de tramas de datos, el intercalador comprende: un medio para almacenar una matriz índice I que tiene Ni filas enumeradas según 0, 1,..., N?-1; y N2 columnas enumeradas según 0, 1,..., N2-l, en donde Ni y N2 son enteros positivos mayores de 1 y un medio para recibir una trama de datos y para almacenar los elementos de la trama de datos en cada una de una multitud de ubicaciones de almacenamiento; un medio para almacenar, en posiciones secuenciales fila por fila de la matriz I, los valores indicativos de las ubicaciones correspondientes de los elementos de la trama y un medio para permutar una matriz I en una matriz 52/129 con: I(j, (a3k + ßj)modP) en donde j es un índice de las filas de las matrices I y Ii; k es un índice de las columnas de las matrices I y Ii; aj y ß-, son enteros predeterminados para cada fila j ; P es un entero al menos igual a N2 y cada a-, es un número primo relativo relacionado con P, con lo que la trama de datos conforme se indiza mediante la matriz Ii, se permuta en forma efectiva.
23. El intercalador según la reivindicación 22, que incluye además un medio para permutar los elementos almacenados de conformidad con la matriz índice permutada Ii-
24. El intercalador según la reivindicación 22, que incluye un medio para emitir elementos de trama conforme se indizan mediante las entradas de la matriz Ix tomada en otra forma diferente a fila por fila.
25. El intercalador según la reivindicación 24, que incluye un medio para emitir elementos de trama conforme se indizan mediante las entradas de la matriz Ix tomada columna por columna. 52/129 _á_________ ' - *_-*-_j_--- _____ iA_L_
26. El intercalador según la reivindicación 22, en donde el producto de Ni y N2 es mayor que el número de elementos de la trama y la trama es punzonada por el medio para la emisión del número de elementos de la trama.
27. Un intercalador para intercalar elementos de tramas de datos, el intercalador comprende: una memoria de entrada para almacenar una trama de datos recibida, que comprende una multitud de elementos como una matriz D que tiene Nx filas enumeradas según 0, 1,..., N?-1; y N2 columnas enumeradas según 0, 1,..., N2-l, en donde Ni y N2 son enteros positivos mayores de i y un procesador acoplado a la memoria de entrada para permutar la matriz D en una matriz Di, de conformidad con: D?(j,k)=D(j, (ajk + ß3)modP) en donde j es un índice de las filas de las matrices D y Di; k es un índice de las columnas de las matrices D y Di; a3 y ßj son enteros predeterminados para cada fila j ; P es un entero al menos igual a N2 y cada aD es un número primo relativo 2/129 t_É.__-_------- . --.. j_____k_t_h?,_... _,__..-----_. relacionado con P y una memoria de trabajo acoplada al procesador y configurada para almacenar la matriz permutada Di.
28. El intercalador según la reivindicación 27, en donde la memoria de entrada almacena los elementos de la matriz D, de conformidad con un primer orden, y la memoria de trabajo emite los elementos de la matriz Di, de conformidad con un segundo orden.
29. El intercalador según la reivindicación 28, en donde la memoria de entrada almacena fila por fila los elementos de la matriz D y la memoria de trabajo emite columna por columna los elementos de la matriz Dx.
30. El intercalador según la reivindicación 27, la memoria de trabajo punzona la matriz Di al número de elementos de la trama cuando el producto de Ni y N2 es mayor que el número de elementos de la trama.
31. Un intercalador para intercalar elementos de tramas de datos, el intercalador comprende: una memoria para almacenar una matriz índice I que tiene Ni filas enumeradas según 0, 1,..., N?-1; y N2 columnas enumeradas según 0, 1,..., N2-l, en donde Nx y N2 son enteros positivos mayores de i y la memoria también para almacenar, en cada una de 52/129 h__- -__hA.__u4...i..,.M_ iMtfa... -.____-__-. f «S una multitud de ubicaciones de almacenamiento, los elementos de una trama de datos recibida ; un procesador acoplado a la memoria para almacenar, en posiciones secuenciales fila por fila de la matriz I, los valores indicativos de las ubicaciones correspondientes de los elementos de la trama y el procesador también para permutar una matriz I en una matriz Ix almacenada en la memoria, de conformidad con: I?(j.k) = Kj,(aDk + ß3)modP) en donde j es un índice de las filas de las matrices I y Ii; k es un índice de las columnas de las matrices I y Ii; a-, y ß-, son enteros predeterminados para cada fila j ; P es un entero al menos igual a N2 y cada a-, es un número primo relativo relacionado con P y con lo que la trama de datos conforme se indiza mediante la matriz Ii, se permuta en forma efectiva.
32. El intercalador según la reivindicación 31, en donde el procesador permuta los elementos almacenados de conformidad con la matriz índice permutada Ii.
33. El intercalador según la reivindicación 31, 52/129 _i___ _ _.J____.._. ___!>___«_«-! t nMHjii irr - en donde la memoria emite los elementos de trama conforme se indizan mediante las entradas de la matriz Ii tomada en otra forma diferente a fila por fila.
34. El intercalador según la reivindicación 33, en donde la memoria emite los elementos de trama conforme se indizan mediante las entradas de la matriz Ii tomada columna por columna .
35. El intercalador según la reivindicación 31, en donde la memoria punzona la trama de datos al número de elementos de la trama de datos cuando el producto de Nx y N2 es mayor que el número de elementos de la trama de datos.
MXPA01007021A 1999-01-11 2000-01-11 Intercalacion de bloque para la turbocodificacion. MXPA01007021A (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11539499P 1999-01-11 1999-01-11
US09/263,431 US6442728B1 (en) 1999-01-11 1999-03-04 Methods and apparatus for turbo code
PCT/IB2000/000031 WO2000042709A1 (en) 1999-01-11 2000-01-11 Block interleaving for turbo coding

Publications (1)

Publication Number Publication Date
MXPA01007021A true MXPA01007021A (es) 2002-08-30

Family

ID=26813148

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA01007021A MXPA01007021A (es) 1999-01-11 2000-01-11 Intercalacion de bloque para la turbocodificacion.

Country Status (10)

Country Link
US (1) US6442728B1 (es)
EP (1) EP1145444B1 (es)
JP (2) JP4511050B2 (es)
CN (1) CN1252936C (es)
BR (1) BRPI0007468B1 (es)
CA (1) CA2360340C (es)
DE (1) DE60016561T2 (es)
HK (2) HK1040012B (es)
MX (1) MXPA01007021A (es)
WO (1) WO2000042709A1 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2266283C (en) * 1999-03-19 2006-07-11 Wen Tong Data interleaver and method of interleaving data
FR2807895B1 (fr) * 2000-04-18 2002-06-07 Canon Kk Procedes et dispositifs de codage et de decodage et systemes les mettant en oeuvre
US6670898B1 (en) * 2000-08-24 2003-12-30 Tioga Technologies, Ltd. Efficient method and apparatus for interleaving and de-interleaving data
US7000169B2 (en) * 2000-09-20 2006-02-14 Lsi Logic Corporation Turbo decoding
US7340664B2 (en) * 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
KR100393608B1 (ko) 2000-09-29 2003-08-09 삼성전자주식회사 유.엠.티.에스시스템내 터보부호화기의 내부 인터리버 및인터리빙 수행 방법
JP3624874B2 (ja) * 2001-11-19 2005-03-02 日本電気株式会社 インターリービング順序発生器、インターリーバ、ターボエンコーダ、及びターボデコーダ
JP3669433B2 (ja) * 2001-12-25 2005-07-06 ソニー株式会社 インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法
GB2400776A (en) * 2003-04-14 2004-10-20 Modem Art Ltd method of using an algebraic interleaver for turbo encoding/decoding
CN1655488B (zh) * 2004-02-11 2010-12-15 诺基亚西门子通信系统技术(北京)有限公司 一种无线通信系统中增长交织时间的方法
GB2415336B (en) * 2004-06-18 2006-11-08 Toshiba Res Europ Ltd Bit interleaver for a mimo system
FR2880483A1 (fr) * 2004-12-31 2006-07-07 France Telecom Procede et dispositif d'entrelacement
US7512863B2 (en) * 2005-10-12 2009-03-31 Qualcomm Corporation Turbo code interleaver for low frame error rate
US8082479B2 (en) * 2006-02-02 2011-12-20 Qualcomm Incorporated Methods and apparatus for generating permutations
US8345794B2 (en) * 2008-04-29 2013-01-01 Qualcomm Incorporated Encoded control channel information interleaving
CN109150200B (zh) * 2017-06-27 2021-10-22 华为技术有限公司 一种信道交织的方法和装置
CN112994835A (zh) * 2019-12-02 2021-06-18 中国科学院上海高等研究院 一种块交织处理方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394642A (en) 1981-09-21 1983-07-19 Sperry Corporation Apparatus for interleaving and de-interleaving data
FR2706054B1 (fr) 1993-06-02 1995-07-13 Alcatel Mobile Comm France Procédé d'entrelacement d'une séquence d'éléments de données, et dispositif d'entrelacement correspondant.
WO1996024196A1 (en) * 1995-02-01 1996-08-08 Philips Electronics N.V. Method of error protected transmission, method of error protected reception of data and transmission system for transmission of data

Also Published As

Publication number Publication date
JP4955049B2 (ja) 2012-06-20
JP4511050B2 (ja) 2010-07-28
HK1040012B (zh) 2005-06-30
JP2002535867A (ja) 2002-10-22
BR0007468A (pt) 2001-10-30
WO2000042709A1 (en) 2000-07-20
HK1040012A1 (en) 2002-05-17
JP2010093832A (ja) 2010-04-22
US6442728B1 (en) 2002-08-27
CN1252936C (zh) 2006-04-19
HK1095673A1 (en) 2007-05-11
CN1341295A (zh) 2002-03-20
DE60016561D1 (de) 2005-01-13
CA2360340C (en) 2007-05-01
EP1145444B1 (en) 2004-12-08
EP1145444A1 (en) 2001-10-17
BRPI0007468B1 (pt) 2015-08-25
DE60016561T2 (de) 2005-04-07
CA2360340A1 (en) 2000-07-20

Similar Documents

Publication Publication Date Title
JP4955049B2 (ja) ターボ符号化のためのブロック・インターリーブ
JP3996514B2 (ja) ターボ復号器のためのバッファアーキテクチャ
JP4897703B2 (ja) 余分なものを取り除いたビット反転インターリーバー
US6854077B2 (en) Apparatus and method for providing turbo code interleaving in a communications system
KR100526512B1 (ko) 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법
CA2366581C (en) Intra-row permutation for turbocode
CA2742096A1 (en) Rate matching and channel interleaving for a communications system
WO2000035103A1 (en) Turbo code interleaver using linear congruential sequences
KR20000041934A (ko) 통신시스템의인터리빙/디인터리빙장치및방법
EP1303051B1 (en) Interference decorrelation of multiple strem interpolated data
EP1303052B1 (en) Interleaver pattern modification
CN100466479C (zh) 用于透平编码的方法和系统
KR100645730B1 (ko) 매직 매트릭스를 이용한 인터리빙 방법

Legal Events

Date Code Title Description
FG Grant or registration
GB Transfer or rights