BRPI0007468B1 - Métodos e intercaladores para a intercalação de elementos de quadros de dados. - Google Patents

Métodos e intercaladores para a intercalação de elementos de quadros de dados. Download PDF

Info

Publication number
BRPI0007468B1
BRPI0007468B1 BRPI0007468-3A BR0007468A BRPI0007468B1 BR PI0007468 B1 BRPI0007468 B1 BR PI0007468B1 BR 0007468 A BR0007468 A BR 0007468A BR PI0007468 B1 BRPI0007468 B1 BR PI0007468B1
Authority
BR
Brazil
Prior art keywords
elements
data frame
arrangement
array
index
Prior art date
Application number
BRPI0007468-3A
Other languages
English (en)
Other versions
BR0007468A (pt
Inventor
Jian Cui
Bin Li
Wen Tong
Rui R Wang
Original Assignee
Rockstar Bidco Lp
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 Rockstar Bidco Lp filed Critical Rockstar Bidco Lp
Publication of BR0007468A publication Critical patent/BR0007468A/pt
Publication of BRPI0007468B1 publication Critical patent/BRPI0007468B1/pt

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)

Description

Relatório Descritivo da Patente de Invenção para "MÉTODOS E INTERCALADORES PARA A INTERCALAÇÃO DE ELEMENTOS DE QUADROS DE DADOS".
Campo da Invenção Essa invenção refere-se, de forma geral, aos sistemas de comunicação e, mais particularmente, a intercaladores para executar a modulação de código.
Histórico da Invenção Verificou-se que as técnicas para codificar canais de comunicação, conhecidas como modulação codificada, melhoram a taxa de erros de bit (BER) dos sistemas de comunicação eletrônica, tal como modem e sistemas de comunicação sem fio. A modulação turbo codificada provou ser um método de modulação prático, eficiente em energia e eficiente na largura de banda para canais com "erro aleatório" caracterizados por ruído fortuito branco aditivo (AWGN) ou desvanecimento. Esses canais com erro aleatório podem ser encontrados, por exemplo, no ambiente do acesso múltiplo por divisão de código (CDMA). Desde que a capacidade de um ambiente de CDMA é dependente da razão do sinal de operação em relação ao ruído, desempenho melhorado traduz em maior capacidade.
Um aspecto dos turbo codificadores que os torna tão eficazes é um intercalador que permuta o quadro de dados o-riginal recebido ou transmitido antes dele ser inserido para um segundo codificador. A permuta é realizada pela transformação em aleatório de porções do sinal com base em um ou mais algoritmos de transformação em aleatório. A combinação dos quadros de dados permutados com os quadros de dados originais mostrou atingir baixas BERs em AWGN e canais de desvanecimento. 0 processo de intercalação aumenta a diversida- versidade nos dados, tal que se o símbolo modulado é distorcido na transmissão, o erro pode ser recuperável com o uso de algoritmos de correção de erro no decodificador.
Um intercalador convencional coleta, ou enquadra, os pontos de sinal a serem transmitidos em um arranjo, onde o arranjo é seqüencialmente preenchido linha por linha. Depois que um número pré definido de pontos de sinal foi colocado em quadro, o intercalador é esvaziado pela leitura se-qüencial das colunas do arranjo para transmissão. Como resultado, os pontos de sinal na mesma linha do arranjo que estavam perto um dos outros no fluxo do ponto do sinal original são separados por uma série de pontos de sinal igual ao número de linhas no arranjo. Idealmente, o número de colunas e linhas seria escolhido tal que pontos de sinal interdependentes, depois da transmissão, seriam separados por mais do que o comprimento esperado de uma rajada de erros para o canal. A intercalação não uniforme atinge a "dispersão máxima" dos dados e a "máxima desordem" da seqüência de saída. Assim, a redundância introduzida pelos dois codificadores de convolução é mais igualmente espalhada na seqüência de saída do turbo codificador. A distância mínima é aumentada para valores muito mais altos do que para a intercalação uniforme. Um problema persistente para a intercalação não uniforme é como implementar de maneira prática a intercalação enquanto atingindo "não uniformidade" suficiente, e minimizando as compensações de retardo que limitam o uso para aplicações com exigências em tempo real. O descobrimento de um intercalador efetivo é um tópico corrente nas atividades do padrão CDMA de terceira geração. Foi determinado e geralmente concordado que, à medida que o tamanho do quadro se aproxima do infinito, o intercalador mais efetivo é o intercalador aleatório. Entretanto, para tamanhos de quadro finitos, a decisão quanto ao intercalador mais efetivo está ainda aberta para discussão.
Conseqüentemente, existe uma necessidade por sistemas e métodos de intercalação de códigos que melhoram a não uniformidade para tamanhos de quadro finitos.
Também existe uma necessidade por tais sistemas e métodos de intercalação de códigos que sejam relativamente simples para implementar. É, assim, um objetivo da presente invenção proporcionar sistemas e métodos de intercalação de códigos que melhoram a não uniformidade para tamanhos de quadro finitos. É também um objetivo da presente invenção proporcionar sistemas e métodos de intercalação de códigos que sejam relativamente simples para implementar.
Esses e outros objetivos da invenção se tornarão evidentes para esses peritos na técnica a partir da descrição seguinte da mesma.
SUMÁRIO DA INVENÇÃO
Os objetivos precedentes, e outros, podem ser atingidos pela presente invenção, que intercala um quadro de dados, onde o quadro de dados tem um tamanho predeterminado e é composto de porções. Uma modalidade da invenção inclui um intercalador para intercalar esses quadros de dados. 0 intercalador inclui uma memória de entrada configurada para armazenar um quadro de dados recebido como um arranjo organizado em linhas e colunas, um processador conectado na memória de entrada e configurado para permutar o quadro de dados recebido de acordo com a equação D (j , k) =D (j , (ctjk+Pj ) modP) , e uma memória de trabalho em comunicação elétrica com o processador e configurada para armazenar uma versão permutada do quadro de dados. Os elementos da equação são como segue: D é o quadro de dados, j e k são índices para as linhas e colunas, respectivamente, no quadro de dados, α e β são conjuntos de constantes selecionadas de acordo com a linha atual, e P e cada ctj são números primos relativos. ("Números primos relativos" conota um conjunto de números que não tem divisor comum além do 1. Membros de um conjunto de números primos relativos, considerados por si mesmos, não precisam ser números primos).
Uma outra modalidade da invenção inclui um método para armazenar um quadro de dados e indexá-lo por um arranjo I de índice Ni x N2, onde o produto de Ni e N2 é pelo menos igual a N. Os elementos do arranjo de índice indicam posições dos elementos do quadro de dados. Os elementos do quadro de dados podem ser armazenados em qualquer maneira conveniente e não precisam ser organizados como um arranjo. O método adicionalmente inclui permutar o arranjo de índice de acordo com I (j ,k) =1 (j , (ctjk+pj)modP) , onde I é o arranjo do índice, e como acima j e k são índices para as linhas e colunas, respectivamente, no arranjo de índice, α e β são conjuntos de constantes selecionadas de acordo com a linha atual e P e cada ctj são números primos relativos. 0 quadro de dados, quando indexado pelo arranjo I de índice permuta-do, é efetivamente permutado.
Ainda uma outra modalidade da invenção inclui um intercalador que inclui um dispositivo de armazenamento para armazenar um quadro de dados e para armazenar um arranjo I de índice Ni x N2, onde o produto de Nx e N2 é pelo menos igual a N. Os elementos do arranjo do índice indicam posições dos elementos do quadro de dados. Os elementos do quadro de dados podem ser armazenados em qualquer maneira conveniente e não precisam estar organizados como um arranjo. O intercalador adicionalmente inclui um dispositivo de permuta para permutar o arranjo do índice de acordo com I (j ,k) =1 (j , (oijk+P-j)modP) , onde I é o arranjo do índice, e como acima j e k são índices para as linhas e colunas, respectivamente, no arranjo de índice, α e β são conjuntos de constantes selecionadas de acordo com a linha atual e P e cada oij são números primos relativos. O quadro de dados, quando indexado pelo arranjo I de índice permutado, é efetivamente permutado. A invenção será, a seguir, descrita em conjunto com certas modalidades ilustradas e práticas. Entretanto, será evidente para esses peritos na técnica que várias modificações, adições e subtrações podem ser feitas sem se afastar do espírito ou escopo das reivindicações.
BREVE DESCRICÃO DOS DESENHOS A invenção será mais claramente entendida por referência à descrição detalhada seguinte de uma modalidade exemplar em conjunto com os desenhos acompanhantes, nos quais: A FIG. 1 representa um diagrama de um turbo codificador convencional. A FIG. 2 representa um diagrama em bloco do inter-calador ilustrado na FIG. 1; A FIG. 3 representa um arranjo contendo um quadro de dados, e a permuta desse arranjo; A FIG. 4 representa um quadro de dados armazenado em localizações de armazenamento consecutivas; A FIG. 5 representa um arranjo de índice para indexar o quadro de dados mostrado na FIG. 4 e a permuta do arranjo de índice.
DESCRICÃO DETALHADA DA INVENÇÃO A FIG. 1 ilustra um turbo codificador convencional. Como ilustrado, os turbo codificadores convencionais incluem dois codificadores 20 e um intercalador 100. Um in-tercalador 100 de acordo com a presente invenção recebe quadros de dados de entrada 110 de tamanho N, onde N é o número de bits, número de bytes, ou número de alguma outra porção na qual o quadro pode ser separado, que são considerados como elementos do quadro. O intercalador 100 separa os elementos do quadro N em conjuntos de dados, tal como linhas. O intercalador então reorganiza (permuta) os dados em cada conjunto (linha) em um modo pseudo-aleatório. O intercalador 100 pode utilizar diferentes métodos para reorganizar os dados dos conjuntos diferentes. Entretanto, esses peritos na técnica verificarão que um ou mais dos métodos podem ser reutilizados em um ou mais dos conjuntos sem se afastar do escopo da invenção. Depois da permuta dos dados em cada um dos conjuntos, o intercalador gera os dados em uma ordem diferente do que a recebida. O intercalador 100 pode armazenar o quadro de dados 110 em um arranjo de tamanho Ni x N2/ tal que Ni*N2=N. Um exemplo representado na FIG. 3 mostra um arranjo 350 tendo 3 linhas (Ni=3) de 6 colunas (N2=6) para armazenar um quadro de dados 110 tendo 18 elementos, representados como Elemento do Quadro 00 (FE00) até FE17 (N=18). Embora esse seja o mé- todo preferido, o arranjo pode também ser designado tal que Ni*N2 é uma fração de N, tal que um ou mais dos menores arranjos é/são operado(s) de acordo com a presente invenção e os resultados de cada um dos menores arranjos são posteriormente c omb i nado s.
Para permutar o arranjo 350 de acordo com a presente invenção, cada linha j do arranjo 350 é individualmente operada, para permutar as colunas k de cada linha de acordo com a equação: Di(j,k)=D(j, (ak+P)modP) onde: j e k são índices da linha e coluna, respectivamente, no arranjo 350; P é um número maior do que ou igual a N2; aj e P são números primos relativos (um ou ambos podem ser números não primos, mas o único divisor que eles têm em comum é 1);
Pj é uma constante, um valor associado com cada linha.
Depois que os dados para todas as linhas são per-mutados, o novo arranjo é lido coluna por coluna. Também, depois que as linhas foram permutadas, é possível (mas não necessário) permutar os dados agrupados por coluna antes de gerar os dados. Na eventualidade que ambas as linhas e colunas sejam permutadas, as linhas, as colunas ou ambas podem ser permutadas de acordo com a presente invenção. É também possível transpor linhas de arranjo, por exemplo transpondo bits na representação binária do índice da linha j . (Em um arranjo de quatro linhas, por exemplo, a segunda e terceira linhas seriam transpostas sob esse esquema.) É também possível que as linhas ou as colunas, mas não ambas possam ser permutadas de acordo com um método diferente de permuta. Esses peritos na técnica verificarão que o sistema pode ser reorganizado para armazenar os dados coluna por coluna, permutar cada conjunto de dados em uma coluna e ler os resultados linha por linha sem se afastar do escopo da invenção.
Esses métodos de intercalação são baseados na teoria do número e podem ser implementados no software e/ou hardware (i.e. circuitos integrados específicos da aplicação (ASIC), arranjos lógicos programáveis (PLA) ou quaisquer outros dispositivos lógicos adequados). Adicionalmente, um único gerador de seqüência pseudo aleatória (i.e., seqüência m, seqüência M, seqüência Gold, seqüência Kasami...) pode ser utilizado como o intercalador.
No exemplo representado na FIG. 3, o valor selecionado para P é 6, os valores de α são 5 para todas as três linhas, e os valores de β são 1,2 e 3, respectivamente para as três linhas. (Esses são meramente exemplares. Outros números podem ser escolhidos para atingir resultados diferentes de permuta.) Os valores de α (5) são cada um números primos relativos em relação ao valor de P (6) , como estipulado acima. O cálculo da equação especificada com os valores especificados para permutar a linha 0 do arranjo D 350 na linha 0 do arranjo Di 360 prossegue como: Di (0,0)=D(0, (5*0 + 1)mod6)=D(0, (1)mod6)=D(0,1)=FE01 D!(0,1)=D(0,(5*1+1)mod6)=D(0,(6)mod6)=D(0,0)=FE00 Dx (0,2)=D(0, (5*2+1)mod6)=D(0, (11)mod6)=D(0,5)=FE05 Di (0,3)=D(0, (5*3 + 1)mod6)=D(0, (16)mod6)=D(0,4)=FE04 Di(0,4)=D(0,(5*4+1)mod6)=D(0,(21)mod6)=D(0,3)=FE03 Di(0,5)=D(0,(5*5+1)mod6)=D(0,(26)mod6)=D(0,2)=FE02 Assim a linha 0 torna-se: FE01 FE00 FE05 FE04 FE03 FE02 Para a linha 1, as equações tornam-se: Di(l,0)«D(l,(5*0+2)mod6)=D(1,(2)mod6)=D(1,2)=FE08 Di(l,l)=D(l,(5*1+2)mod6)=D(1,(7)mod6)=D(1,1)=FE07 Dx (1,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)mod6)=D(1,5)=FE11 Di(l,4)=D(l,(5*4+2)mod6)=D(1,(22)mod6)=D(1,4)=FE10 Di(l,5)=D(l,(5*5+2)mod6)=D(1,(27)mod6)=D(0,3)=FE09 Assim a linha 1 torna-se: FE08 FE07 FE06 FE11 FEIO FE09 Para a linha 2, as equações tornam-se: Di (2,0)=D(2, (5*0+3)mod6)=D(2, (3)mod6)=D(2,3)=FE15 Dj. (2,1) =D (2, (5*1+3) mod6) =D (2 , (8) mod6) =D (2,2) =FE14 Di (2,2)=D(2, (5*2+3)mod6)=D(2, (13)mod6)=D(2,1)=FE13 Di (2,3)=D(2, (5*3+3)mod6)=D(2, (18)mod6)=D(2,0)=FE12 Di (2,4)=D(2, (5*4+3)mod6)=D(2, (23)mod6)=D(2,5)=FE17 Di (2,5)=D(2, (5*5+3)mod6)=D(2, (28)mod6)=D(0,4)=FE16 Assim a linha 2 torna-se: FE15 FE14 FE13 FE12 FE17 FE16 e o quadro de dados permutado fica contido no arranjo Dx 360 mostrado na FIG. 3. Gerar o arranjo coluna por coluna gera os elementos do quadro na ordem: 1,8,15,0,7,14,5,6,13,4,11,12,3,10,17,2,9,16.
Em uma prática alternativa da invenção, o quadro de dados 110 é armazenado em localizações de armazenamento consecutivas, não como um arranjo ou matriz, e um arranjo de índice separado é armazenado para indexar os elementos do quadro de dados, o arranjo de índice é permutado de acordo com as equações da presente invenção, e o quadro de dados é gerado como indexado pelo arranjo de índice permutado. A FIG. 4 representa um bloco 400 de elementos de armazenamento 32 em comprimento (assim tendo deslocamentos de 0 até 31 a partir de uma localização de armazenamento de partida). Um quadro de dados 110, tomado nesse exemplo como sendo de 22 elementos de comprimento e assim consistindo de elementos FE00 até FE21, ocupa localizações de deslocamento de 00 até 21 dentro do bloco 400. As localizações de deslocamento 22 até 31 do bloco 400 contêm conteúdos desconheci- dos. Um comprimento do quadro de 22 elementos é meramente exemplar, e outros comprimentos podem ser escolhidos. Também, a armazenamento dos elementos de quadro em localizações consecutivas é exemplar, e localizações não consecutivas podem ser utilizadas. A FIG. 5 representa o arranjo de Índice I 550 para indexar o bloco de armazenamento 400. Ele é organizado como 4 linhas de 8 colunas cada (Νι=4, N2=8, N=Ni*N2=32) . Os conteúdos iniciais são preenchidos no arranjo I 550 como mostrado na FIG. 5 seqüencialmente. Essa inicialização seqüen-cial produz o mesmo efeito que uma leitura para a memória de linha por linha do quadro de dados 110. O arranjo de índice é permutado de acordo com Ii(j,k)=I(j, (aj*k+Pj)modP) onde a=l,3,5,7 β=0,0,0,0 P=8 Esses números são exemplares e outros números podem ser escolhidos, contanto que as especulações sejam observadas que P é pelo menos igual a N2 e que cada valor de α é um número primo relativo em relação ao valor escolhido de P.
Se a equação é aplicada nas colunas da linha 2, por exemplo, ela produz: Ii(2,0)=1(2,(5*0)mod8)=I(2,(0)mod8)=1(2,0)=16 li (2,1)=1(2, (5*1) mod8) =1(2, (5) mod8) =1 (2,5) =21 11(2,2)=1(2,(5*2)mod8)=1(2,(10)mod8)=1(2,2)=18 1^2,3)=1(2, (5*3) mod8) =1 (2, (15) mod8) =1 (2,7) =23 Ii(2,4)=I(2, (5*4) mod8) =1 (2, (2 0) mod8) =1 (2,4) =20 1^2,5)=1(2, (5*5) mod8) =1 (2 , (25) mod8) =1 (2,1) =17 Ιχ(2,6)=1(2, (5*6) mod8) =1(2, (30) mod8) =1 (2,6) =22 li (2,7 )=1(2, (5*7)mod8) =1 (2, (3 5) mod8) =1 (2,3) =19 A aplicação da equação comparavelmente nas linhas 0,1 e 3 produz o arranjo de índice permutado Ιλ 560 mostrado na FIG. 5. 0 quadro de dados 110 é lido do bloco de armazenamento 400 e gerado na ordem especificada no arranjo de índice permutado li 560 tomado coluna por coluna. Isso geraria as localizações de armazenamento na ordem do deslocamento: 0,8,16,24,1,11,21,31,2,14,18,30,3,9,23,29,4,12,20, 28,5, 15,17,27,6,10,22,26,7,13,19,25.
Entretanto, o exemplo assumiu um comprimento de quadro de 22 elementos, com as localizações de deslocamento 22-31 no bloco 400 não sendo parte do quadro de dados. Con-seqüentemente, quando gerando o quadro de dados, ele seria anulado ou diminuído para um comprimento de 22, i.e., as localizações de deslocamento maiores do que 21 são ignoradas. 0 quadro de dados é assim gerado com uma ordem de elemento de 0,8,16,1,11,21,2,14,18,3,9,4,12,20,5,15,17,6,10,7, 13,19.
Em um aspecto da invenção, as linhas do arranjo podem ser transpostas antes da geração, por exemplo invertendo os bits nas representações binárias do índice da linha j · Existe uma série de diferentes maneiras para implementar os intercaladores 100 da presente invenção. A FIG. 2 ilustra uma modalidade da invenção onde o intercalador 100 inclui uma memória de entrada 300 para receber e armazenar o quadro de dados 110. Essa memória 300 pode incluir registra-dores de deslocamento, RAM ou semelhante. O intercalador 100 pode também incluir uma memória de trabalho 310 que pode também incluir RAM, registradores de deslocamento ou semelhante. O intercalador inclui um processador 320 (por exemplo, um microprocessador, ASIC, etc.) que pode ser configurado para processar I(j,k) em tempo real de acordo com a equação acima identificada ou acessar uma tabela que inclui os resultados de I(j,k) já armazenados nela. Esses peritos na técnica verificarão que a memória 300 e a memória 310 podem ser a mesma memória ou elas podem ser memórias separadas .
Para determinações em tempo real de I(j,k), a primeira linha do arranjo de índice é permutada e os bytes correspondentes ao índice permutado são armazenados na memória de trabalho. Depois, a próxima linha é permutada e armazenada, etc. até que todas as linhas foram permutadas e armazenadas. A permuta das linhas pode ser feita seqüencialmente ou em paralelo.
Quer o I(j,k) permutado seja determinado em tempo real ou por consulta, os dados podem ser armazenados na memória de trabalho em uma série de diferentes maneiras. Eles podem ser armazenados pela seleção dos dados da memória de entrada na mesma ordem que o i(j,k) no arranjo de índice permutado (i.e., indexar a memória de entrada com a função de permuta) e colocá-los na memória de trabalho em localiza- ções de memória disponíveis seqüenciais. Eles também podem ser armazenados pela seleção dos bytes na sequência que eles foram armazenados na memória de entrada (i.e., FIFO) e armazená-los na memória de trabalho diretamente na localização determinada pelo I(j,k)s permutado (i.e.f indexar a memória de trabalho com a função de permuta). Depois que isso é feito, os dados podem ser lidos da memória de trabalho coluna por coluna com base no arranjo de índice permutado. Como declarado acima, os dados podem ser submetidos a uma outra rotina de permuta depois que eles são armazenados na memória de trabalho com base nas colunas ao invés de nas linhas para atingir resultados diferentes.
Se o sistema é suficientemente rápido, uma das memórias pode ser eliminada e quando um elemento de dados é recebido, ele pode ser colocado na memória de trabalho, em tempo real ou pela consulta da tabela, na ordem correspondendo ao arranjo do índice permutado.
Os intercaladores descritos são compatíveis com estruturas de turbo código existentes. Esses intercaladores oferecem desempenho superior sem aumentar a complexidade do sistema.
Além disso, esses peritos na técnica verificarão que desintercaladores podem ser usados para decodificar os quadros de dados intercalados. A construção dos desintercaladores usados na decodificação dos turbo códigos é bem conhecida na técnica. Como tal, eles não são adicionalmente discutidos aqui. Entretanto, um desintercalador correspon- dendo às modalidades pode ser construído usando as seqüên-cias permutadas discutidas acima.
Embora a modalidade descrita acima seja um turbo codificador tal como é encontrado em um sistema CDMA, esses peritos na técnica verificam que a prática da invenção não é limitada a eles e que a invenção pode ser praticada para qualquer tipo de intercalação e desintercalação em qualquer sistema de comunicação.
Assim, será observado que a invenção eficientemente atinge os objetivos declarados acima, entre esses julgados aparentes a partir da descrição precedente. Em particular, a invenção proporciona aparelho e métodos aperfeiçoados de intercalação de códigos de comprimento finito enquanto minimizando a complexidade da implementação.

Claims (26)

1. Método para a intercalação de elementos de quadros de dados que compreende: armazenar um quadro de dados (110) compreendendo uma pluralidade de elementos como um arranjo D tendo Ni linhas enumeradas como Ο,Ι,...Νχ-l; e N2 colunas enumeradas como 0,1,...N2-1, onde Ni e N2 são números inteiros positivos maiores do que 1; e caracterizado pelo fato de que permuta o arranjo D para o arranjo Di de acordo com: Di (j, k) = D (j, (oíjk + Pj)modP), onde: j é um indice através das linhas dos arranjos D e Di; k é um índice através das colunas dos arranjos D e Di; ot.j e Pj são números inteiros predeterminados para cada linha j; P é um número inteiro pelo menos igual a N2; onde pelo menos P ou um dos valores aj não é um número primo; e cada aj é um número primo relativo em relação ao P; e transmitir o quadro de dados.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os elementos do arranjo D são armazenados de acordo com uma primeira ordem e onde os elementos do arranjo Di são gerados de acordo com uma segunda ordem.
3. Método, de acordo com a reivindicação 2, carac- terizado pelo fato de que os elementos do arranjo D são armazenados linha por linha e os elementos do arranjo Di são gerados coluna por coluna.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de adicionalmente incluir a geração do arranjo Di e onde o produto de Νχ e N2 é maior do que o número de elementos no quadro e o quadro é invalidado durante a geração para o número de elementos no quadro.
5. Método para a intercalação de elementos de quadros de dados compreendendo: criar e armazenar um arranjo de indice I tendo Νχ linhas enumeradas como Ο,Ι,...Νχ-l; e N2 colunas enumeradas como 0,1,...N2-1, onde Νχ e N2 são números inteiros positivos maiores do que 1, armazenar elementos de um quadro de dados em cada uma de uma pluralidade de localizações de armazenamento; armazenar em posições sequenciais linha por linha no arranjo I valores indicativos das localizações correspondentes dos elementos do quadro; e caracterizado pelo fato de que permutar o arranjo I para o arranjo Ιχ de acordo com Ix (j, k) = I (j, (α-jk + β-j) modP) onde: j é um indice através das linhas dos arranjos I e Ιχ; k é um indice através das colunas dos arranjos I e li; aj e Pj são números inteiros predeterminados para cada linha j; P é um número inteiro pelo menos igual a N2; e cada oij é um número primo relativo em relação ao P, onde pelo menos P ou um dos valores de aj não é um número primo; por meio disso o quadro de dados como indexado pelo arranjo li é efetivamente permutado; e transmitir o quadro de dados.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de adicionalmente incluir permutar os e-lementos armazenados de acordo com o arranjo de índice permutado li.
7. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que os elementos do quadro de dados são gerados como indexados pelas entradas do arranjo Ιχ escolhidas diferentes de linha por linha.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que os elementos do quadro de dados são gerados como indexados pelas entradas do arranjo li escolhidas coluna por coluna.
9. Método, de acordo com a reivindicação 5, caracterizado pelo fato de incluir a etapa de transpor linhas do arranjo I antes da etapa de permutar o arranjo I.
10. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que Ni é igual a 4, N2 é igual a 8, Pé igual a 8 e os valores de aj são diferentes para cada linha e são escolhidos de um grupo consistindo de 1, 3, 5 e 7.
11. Método, de acordo com a reivindicação 10, ca- racterizado pelo fato de que os valores de aj são 1, 3, 5 e 7 para j = 0, 1, 2 e 3, respectivamente.
12. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que os valores de aj são 1, 5, 3 e 7 para j = 0, 1, 2 e 3, respectivamente.
13. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que todos os valores de β são zero.
14. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que pelo menos dois valores de β são os mesmos.
15. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que todos os valores de β são zero.
16. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que todos os valores de β são zero.
17. Método, de acordo com a reivindicação 5, caracterizado pelo fato de adicionalmente incluir a geração do quadro de dados e onde o produto de Ni e N2 é maior do que o número de elementos no quadro de dados e o quadro de dados é invalidado durante a geração para o número de elementos no quadro de dados.
18. Intercalador para intercalar elementos de quadros de dados caracterizado pelo fato de que compreende: uma memória de entrada (310, 320) para armazenar um quadro de dados recebido compreendendo uma pluralidade de elementos como um arranjo D tendo Ni linhas enumeradas como 0,l,...Ni-l; e N2 colunas enumeradas como 0,1,...N2-1, onde Ni e N2 são números inteiros positivos maiores do que 1; um processador (320) acoplado na memória de entrada para permutar o arranjo D para o arranjo Di de acordo com Di (j, k) = D (j, (oíjk + Pj)modP) onde: j é um índice através das linhas dos arranjos D e Di; k é um índice através das colunas dos arranjos D e Di; ot.j e Pj são números inteiros predeterminados para cada linha j; P é um número inteiro pelo menos igual a N2; e cada oij é um número primo relativo em relação ao P, onde pelo menos P ou um dos valores aj não é um número pri- mo; e uma memória de trabalho (310) acoplada no processador e configurada para armazenar o arranjo permutado Di; e um transmissor para transmitir o quadro de dados.
19. Intercalador de acordo com a reivindicação 18, caracterizado pelo fato de que a memória de entrada (300) armazena os elementos do arranjo D de acordo com uma primeira ordem e a memória de trabalho (310) gera os elementos do arranjo Di de acordo com uma segunda ordem.
20. Intercalador de acordo com a reivindicação 19, caracterizado pelo fato de que a memória de entrada (300) armazena os elementos do arranjo D linha por linha e a memória de trabalho (310) gera os elementos do arranjo Di coluna por coluna.
21. Intercalador de acordo com a reivindicação 18, caracterizado pelo fato de que a memória de trabalho (310) invalida o arranjo Di para o número de elementos no quadro quando o produto de Ni e N2 é maior do que o número de elementos no quadro.
22. Intercalador para intercalar elementos de quadros de dados, compreendendo: uma memória (300, 310) para armazenar um arranjo de índice I tendo Ni linhas enumeradas como 0,l,...Ni-l; e N2 colunas enumeradas como 0,1,...N2-1, onde Ni e N2 são números inteiros positivos maiores do que 1, e a memória (300, 310) também para armazenar elementos de um quadro de dados (110) recebido em cada uma de uma pluralidade de localizações de armazenamento; um processador (320) acoplado na memória para armazenar em posições sequenciais linha por linha no arranjo I valores indicativos das localizações correspondentes dos e-lementos do quadro; e caracterizado pelo processador (320) também ser para permutar o arranjo I para o arranjo li armazenado na memória de acordo com: li (j, k) = I (j, (oíjk + β-j) modP) onde: j é um índice através das linhas dos arranjos I e li; k é um índice através das colunas dos arranjos I e li; aj e Pj são números inteiros predeterminados para cada linha j; P é um número inteiro pelo menos igual a N2; e cada aj é um número primo relativo em relação ao P, onde pelo menos P ou um dos valores de aj não é um número primo; e por meio disso o quadro de dados como indexado pelo arranjo li é efetivamente permutado; e o processador (320) também ser para transmitir o quadro de dados.
23. Intercalador de acordo com a reivindicação 22, caracterizado pelo fato de que o processador (320) permuta os elementos armazenados de acordo com o arranjo de índice permutado li.
24. Intercalador de acordo com a reivindicação 22, caracterizado pelo fato de que a memória (310) gera os elementos do quadro como indexados pelas entradas do arranjo li escolhidas diferentes de linha por linha.
25. Intercalador de acordo com a reivindicação 24, caracterizado pelo fato de que a memória (310) gera os elementos do quadro como indexados pelas entradas do arranjo li escolhidas coluna por coluna.
26. Intercalador de acordo com a reivindicação 22, caracterizado pelo fato de que a memória (310) invalida o quadro de dados para o número de elementos no quadro de dados (110) quando o produto de Ni e N2 é maior do que o número de elementos no quadro de dados.
BRPI0007468-3A 1999-01-11 2000-01-11 Métodos e intercaladores para a intercalação de elementos de quadros de dados. BRPI0007468B1 (pt)

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 (2)

Publication Number Publication Date
BR0007468A BR0007468A (pt) 2001-10-30
BRPI0007468B1 true BRPI0007468B1 (pt) 2015-08-25

Family

ID=26813148

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0007468-3A BRPI0007468B1 (pt) 1999-01-11 2000-01-11 Métodos e intercaladores para a intercalação de elementos de quadros de dados.

Country Status (10)

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

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
MXPA01007021A (es) 2002-08-30
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
DE60016561T2 (de) 2005-04-07
CA2360340A1 (en) 2000-07-20

Similar Documents

Publication Publication Date Title
BRPI0007468B1 (pt) Métodos e intercaladores para a intercalação de elementos de quadros de dados.
Peterson et al. Error-correcting codes
US6637000B2 (en) Turbo code interleaver using linear congruential sequences
ES2243203T3 (es) Adaptacion de velocidades y entrelazado de cables para un sistema de comunicaciones.
CN100426680C (zh) Turbo解码器的缓冲器结构
JP5464752B2 (ja) 受信器、インタリーブおよびデインタリーブ回路、ならびに方法
RU2003107665A (ru) Турбодекодер, использующий линейные конгруэнтные последовательности
PT2165445T (pt) Codificação convolucional computacionalmente eficiente com correspondência de taxas
US20020035709A1 (en) Apparatus and method for providing turbo code interleaving in a communications system
EP1118160B1 (en) Interleaver using co-set partitioning
TWI424718B (zh) 無線通訊方法與系統
CA2521041C (en) Methods and apparatus for interleaving in a block-coherent communication system
BRPI0009717B1 (pt) Método e intercalador para intercalação de elementos de quadros de dados
US8627022B2 (en) Contention free parallel access system and a method for contention free parallel access to a group of memory banks
Asghar Dual standard re-configurable hardware interleaver for turbo decoding
US7225306B2 (en) Efficient address generation for Forney's modular periodic interleavers
KR100215566B1 (ko) 정적 램을 이용한 길쌈 인터리버/디인터리버 및정적 램의 주소 생성 방법
US8196000B2 (en) Methods and apparatus for interleaving in a block-coherent communication system
RU29816U1 (ru) Кодирующее устройство помехоустойчивого кода
KR20040037624A (ko) 인터리빙된 데이터 열의 디인터리빙 방법 및 장치

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B25A Requested transfer of rights approved

Owner name: ROCKSTAR BIDCO, LP (US)

B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 25/08/2015, OBSERVADAS AS CONDICOES LEGAIS.

B25A Requested transfer of rights approved
B25G Requested change of headquarter approved