BR9912990B1 - sistema para realizar decodificação por probabilidade máxima a posteriori de janela deslizante. - Google Patents

sistema para realizar decodificação por probabilidade máxima a posteriori de janela deslizante. Download PDF

Info

Publication number
BR9912990B1
BR9912990B1 BRPI9912990-6A BR9912990A BR9912990B1 BR 9912990 B1 BR9912990 B1 BR 9912990B1 BR 9912990 A BR9912990 A BR 9912990A BR 9912990 B1 BR9912990 B1 BR 9912990B1
Authority
BR
Brazil
Prior art keywords
estimates
window
ram
decoder
decoding
Prior art date
Application number
BRPI9912990-6A
Other languages
English (en)
Other versions
BR9912990A (pt
Inventor
Steven J Halter
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
Priority claimed from US09/259,665 external-priority patent/US6381728B1/en
Priority claimed from US09/283,013 external-priority patent/US6434203B1/en
Application filed filed Critical
Publication of BR9912990A publication Critical patent/BR9912990A/pt
Publication of BR9912990B1 publication Critical patent/BR9912990B1/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP 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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • 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)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Navigation (AREA)
  • Detection And Correction Of Errors (AREA)

Description

"SISTEMA PARA REALIZAR DECODIFICAÇÃO POR PROBABILIDADE MÁXIMA A POSTERIORI DE JANELA DESLIZANTE" HISTÓRICO DA INVENÇÃO
I. Campo da Invenção
A presente invenção está relacionada a codificação. Mais particularmente, a presente invenção está relacionada a uma técnica nova e aperfeiçoada para efetuar decodificação por probabilidade máxima a posteriori (MAP).
II. Descrição da Técnica Correlacionada
A "turbo codificação" representa um importante avanço na área de correção antecipada de erro (FEC - Forward Error Correction). Existem muitas variações da turbo codificação, porém a maioria utiliza múltiplas etapas de codificação separadas por etapas de intercalação combinadas com decodificação iterativa. Tal combinação propicia um desempenho anteriormente não disponível com relação à tolerância ao ruído em um sistema de comunicações. Isto é, a turbo codificação permite comunicações em níveis de Eb/No que eram anteriormente inaceitáveis quando do uso de técnicas de correção antecipada de erro então disponíveis.
Vários sistemas utilizam a correção de erros à frente e portanto se beneficiariam pelo uso da turbo codificação. Como exemplo, turbo códigos poderiam melhorar o desempenho de links sem fio por satélite, em que a limitada potência de transmissão do link de descida do satélite demanda sistemas receptores que possam operar em baixos níveis de Eb/No. A utilização de turbo códigos em um link sem fio por satélite poderia reduzir o tamanho da antena parabólica para um sistema de difusão de vídeo digital (DVB - Digital Video Broadcast), ou, alternativamente, permitir que mais dados fossem transmitidos dentro de uma dada largura de banda de freqüências. Os sistemas de telecomunicação sem fio digitais, tais como os sistemas telefônicos celulares digitais e PCS, também utilizam a correção antecipada de erro. Como exemplo, a norma de interface aérea IS-95 e suas derivadas, tal como a IS-95B, definem um sistema digital de comunicações sem fio que utiliza a codificação convolucional para prover ganho de codificação para aumentar a capacidade do sistema. Um sistema e método para processamento de sinais de RF substancialmente de acordo com o uso da norma IS-95 está descrito na Patente U.S. N25.103.459, intitulada "SYSTEM AND METHOD FOR GENERAING SIGNAL WAVEFORMS IN A CDMA CELLULAR TELEPHONE SYSTEM", em nome da Requerente da presente invenção (patente M59).
Devido ao fato de que os sistemas de comunicação sem fio digitais, tais como o IS-95, servem principalmente para comunicações móveis, é importante a existência de dispositivos que minimizam a utilização de energia e que sejam pequenos e de baixo peso. Tipicamente, isto requer o desenvolvimento de um circuito semicondutor integrado ("chip") para perfazer a maioria, ou a totalidade, do processamento necessário. Apesar da codificação convolucional ser relativamente complexa, os circuitos necessários para efetuar a codificação e decodificação convolucional podem ser conformados em um único chip, juntamente com quaisquer outros circuitos necessários.
A turbo codificação (em particular a operação de decodificação) é significativamente mais complexa que a codificação (e decodificação) convolucional. De qualquer forma, seria altamente desejável incluir a turbo codificação em sistemas digitais de telecomunicação sem fio, incluindo sistemas móveis de comunicação digitais e sistemas de comunicação por satélite. Dessa forma, a presente invenção está direcionada à elevação da taxa com a qual certas operações de decodificação podem ser efetuadas, para facilitar o uso de turbo codificação em uma diversidade de sistemas.
Uma atenção adicional é dada ao documento intitulado "AN INTUITIVE JUSTIFICATION AND A SIMPLIFIED IMPLEMENTATION OF THE MAP DECODER FOR CONVOLUTIONAL CODES" por Viterbi A J, IEEE Journal os Selected Areas in Communication, US, IEEE INC New York, Vol. 16, N0 2, páginas 260-264, XP000741780. O documento discute o uso de decodificadores MAP para códigos convolucionais e também aplica técnicas de gerenciamento de memória similares às utilizadas por códigos convolucionais comuns.
É também dada atenção ao documento por G. Fettweiss e H. Meyr, intitulado "FEEDFORWARD ARCHITETURE FOR PARALLEL VITERBI DECODING", Journal on VLSI Signal Processing, Vol. 3, N0 2, Junho de 1991, páginas 105-119, XP000228897. O documento discute o contexto da decodificação Viterbi em que por não mais processar recursivamente a realimentação ACS, arquiteturas puramente por alimentação antecipada (feedforward) podem ser projetadas.
Finalmente, é dada atenção à publicação de Dawid H; Meyr H.: "REAL-TIME ALGORITHMS AND VLSI ARCHITETURE FOR SOFT OUTPUT MAP CONVOLUTIONAL DECODING", Proc. Of Personal, Indoor And Mobile Radio Conference (PIMRC) 1995, Vol. 1, 27 de Setembro de 1995, Ontário, Canadá, Páginas 193-197, XP002176458.
SUMÁRIO DA INVENÇÃO
No contexto da presente invenção, são providos um sistema e um método para realizar decodificação por máxima probabilidade a posteriori de janela deslizante conforme apresentado na reivindicação 1. Modalidades da presente invenção são descritas nas reivindicações dependentes.
A presente invenção consiste de uma técnica nova e aperfeiçoada para decodificação, com particular aplicação a técnicas turbo ou iterativas de codificação. De acordo com uma modalidade da invenção, um sistema para decodificação inclui uma RAM deintercaladora de canal para armazenar um bloco de estimativas de símbolos, um conjunto de S calculadores de medida ou métrica de estado. Cada calculador de medida de estado serve à geração de um conjunto de cálculos de medida de estado e um conjunto de S+l RAMs de janela, em que S dentre as S + l RAMs de janela propiciam estimativas de símbolos para os S calculadores de medida de estado. Uma RAM de janela restante recebe estimativas de símbolos provenientes da RAM deintercaladora de canal.
BREVE DESCRIÇÃO DOS DESENHOS
As características, objetivos e vantagens da presente invenção ficarão mais claros através da descrição detalhada apresentada a seguir, quando tomada em conjunto com os desenhos, nos quais referências numéricas similares identificam itens correspondentes e nos quais:
As Figuras IA e IB são diagramas de blocos de sistemas de comunicação sem fio;
A Figura 2 é um diagrama de blocos de um sistema de transmissão;
As Figuras 3A e 3B são diagramas de turbo codificadores;
A Figura 4 é um diagrama de blocos de um sistema de processamento de recepção;
A Figura 5 é um diagrama de blocos de um decodificador e uma porção de um deintercalador de canal;
A Figura 6 é um fluxograma ilustrando um exemplo de conjunto de etapas de decodificação.
DESCRIÇÃO DETALHADA DAS MODALIDADES PREFERIDAS
A presente invenção consiste de uma técnica nova e aperfeiçoada para efetuar a turbo codificação. A modalidade exemplar será descrita no contexto de um sistema de telefonia celular digital. Apesar do uso dentro de tal contexto ser vantajoso, diferentes modalidades da invenção podem ser incorporadas em ambientes, configurações, ou sistemas digitais de transmissão de dados diversos, incluindo sistemas de comunicação por satélite e sistemas de comunicação por fio, tais como sistemas digitais por cabo e de telefonia.
De um modo geral, os diversos sistemas aqui descritos podem ser formados usando-se processadores controlados por software, circuitos integrados, ou lógica individual, no entanto, é preferida a implementação em um circuito integrado. Os dados, instruções, comandos, informações, sinais, símbolos e chips que possam ser mencionados por todo o pedido, são vantajosamente representados por voltagens, correntes, ondas
eletromagnéticas, partículas ou campos magnéticos, partículas ou campos ópticos, ou uma combinação de tais, Além disso, os blocos apresentados em cada diagrama de blocos podem representar hardware ou etapas de métodos. A Figura IA é um diagrama altamente simplificado
de um sistema de telefonia celular configurado de acordo com uma modalidade da invenção. Para conduzir chamadas telefônicas ou outras comunicações, unidades de assinantes10 fazem interface com estações base 12 através de sinais de RF. As estações base 12 fazem interface com a rede pública de comutação telefônica através de um controlador de estação base (BSC - Base Station Controller) 14.
A Figura IB é um diagrama altamente simplificado de um sistema de comunicações por satélite configurado de acordo com uma outra modalidade da invenção. A estação de link de subida 40 transmite sinais de RF contendo informações tais como programação de vídeo para o satélite42. 0 satélite 42 repassa os sinais de RF de volta à terra, onde o receptor 44 converte os sinais de RF de recepção em dados digitais. Ά figura ζ e um diagrama de blocos de um exemplo de sistema de transmissão configurado de acordo com a utilização de uma modalidade da presente invenção. 0 sistema de transmissão pode ser usado no interior de uma unidade de assinante 10, de uma estação base 12, ou estação de link de subida 40, bem como em qualquer outro sistema que gere sinais digitais para transmissão. O processamento de transmissão apresentado representa apenas uma modalidade possível da invenção, uma vez que vários outros esquemas de processamento de transmissão podem incorporar e se beneficiar do uso de várias modalidades da invenção.
Dados 70 são supridos ao gerador CRC 72 que gera dados CRC de conferência de soma ("checksum") para cada quantidade predeterminada de dados recebidos. Os blocos de dados resultantes são supridos ao turbo codificador 76 que gera símbolos de código que são supridos ao intercalador de canais 78. Os símbolos de código incluem tipicamente uma retransmissão dos dados originais (o símbolo sistemático) e um ou mais símbolos de paridade.
0 número de símbolos de paridade transmitidos para cada símbolo sistemático depende da taxa de codificação. Para uma taxa de codificação de 1/2 um símbolo de paridade é transmitido para cada símbolo sistemático, para um total de dois símbolos gerados para cada bit de dados (incluindo CRC) recebido. Para um turbo codificador de taxa 1/3, dois símbolos de paridade são gerados para cada símbolo sistêmico, para um total de três símbolos gerados para cada bit de dados recebido.
Os símbolos de código provenientes do turbo codificador 76 são supridos ao intercalador de canais 78. O intercalador de canais 78 efetua a intercalação sobre os blocos de símbolos à medida que eles são recebidos, emitindo símbolos intercalados que são recebidos pelo mapeador 80. Tipicamente, o intercalador de canais 78 efetua a intercalação em blocos ou por reversão de bits, virtualmente todos os outros tipos de intercaladores podendo ser usados como o intercalador de canais.
O mapeador 80 toma os símbolos de código intercalados e gera palavras símbolo com certa largura de bit com base em um esquema predeterminado de mapeamento. As palavras símbolo são a seguir aplicadas ao modulador 82 que gera uma forma de onda modulada com base na palavra símbolo recebida. As técnicas típicas de modulação incluem a QPSK,8-PSK e 16 QAM, apesar de poderem ser utilizados vários outros esquemas de modulação. A forma de onda modulada é a seguir convertida para transmissão em uma freqüência de RF.
A Figura 3A é um diagrama de blocos de um turbo codificador configurado de acordo com uma primeira modalidade da invenção. Em tal primeira modalidade da invenção, o turbo codificador está configurado na forma de um turbo codificador concatenado em paralelo. No interior da versão do turbo codificador 76, o codificador constituinte 90 e o intercalador de código 92 recebem os dados provenientes do gerador CRC 72, o qual, tal como foi acima descrito, emite os dados de entrada e os bits CRC checksum. 0 codificador constituinte 90 gera também bits terminais ("tail bits") para prover um estado conhecido no final de cada quadro.
Como é bem conhecido, o intercalador de código 92 deve ser um intercalador altamente aleatorizado para o melhor desempenho. Um intercalador que propicia excelente desempenho com um mínimo de complexidade como um intercalador de código está descrito no Pedido Co-pendente de Patente U.S. N2 de Série 09/158.459, depositado em 22 de setembro de 1998, intitulado "CODING SYSTEM HAVING STATE MACHINE BASED INTERLEAVER", e no Pedido Continuação em Parte Co-pendente de Patente U.S. N- de Série 09/172.069, depositado em 13 de outubro de 1998, intitulado "CODING SYSTEM HAVING STATE MACHINE BASED INTERLEAVER", e no Pedido de Patente U.S. N- de Série 09/205.511, depositado em 4 de dezembro de 1998, intitulado "TURBO CODE INTERLEAVER USING LINEAR CONGRUENTIAL SEQUENCE", todos em nome da Requerente da presente invenção. 0 codificador constituinte 90 emite símbolos sistemáticos 94 (tipicamente uma cópia dos bits de entrada originais) e símbolos de paridade 96. 0 codificador constituinte 98 recebe a saída intercalada do intercalador de código 92 e emite símbolos de paridade 99 adicionais. 0 codificador constituinte 90 pode também adicionar bits terminais para prover um estado conhecido ao final de cada quadro.
As saídas do codificador constituinte 90 e do codificador constituinte 98 são multiplexadas à corrente de dados emitidos para uma taxa total de codificação R de 1/3. Códigos constituintes e pares de intercalador de códigos adicionais podem ser adicionados para reduzir a taxa de codificação para maior correção de erros à frente. Alternativamente, parte dos símbolos de paridade 96 e 99 podem ser puncionados (não transmitidos) para elevar a taxa de codificação. Como exemplo, a taxa de codificação poderia ser elevada para 1/2 pelo puncionamento de símbolos de paridade 96 e 99 alternados, ou pela não transmissão total do símbolo de paridade 96.
Os codificadores constituintes 90 e 98 podem ser diversos tipos de codificadores incluindo codificadores de bloco ou codificadores convolucionais. Como codificadores convolucionais, os codificadores constituintes 90 e 98 possuem tipicamente um pequeno comprimento de restrição tal como 4 (quatro) para reduzir a complexidade, e são codificadores recursivos sistemáticos convolucionais (RSC - Recursive Systematic Convolucional). 0 menor comprimento de restrição reduz a complexidade do decodificador correspondente no sistema de recepção.
Tipicamente, os dois codificadores emitem um símbolo sistemático e um símbolo de paridade para cada bit recebido para uma taxa de codificação constituinte R = 1/2. No entanto, a taxa de codificação total para o turbo codificador da Figura 3A é de R = 1/3, pois o bit sistemático proveniente do codificador constituinte 98 não é usado. Como foi acima mencionado, intercaladores e pares de codificadores adicionais podem também ser adicionados em paralelo para reduzir a taxa de codificação e portanto prover maior correção de erros, ou pode ser efetuado puncionamento para elevar a taxa de codificação.
A Figura 3B apresenta o turbo codificador 76 na forma de um turbo codificador serial concatenado de acordo com uma modalidade alternativa da invenção. No interior do turbo codificador da Figura 3B, os dados provenientes do gerador CRC 72 são recebidos pelo codificador constituinte .110 e os símbolos de código resultantes são aplicados ao intercalador de código 112. Os símbolos de paridade intercalados resultantes são supridos ao codificador constituinte 114, que efetua codificação adicional para gerar símbolos de paridade 115. Tipicamente, o codificador constituinte 110 (o codificador externo) pode ser de vários tipos de codificadores, incluindo codificadores de blocos ou codificadores convolucionais, porém o codificador constituinte 114 (o codificador interno) é de preferência um codificador recursivo e é tipicamente um codificador recursivo sistemático.
Como os codificadores recursivos sistemáticos convolucionais (RSC), os codificadores constituintes 110 e .114 geram símbolos a uma taxa de codificação R < 1. Isto é, para um dado número de bits de entrada Ν, M símbolos de saída são gerados, em que M > Ν. A taxa total de codificação para o turbo codificador serial concatenado da Figura 3B é a taxa de codificação do codificador constituinte 110 multiplicada pela taxa de codificação do codificador constituinte 114. Pares de codificadores e intercaladores adicionais podem também ser adicionados em série para reduzir a taxa de codificação e portanto prover proteção adicional contra erros.
A Figura 4 é um diagrama de blocos de um sistema de recepção configurado de acordo com uma modalidade da invenção. A antena 150 provê os sinais de RF recebidos para a unidade de RF 152. A unidade de RF efetua a conversão para recepção, filtragem e digitalização dos sinais de RF. O mapeador 154 recebe os dados digitalizados e provê dados de decisão soft para o deintercalador de canal 156. O turbo decodificador 158 decodifica os dados de decisão soft provenientes do deintercalador de canais 156 e supre os dados de decisão hard resultantes para o processador ou unidade de controle no sistema de recepção, que pode checar a acuracidade dos dados usando os dados CRC checksum.
A Figura 5 é um diagrama de blocos do turbo decodificador 158 e uma porção do deintercalador de canais quando configurados de acordo com uma modalidade da invenção. Como mostrado, o turbo decodificador 158 está configurado para decodificar os dados provenientes do turbo codificador mostrado na Figura 3A.
Na modalidade descrita, são providos dois bancos de memória de intercalador de canal - as RAMs de deintercalador de canal 160a e 160b - com cada banco capaz de armazenar um bloco de intercalador de canal. A entrada de endereço dos dois bancos de memória de intercalador de canal é controlada pelo gerador de endereço de canal 204 e contador 206, que são aplicados às entradas de endereço através de multiplexadores 208 e 210. Os multiplexadores .208 e 210 são controlados pelo sinal Ie !I (o inverso lógico de I) e portanto quando uma RAM deintercaladora de canal é controlada pelo gerador de endereço de deintercalador de canal 204 a outra é controlada pelo contador 206. De um modo geral, qualquer funcionalidade de controle pode ser provida por um microprocessador operando com software armazenado na memória e por circuitos lógicos individuais, apesar de que o uso de vários outros tipos de sistemas de controle é consistente com o uso da invenção.
As portas 1/0 dos bancos de memória de intercalador de canal estão acopladas aos multiplexadores 212 e 214. 0 multiplexador 212 recebe os dados de decisão soft provenientes do mapeador 154 para um dos dois bancos de memória de deintercalador de canal. 0 multiplexador 214 emite os dados de decisão soft armazenados em um dos dois bancos de memória de deintercalador de canal para o somador parcial 218. Os multiplexadores 212 e 214 são controlados pelo sinal Be !B respectivamente e portanto quando uma RAM deintercaladora de canal está recebendo amostras provenientes do mapeador 154, a outra está emitindo amostras para o somador parcial 218. Durante a operação, o gerador de endereço de
deintercalador de canal 204 é aplicado ao banco de memória de deintercalador de canal recebendo amostras provenientes do mapeador 154. 0 gerador de endereço de deintercalador de canal gera endereços em ordem inversa em relação à intercalação efetuada pelo intercalador de canal 78 da Figura 3. Dessa forma, as amostras são lidas para o banco de memória de deintercalador de canal 160 em ordem não intercalada (não intercalada em relação ao intercalador de canal) .
O contador 206 é aplicado ao banco de memória de
deintercalador de canal lendo a decisão soft para o somador parcial 218. Uma vez que os dados de decisão soft foram lidos em ordem inversa, os dados de decisão soft podem ser lidos em ordem deintercalada simplesmente usando-se o contador 206. Vários outros métodos de acumulação ("buffering") dos dados de decisão soft podem também ser usados, incluindo o uso de memória de porta dupla. Além disso, pode ser usado outro método para gerar os endereços de deintercalador, incluindo a comutação do contador 206 e do gerador de endereço de deintercalador de canal 204. No interior do turbo codificador 158, o somador parcial 218 recebe as estimativas de recepção (dados de decisão soft) provenientes do deintercalador de canal, bem como dados a priori de probabilidade (APP) provenientes da memória APP 170. Como é bem conhecido, os valores de APP são as estimativas dos dados transmitidos com base na iteração de decodificação anterior. Durante a primeira iteração, os valores de APP são ajustados para um estado de igual probabilidade.
As estimativas provenientes da memória de deintercalador de canais incluem estimativas do símbolo sistemático, bem como estimativas de dois símbolos de paridade para cada bit de dados associado com o bloco de intercalador de canais. 0 somador parcial 218 adiciona o valor de APP ao símbolo sistemático para criar uma "estimativa sistemática refinada". A estimativa sistemática refinada, juntamente com as duas estimativas de símbolo de paridade são lidas para o arquivo RAM 224.
No interior do arquivo RAM 224, os valores de estimativa são gravados em RAMs de janela 230a a d (designadas como RAM 0 a RAM 3) . Em uma modalidade da invenção, as estimativas são gravadas em ordem seqüencial no espaço de endereçamento das RAMs 0 a 3. Tal processo se inicia com a RAM 0 e prossegue até a RAM 3. Em qualquer dado momento, somente uma RAM de janela é gravada. As três RAMs de janela restantes (aquelas que não estão sendo gravadas) são aplicadas ao (lidas pelo) motor MAP 270 através dos multiplexadores 260, tal como será descrito em maiores detalhes a seguir.
Em uma modalidade da invenção, é empregada uma estrutura de janela móvel para efetuar a decodificação de mapa. Um sistema e método para efetuar tal decodificação de janela móvel está descrito no Pedido Co-pendente de Patente U.S. N2 de Série 08/743.688, intitulado "SOFT DECISION output decoder for decoding convolutionally encoded codewords", em nome da Requerente da presente invenção.
Em tal pedido, a decodificação MAP é efetuada sobre "janelas" de dados. Na modalidade descrita da invenção, os bancos de RAM de janela 230 possuem tamanho de Lxq, em que L é o número de bits de dados transmitidos na janela e q é o número de bits de memória necessários para armazenar as estimativas do símbolo sistemático refinado e os dois símbolos de paridade gerados para cada bit de dados. Em uma modalidade da invenção, seis (6) bits são usados para as duas estimativas de símbolos de paridade e sete (7) bits são usados para as estimativas de símbolos sistemáticas refinadas (que, tal como foi acima descrito, são as somas das estimativas de símbolos sistemáticas de receptor com o valor de APP) , para um q de dezoito (18) bits.
Como foi dito acima, as estimativas, incluindo a estimativa de símbolo sistemático refinada e as estimativas de símbolo de paridade, são gravadas nas RAMs de janela 230a a d em ordem seqüencial. Tipicamente, somente uma RAM de janela 230 está sendo qravada e as restantes três RAMs de janela 230 são lidas pelo motor MAP 270.
Em um exemplo de processamento, dados provenientes de um novo bloco de canal são primeiramente gravados na RAM de janela 230a e a seguir na RAM de janela230b. Dessa forma, a RAM de janela 230a contém o primeiro conjunto L (IL) de estimativas (em que um conjunto compreende a estimativa sistemática refinada e as duas estimativas de paridade) e a RAM de janela 230b contém o segundo conjunto L (2L) de estimativas. Quando do armazenamento dos dois primeiros conjuntos de estimativas L no interior das RAMs de janela 230, os multiplexadores 260 começam a aplicar os dados armazenados nas RAMs de janela230 aos calculadores de medida de estado (SMC) no interior de um decodificador máximo a posteriori (MAP) 270. Em uma modalidade da invenção, os três SMCs são constituídos por um SMC à frente (FSMC) 272 e dois SMCs reversos (RSMC) 274a e 274b.
À medida que os dados continuam a ser gravados no arquivo RAM 224, os multiplexadores 260 aplicam as estimativas armazenadas em três das quatro RAMs de janela aos três calculadores de medida de estado no interior do decodificador MAP 270 de acordo com a Tabela I.
<table>table see original document page 15</column></row><table> Tabela I.
Juntamente com a RAM de janela específica aplicada à medida de estado específica, a Tabela I lista também o conjunto de estimativas contidas em tal RAM de janela no momento e portanto as estimativas processadas pelo SMC correspondente.
Uma janela é processada uma vez na direção à frente e uma vez na direção reversa de acordo com o processamento MAP. Adicionalmente, a maioria das janelas é processada mais uma vez na direção reversa para gerar um estado de inicialização para o outro processamento de medida de estado reversa. Na Tabela I, as passagens de inicialização estão denotadas pelo texto em itálico. Na modalidade descrita, cada conjunto de estimativas é processado três vezes e portanto a RAM de janela em que as estimativas estão armazenadas é também acessada três vezes. O uso de 3 RAMs de janela impede a contenção de RAM.
Também como mostrado pela Tabela I, em qualquer momento pelo menos uma RAM de janela não está acoplada a qualquer SMC e portanto fica disponível para a gravação de novos dados. Pela existência de mais que três janelas de RAM no interior do arquivo RAM 224, dados podem ser contínua e repetidamente alimentados ao motor MAP na seqüência correta e ao SMC correto entre os três SMCs, sendo simultaneamente recebidos a partir da memória de intercalador de canal 160 através do somador parcial 218.
Deve também ser notado que a Tabela I ilustra o acoplamento efetuado para seis (6) janelas de dados. Dessa forma, o tamanho do bloco de intercalador de canal do exemplo é 6L e a memória de deintercalador de canal e 6Lxq. 0 tamanho de bloco de canal de 6L serve apenas como exemplo e o tamanho típico de bloco de canal será maior que 6L.
Fazendo ainda referência à Figura 5, no interior do decodificador MAP 270, o FSMC 272 recebe as estimativas provenientes do arquivo RAM 224 tal como foi acima descrito e calcula os valores de medida de estado à frente sobre uma janela L. Os valores de medida de estado à frente são armazenados no buffer de medida 276. Adicionalmente, de acordo com a Tabela I, um RSMC 274 calcula os valores de medida de estado reversa sobre outra janela L. Em uma modalidade da invenção, cada calculador de medida de estado contém seu próprio calculador de medida de ramo. Em outras modalidades da invenção um único calculador de medida de ramo temporalmente compartilhado pode ser usado pelo conjunto de medidas de estado, de preferência em combinação com um buffer de medida de ramo.
Em uma modalidade da invenção, o decodificador MAP utilizado é um decodificador log-MAP, que opera sobre o logaritmo das estimativas para reduzir a complexidade do hardware. Uma implementação de um decodificador log-MAP incluindo calculadores de medida de estado e de medida de ramo está descrita na referência de S. S. Pietrobon, "Implementation and Performance of a Turbo/MAP Decoder", apresentada ao International Journal of Satellite Communications, fevereiro de 1997. 0 decodificador log-MAP de Pietrobon não utiliza a estrutura de janela móvel descrita no Pedido de Patente "SOFT DECISION OUTPUT DECODER FOR DECODING CONVOLUTIONALLY ENCODED CODEWORDS" acima mencionado.
O último valor calculado pelo primeiro RSMC 274 é usado para inicializar o outro RSMC 274, que efetua um cálculo de medida de estado reversa sobre a janela L para a qual medidas de estado à frente foram já calculadas e armazenadas no buffer de medida 276. Enquanto as medidas de estado reversas são calculadas, elas são adiantadas, por meio do multiplexador 278, para o calculador de razão de probabilidade de Iog (LLR - Log Likelihood Ratio) 280. O calculador LLR 280 efetua um cálculo de probabilidade Iog das medidas de estado reversas recebidas a partir do MUX278 e as medidas de estado à frente armazenadas no buffer de medida 276. As estimativas de dados resultantes provenientes do LLR 280 são adiantadas para a memória APP170.
Pelo uso de um processo de cálculo de medida
móvel, a quantidade de memória usada para efetuar o processamento necessário é reduzida. Como exemplo, o conjunto de RAMs de janela 230 necessita apenas ser do tamanho da janela L, em lugar do tamanho de todo o bloco de intercalador. De forma similar, somente uma janela L de medidas de estado à frente necessita estar armazenada no interior do buffer de medida 276 em qualquer momento. Isto reduz significativamente o tamanho do circuito.
Adicionalmente, o uso de três calculadores de medida aumenta significativamente a taxa em que pode ser efetuada a decodificação. A taxa é elevada, pois as funções de inicialização e decodificação podem ser efetuadas em paralelo. A inicialização aumenta a acuracidade do decodificador. Em modalidades alternativas da invenção, podem ser usados dois calculadores de medida de estado à frente em conjunto com um calculador de medida de estado reversa. Além disso, pode ser usado um menor número de calculadores de medida caso temporizados em uma taxa suficientemente elevada para efetuar duas vezes mais operações. No entanto, o aumento da taxa de clock aumenta o consumo de energia, o que é indesejável em muitos casos, incluindo nos sistemas de comunicação móveis ou acionados por baterias.
Adicionalmente, apesar do uso do arquivo RAM 224 reduzir a área de circuito e contenção de RAM no interior do decodificador, outras modalidades da invenção podem selecionar estruturas de memória alternativas.
Como foi acima descrito com referência à modalidade exemplar, a decodificação é efetuada primeiramente decodificando-se uma primeira janela em uma primeira direção e simultaneamente efetuando uma segunda decodificação em uma segunda janela na segunda direção. A segunda direção é de preferência oposta à primeira direção.
Os resultados da primeira decodificação são armazenados. Os resultados da segunda decodificação são usados para inicializar uma terceira decodificação efetuada sobre a primeira janela na segunda direção. Durante a terceira decodificação, os valores LLR são calculados usando-se os valores calculados durante a terceira decodificação e os valores armazenados.
Simultaneamente com a terceira decodificação, é efetuada uma quarta decodificação de outra janela na primeira direção, bem como uma quinta decodificação na segunda direção em mais outra janela. Os resultados da quarta decodificação são armazenados e a quinta decodificação é usada para gerar um valor de inicialização. Tais etapas são repetidas até que todo o bloco intercalador de canal seja decodificado. Várias modalidades alternativas da invenção podem omitir algumas das etapas usadas na modalidade descrita. No entanto, o uso do conjunto de etapas descritas propicia decodificação rápida e acurada com um mínimo de memória e circuitos adicionais e portanto propicia significativos benefícios de desempenho.
Em uma modalidade da invenção, a memória APP 170 é constituída por dois bancos de memória APP 284. Os multiplexadores 286 comutam cada banco de memória 284 entre serem lidos pelo somador parcial 218 e serem gravados pelo LLR 280 para prover operação acumulada ("buffered") dupla. Os multiplexadores 288 aplicam ou um contador 290 ou o gerador de endereço de intercalador de código 292 de forma a efetuar a turbo intercalação de código e intercalação inversa para cada iteração de decodificação.
Além disso, os bancos de memória APP 284 podem ser grandes o suficiente para armazenar todas as estimativas de dados para um bloco de intercalador de canal, em que as estimativas são dos dados transmitidos e não dos símbolos de paridade. Podem ser usadas estimativas com seis bits de resolução.
Todo o processo de decodificação prossegue pela repetida leitura das estimativas de recepção a partir de um buffer de deintercalador de canal 160 e processamento com o valores APP provenientes do banco de memória APP 170. Após uma série de interações, as estimativas devem convergir sobre um conjunto de valores que são a seguir usados para a geração de decisões hard. Os resultados da decodificação são a seguir checados usando-se os valores CRC. Simultaneamente com a decodificação, o outro buffer de deintercalador de canal recebe o próximo bloco de estimativas de recepção.
A Figura 6 é um fluxograma ilustrando as etapas efetuadas durante a decodificação log-MAP de um bloco de intercalador de canal de acordo com uma modalidade da invenção. As etapas são descritas com referência aos elementos mostrados na Figura 5.
A decodificação se inicia na etapa 300 e na etapa .302 o índice de janela N é ajustado para 0. Na etapa 304 a janela [N] e a janela [N+l] das estimativas armazenadas na RAM deintercaladora de canal são gravadas na janela RAM [N mod 3] e na janela RAM [(N+l) mod 3] respectivamente. Como foi acima mencionado, uma janela de estimativas corresponde aos símbolos gerados com relação a uma janela L de bits de dados sendo transmitidos.
Na etapa 308, o FSMC processa as estimativas em RAM [N mod 3] (gue neste caso é a RAM 0) e o RSMC 0 processa as estimativas em RAM [(N+l) mod 3] (que é a RAM .1) . Adicionalmente, a janela [N+2] de estimativas proveniente da RAM deintercaladora de canal é gravada na janela RAM [(N+2) mod 3] (que é a RAM 2).
Na etapa 310, o índice de janela N é incrementado e X ajustado para N mod 2 e Y ajustado para (N+l) mod 2. Na etapa 312 é determinado se N+l corresponde à última janela de estimativas a ser processada. Caso contrário, a etapa .314 é efetuada.
Na etapa 314, o FSMC processa as estimativas armazenadas na janela RAM [N mod 3], RSMC X (X = 0 na primeira passagem) processa as estimativas armazenadas na janela RAM[(N+1) mod 3] e o RSMC Y (Υ = 1 na primeira passagem) processa as estimativas armazenadas na janela RAM[(N-I) mod 3]. Adicionalmente, a janela [N+2] de estimativas provenientes da RAM deintercaladora de canal são gravadas na RAM[(N+2) mod 3].
Não é mostrado que um conjunto de valores APP correspondentes à janela [N-l} de dados é gerado na etapa .314 durante o processamento efetuado pelo RSMC 1. Ao efetuar a decodificação sobre janelas, o tamanho do buffer de medidas é mantido no comprimento L vezes o número de medidas geradas para cada etapa de decodificação. Uma vez que várias medidas são armazenadas para cada etapa de decodificação, a redução na memória de medidas é significativa em comparação ao armazenamento das medidas de estado para todo o bloco deintercalador de canal.
Adicionalmente, o uso do segundo calculador de
medidas de estado reversas aumenta a velocidade e acuracidade. Como exemplo, o segundo RSMC pode calcular um novo valor inicial para a próxima janela de decodificação enquanto a janela de decodificação anterior está sendo processada. 0 cálculo deste novo valor inicial elimina a necessidade de efetuar novos cálculos RSMC para cada etapa de decodif icação, uma vez que o novo valor pode ser usado para decodificação de toda a janela anterior.
A etapa 314 provê uma excelente ilustração da eficiência obtida pelo processamento das estimativas tal como exemplificado pelo arquivo RAM 224. Em particular, a etapa 314 ilustra a capacidade de efetuar quatro etapas no processamento de decodificação simultaneamente. Isto eleva a taxa em que a codificação pode ser efetuada para uma dada taxa de clock. Na modalidade descrita, as etapas incluem o processamento de cálculo de medida de estado e a gravação ou escrita de amostras adicionais no arquivo RAM 224. Além disso, os valores APP são calculados durante a etapa 314.
Uma vez completada a etapa 314, o indice de janela N é incrementado na etapa 310. Caso o valor N+l seja igual ao da última janela, o processamento em linha é descontinuado e as estimativas restantes dentro do arquivo RAM 224 são processadas nas etapas 316 a 322.
Em particular, na etapa 316, o FSMC processa a janela RAM[N mod 3], o RSMC X processa a janela RAM[(N+l) mod 3] e o RSMC Y processa a janela RAM [(N+l) mod 3]. Na etapa 318 o indice de janela N é incrementado, X é ajustado para N mod 2 e Y é ajustado para (N+l) mod 2. Na etapa 320 o FSMC processa RAM[N mod 3], e o RSMC Y processa RAM[(N-I) mod 3]. Na etapa 322, o RSMC 1 processa RAM [N mod 3]. Na etapa 324 o bloco de deintercalador de canal se completou ao término do processamento.
Dessa forma, foi descrita uma técnica nova e aperfeiçoada para efetuar turbo codificação.

Claims (8)

1. Sistema para realizar decodificação por probabilidade máxima a posteriori de janela deslizante, a seguir referida como MAP, caracterizado pelo fato de que compreende: a) RAM deintercaladora de canal (160) para armazenar um bloco de estimativas de símbolos; b) um total de S calculadores de medida de estado (272, 274), cada calculador de medida de estado para gerar um conjunto de cálculos de medida de estado, em que os calculadores de medida de estado (272, 274) processam dados através de janelas iguais ou menores que o tamanho de uma RAM de janela; c) conjunto de S+l RAMs de janela, em que S das S+l RAMs de janela provêem estimativas de símbolos para os S calculadores de medida de estado, e uma RAM de janela restante recebe estimativas de símbolos provenientes da RAM deintercaladora de canal (160) .
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que S é igual a 3.
3. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que as RAMs de janela (230A-D) são menores que a RAM deintercaladora de canal (160).
4. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende um decodíficador, o decodíficador compreendendo: uma memória intercaladora de canal para armazenar um bloco intercalador de canal de estimativas de recepção, a memória compreendendo a RAM deintercaladora de canal (160); uma máquina decodificadora (270) para decodificar estimativas de recepção, a máquina decodificadora (270) compreendendo os S calculadores de medida de estado (272,274) ; um buffer decodifícador compreendendo o conjunto de S+l RAMs de janela (230A-D), o buffer decodifícador servindo para ler simultaneamente um primeiro conjunto de estimativas de recepção e um segundo conjunto de estimativas de recepção para a máquina decodificadora (270) e gravar um terceiro conjunto de estimativas de recepção proveniente da memória intercaladora de canal.
5. Sistema, de acordo com a reivindicação 4, caracterizado pelo fato de que o buffer decodifícador serve adicionalmente para ler simultaneamente um quarto conjunto de estimativas de recepção.
6. Sistema, de acordo com a reivindicação 4, caracterizado pelo fato de que a máquina decodificadora (270) é uma máquina decodificadora MAP.
7. Sistema, de acordo com a reivindicação 4, caracterizado pelo fato de que a máquina decodificadora (270) é constituída por: um calculador de medida de estado direta para gerar medidas de estado diretas em resposta ao primeiro conjunto de estimativas de recepção; um calculador de medida de estado reversa para gerar medidas de estado reversas em resposta ao segundo conjunto de estimativas de recepção.
8. Sistema, de acordo com a reivindicação 5, caracterizado pelo fato de que a máquina decodificadora (270) é constituída por: um calculador de medida de estado direta para gerar medidas de estado diretas em resposta ao primeiro conjunto de estimativas de recepção; um primeiro calculador de medida de estado reversa para gerar medidas de estado reversas em resposta ao segundo conjunto de estimativas de recepção; e um segundo calculador de medida de estado reversa para gerar medidas de estado reversas em resposta ao quarto conjunto de estimativas de recepção.
BRPI9912990-6A 1998-08-14 1999-08-13 sistema para realizar decodificação por probabilidade máxima a posteriori de janela deslizante. BR9912990B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US9648998P 1998-08-14 1998-08-14
US60/096,489 1998-08-14
US09/259,665 US6381728B1 (en) 1998-08-14 1999-02-26 Partitioned interleaver memory for map decoder
US09/259,665 1999-02-26
US09/283,013 1999-03-31
US09/283,013 US6434203B1 (en) 1999-02-26 1999-03-31 Memory architecture for map decoder
PCT/US1999/018550 WO2000010254A1 (en) 1998-08-14 1999-08-13 Memory architecture for map decoder

Publications (2)

Publication Number Publication Date
BR9912990A BR9912990A (pt) 2001-12-11
BR9912990B1 true BR9912990B1 (pt) 2012-10-02

Family

ID=27378195

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI9912990-6A BR9912990B1 (pt) 1998-08-14 1999-08-13 sistema para realizar decodificação por probabilidade máxima a posteriori de janela deslizante.

Country Status (12)

Country Link
EP (1) EP1118158B1 (pt)
JP (2) JP4405676B2 (pt)
CN (1) CN1211931C (pt)
AT (1) ATE476016T1 (pt)
AU (1) AU766116B2 (pt)
BR (1) BR9912990B1 (pt)
CA (1) CA2340366C (pt)
DE (1) DE69942634D1 (pt)
ES (1) ES2347309T3 (pt)
HK (1) HK1040842B (pt)
ID (1) ID28538A (pt)
WO (1) WO2000010254A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3450788B2 (ja) * 2000-03-06 2003-09-29 松下電器産業株式会社 復号化装置および復号化処理方法
DE10012873A1 (de) 2000-03-16 2001-09-27 Infineon Technologies Ag Optimierter Turbo-Decodierer
FI109162B (fi) 2000-06-30 2002-05-31 Nokia Corp Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi
US6662331B1 (en) 2000-10-27 2003-12-09 Qualcomm Inc. Space-efficient turbo decoder
KR20040069344A (ko) * 2001-12-28 2004-08-05 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 디코딩 방법, 수신기 및 컴퓨터 프로그램 제품
AU2003259479A1 (en) * 2002-09-18 2004-04-08 Koninklijke Philips Electronics N.V. Method for decoding data using windows of data
US7702968B2 (en) * 2004-02-27 2010-04-20 Qualcomm Incorporated Efficient multi-symbol deinterleaver
CN102571107B (zh) * 2010-12-15 2014-09-17 展讯通信(上海)有限公司 LTE***中高速并行Turbo码的解码***及方法
US9128888B2 (en) * 2012-08-30 2015-09-08 Intel Deutschland Gmbh Method and apparatus for turbo decoder memory collision resolution
US10014026B1 (en) * 2017-06-20 2018-07-03 Seagate Technology Llc Head delay calibration and tracking in MSMR systems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862190A (en) * 1995-12-29 1999-01-19 Motorola, Inc. Method and apparatus for decoding an encoded signal

Also Published As

Publication number Publication date
BR9912990A (pt) 2001-12-11
HK1040842B (zh) 2005-12-30
JP2002523914A (ja) 2002-07-30
JP4405676B2 (ja) 2010-01-27
CA2340366C (en) 2008-08-05
CN1323462A (zh) 2001-11-21
AU5563899A (en) 2000-03-06
EP1118158A1 (en) 2001-07-25
EP1118158B1 (en) 2010-07-28
ATE476016T1 (de) 2010-08-15
HK1040842A1 (en) 2002-06-21
ES2347309T3 (es) 2010-10-27
JP5129216B2 (ja) 2013-01-30
ID28538A (id) 2001-05-31
DE69942634D1 (de) 2010-09-09
AU766116B2 (en) 2003-10-09
CA2340366A1 (en) 2000-02-24
WO2000010254A1 (en) 2000-02-24
CN1211931C (zh) 2005-07-20
JP2010016861A (ja) 2010-01-21

Similar Documents

Publication Publication Date Title
KR100671075B1 (ko) 터보 코딩의 사용을 용이하게 하기 위한 디코더, 디코딩 시스템 및 디코딩 방법
JP4955150B2 (ja) 高並列map復号器
US6434203B1 (en) Memory architecture for map decoder
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
JP5129216B2 (ja) マップ・デコーダのためのメモリ・アーキテクチャ
US7058874B2 (en) Interleaver address generator and method of generating an interleaver address
KR100355452B1 (ko) 엠에이피 방식을 사용한 터보 복호기
RU2236085C2 (ru) Архитектура памяти для декодера максимальной апостериорной вероятности
KR100988908B1 (ko) 터보 치환기 및 그것을 포함한 터보 복호기
MXPA01001656A (en) Partitioned deinterleaver memory for map decoder
MXPA01001657A (en) Memory architecture for map decoder

Legal Events

Date Code Title Description
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
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 02/10/2012, OBSERVADAS AS CONDICOES LEGAIS.

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 23A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2683 DE 07-06-2022 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.