BRPI0717506B1 - método e aparelho para codificar e decodificar dados - Google Patents

método e aparelho para codificar e decodificar dados Download PDF

Info

Publication number
BRPI0717506B1
BRPI0717506B1 BRPI0717506A BRPI0717506B1 BR PI0717506 B1 BRPI0717506 B1 BR PI0717506B1 BR PI0717506 A BRPI0717506 A BR PI0717506A BR PI0717506 B1 BRPI0717506 B1 BR PI0717506B1
Authority
BR
Brazil
Prior art keywords
fec
bits
block
sizes
segments
Prior art date
Application number
Other languages
English (en)
Inventor
Nimbalker Ajit
K Classon Brian
keith blankenship T
W Blankenship Yufei
Original Assignee
Google Technology Holdings LLC
Motorola Mobility Llc
Motorola Mobility Inc
Motorola Solutions Inc
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39269076&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0717506(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US11/539,404 external-priority patent/US8356232B2/en
Application filed by Google Technology Holdings LLC, Motorola Mobility Llc, Motorola Mobility Inc, Motorola Solutions Inc, Motorola Inc filed Critical Google Technology Holdings LLC
Publication of BRPI0717506A2 publication Critical patent/BRPI0717506A2/pt
Publication of BRPI0717506A8 publication Critical patent/BRPI0717506A8/pt
Publication of BRPI0717506B1 publication Critical patent/BRPI0717506B1/pt
Publication of BRPI0717506B8 publication Critical patent/BRPI0717506B8/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/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2996Tail biting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

método e aparelho para codificar e decodificar dados é provido aqui um método e aparelho para turbo codificação e decodificação. durante operação, um bloco de transporte concatenado (ctb) de comprimento x é recebido e um tamanho de bloco ki de correção antecipada de erro (fec) é determinado a partir de um grupo de tamanhos de blocos fec não-contíguos disponíveis entre kmin e kmax, e em que kmin <=ki< kmax, e em que ki se baseia adicionalmente em x. o bloco de transporte concatenado de comprimento x é segmentado em c segmentos cada um deles com tamanho substancialmente igual a ki. uma palavra-código fec para cada um dos c segmentos é determinada utilizando o tamanho de bloco fec ki; e as e palavras - código fec são transmitidas através do canal.

Description

MÉTODO E APARELHO PARA CODIFICAR E DECODIFICAR DADOS
Campo da Invenção A presente invenção se refere geralmente à codificação e decodificação de dados e especificamente, a um método e aparelho para turbo codificação e decodificação.
Antecedentes da Invenção As transmissões de dados digitais através de ligações cabeadas e sem fio podem ser corrompidas, por exemplo, por ruído na ligação ou canal, mediante interferência a partir de outras transmissões, ou por outros fatores ambientais. Para combater os erros introduzidos pelo canal, muitos sistemas de comunicação empregam técnicas de correção de erro para auxiliar na comunicação.
Uma técnica utilizada para correção de erro é a turbo codificação de um bloco de informação a ser transmitido. Utilizando tal técnica, um codificador dentro do transmissor de um sistema de comunicação codificará um bloco de entrada u de K' bits de comprimento em um bloco de palavra-código x de N bits. O bloco de palavra-código é então transmitido através do canal, possivelmente após processamento adicional tal como intercalação de canal conforme definido nas especificações IEEE 802.16e. No receptor, o turbo decodificador pega o vetor de sinal recebido y de comprimento N como entrada, e gera uma estimativa ü de vetor u.
Tipicamente o turbo codificador é composto de dois codificadores convolucionais constituintes. O primeiro codificador constituinte pega o bloco de entrada u como entrada em sua ordem original, e o segundo codificador constituinte pega o bloco de entrada u em sua ordem intercalada após passar u através de um turbo intercalador π. A saída do turbo codificador x é composta dos bits sistemáticos (igual ao bloco de entrada u) , os bits de paridade a partir do primeiro codificador constituinte, e os bits de paridade a partir do segundo codificador constituinte.
Correspondentemente o turbo decodificador dentro do receptor do sistema de comunicação é composto de dois decodificadores convolucionais constituintes, um para cada código constituinte. Os decodificadores constituintes são separados pelo intercalador π e o desintercalador correspondente π-1. Mensagens no formato de razões de log-verossimilhança (LLRs) são passadas entre os decodificadores constituintes iterativamente. A decisão ü é tomada após várias iterações. O turbo intercalador π é o componente-chave no modelo de turbo código. Ele é responsável pelo embaralhamento do bloco de entrada u de uma forma pseudo-aleatória, desse modo proporcionando as palavras-código x com distribuição de peso adequada, portanto capacidades adequadas de correção de erro. Em adição à performance de decodificação, o turbo intercalador π tem impacto significativo sobre a implementação do turbo decodificador dentro do receptor. Normalmente, a performance dos turbo códigos melhora com comprimento crescente do intercalador. Contudo, há um retorno decrescente ao se aumentar o tamanho do intercalador. Na prática, o tamanho de bloco máximo de Correção Antecipada de Erro (FEC) (isto é, tamanho de intercalador) de um turbo código é limitado a certo valor devido à complexidade e por razões de retardo. Portanto, se o tamanho do bloco de entrada (bloco de transporte concatenado ou CTB) for maior do que o tamanho de bloco FEC máximo suportado pelo turbo código, o CTB é segmentado (por exemplo, utilizando regra de segmentação de bloco de código) em vários segmentos pequenos, cada um dos quais é processado separadamente pelo turbo codificador no transmissor e correspondentemente pelo turbo decodificador no receptor.
Em alguns sistemas, o turbo código pode ser projetado para suportar apenas um pequeno número de tamanhos de bloco FEC por várias razões (por exemplo, decodificação de alta velocidade, armazenamento reduzido, etc.). Portanto, existe a necessidade de um método e aparelho para turbo codificar e decodificar que combine apropriadamente o CTB com os tamanhos de bloco FEC disponíveis.
MOTOROLA, FRANCE TELECOM, GET AND ORANGE, "EUTRA FEC
Enhancement", TDOC R1-061050 OF 3GPP TSG RAN WG 1 MEETING #44BIS, Athens, Greece se refere a turbo codificação para sistemas de comunicação 3GPP CDMA.
Descrição Resumida dos Desenhos A Figura 1 é um diagrama de blocos de um transmissor. A Figura 2 é um diagrama de blocos de um receptor. A Figura 3 é um diagrama de blocos do turbo codificador da Figura 1. A Figura 4 é um diagrama de blocos do formador de bloco de transporte pelo lado do transmissor. A Figura 5 é um diagrama de blocos de um montador de bloco de transporte pelo lado do receptor. A Figura 6 é um fluxograma mostrando a operação do transmissor da Figura 1. A Figura 7 é um fluxograma mostrando a operação do receptor da Figura 2.
Descrição Detalhada dos Desenhos Para tratar da necessidade mencionada acima, é provido aqui um método e aparelho para turbo codificação e decodificação. Durante a operação, um bloco de transporte concatenado (CTB) de comprimento X é recebido e um tamanho de bloco Ki de correção antecipada de erro (FEC) é determinado a partir de um grupo de tamanhos de bloco FEC não-contíguos disponíveis Kmin e Kmax, e em que <=A7< θ em que Ki se baseia adícionalmente em X. 0 bloco de transporte concatenado de comprimento X é segmentado em C segmentos cada um de tamanho substancialmente igual a Ki. Uma palavra código FEC para cada um dos C segmentos é determinada utilizando tamanho de bloco FEC Ki, e as C palavras código FEC são transmitidas através do canal.
Em uma modalidade alternativa, um bloco de transporte concatenado (CTB) de comprimento X é recebido Ki-i e Ki são determinados a partir de um grupo de tamanhos de bloco FEC não-contíguos, em que os tamanhos de bloco FEC não-contíguos disponíveis estão entre Kmin e Kmax, e em que <= A7-i< <= Â/<= θ em gue Kll θ Kl se baseiam adícionalmente em X. 0 bloco de transporte concatenado de comprimento X é segmentado em C segmentos cada um de tamanho substancialmente igual a Ki-i e Ki. Uma palavra código FEC para cada um dos C segmentos é determinada utilizando tamanhos de bloco FEC Ki ou Ki-i, e as C palavras código FEC são transmitidas através do canal. 0 benefício dos métodos acima é que eles reduzem o enchimento dos bits de enchimento exigidos para codificar o CTB, enquanto utilizando o menor número de segmentos permitido pelos tamanhos de bloco FEC não-contíguos disponíveis. Especificamente, o segundo método utiliza dois diferentes tamanhos de bloco FEC (porém adjacentes) para minimizar o número de bits de enchimento enquanto utilizando o menor número de segmentos conforme permitido pelos tamanhos de blocos FEC não-contíguos disponíveis. Além disso, os tamanhos de bloco FEC para os tamanhos de segmento e o número de segmentos para as duas modalidades podem ser determinados utilizando conjunto de circuitos, lógicos, simples.
Antes de descrever os dados de codificação e decodificação, as seguintes definições são providas para definir os antecedentes necessários: ■ Para facilidade de notação, um bloco de transporte concatenado se refere ao resultado de concatenar um ou mais blocos de transporte, após adicionar overhead tal como bits CRC para cada bloco de transporte. ■ X denota o tamanho de bloco de transporte concatenado (por exemplo, comprimento do bloco de transporte concatenado em bits). ■ Y denota o tamanho total de bits de enchimento adicionados a um bloco de transporte concatenado. ■ C denota o número de segmentos nos quais o bloco de transporte concatenado é segmentado. ■ CBSSi denota o tamanho do i° segmento de um bloco de transporte concatenado (i=1,... C), onde C é o tamanho do segmento. CBSS significa o tamanho de segmento de bloco. ■ K1-1 e Ki denotam tamanhos de bloco FEC (por exemplo, tamanhos para os quais o intercalador interno de turbo código é definido) que podem ser usados para codificar FEC os segmentos de um bloco de transporte concatenado. ■ Ktabie denota um conjunto de tamanhos de blocos FEC não-contíguos disponíveis (tamanhos para os quais um intercalador interno de turbo código é definido). ■ Kfiiier denota o número de bits de enchimento adicionados a um segmento. ■ R denota a taxa de código-mãe do turbo codificador (por exemplo, R = 1/3 para turbo-código de 3GPP) . ■ R-1 é o inverso da taxa de código-mãe do turbo codificador (por exemplo, R-1 = 3 para turbo-código de 3GPP). ■ Ntb é o número de bits finais no bloco codificado, especificamente para turbo-código de 3GPP, o Ntb = 12 para turbo-código de 3GPP com bits finais o Ntb = o para um turbo-código de 3GPP com códigos convolucionais constituintes tail-biting. ■ π denota o intercalador interno de turbo código. ■ A operação de limite mínimo . x. denota o número inteiro maior, menor do que ou igual a x e a operação de limite máximo ΓχΊ denota o menor número inteiro maior do que ou igual a x.
De acordo agora com os desenhos, em que numerais semelhantes designam componentes semelhantes, a Figura 1 é um diagrama de blocos do transmissor 100. Conforme mostrado, o transmissor 100 compreende conjunto de circuitos de segmentação de bloco de código 102, conjunto de circuitos de enchimento 103, turbo codificador 104, conjunto de circuitos de descarte de enchimento 105, transmissor 108, conjunto de circuitos lógicos 106, e tabela/meio de armazenamento 107. 0 transmissor 100 compreende adicionalmente conjunto de circuitos de recepção (não mostrado na Figura 1) que recebe um bloco de transporte concatenado de comprimento X. 0 conjunto de circuitos lógicos 106 determina um tamanho de bloco FEC disponível Ki a partir de um grupo de tamanhos de blocos FEC não-contíguos 107, em que os tamanhos de blocos FEC não-contíguos disponíveis estão entre Kmin e Kmax, e em que θ em gue Kl se baseia adicionalmente em X. 0 conjunto de circuitos de segmentação de bloco de código 102 segmenta o bloco de transporte concatenado de comprimento X em C segmentos de tamanhos substancialmente iguais à Ki, e conjunto de circuitos de codificação 104 determina uma palavra código FEC para cada um dos C segmentos utilizando o tamanho de bloco FEC Ki. Finalmente, o conjunto de circuitos de transmissão 108 transmite as C palavras código FEC através de um canal.
Em outra modalidade, o transmissor 100 compreende conjunto de circuitos de recepção (não mostrado na Figura 1) que recebe um bloco de transporte concatenado de comprimento X, conjunto de circuitos lógicos 106 que determina dois tamanhos de bloco FEC disponíveis Ki-i e Ki a partir de um grupo de tamanhos de bloco FEC não-contíguos 107, em que os tamanhos de bloco FEC não-contíguos disponíveis estão entre Kmin e Kmax, e em que <= K/-j< <= ky = Xmj,., θ em gue 2 θ se baseiam adicionalmente em X. 0 transmissor 100 compreende conjunto de circuitos de segmentação de bloco de código 102 que segmenta o bloco de transporte concatenado de comprimento X em C segmentos de tamanhos substancialmente iguais a K1-1 ou Ki, e conjunto de circuitos de codificação 104 que determina uma palavra código FEC para cada um dos C segmentos utilizando tamanho de bloco FEC Ki ou K1-1. Finalmente, é provido conjunto de circuitos de transmissão 108 que transmite as C palavras código FEC através de um canal. O conjunto de circuitos de codificação 104 é precedido por conjunto de circuitos de enchimento 103 que insere bits de enchimento nos segmentos para formar um bloco de entrada FEC. O codificador FEC 104 codifica o bloco de entrada FEC, e conjunto de circuitos de descarte de enchimento 105 descarta os bits relacionados aos bits de enchimento.
Durante operação do transmissor 100, os dados na forma de um bloco de transporte concatenado são recebidos pelo conjunto de circuitos 102. O conjunto de circuitos 102 prepara o bloco de transporte concatenado antes da codificação de Correção Antecipada de Erros (FEC).
Em geral, a faixa dos tamanhos CTB (isto é, X) pode ser diferente da faixa dos tamanhos de bloco FEC suportados pelo esquema FEC subjacente na camada física para um sistema de comunicação. Portanto, é necessário definir uma regra que divide um CTB em segmentos que podem ser manejados eficientemente pelo FEC. Especificamente, os tamanhos de CTB (isto é, X) frequentemente são muito maiores do que o tamanho de bloco FEC máximo que o codificador FEC 104 pode manejar. Portanto, o CTB precisa ser segmentado pelo conjunto de circuitos 102 em um número de segmentos de tamanho menor e cada segmento precisa ser codificado pelo codificador FEC 104 em uma palavra código FEC separada. O conjunto de circuitos 102 utiliza uma regra de segmentação de bloco de código que é projetada para obter bom desempenho (isto é, o desempenho agregado dos segmentos para um determinado CTB) com FEC subjacente. Ele envolve os seguintes aspectos para qualquer tamanho de CTB determinado: ■ Escolha do número de segmentos C; ■ Escolha dos tamanhos de cada segmento; ■ Inserção dos bits de enchimento antes da codificação FEC e a remoção dos bits de enchimento após a codificação FEC, se o tamanho de segmento não puder ser manejado diretamente pelo FEC.
As regras de segmentação propostas são particularmente úteis para o sistema de Acesso de Rádio Terrestre UMTS-Expandido (EUTRA) onde um turbo codificador pode ser definido para apenas um conjunto limitado de tamanhos de bloco FEC (tamanhos de intercalador). Ao contrário do turbo codificador 3GPP Versão 6 que define 5.075 intercaladores de tamanho contíguo, um para cada tamanho de intercalador Ki entre 40 bits e 5.114 bits, um turbo codificador EUTRA pode define um número limitado de tamanhos de bloco FEC Ktabie (por exemplo, 40~50 intercaladores com tamanhos não-contíguos variando de 128 bits a 6.144 bits) para cobrir um grande número de tamanhos de segmento (por exemplo, 6.144128+1 = 6.017 tamanhos). Quando o tamanho de segmento é igual a um tamanho de bloco FEC disponível, então o segmento pode ser considerado como um bloco de entrada FEC diretamente (desse modo não precisa ser inserção de bits de enchimento). Contudo, quando o tamanho de segmento não é igual a qualquer um dos tamanhos de bloco FEC disponíveis, o enchimento de bit de enchimento pode ser aplicado, e o próximo maior tamanho de bloco FEC disponível (isto é, tamanho de intercalador) escolhido a partir de Ktabie 107 pode ser usado. Número de segmentos: As regras de segmentação consideram as seguintes propriedades de turbo codificação. (a) A performance do turbo código melhora à medida que aumenta o tamanho do bloco FEC. (b) Aperfeiçoamento da performance do turbo código por intermédio de tamanhos crescentes de bloco FEC tem retornos decrescentes além de uns poucos milhares de bits. (c) Um CTB é recebido corretamente apenas se todos os segmentos forem recebidos corretamente.
As propriedades (a) e (c) indicam que a performance global provavelmente deve ser dominada pelo segmento tendo o pior desempenho. Desse modo, é preferível ter segmentos que sejam aproximadamente de tamanhos iguais de modo que eles são codificados com FEC com aproximadamente tamanhos de bloco iguais de FEC (e, portanto, proteção de erro aproximadamente igual acordada a partir da perspectiva de FEC). A propriedade (b) sugere que não é necessário incluir intercaladores para cada tamanho grande na tabela (Ktabie). Contudo, os tamanhos de bloco de FEC definidos em Ktabie podem depender de outros fatores. Por exemplo, i) para armazenamento/complexidade reduzida, um pequeno número de intercaladores em Ktabie pode ser desejável, e ii) o tamanho de intercalador máximo definido em Ktabie pode ser escolhido para limitar o número de segmentos por CTB. Desse modo limitando a penalidade de segmentação de um CTB. A penalidade de segmentação é a perda de performance devido à divisão de um CTB em vários segmentos em vez de codificar o CTB inteiro em uma palavra código FEC. A propriedade (c) sugere que o número mínimo de segmentos deve ser usado para reduzir a penalidade de segmentação.
Considerando tudo que foi mencionado acima, o número de segmentos é “Γ^/^ιικιιΙ; onde Kmax é o tamanho máximo de bloco FEC definido em Ktabie. Supondo que CBSSi denota o tamanho de segmento do i° segmento (í = 1,... Cj do bloco de transporte concatenado, a soma de todos os segmentos é igual ao tamanho do bloco de transporte concatenado X, isto é, os tamanhos de segmento são limitados pela seguinte equação. A próxima seção descreve a determinação do tamanho de bloco FEC usado para codificação FEC, um para cada um dos C tamanhos de segmento.
Determinação de tamanho de bloco FEC
Dado que um CTB de comprimento X é a entrada para a função de segmentação de bloco de código, a regra para determinar o tamanho de bloco FEC (tamanho de intercalador) para o turbo codificador conforme descrito na Versão 6 do padrão 3GPP é conforme a seguir onde Kmax = 5114 é o tamanho de intercalador máximo para Turbo código Versão 6, C é o número de segmentos (ou blocos de código), Ki é o tamanho de intercalador, e Y é o número total de bits de enchimento inseridos para o CTB de tamanho X quando C blocos de entrada FEC de tamanho Ki são usados. Em essência, um CTB de tamanho X é segmentado em C segmentos de tamanho aproximadamente igual, e cada segmento é codificado utilizando um turbo código com um intercalador de U bits. Se Y > 0, Y bits conhecidos são preenchidos para o início do primeiro segmento antes da codificação. Como os tamanhos de blocos FEC (isto é, intercaladores) são definidos para todos os tamanhos entre Kmin = 40 e Kmax = 5114 no turbo código 3GPP Versão 6, o número de bits de enchimento é limitado por C, o número de segmentos usados para segmentação de blocos de código.
Contudo, em outros sistemas tal como aquele sendo considerado para EUTRA, os tamanhos de bloco FEC (tamanhos de intercalador) podem ser definidos apenas para tamanhos não-contíguos (um conjunto mais grosseiro de tamanhos de intercalador) Ktabie. Em tais casos, os tamanhos de segmento que não são iguais a quaisquer tamanhos de bloco FEC disponíveis (isto é, não definidos em Ktabie) precisam ser manejados utilizando bits de enchimento antes de codificação FEC (e perfuração após codificação para chegar a uma taxa de código desejada).
Supondo que um turbo codificador suporta apenas um número limitado de tamanhos de bloco FEC distribuídos entre Kmin e Kmax, ambos inclusivos, dois métodos simples de segmentação de blocos de código de um bloco de transporte concatenado de comprimento X utilizando Ktabie são descritos a seguir. Esses métodos utilizam o menor número possível de segmentos enquanto eles também reduzem o número de bits de enchimento que são exigidos para codificação.
Permitir apenas um tamanho de bloco FEC
Um método é o de modificar (1) e deixar todos os segmentos serem codificados com um único tamanho de intercalador Ki, onde onde i, l< = i< = T, é indexado no grupo de tamanhos de blocos FEC não-contíguos disponíveis em Ktabie, supondo que T tamanhos em Ktabie são classificados em ordem ascendente. Em essência, esse método escolhe o menor Ki a partir de Ktabie que é maior do que, ou igual a hM isto é, *T,-p7Cl+tf; onde £ »<*■(-*·,,. e A',-,<UZU.
Observar que é atribuído que Ki-i = 0 quando 1 = 1. Portanto, o número de bits de enchimento é dado por Portanto, Y é maior do que δ em tamanho. Os exemplos a seguir ilustram como o número de tamanhos de bloco FEC disponíveis {Ktabie) afeta Y. • Se Ktabie tem todos os valores entre Zmin = 4 0 e Zmax = 5114, o número máximo de bits de enchimento é igual a C-1 . • Se Ktabie tem valores T = 100 distribuídos uniformemente entre Zmin = 40 e Zmax = 5114, o número total máximo de bits de enchimento enchidos em todos os segmentos é aproximadamente igual a 50xC.
Portanto, o número de bits de enchimento pode ser controlado mediante variação da granularidade de tamanho de bloco FEC em Ktabie. 0 número de bits de enchimento também pode ser reduzido utilizando outra abordagem como descrito a seguir. Contudo, antes de discutir o próximo método, observa-se que em um caso geral, qualquer b/ci> pode ser escolhido a partir de Ktabie para codificação FEC à custa de um número potencialmente aumentado de bits de enchimento. Nesse caso, os tamanhos de segmento obtidos após a segmentação de blocos de código satisfaz 055¾ s Kh para í=l,...C. Nesse caso, o conjunto de circuitos lógicos 106 determina o número de segmentos usando a seguinte relação Permitir apenas dois tamanhos de blocos FEC adjacentes Em vez de usar um tamanho de bloco FEC Ki para codificar todos os segmentos de um dado CTB, propõe-se que dois tamanhos de bloco FEC adjacentes Ki-i e Ki, Ki-kKi, 1<=I<=T, sejam selecionados a partir de Ktabie. Observar que é atribuído que Ki-i=0 quando 1=1. 0 número de segmentos C e o tamanho de bloco FEC maior Ki ainda são escolhidos para serem idênticos como nos casos anteriores, isto é, C ainda é computado como em (1) e Ki ainda é computado como (2) . Contudo, o número de segmentos codificados com tamanho Ki-i e tamanho Ki é determinado como a seguir (para facilidade de entendimento, todas as computações envolvidas são repetidas abaixo). Nesse caso, o conjunto de circuitos lógicos 106 realiza as seguintes operações para achar o número de segmentos, e Ci-i e Ci representam o número de segmentos que são codificados utilizando os tamanhos de bloco FEC Ki-i e Ki, respectivamente, onde Ki é o menor tamanho a partir dos tamanhos de bloco FEC disponíveis que é maior do que ou igual a e Di denota a diferença entre os tamanhos de intercaladores adjacentes Ki-i e Ki.
Observar que em (4) Y não indica o número de bits de enchimento exigido se permitindo dois tamanhos adjacentes; mas indica que o número de bits de enchimento exigido tinha apenas um tamanho de Ki usado para todos os C segmentos.
Desse modo, a segmentação de blocos de código forma C segmentos, dos quais Ci-i segmentos são codificados FEC com um tamanho de bloco FEC Ki-i. Observar que quando Y<Di, (4) proporciona Ci-i=0, e esse método degenera para usar apenas um tamanho de bloco FEC de Ki (isto é, tamanho Ki-i é permitido, mas não efetivamente usado). Por outro lado, quando Y>=Di, esse método requer um número menor de bits de enchimento do que o enchimento de todos os C segmentos para o maior tamanho de bloco FEC Ki. Esse método é ótimo em que o número de bits de enchimento Y” adicionados por CTB é garantido para ser o mínimo enquanto utilizando o menor número possível de segmentos. Y” é determinado como a seguir r + CA, - A. „ (5) Pode ser comprovado que Y” é limitado por Di, independente de C, 0£ϊ’< K, -K,_,, (6) Nesse caso, os tamanhos de segmento obtidos após a segmentação de bloco de código têm as seguintes limitações, supondo (sem perda de generalidade que os primeiros Ci segmentos são codificados com Ki e o resto com Ki-i) .
Retornando à Figura 1, conforme discutido acima, um tamanho de bloco FEC adequado precisa ser escolhido a partir da Tabela 107 de tamanhos de blocos FEC não-contíguos. 0 conjunto de circuitos lógicos 106 realiza a tarefa de escolher o tamanho/tamanhos de blocos FEC apropriados conforme discutido acima. Um exemplo da Tabela 107 é fornecido na Tabela 1. Por exemplo, no primeiro caso, o conjunto de circuitos lógicos 106 escolhe o tamanho de bloco FEC a partir dos tamanhos de bloco FEC não-contíguos disponíveis entre Kmin e Kmax, e em que Kmin<=Ki< = Kmax, e em que Ki se baseia adicionalmente em X. Particularmente, se um único tamanho de bloco FEC Ki deve ser usado, o conjunto de circuitos lógicos 106 escolhe o menor Ki (a partir da Ktabie) que não é menor do que ruu. isto é, íf, -p/cl+d; onde δ>0 , e ai < r.r/cl . Se, contudo, dois tamanhos de bloco FEC devem ser usados, Ki-i e Ki são determinados com a equação (4) dando o número de segmentos que são codificados utilizando os tamanhos de bloco FEC Ki-i e Ki.
Tabela 1: 0 conjunto de tamanhos de bloco FEC para os quais o intercalador interno de turbo codificador é definido O codificador FEC subjacente 104 suporta apenas um conjunto limitado de tamanhos de bloco FEC (ou tamanhos de entrada). Sem perda de generalidade, supõe-se que o codificador FEC 104 seja um turbo codificador, e o conjunto de tamanhos de bloco FEC suportados pelo turbo codificador seja o conjunto de tamanhos de intercalador para os quais o intercalador interno de turbo código é definido. Contudo, aqueles de conhecimento comum na técnica reconhecerão que outros esquemas FEC podem ser usados em 104, incluindo códigos de verificação de paridade de baixa densidade (LDPC); códigos convolucionais; turbo códigos de bloco; códigos Reed-Solomon, etc.
Quando o número de segmentos C e o tamanho de bloco FEC para cada segmento forem determinados, essa informação é passada para o conjunto de circuitos de segmentação de bloco de código 102 onde o CTB (X bits) segmentado em C segmentos os quais são codificados com tamanho de bloco FEC Ki, se apenas um tamanho de bloco FEC for permitido. Alternativamente, se dois tamanhos de bloco FEC adjacentes forem permitidos, o conjunto de circuitos de segmentação de bloco de códigos 102 pode emitir Ci segmentos os quais podem ser codificados com tamanho de bloco FEC Ki e Ci-i segmentos os quais devem ser tamanho de bloco FEC codificado Ki-i.
Inserção de Bit de Enchimento O número de bits de enchimento (preenchidos para cada segmento) pode ser determinado com base no tamanho de segmento e no tamanho de bloco FEC sendo usado para codificação FEC do segmento. Há ao menos duas formas de distribuir os bits de enchimento totais nos C segmentos. · Enchimento concentrado. Colocar os bits de enchimento no menor número possível de segmentos sem tornar os tamanhos dos segmentos muito pequenos. Em um exemplo, todos os bits de enchimento podem aparecer no início do primeiro segmento. A vantagem é que apenas um segmento (contendo todos os bits de enchimento) precisa ser manipulado separadamente. Além disso, os bits de enchimento podem ser preenchidos no segmento que é codificado com o maior tamanho de bloco FEC Ki mais propriamente do que o menor tamanho de bloco FEC Ki-i quando dois tamanhos de bloco FEC são usados para um CTB. Esse método é particularmente atraente ao permitir dois tamanhos de bloco FEC adjacentes para codificação. · Enchimento distribuído. Distribuir os bits de enchimento igualmente (tanto quanto possível) em vários segmentos. Os bits de enchimento podem ser distribuídos em tantos quantos todos os C segmentos.
Para implementação eficiente do transmissor e do receptor, enchimento concentrado é preferido. Uma modalidade preferida é a de apensar Y” (se permitindo dois tamanhos de bloco FEC adjacentes; Y se permitindo apenas um tamanho de bloco FEC) bits de enchimento consecutivos na frente de um dois segmentos (por exemplo, o primeiro ou o último) utilizando o tamanho de bloco FEC Ki antes de enviar o mesmo para o codificador. Em termos de performance, é equivalente a apensar Y'' bits de enchimento consecutivos na extremidade de um segmento tendo tamanho de bloco FEC Ki.
Retornando à Figura 1, para cada segmento (produzido pelo conjunto de circuitos 102), uma palavra código FEC é determinada utilizando as etapas de inserir os bits de enchimento no segmento para formar um bloco de entrada FEC; codificar FEC o bloco de entrada FEC; e descartar os bits relacionados aos bits de enchimento.
Cada segmento produzido pelo conjunto de circuitos 102 é passado para o conjunto de circuitos de enchimento 103 onde ocorre a inserção do bit de enchimento. Se nenhum bit de enchimento for exigido, então o conjunto de circuitos de enchimento é transparente, isto é, nenhum bit de enchimento é adicionado (Kfiiier=0) . Os segmentos (junto com os bits de enchimento) são então passados para o turbo codificador 104 onde turbo codificação dos C segmentos leva a C palavras código FEC. Os bits de enchimento são então descartados pelo conjunto de circuitos 105 e as C palavras código resultantes são apropriadamente transmitidas pelo conjunto de circuitos de transmissão 108. Se nenhum bit de enchimento for adicionado pelo conjunto de circuitos 103, então o conjunto de circuitos de descartar enchimento 105 é transparente, isto é, nenhum bit de enchimento é removido (Kfiiier=0) . Observar que é possível que o conjunto de circuitos 105 possa não descartar quaisquer bits correspondendo aos bits de enchimento. A Figura 2 é um diagrama de blocos de um receptor. Durante operação o vetor de sinal recebido segue através do conjunto de circuitos de de-segmentação de bloco de código 202 o qual organiza porções do vetor de sinal recebido de acordo com o segmento com o qual elas estão associadas. O tamanho de segmento, número de segmentos, tamanho de bloco FEC usados para turbo decodificar cada segmento, número de bits de enchimento podem ser determinados utilizando conjunto de circuito lógico 213 e tabela de tamanho de bloco FEC disponível 215 de uma forma similar àquela no codificador. O conjunto de circuitos de manejo de enchimento 204 utiliza o conhecimento da localização dos bits de enchimento para favorecer o turbo codificador 206, por exemplo, mediante ajuste das LLRs correspondendo aos bits de enchimento em uma magnitude elevada. Após a turbo decodificação, o conjunto de circuitos 208 descarta os bits de enchimento para obter estimativa de um segmento. O montador de bloco de código 211 monta o transporte estimado mediante ação de adequadamente coletar e arranjar as estimativas dos segmentos obtidos a partir do conjunto de circuitos 208.
Remoção dos bits de paridade do codificador constituinte Essa seção provê uma forma específica de determinar a palavras código FEC. O método que tira proveito do conhecimento da inserção de bits de conhecimento no transmissor é descrito. Especificamente, o método determina quais bits (bits não apenas sistemáticos como também de paridade) podem ser descartados a partir da saída de turbo codificador com nenhuma, ou apenas insignificantes, degradação de desempenho. Em geral, os bits de enchimento são conhecidos e, portanto, os bits sistemáticos desses bits (igual aos bits conhecidos) podem ser descartados antes da transmissão. Contudo, não é evidente se quaisquer bits de paridade podem ser descartados. A Figura 3 é um diagrama de blocos do turbo codificador 104 da Figura 1. Durante a operação, o bloco de entrada de comprimento de Ki bits entra tanto no intercalador 301 como no codificador constituinte 302. O intercalador 301 intercala o bloco de entrada e passa o bloco de entrada em ordem intercalada para o codificador constituinte 303. O codificador constituinte 303 então codifica o bloco de entrada intercalado. De uma maneira similar, o codificador constituinte 302 codifica o bloco de entrada original. O bloco de palavra código x é composto de bloco sistemático (igual ao bloco de entrada FEC), saída do codificador constituinte 302, e saída do codificador constituinte 303. O bloco de palavra código x é então enviado ao conjunto de circuitos 105.
Em um turbo codificador convencional tal como, por exemplo, turbo códigos finais, o estado inicial dos codificadores constituintes (conteúdo de registrador de deslocamento) é supostamente de todos zeros. Em tal caso, quando Kfiiier bits de enchimento (normalmente 0) são inseridos no início do bloco de entrada de turbo código, os bits sistemáticos e os bits de paridade do codificador constituinte 302 correspondendo às posições de Kfiiier bit, são todos zeros. Portanto, esses bits podem ser descartados no transmissor e o receptor pode utilizar esse conhecimento ao realizar a turbo decodificação. Contudo, no codificador constituinte 303, os Kfiiier bits são embaralhados devido ao intercalador de turbo código e, portanto, os bits de paridade do codificador constituinte 303 correspondendo aos bits de enchimento não são conhecidos e assim não podem ser simplesmente descartados.
Quando o turbo codificador tem codificadores constituintes de tail-biting, o estado inicial dos codificadores constituintes pode não ser sempre zero. Para códigos tail-biting, o estado inicial e o estado final para um codificador constituinte são iguais e eles dependem do bloco de entrada. Portanto, quando Kfiiier bits de enchimento consecutivos (isto é, zeros) são inseridos no início do bloco de entrada de turbo código, os bits de paridade do codificador constituinte 302 correspondendo às posições de Kfiiier bits nem sempre são zeros. Contudo, pode ser comprovado que a maioria desses Kfiiier bits de paridade do codificador constituinte 302 não carregam informação.
Em geral, grupos de bits de enchimento consecutivos são inseridos em um segmento para formar um bloco FEC em que o comprimento do grupo é um múltiplo de 2m-1 ( = 7 para os códigos convolucionais constituintes dentro do turbo codificador 3GPP). Então, o bloco de entrada FEC é codificado FEC e os bits de paridade relacionados aos bits de enchimento são descartados. O codificador FEC pode ser um código convolucional tail-biting usado isoladamente, ou um código convolucional tail-biting usado como um código constituinte de um turbo codificador.
Especificamente, quando usados para turbo códigos com códigos constituintes tail-biting, grupos de bits sistemáticos correspondendo aos bits de enchimento podem ser descartados; e os bits de paridade correspondendo aos grupos de bits de enchimento na saída de um codificador constituinte podem ser descartados, em que o codificador constituinte pega o bloco de entrada FEC sem intercalação para turbo codificadores tail-biting. Isso pode ser mostrado como a seguir.
Deixemos o estado do registrador de deslocamento do codificador constituinte 302 na etapa i ser S(i), deixemos m ser o número de elementos no registrador de deslocamento, e deixemos γ ser qualquer número inteiro maior do que zero. Quando (2m-l)x/zeros são introduzidos no codificador constituinte a partir da etapa i + 1 para a etapa i+(2m-l)xy, o que se segue é uma propriedade do codificador convolucional recursivo (tal como aquele usado no turbo código 3GPP Versão 6), S(i)= S(i+(2”-l)x^ (7) Observar que S(i) pode não ser uma constante. Além disso, os estados S(j) intermediários podem não ser uma constante ou igual ao estado S(í) , i<j< = i+ (2“-l) χγ) .
Portanto, o estado do codificador constituinte permanece inalterado entre a etapa i+1 até a etapa i+(2“-1)χχ. Portanto, o transmissor pode tirar proveito de (7) mediante descarte da saída de codificador constituinte durante aquelas etapas, uma vez que esses bits de enchimento não mudam o estado do registrador de deslocamento e desse modo não proporcionam informação para o decodificador. 0 decodificador dentro do receptor também pode tirar proveito de (7) similarmente com base no conhecimento das posições e valores dos bits de enchimento. A seguir, o método acima é descrito com um exemplo onde Kfiiier bits de enchimento (zeros) são inseridos e constituem posições na entrada de um turbo código tail-biting.
Como Kfiiier bits de enchimento consecutivos (zeros) são inseridos no bloco de entrada de turbo código, e, portanto, pxyx(2m-l) bits de paridade do codificador constituinte 302 podem ser descartados, onde p é o número de bits de paridade na saída do codificador constituinte 302 que são gerados para cada bit no bloco de entrada FEC. Portanto, apenas os bits de paridade correspondendo aos grupos de bits de enchimento na saída do codificador constituinte 302 são descartados, em que o codificador constituinte 302 pega o bloco de entrada FEC sem intercalação para turbo codificadores tail-biting.
Para um turbo codificador 3GPP tail-bitincr, d=1 no codificador constituinte 1, m=3 . Desse modo bits de paridade podem ser descartados a partir do codificador constituinte 302 para Kfiiier bits de enchimento consecutivos. Como m=3, no máximo apenas 6 bits de paridade correspondendo aos Kfiiier bits de enchimento do codificador constituinte 302 podem precisar ser mantidos na saída do codificador constituinte 302.
No codificador constituinte 303, os Kfiiier bits de enchimento podem ser dispersos devido ao intercalador de turbo código. Portanto, pode não ser possível descartar os bits de paridade a partir do codificador constituinte 303 sem afetar o desempenho. A seção a seguir descreve alguns cenários exemplares nos quais a regra de segmentação de bloco de código pode ser usada, por exemplo, Repetição Híbrida-Automática reQuest (HARQ), Múltiplas Entradas, Múltiplas Saídas (MIMO), etc.
Formador de Bloco de Transporte (TB) A regra de segmentação de bloco de código descrita acima é aplicada a um bloco de transporte concatenado (CTB) em canal ARQ híbrido (HARQ). Antes da segmentação de bloco de código, os bits de informação que precisam ser enviados a um único usuário a partir da estação base dentro de um intervalo de tempo de transmissão (TTI) podem precisar ser divididos em ao menos um bloco de transporte, desse modo seguindo através de ao menos um canal HARQ. Por exemplo, a Figura 4 mostra um exemplo em que os bits de informação são transmitidos utilizando dois canais HARQ (correspondendo a HARQ1, e HARQ2), e dois blocos de transporte TB1 e TB2. Durante operação, os bits de informação de comprimento A são recebidos pelo conjunto de circuito de formação TB 402 para ser transmitidos em um ou mais fluxos espaciais. O conjunto de circuitos 402 designa X' bits como um bloco de transporte TB1, onde X'<A; o processador HARQ1 404 anexa CRC bits aos X' bits para formar o bloco de transporte concatenado de comprimento X; o bloco de transporte concatenado de comprimento X é mapeado para um primeiro canal HARQ. O bloco de transporte concatenado é enviado para o conjunto de circuitos de segmentação de bloco de código 102. O conjunto de circuitos 402 designa W'=A-X' bits a partir dos bits de informação como um segundo bloco de transporte TB2; o processador HARQ2 406 anexa os bits CRC a Y bits para formar um segundo bloco de transporte concatenado; o bloco de transporte concatenado é mapeado para um segundo canal HARQ. O bloco de transporte concatenado é enviado ao conjunto de circuitos de segmentação de bloco de código 102.
Observar que o conjunto de circuitos 404 e 406 pode realizar funções adicionais tais como outras funcionalidades relacionadas a HARQ, adicionando informação de controle, etc. Embora os conceitos na Figura 4 sejam ilustrados utilizando dois canais HARQ, eles podem ser facilmente estendidos para uma pluralidade de canais HARQ. Se mais do que um canal HARQ for suportado para um usuário dentro de um Intervalo de Tempo de Transmissão (TTI), a regra de segmentação de bloco de código pode ser aplicada a cada TB. Múltiplos canais HARQ podem ocorrer devido ao fato de ter muitas palavras código FEC (ou segmentos) por TTI por usuário, tal como a partir de largura de banda larga (por exemplo, 20 MHz), modulação de ordem superior (por exemplo, 64 QAM), MIMO de múltiplos fluxos, etc. Múltiplos canais HARQ também podem ser usados para os TBs que têm diferentes QoS, tal como VoIP e dados de melhor esforço.
Uma palavra código MIMO compreende os bits que são enviados a um único usuário dentro de um TTI em um fluxo MIMO. Desse modo uma palavra código MIMO pode compreender uma ou mais palavras código FEC. Algumas vezes uma palavra código MIMO é usada para se referir aos bits em um fluxo MIMO.
Regras podem ser definidas para a criação de um TB. Em uma modalidade, um TB deve compreender não mais do que x (por exemplo, x=8) palavras código FEC (o valor de x é determinado pelo programador eNodeB em EUTRA). Em outra modalidade, se mais do que x palavras código FEC forem necessárias para um TB, então dois TBs são criados como a seguir. O pacote é dividido aproximadamente de forma igual entre os dois TBs, cada TB tendo quase o mesmo número de palavras código FEC de aproximadamente o mesmo tamanho. Em ainda outra modalidade, para palavras código FEC que devem ser enviadas para dois fluxos MIMO, cada uma pertence a um TB separado. Em ainda outra modalidade, para palavras código FEC que devem ser enviadas para três fluxos MIMO enquanto utilizando dois canais HARQ simultâneos, o primeiro (na média, o fluxo de melhor qualidade) pertence a um TB e o segundo e o terceiro fluxo pertencem a um segundo TB. Em ainda outra modalidade, quatro palavras código MIMO a serem enviadas utilizando dois canais HARQ, várias combinações são possíveis. Por exemplo, (a) TB1=1,2 TB2=3,4 (b) TB1=1,3 TB2=2,4 (c) TB1=1,2 TB2=2,3 (d) TB1=1, TB2 = 2,3,4. Aqui, TBi se refere ao TB de i° canal HARQ; os números 1 a 4 indicam o número de palavra código (ou fluxo) MIMO. A Figura 5 é um diagrama de blocos de processamento de receptor quando os bits de informação são recebidos através de ao menos um canal HARQ. Os bits recebidos a partir do montador de bloco de código 211 são introduzidos nos processadores de canal, apropriados, 504 e 506. A saída dos processadores de canal são os blocos de transporte estimados TB1 e TB2 os quais são introduzidos no conjunto de circuitos de montador TB 502 que combina os TBs e emite os bits de informação estimados. A Figura 6 é um fluxograma mostrando a operação do transmissor da Figura 1. O fluxo lógico começa na etapa 601 onde o conjunto de circuitos de segmentação recebe um bloco de transporte concatenado de comprimento X. Na etapa 603 o conjunto de circuitos lógicos acessa a tabela 107 e escolhe um tamanho de bloco FEC apropriado. Conforme discutido acima, em uma primeira modalidade da presente invenção o tamanho de bloco FEC Ki é determinado a partir de um grupo de tamanhos de bloco FEC não-contíguos localizados na tabela 107, onde os tamanhos de bloco FEC não-contíguos na tabela 107 estão entre Kmín θ Kmax, θ θγώ qus Kmin<=Ki<Kmax. Como discutido acima, Ki se baseia em X. X é determinado pelo conjunto de circuitos lógicos 106 a partir do bloco de transporte concatenado. Quando X é determinado, AÇ-fA/rl+á e -|"Λ/^Ηηλ1 sgo determinados. Em uma segunda modalidade da presente invenção os tamanhos de bloco FEC Ki e Ki-i são determinados, onde -ΓΧ/Cl+c!
Continuando, na etapa 605 o número de segmentos C e os tamanhos de bloco FEC são passados para o conjunto de circuitos de segmentação 102 e na etapa 607 o conjunto de circuitos de segmentação segmenta o bloco de transporte concatenado de comprimento X em C segmentos de tamanho substancialmente igual a Ki (ou alternativamente Ki e Ki-i) . Os bits de enchimento são adicionados (se necessário) na etapa 609 por intermédio do conjunto de circuitos 103 e na etapa 611 cada um dos C segmentos é codificado (por exemplo, uma palavra código FEC é determinada para cada um dos C segmentos) . Finalmente, na etapa 613 as palavras código FEC são transmitidas por intermédio do conjunto de circuitos de transmissão 108.
Conforme discutido acima, a etapa de determinar uma palavra código FEC compreende as etapas de inserir bits de enchimento no segmento para formar um bloco de entrada FEC, codificar FEC o bloco de entrada FEC, e descartar os bits relacionados aos bits de enchimento. Essa etapa pode requerer a inserção de grupos de bits de enchimento consecutivos em um segmento para formar um bloco de entrada FEC onde o comprimento de grupo é um múltiplo de 7, codificar FEC o bloco de entrada FEC, e descartar os bits relacionados aos bits de enchimento. Descartar os bits de enchimento compreende as etapas de descartar os grupos de bits sistemáticos correspondendo aos bits de enchimento e descartar os bits de paridade correspondendo aos grupos de bits de enchimento na saída do codificador constituinte 1, onde o codificador constituinte pega o bloco de entrada FEC sem intercalação para os turbo codificadores tail-biting. A Figura 7 é um fluxograma mostrando a operação do receptor da Figura 2. 0 fluxo lógico começa na etapa 701 onde o tamanho de segmento, número de segmentos, tamanho de bloco FEC usado para turbo decodificar cada segmento, e o número de bits de enchimento são determinados utilizando o conjunto de circuitos lógicos 213 e a tabela 215. Conforme discutido acima, em uma primeira modalidade da presente invenção o tamanho de bloco FEC Ki é determinado a partir de um grupo de tamanhos de bloco FEC não-contíguos na tabela 215, onde os tamanhos de bloco FEC não-contíguos disponível na tabela 2 05 estão entre Kmin e Kmax, e em que Kmin< = Ki<Kmax. Como discutido acima, Ki se baseia em X. X é determinado pelo conjunto de circuitos lógicos 213 a partir do vetor de sinal recebido. 0 conjunto de circuitos lógicos 213 então determina ~ + í' e ( ΓΛ/λ\ιαχ1 . Em uma segunda modalidade da presente invenção os tamanhos de bloco FEC Ki e Ki-i são determinados, onde -rx/cl+í Na etapa 703 um vetor de sinal recebido segue através do conjunto de circuitos de de-segmentação de bloco de código 202 o qual organiza porções do vetor de sinal recebido de acordo com o segmento C ao qual elas estão associadas. Na etapa 705 o conjunto de circuitos de manejo de enchimento 204 utiliza o conhecimento da localização dos bits de enchimento para favorecer o turbo decodificador 206, para, por exemplo, ajustar as LLRs correspondendo aos bits de enchimento em uma magnitude elevada. Cada um dos C segmentos é decodificado na etapa 707. Após turbo decodificar, o conjunto de circuitos 208 descarta os bits de enchimento para obter a estimativa de um segmento (etapa 709). O montador de bloco de código 211 monta o transporte estimado mediante coleta e arranjo adequados das estimativas dos segmentos obtidos a partir do conjunto de circuitos 208 (etapa 711).
Embora a invenção tenha sido particularmente mostrada e descrita com referência a uma modalidade específica, será entendido por aqueles versados na técnica que várias mudanças em forma e detalhes podem ser feitas na mesma sem se afastar do espírito e escopo da invenção. Pretende-se que tais mudanças sejam abrangidas pelo escopo das reivindicações a seguir.
REIVINDICAÇÕES

Claims (8)

1. Método de operar um transmissor, o método caracterizado por compreender as etapas de: receber um bloco de transporte concatenado de comprimento X; determinar dois tamanhos de bloco FEC disponíveis Ki-i e Ki a partir de um grupo de tamanhos de bloco FEC não-contíguos, em que os tamanhos de blocos FEC não-contíguos disponíveis estão entre Kmin e Kmax, e em que Kmin <= Ki-i < Kmax, Kmin <= Ki <= Kmax, e em que Ki-i e Ki são baseados adicionalmente em X; segmentar o bloco de transporte concatenado de comprimento X em C segmentos de tamanhos substancialmente iguais a Ki-i ou Ki; determinar uma palavra-código FEC para cada um dos C segmentos utilizando tamanhos de bloco FEC Ki-i ou Ki, e transmitir as C palavras-código FEC através do canal; em que C = [X/Kmax] = Ci + Ci-i, onde: Y = CKi - X; Ci-i = [Y/Di]; Ci = C - [Y/Di] ; e Ci-i e Ci são números de segmentos que são codificados utilizando tamanhos de bloco FEC Ki-i e Ki, respectivamente, onde Ki é o menor tamanho a partir dos tamanhos de bloco FEC disponíveis que é maior ou igual a [X/C], e Di denota a diferença entre tamanhos de intercalador adjacentes Ki-i e Ki.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de determinar uma palavra-código FEC compreende ainda: inserir bits de enchimento no segmento para formar um bloco de entrada FEC; codificação FEC do bloco de entrada FEC; e descartar os bits relacionados aos bits de enchimento.
3. Método, de acordo com a reivindicação 1, caracterizado por compreender ainda: receber bits de informação de comprimento A a serem transmitidos em mais de um fluxo espacial; designar X' bits como um bloco de transporte, onde X' < A; anexar bits CRC para formar o bloco de transporte concatenado de comprimento X; e em que o bloco de transporte concatenado de comprimento X é mapeado para um primeiro canal HARQ.
4. Método, de acordo com a reivindicação 3, caracterizado por compreender ainda as etapas de: designar bits W' = A - X' dos bits de informação como um segundo bloco de transporte; anexar os bits CRC para Y bits para formar um segundo bloco de transporte concatenado; e em que o bloco de transporte concatenado é mapeado para um segundo canal HARQ.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de determinar uma palavra-código FEC compreende ainda as etapas de inserir grupos de bits de enchimento consecutivos em um segmento para formar um bloco de entrada FEC em que o comprimento do grupo é um múltiplo de 7; codificação FEC do bloco de entrada FEC; e descartar os bits relacionados aos bits de enchimento.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a etapa de descartar os bits compreende ainda as etapas de: descartar grupos de bits sistemáticos correspondendo aos bits de enchimento; e descartar os bits de paridade correspondendo aos grupos de bits de enchimento na saída do codificador constituinte 1, em que o codificador constituinte pega o bloco de entrada FEC sem intercalação para turbo codificadores tail-biting.
7. Aparelho caracterizado por compreender: conjunto de circuitos de recepção que recebem um bloco de transporte concatenado de comprimento X; conjunto de circuitos lógicos que determinam dois tamanhos de bloco FEC disponíveis Ki-i e Ki a partir de um grupo de tamanhos de blocos FEC não-contíguos, em que os tamanhos de blocos FEC não-contíguos disponíveis estão entre Kmin e Kmax, e em que Kmin <= Ki-1 < Kmax, Kmin <= Ki <= Kmax , e em que Ki-i e Ki são baseados adicionalmente em X; conjunto de circuitos de segmentação de bloco de código que segmentam o bloco de transporte concatenado de comprimento X em C segmentos de tamanhos substancialmente iguais a Ki-i ou Ki; e conjunto de circuitos de codificação determinando uma palavra-código FEC para cada um dos C segmentos utilizando tamanho de bloco FEC Ki ou Ki-i; e conjunto de circuitos de transmissão que transmitem as C palavras-código FEC através de um canal; em que C = [X/Kmax] = Ci + Ci-i, onde: Y = CKi - X; Ci-i = [Y/Di]; Ci = C - [Y/Di] ; e Ci-i e Ci são números de segmentos que são codificados utilizando tamanhos de bloco FEC Ki-i e Ki, respectivamente, onde Ki é o menor tamanho a partir dos tamanhos de bloco FEC disponíveis que é maior ou igual a [X/C] , e Di denota a diferença entre tamanhos de intercalador adjacentes Ki-i e Ki.
8. Aparelho, de acordo com a reivindicação 7, caracterizado por compreender ainda: conjunto de circuitos de enchimento que inserem bits de enchimento em ao menos um segmento para formar um bloco de entrada FEC.
BRPI0717506A 2006-10-04 2007-09-17 método e aparelho para codificar e decodificar dados BRPI0717506B8 (pt)

Applications Claiming Priority (3)

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

Publications (4)

Publication Number Publication Date
BRPI0717506A2 BRPI0717506A2 (pt) 2014-06-24
BRPI0717506A8 BRPI0717506A8 (pt) 2017-03-07
BRPI0717506B1 true BRPI0717506B1 (pt) 2019-12-03
BRPI0717506B8 BRPI0717506B8 (pt) 2019-12-17

Family

ID=39269076

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0717506A BRPI0717506B8 (pt) 2006-10-04 2007-09-17 método e aparelho para codificar e decodificar dados

Country Status (9)

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

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110194641A1 (en) * 2007-09-14 2011-08-11 Wei Ming Lim Method for Encoding a Bit Sequence and Encoding Circuit
JP4922242B2 (ja) * 2008-06-05 2012-04-25 パナソニック株式会社 符号化装置、符号化方法、及びビタビ復号装置
JP2010004416A (ja) * 2008-06-23 2010-01-07 Fujitsu Ltd 移動無線装置
US8726137B2 (en) * 2009-02-02 2014-05-13 Telefonaktiebolaget L M Ericsson (Publ) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
CN107659384A (zh) * 2012-11-16 2018-02-02 华为技术有限公司 数据处理的方法和装置
WO2016154968A1 (zh) 2015-04-01 2016-10-06 华为技术有限公司 编码方法、装置、基站和用户设备
JP7144621B2 (ja) * 2019-09-04 2022-09-29 株式会社日立国際電気 通信システム及び通信方法
WO2022220394A1 (ko) * 2021-04-12 2022-10-20 삼성전자 주식회사 전송 데이터 손실 복구 방법 및 그 전자 장치

Family Cites Families (8)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN109314602B (zh) 用于错误检测编码的装置和方法
US8356232B2 (en) Method and apparatus for encoding and decoding data
CN107026709B (zh) 一种数据包编码处理方法及装置、基站及用户设备
BRPI0717506B1 (pt) método e aparelho para codificar e decodificar dados
CN108282246B (zh) 信息处理的方法、设备和通信系统
CN105306165B (zh) 数据发送方法及装置
US8543884B2 (en) Communications channel parallel interleaver and de-interleaver
KR101221915B1 (ko) 데이터 전송방법
US9240808B2 (en) Methods, apparatus, and systems for coding with constrained interleaving
US9118350B2 (en) Methods, apparatus, and systems for coding with constrained interleaving
US6859906B2 (en) System and method employing a modular decoder for decoding turbo and turbo-like codes in a communications network
JP2008219892A (ja) データを符号化および復号化する方法および装置
BRPI0721176B1 (pt) métodos e aparelhos para operar um turbo codificador
WO2007020678A1 (ja) 送信装置、符号化装置及び復号装置
WO2007020677A1 (ja) 送信装置
KR20090084641A (ko) 전송 블록 크기 결정 방법 및 이를 이용한 신호 전송 방법
US9112534B2 (en) Methods, apparatus, and systems for coding with constrained interleaving
BR112016028982B1 (pt) Dispositivo transmissor e dispositivo receptor para sistema de comunicação sem fio, e método de transmissão e método de recepção em sistema de comunicação sem fio
KR101208555B1 (ko) 이동통신 시스템에서 CTC(Convolutional Turbo Code) 인코더를 이용하여 데이터를 전송하기 위한 장치 및 그 방법
KR101611631B1 (ko) 데이터 복호화 방법, 데이터 인터리브 방법, 데이터 복호화 장치, 인터리버 테이블 생성 장치 및 데이터 인터리브 장치
de Figueiredo et al. LTE-advanced channel coding generic procedures a high-level model to guide low-level implementations

Legal Events

Date Code Title Description
B25D Requested change of name of applicant approved

Owner name: MOTOROLA SOLUTIONS, INC. (US)

B25A Requested transfer of rights approved

Owner name: MOTOROLA MOBILITY, INC. (US)

B25E Requested change of name of applicant rejected

Owner name: MOTOROLA MOBILITY, INC. (US)

Free format text: INDEFERIDO O PEDIDO DE ALTERACAO DE NOME CONTIDO NA PETICAO 20130041710 DE 16/05/2013, DEVIDO A AUSENCIA DE GUIA DE RECOLHIMENTO RELATIVA AO SERVICO.

B25G Requested change of headquarter approved

Owner name: MOTOROLA MOBILITY, INC. (US)

B25D Requested change of name of applicant approved

Owner name: GOOGLE TECHNOLOGY HOLDINGS LLC (US)

B25A Requested transfer of rights approved

Owner name: GOOGLE TECHNOLOGY HOLDINGS LLC (US)

B06T Formal requirements before examination [chapter 6.20 patent gazette]

Free format text: PARECER 6.20

B06A Patent application procedure suspended [chapter 6.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 03/12/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 03/12/2019, OBSERVADAS AS CONDICOES LEGAIS

B16C Correction of notification of the grant [chapter 16.3 patent gazette]

Free format text: REFERENTE A RPI 2552 DE 03/12/2019, QUANTO AO DESENHO.