BRPI0204016B1 - aparelho e método para gerar códigos em um sistema de comunicação - Google Patents

aparelho e método para gerar códigos em um sistema de comunicação Download PDF

Info

Publication number
BRPI0204016B1
BRPI0204016B1 BRPI0204016A BR0204016A BRPI0204016B1 BR PI0204016 B1 BRPI0204016 B1 BR PI0204016B1 BR PI0204016 A BRPI0204016 A BR PI0204016A BR 0204016 A BR0204016 A BR 0204016A BR PI0204016 B1 BRPI0204016 B1 BR PI0204016B1
Authority
BR
Brazil
Prior art keywords
code
subcode
qctc
subcodes
qctcs
Prior art date
Application number
BRPI0204016A
Other languages
English (en)
Other versions
BR0204016A (pt
Inventor
Jae-Sung Jang
Min-Goo Kim
Sang-Hyuck Ha
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of BR0204016A publication Critical patent/BR0204016A/pt
Publication of BRPI0204016B1 publication Critical patent/BRPI0204016B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining techniques, e.g. code combining
    • 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
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6387Complementary punctured convolutional [CPC] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • H04L1/0069Puncturing patterns
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • 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/63Joint error correction and other techniques
    • H03M13/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Detection And Correction Of Errors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

"aparelho e método para gerar códigos em um sistema de comunicação". é fornecido um aparelho e método de gerar qctcs bidimensionais. os conjuntos de sub-códigos de qctcs com velocidades de código dadas são gerados e os sub-códigos são rearrumados em um conjunto de sub-códigos com uma velocidade de código diferente, para utilização na transmissão seguinte para um sub-código com uma velocidade de código predeterminada.

Description

APARELHO E MÉTODO PARA GERAR CÓDIGOS EM UM SISTEMA DE
COMUNICAÇÃO
HISTÓRICO DA INVENÇÃO 1. Campo da invenção A presente invenção relaciona-se genericamente à geração de código em um sistema de comunicação de dados e, em particular, a um aparelho e método para gerar códigos turbo bidimensionais quase-complementares (QCTCs) e QCTCs adaptivos considerando as características de códigos turbo em um sistema de comunicação de pacote que emprega um esquema de retransmissão ou um sistema de comunicação geral que emprega um esquema de retransmissão. 2. Descrição da tecnologia relacionada Em geral, um sistema que utiliza um esquema de retransmissão (por exemplo, ARQ (Automatic Repeat Request -Solicitação de Repetição Automática) híbrido, efetua a combinação suave para melhorar a produtividade da transmissão. As técnicas de combinação suave são divididas em combinação de diversidade de pacote e combinação de código de pacote. Esses dois esquemas de combinação são normalmente denominados combinação de pacote suave. Embora o esquema de combinação de diversidade de pacote seja sub-ótimo no desempenho relativo ao esquema de combinação de código de pacote, ele é favorável devido à implementação fácil quando a perda de desempenho for baixa.
Como foi dito acima, um sistema de transmissão de pacote utiliza o esquema de combinação de código de pacote para melhorar a produtividade da transmissão. O transmissor transmite um código com uma velocidade de código diferente em cada transmissão de pacote. Se um erro for detectado do pacote recebido, o receptor solicita a retransmissão e efetua a combinação suave entre o pacote original e o pacote retransmitido. O pacote retransmitido pode ter um código diferente daquele do pacote anterior. O esquema de combinação de código de pacote é o processo de combinar N pacotes recebidos com uma velocidade de código R para um código com uma velocidade de código efetiva de R/N antes da decodificação, para assim obter um ganho de codificação.
Com relação ao esquema de combinação de diversidade de pacote, o transmissor transmite o mesmo código com uma velocidade de código R em cada transmissão de pacote. Se um erro for detectado do pacote recebido, o receptor solicita a retransmissão e efetua combinação suave entre o pacote original e o pacote retransmitido. O pacote retransmitido tem um código idêntico ao do pacote anterior. Neste sentido, o esquema de combinação de diversidade de pacote pode ser considerado a média de símbolos em um canal aleatório. 0 esquema de combinação de diversidade de pacote reduz a potência do ruído ao obter a média das saídas suaves dos símbolos de entrada e atinge tal ganho de diversidade que é oferecido por um canal multivia porque o mesmo código é transmitido repetidamente em um canal de desvanecimento. No entanto, o esquema de combinação de diversidade de pacote não fornece um ganho de codificação adicional como o obtido de uma estrutura de código que o esquema de combinação de código de pacote oferece.
Devido à simplicidade de implementação, a maioria dos sistemas de comunicação de pacote utilizara o esquema de combinação de diversidade de pacote, que está atualmente sendo desenvolvido para utilização com o sistema IS-2000 síncrono e com o sistema UMTS assíncrono. A razão é que os sistemas de comunicação de pacote existentes utilizando códigos convolucionais e mesmo combinação de código de pacote não · oferecem um grande ganho quando códigos convolucionais com uma velocidade de dados de código são utilizados. Se um sistema com R=l/3 suporta retransmissão, não há uma ampla diferença no desempenho entre o esquema de combinação de código de pacote e o esquema de combinação de diversidade de pacote. Assim, o esquema de combinação de diversidade de pacote é selecionado considerando a complexidade de implementação. No entanto, a utilização de códigos turbo como códigos de correção de erro de encaminhamento (FEC) requer um mecanismo de combinação de pacote diferente porque os códigos turbo são projetados como códigos de correção de erro para ter características de desempenho muito próximas do "Shannon Channel Capacity Limit" (Limite de Capacidade de Canal de Shannon) , e seu desempenho varia obviamente com as velocidades de código diferentemente dos códigos convolucionais. Portanto, pode-se concluir que a combinação de código de pacote é viável para um sistema de comunicação de pacote que utiliza códigos turbo em um esquema de retransmissão para alcançar a meta do desempenho ótimo.
Neste contexto, QCTCs foram propostos para aumentar o desempenho em um sistema utilizando a combinação suave. Para detalhes dos QCTCs, ver Pedido de Patente da Coréia número P2000-62151, requerida pelo presente solicitante. Códigos Turbo Quase-Complementares (QCTCs) Será feita uma descrição de um sistema que seleciona o esquema de combinação de código de pacote ou o esquema de combinação de diversidade de pacote utilizando QCTCs convencionais de acordo com uma velocidade de dados aqui abaixo.
Em um sistema utilizando códigos turbo de R=l/5, por exemplo, aplica-se a combinação de código de pacote até que a velocidade de código geral dos códigos produzidos pela combinação suave dos pacotes retransmitidos atinja 1/5. Para os pacotes retransmitidos subseqüentes, a combinação de diversidade de pacote e depois a combinação de código de pacote são efetuados. Se o primeiro pacote for transmitido a uma velocidade de dados de 1/3, os símbolos de redundância necessários são fornecidos a uma solicitação de retransmissão para tornar a velocidade de código geral 1/5. Assim, quando o receptor recebe ambos os pacotes, a velocidade de código geral torna-se 1/5. Cada um dos pacotes seguintes é repetido antes da transmissão e o receptor efetua a combinação de diversidade de pacote e então a combinação de código de pacote nos pacotes retransmitidos na velocidade de dados de 1/5. A Figura 1 é um gráfico que ilustra a diferença de desempenho entre combinação de código de pacote e combinação de diversidade de pacote no caso de códigos turbo. Como é mostrado na Figura 1, um código turbo com uma velocidade de dados baixa de 1/6 exibe um ganho de desempenho maior do que o código turbo com uma alta velocidade de código de 1/3 com a mesma energia de símbolo Es e obtém um ganho de desempenho de 3 dB da combinação de código de pacote. Consequentemente, a geração de códigos turbo de R=l/3 pela combinação de código de pacote de sub-códigos de R=l/6 produz um ganho que os códigos turbo com uma velocidade de código inferior a 1/3 exibem e um ganho que a combinação de código de códigos diferentes oferece, contemporaneamente.
Mais especificamente, para a mesma energia de símbolo de código Es e a mesma velocidade de código, os códigos turbo fornecem desempenhos próximos do "Shannon Channel Capacity Limit" de acordo com as velocidades de código, apenas se a decodificação por iteração estiver integralmente implementada, diferentemente dos códigos convolucionais. É conhecido na tecnologia que o código turbo com uma velocidade de código baixa oferece um ganho de desempenho maior do que o código turbo com uma velocidade de código alta com a mesma energia de símbolo de código Es. Por exemplo, quando R=l/3 é reduzido para R=l/6, a diferença de desempenho pode ser estimada ao analisar uma mudança no "Shannon Channel Capacity Limit". A razão para supor a mesma energia de símbolo Es independentemente de R=l/3 ou 1/6 para as curvas da Figura 1 é que a mesma energia de símbolo Es é utilizada para cada retransmissão em um sistema ARQ híbrido (HARQ).
Se um 'código R=l/2 é repetido uma vez e os dois códigos são combinados por diversidade de pacote em um canal AWGN (Additive White Gaussian Noise - Ruído Gaussiano Branco Aditivo), um ganho máximo de 3 dB é obtido em termos da proporção energia-a-ruído de símbolo (Es/No). O mesmo resultado ocorre no caso de um código R=l/6. Assim, uma curva de desempenho para o código turbo de R=l/3 desloca-se à esquerda em paralelo por uma escala de +3 dB devido ao ganho da combinação de diversidade de pacote e uma curva de desempenho para o código turbo de R=l/6 também se desloca para a esquerda em paralelo por uma escala de +3 dB quando a mesma energia de símbolo é dada. Aqui, as curvas de desempenho são derivadas com relação à proporção de energia-a-ruído (Eb/No), que é medida para comparar desempenhos de código de acordo com as velocidades de código. Como conseqüência, a diferença entre as curvas de desempenho de código turbo é equivalente à diferença de desempenho entre a combinação de diversidade de pacote e a combinação de código de pacote. A diferença no desempenho de acordo com as velocidades de código podem ser estimadas do "Shannon Channel Capacity Limit" e uma diferença de desempenho mínima pode ser obtida utilizando uma proporção sinal-a-ruído (SNR) exigida mínima.
Em um sistema utilizando códigos turbo com uma velocidade de código R e um tamanho de bloco de codificador muito grande L, o Eb/No mínimo necessário para fornecer um canal isento de erro é expresso conforme segue: Eb/No> (4R-1)/2R (1) De acordo com a equação acima, o Eb/No mínimo necessário em AWGN em cada velocidade de código para os códigos turbo está listado na Tabela 1 abaixo. Na Tabela 1, um Eb/No típico indica um Eb/No necessário para uma velocidade de erro de bit (BER) abaixo de 0,00001 quando o tamanho de bloco de codificação L dos códigos turbo for 1024.
Tabela 1 Como é mostrado na Tabela 1, os Eb/No necessários são 0,86, 0,57, 0,0, -0,414, -0,55, -0,82, -0,975 e -1.084 dB respectivamente, para as velocidades de código de 3/4, 2/3, 1/2, 3/8, 1/3, 1/4, 1/5 e 1/6. Existe uma diferença de desempenho de pelo menos 0,53 dB entre um código R=l/3 utilizando o sistema e o código R=l/6 utilizando o sistema. Esta é a diferença de desempenho mínima com base no "Shannon Channel Capacity Limit". Considerando a implementação de um decodificador real e um ambiente de sistema, a diferença torna-se mais ampla. A partir de uma simulação, uma diferença de desempenho aproximada de 1,12 dB foi observada entre um sistema utilizando combinação de código de pacote para códigos R=2/3 e um sistema utilizando combinação de diversidade de pacote para os códigos R=l/3. A Tabela 2 mostra a diferença de desempenho entre a combinação de código de pacote e a combinação de diversidade de pacote após uma retransmissão em um sistema com a velocidade de código de sub-código de 2/3. Como é mostrado na Tabela 2, uma diferença de desempenho mínima é de 1,12 dB e o esquema de combinação de código de pacote produz um ganho de desempenho mais alto no sistema utilizando códigos turbo.
Tabela 2 Como foi descrito acima, o esquema de combinação de código de pacote entrega desempenho excelente no sistema de retransmissão utilizando o código turbo. Portanto, a presente invenção fornece um método de geração de sub-código para combinação de código de pacote ótimo em um sistema de retransmissão utilizando o código turbo. A geração de sub-códigos para a combinação de código de pacote de acordo com uma regra predeterminada produz o ganho de combinação de código mencionado anteriormente e maximiza o desempenho de um sistema solicitando sub-códigos do mesmo tamanho para cada retransmissão. A Figura 2 é um diagrama de blocos de um típico aparelho gerador de sub-códigos utilizando códigos turbo. Como é mostrado na Figura 2, o aparelho gerador de sub-códigos inclui um codificador turbo, um gerador de sub-código 204 e um controlador 205.
Primeiro, com relação ao codificador turbo, um primeiro codificador constituinte 201 (codificador constituinte 1) codifica um fluxo de bit de informação de entrada e emite os primeiros símbolos de código, isto é, os símbolos de informação X e os primeiros símbolos de paridade Y0 e Yi. Um entrelaçador 202 entrelaça o fluxo de bits de informação de entrada de acordo com uma regra predeterminada. Um segundo codificador constituinte 203 (codificador constituinte 2) codifica o fluxo de bits de informação entrelaçados e emite os segundos símbolos de código, isto é, os símbolos de informação X' e os segundos símbolos de paridade Y0' e Yl'. Assim, os símbolos de saída do codificador turbo são o primeiro e o segundo símbolos de código. Como os símbolos de informação X' gerados do segundo codificador constituinte 203 não são transmitidos na realidade, a velocidade de código do codificador turbo é de 1/5. O gerador de sub-código 204 gera sub-códigos dos primeiros e segundos símbolos de código recebidos dos primeiro e segundo codificadores constituintes 201 e 203 ao perfurar e repetir sob o controle do controlador 205. O controlador 205 armazena as matrizes de repetição (e repetição) geradas dos algoritmos mostrados nas Figuras 4, 5 e 6 e emite sinais de seleção de símbolos de acordo com as matrizes de perfuração para o gerador de sub-código 204. Então, o gerador de sub-código 204 seleciona um número predeterminado de símbolos de código dentro de uma faixa de perfuração predeterminada em resposta aos sinais de seleção de símbolos.
Os caracteres de referência conforme aqui utilizados, X, Y0, Yl, Y'0 e Y'1 são definidos conforme segue: X: símbolo de código sistemático ou símbolo de informação Y0: símbolo de redundância do codificador de componente superior do codificador turbo Yl: símbolo de redundância do codificador de componente spperior do codificador turbo Y'0: símbolo de redundância do codificador componente inferior do codificador turbo Y'l: símbolo de redundância do codificador componente inferior do codificador turbo As Figuras 4, 5 e 5 são fluxogramas que ilustram procedimentos geradores de sub-código (ou matriz de perfuração) de acordo com a tecnologia convencional.
Especificamente, a Figura 4 ilustra um procedimento de geração do primeiro sub-código C0 em um conjunto de sub-códigos, a Figura 5 ilustra um procedimento de geração de sub-códigos médios Ci a CS-2 no conjunto de sub-códigos, e a Figura 6 ilustra um procedimento de geração do último sub-código Cs-i no conjunto de sub-códigos.
Abaixo, ENC1 (referido como primeiros símbolos de código) indicamos símbolos de informação X e os primeiros símbolos de paridade YO e Y1 emitidos do primeiro codificador componente 201 e ENC2 (referido como os segundos símbolos de código) indicam os segundos símbolos de paridade Y'0 e Y'1 emitidos do segundo codificador componente 203.
Com referência à Figura 4, uma velocidade de código máxima (Rmax) disponível para um transmissor é estabelecida na etapa 4 01. Este valor é dado em sua maioria de acordo com a velocidade de dados utilizada no sistema. Uma velocidade de código mínima (Rmin) é fixada para ser uma integral-múltipla de Rmax (=k/n) . Aqui, k é o número de símbolos de entrada e n é o número de símbolos de saída. Embora Rmin possa ser determinada arbitrariamente, ela normalmente é 1/6, 1/7 ou mais baixa. Pois o ganho de codificação é saturado devido à diminuição das velocidades de código a ou abaixo de R=l/7 nos códigos turbo. Além i disso, a velocidade de código real, isto é, a velocidade de código materna (R) de um decodificador em um receptor, é determinada. R é fixado para ser maior do que Rmin.
Na implementação de um sistema real, Rmax e Rmin são prefixados. Em algum sentido, Rmax é a velocidade de código dos sub-códigos a serem gerados e Rmin é uma velocidade de código alvo após a combinação de código dos sub-códigos. Em geral, Rmin é a velocidade de código de um codificador no transmissor.
Na etapa 403, o número de sub-códigos (S) é calculado pela equação seguinte utilizando Rmax e Rmin. Aqui, o número dos sub-códigos ou o número de matrizes de perfuração é uma integral mínima superior à proporção de Rmax para Rmin. S=rRmax/Rminl (2) em que Γ*Ί representa uma integral mínima igual ou maior do que * .
Uma variável m é fixada para um valor inicial de 1 na etapa 405 e C(=mxk) é determinado na etapa 407. C é o número das colunas de cada matriz de perfuração determinada por Rmax. Por exemplo, para Rmax = 3/4, C pode ser 3, 6, 9, ... e é fixado para um valor disponível mínimo para o primeiro sub-código a ser transmitido. Aqui, C é fixado para 3 em Rmax = 3/4.
Na etapa 4 07, o número de símbolos a serem selecionados da matriz de perfuração, Ns, é calculado ao multiplicar a variável m pelo comprimento de código, isto é, o número de símbolos de código n de Rmax = k/n. Ns é o número de símbolos selecionados ou o número de posições selecionadas em cada matriz de perfuração e é calculado por C/Rmax.
Na etapa 409, (Ns-C) é comparado com o número dos codificadores componentes do codificador turbo no transmissor. 0 codificador turbo atual é geralmente provido de dois codificadores componentes. Assim, supõe-se que dois codificadores componentes são utilizados. E determinado se (Ns-C) é 2 ou maior na etapa 409 porque o codificador turbo tem dois codificadores componentes conectados em paralelo com o entrelaçador interposto como é mostrado na Figura 2, diferentemente dos codificadores convencionais que utilizam outros códigos unitários. Em outras palavras, pelo menos um símbolo de paridade de cada codificador componente precisa ser transmitido após os símbolos de informação serem todos transmitidos para preservar as características inerentes no codificador turbo.
Se (Ns-C) é inferior a 2, apenas um símbolo é selecionado quer do primeiro conjunto de símbolos de paridade ou do segundo conjunto de símbolos de paridade. Da perspectiva dos códigos turbo, qualquer um dos casos pode defrontar-se com problemas. No primeiro caso, sub-códigos gerados sem segundos símbolos de paridade não são códigos turbo mas códigos convolucionais com comprimento de restrição K=4 de um codificador tendo apenas o primeiro codificador componente e não oferece qualquer ganho de entrelaçador que esteja disponível no codificador turbo. Por outro lado, no segundo caso, a transmissão de apenas símbolos sistemáticos sem símbolos de paridade do primeiro codificador componente resulta em sub-códigos com uma velocidade de código de 1. Isto é equivalente a um sistema não codificado sem qualquer ganho de codificação. Assim, (Ns-C) precisa ser igual ou maior do que 2 para fornecer desempenho de codificador turbo.
Se (Ns-C) é igual ou maior do que 2 na etapa 409, C símbolos de' informação sistemática são selecionados da matriz de perfuração na etapa 411 e os outros símbolos são selecionados de acordo com um tipo predeterminado. Para o tipo 1, os outros símbolos são selecionados do primeiro e do segundo símbolos de paridade pela Eq. (3) na etapa 413. 0 número de primeiros símbolos de paridade selecionados é igual ou maior do que o de segundos símbolos de paridade. Por exemplo, se o número dos outros símbolos, (Ns-C), é 3, primeiros e segundos símbolos de paridade são selecionados pela Elq. (3) e depois mais um símbolo é selecionado dos primeiros símbolos de paridade. Γ (Ns-C) /2~| ENC1 (paridade) L(Ns-C)/2j ENC2(paridade) (3) em que L*J representa uma integral máxima igual ou inferior a *.
Para o tipo 2, os outros símbolos são selecionados dos primeiros e segundos símbolos de paridade pela Eq. (4) na etapa 415. Se a e b são dados como taxas de distribuição de símbolo para os primeiros símbolos de paridade e para os segundos símbolos de paridade, respectivamente, tantos símbolos quanto uma integral mínima igual ou maior do que a proporção de a(Ns-C) para (a+b) são selecionados dos primeiros símbolos de paridade e tantos símbolos quanto uma integral máxima igual ou inferior à proporção de b(Ns-C) para (a+b) são selecionados dos segundos símbolos de paridade.
Ta(Ns-C)/(a+b) 1 ENC1(paridade) Lb(Ns-C)/(a+b)1 ENC2(paridade) (4) em que a+b=l e a e b indicam as proporções de distribuição de símbolo para ENC1 e ENC2, respectivamente.
Se a condição dada na etapa 409 não é satisfeita, isto é, (Ns-C) é inferior a 2, a variável m é incrementada por 1 na etapa 417 e o procedimento retorna para a etapa 407. A finalidade da etapa 409 é determinar se sub-códigos capazes de preservar a natureza dos códigos turbo podem ser gerados dentro da faixa de perfuração atual (o tamanho da matriz de perfuração). Se a natureza dos códigos turbo não podem ser preservadas, a faixa de perfuração é aumentada na etapa 417 .
Como é descrito acima, a matriz de perfuração inicial é construída de tal modo que todos os símbolos de informação são selecionados e pelo menos um símbolo é selecionado de cada um dos primeiro e do segundo conjuntos de símbolos de paridade no codificador turbo.
Será fornecida agora uma descrição de um método de geração de matriz de perfuração média com referência à Figura 5. Ao repetir o procedimento da Figura 5, as matrizes de perfuração Cx a Cs-2) são geradas.
Com referência à Figura 5, a etapa 501 ou 503 é efetuada de acordo com um tipo predeterminado. Para o tipo 1, Ns símbolos são selecionados do primeiro e do segundo conjuntos de símbolos de paridade pela Eq. (5) na etapa 501. Ns é o produto de m e n dado de Rmax (=k/n). 0 número de primeiros símbolos de paridade selecionados é igual ou maior do que o de segundos símbolos de paridade selecionados. Aqui, são selecionados símbolos não selecionados das matrizes de perfuração anteriores.
Tns/21 ENC1(paridade) LNs/2j ENC2(paridade) (5) Para o tipo 2, Ns símbolos são selecionados dos primeiros e segundos conjuntos de símbolos de paridade de acordo com proporções predeterminadas pela Eq. (6) na etapa 503. Se a e b são dados como proporções de distribuição de símbolos para os primeiros símbolos de paridade e para os segundos símbolos de paridade, respectivamente, tantos símbolos quanto uma integral mínima igual ou maior do que a proporção de a(Ns) para (a+b) são selecionados dos primeiros símbolos de paridade e tantos símbolos como uma integral máxima igual ou inferior à proporção de b(Ns) para (a+b) são selecionados dos segundos símbolos de paridade. Aqui, são selecionados os símbolos não selecionados das matrizes de perfuração anteriores. fa(Ns)/(a+b)1 ENC1(paridade) Lb (Ns) / (a+b) J ENC2(paridade) (6) O método de geração da última matriz de perfuração CS-i será descrito abaixo com referência à Figura 6.
Com referência à Figura 6, os símbolos não selecionados restantes das matrizes de perfuração anteriores são todos selecionados na etapa 601. O número dos símbolos selecionados é definido como Ns2. Na etapa 603, um novo Ns é definido por (Ns-Ns2) . Como símbolos em todas as posições são selecionados das matrizes de perfuração no processo das operações mostradas nas Figuras 4, 5 e 6, o novo Ns é o número de símbolos a ser selecionado repetidamente. Na etapa 605, é determinado se o novo Ns é , maior do que 0. Se o novo Ns for 0, o procedimento termina. Se ele for maior do que 0, tantos símbolos quantos os novos Ns são selecionados repetidamente dos símbolos de informação. Em outras palavras, os símbolos selecionados são transmitidos repetidamente. O método de geração de sub-códigos descrito acima de acordo com a presente invenção será tornado claro abaixo com citações numéricas específicas.
Para Rmax=3/4 e R=l/5, Rmin=l/6 e S=6/ (4/3)=4,5->5. Assim cinco matrizes de perfuração são produzidas. {Co# Ci, C2/ C3, C4} : Rmax=3/4 Como a velocidade de código dos sub-códigos é 3/4 e o número de sub-códigos é 5, os sub-códigos têm uma velocidade de código de 3/20 ( (l/S)xRmax=(1/5)x(3/4)=3/20) após a combinação de códigos. Isto implica que para 3 bits de informação, o receptor recebe 20 símbolos de código. No entanto, como 15 símbolos são gerados de Sxn=5x4=20 e Sxk=5x3=15, 5 símbolos entre os 15 símbolos são transmitidos repetidamente. Os símbolos repetidos são preferivelmente símbolos de informação. No exemplo acima, se um símbolo de informação X é repetido uma vez em cada sub-código, o decodificador recebe códigos turbo com R=l/5 em que símbolos de informação ocorrem duas vezes para cada um dos sub-códigos S quando os sub-códigos S são todos recebidos.
Os sub-códigos resultantes dos procedimentos mostrados nas Figuras 4, 5 e 6 são um tipo de códigos complementares, mas éles não são no sentido estrito do termo porque símbolos repetidos existem e cada sub-código exibe uma característica diferente. Tendo em vista que os sub-códigos são produzidos de códigos turbo, eles serão denominados códigos turbo quase-complementares (QCTCs). A Figura 3 é um gráfico que mostra uma comparação entre o desempenho de HARQ utilizando a combinação de código de pacote e o desempenho de HARQ utilizando a combinação de diversidade de pacote em termos de produtividade de dados para um QCTC com R=2/3 e S=4 de acordo com a tecnologia convencional. Como é mostrado na Figura 3, um HARQ 301 utilizando combinação de código de pacote para o QCTC e um HARQ 302 utilizando combinação de diversidade de pacote para o QCTC mostram melhor desempenho do que um HARQ 3 03 sem o QCTC. Para a mesma produtividade de dados de tempo real (por exemplo, 0,25), cerca de -4 dB de Es/No é necessária no HARQ 301, cerca de -1,3 dB no HARQ 302, e cerca de 1 dB no HARQ 303. Conseqüent emente, a utilização do QCTC de acordo com a presente invenção assegura uma produtividade de dados mais alta com menos energia de símbolo. 0 método de geração de sub-códigos descrito acima será tornado claro abaixo com citações numéricas específicas.
Para Rmax=3/4, R=l/5 i ^ Rmin- 1/6, S=6/(4/3)=4,5—>5 .
Assim, cinco matrizes de perfuração são produzidas. {C0, Ci, C2, C3, C4} :Rmax=3/4.
Como a velocidade de código dos sub-códigos é de 3/4 e o número de sub-códigos é 5, os sub-códigos têm uma velocidade de código de 3/20 ( (l/S)xRmax= (l/5)x(3/4) =3/20) após a combinação de código. Isto implica que para 3 bits de informação, o receptor recebe 20 símbolos de código. No entanto, como 15 símbolos são gerados de Sxn=5x4=20 e Sxk=5x3=15, 5 símbolos predeterminados entre os 15 símbolos são transmitidos repetidamente. Os símbolos repetidos são preferivelmente símbolos de informação. No exemplo acima, se um símbolo de informação X é repetido uma vez em cada sub-código, o decodificador recebe códigos turbo com R=l/5 em que símbolos de informação ocorrem duas vezes em cada um dos S sub-códigos.
Os sub-códigos resultantes dos procedimentos ilustrados nas Figuras 4, 5 e 6 são tipos de códigos complementares, embora eles não o sejam no sentido estrito do termo, porque símbolos repetidos existem e cada sub-código exibe uma característica diferente. Em vista dos sub-códigos serem produzidos de códigos turbo, eles serão denominados QCTCs.
Na tecnologia convencional, os sub-códigos de um QCTC têm uma velocidade de código predeterminada. Para a transmissão de um único bloco de palavra de informação, os sub-códigos de um QCTC com uma velocidade de código em particular são utilizados. Em outras palavras, o QCTC convencional é um QCTC unidimensional.
Sob um ambiente de canal modificado ou com uma palavra de informação de entrada de um comprimento modificado, o sub-código com uma velocidade de código diferente precisa ser transmitido. No entanto, nenhum método de selecionar e de transmitir QCTCs com diferentes velocidades de códigos é dado. Na realidade, é preferível utilizar o sub-código de um novo QCTC com uma velocidade de código alta (uma velocidade de código baixa) que não a dos sub-códigos anteriores de QCTCs em um bom ambiente de canal (em um ambiente de canal ruim). Em outras palavras, há uma necessidade de um método de determinar QCTCs adaptivamente de acordo com o ambiente de canal ou outros fatores.
SINOPSE^ DA INVENÇÃO
Portanto, é um objeto da presente invenção fornecer um aparelho e método para utilizar uma pluralidade de QCTCs com velocidades de código diferentes em um sistema de comunicação que suporta a retransmissão. É outro objeto da presente invenção fornecer um aparelho e método para rearranjar sub-códigos em um conjunto de sub-códigos com uma velocidade de código diferente que são para serem transmitidos após um sub-código com uma velocidade de código predeterminada para atingir combinação de código ótima no receptor em um sistema de comunicação que suporta a retransmissão pela utilização de uma pluralidade de QCTCs. É ainda um objeto da presente invenção fornecer um aparelho e método para gerar um sub-código com uma velocidade de código pretendida ao agrupar sub-códigos de um QCTC com uma velocidade de código em particular tantas vezes quantas o número de agrupamento determinado pela velocidade de código pretendida e a transmissão do sub-código gerado para atingir combinação de código ótima no receptor em um sistema de comunicação que suporta a retransmissão pela utilização de uma pluralidade de QCTCs. O que antecede e outros objetos da presente invenção são alcançados ao fornecer um aparelho e método para gerar QCTCs bidimensionais. De acordo com um aspecto da presente invenção, os conjuntos de sub-códigos de QCTCs que correspondem a uma pluralidade de velocidades de código dadas são gerados. Aqui, cada sub-código sendo uma matriz com elementos que representam a repetição e a perfuração. Então, novos conjuntos de sub-códigos são gerados de modo que a matriz de cada sub-código tem tantas colunas que o mínimo múltiplo comum dos números das colunas dos sub-códigos nos conjuntos de sub-códigos. A prioridade das matrizes de sub-códigos são determinadas em cada novo conjunto de sub-código de modo que uma matriz gerada pela combinação de matrizes de dois dos novos conjuntos de sub-código tem uma característica de QCTC. Então, as matrizes são redispostas em cada novo sub-código de acordo com a prioridade.
De acordo com outro aspecto da presente invenção, um QCTC com a velocidade de código mais alta entre QCTCs com velocidades de código em uma relação de integral-múltipla é fixada como um código primitivo no grupo e os sub-códigos do código primitivo são gerados. O número de sub-códigos a serem agrupados no código primitivo é determinado para gerar cada um dos outros QCTCs. Um sub-código a ser transmitido é gerado ao agrupar tantos sub-códigos do código primitivo que o número de agrupamento que corresponde a uma velocidade de código dada, iniciado com o sub-código após o sub-código transmitido anteriormente no código primitivo. Então, o sub-código gerado é transmitido.
DESCRIÇÃO SUCINTA DOS DESENHOS
Os que antecedem e outros objetos, recursos e vantagens da presente invenção tornar-se-ão mais aparentes da seguinte descrição detalhada quando tomada em conjunto com os desenhos acompanhantes, em que: A Figura 1 é um gráfico que ilustra a diferença de desempenho entre combinação de código de pacote e combinação de diversidade de pacote em um sistema de dados de pacote utilizando códigos turbo. A Figura 2 é um diagrama de blocos de um típico aparelho gerador de sub-códigos. A Figura 3 é um gráfico que ilustra o desempenho de um esquema de . retransmissão sem utilizar sub-códigos, o desempenho de um esquema de retransmissão implementando combinação de diversidade com sub-códigos, e um esquema de retransmissão implementando combinação de código com sub- códigos. A Figura 4 é um fluxograma que ilustra um método convencional de gerar o primeiro sub-código em um conjunto de sub-códigos de códigos turbo quase-complementares. A Figura 5 é um fluxograma que ilustra um método convencional de gerar sub-códigos médios no conjunto de sub-códigos de códigos turbo quase-complementares. A Figura 6 é um fluxograma que ilustra um método convencional de gerar o último sub-código no conjunto de sub-códigos de códigos turbo quase-complementares. A Figura 7 é um fluxograma que ilustra um método de geração de QCTC bidimensional de acordo com a primeira versão da presente invenção. A Figura 8 é um fluxograma que ilustra um método de geração de QCTC adaptivo de acordo com a segunda versão da presente invenção. A Figura 9 é um diagrama que ilustra uma implementação da geração de QCTC adaptiva de acordo com a primeira versão da presente invenção. A Figura 10 é um diagrama que ilustra outra implementação da geração de QCTC adaptiva de acordo com a primeira versão da presente invenção. A Figura 11 é um fluxograma que ilustra a transmissão de sub-códigos utilizando o QCTC adaptivo de acordo com a segunda versão da presente invenção.
A Figura 12 é um fluxograma que ilustra a transmissão de sub-códigos utilizando os QCTCs bidimensionais de acordo com a primeira versão da presente invenção. E A Figura 13 é um diagrama de blocos de um aparelho transmissor para transmitir os QCTCs bidimensionais e os QCTCs adaptivos de acordo com a presente invenção.
DESCRIÇÃO DETALHADA DAS VERSÕES PREFERIDAS
Versões preferidas da presente invenção serão descritas abaixo com referência aos desenhos acompanhantes. Na descrição seguinte, funções ou construções bem conhecidas não são descritas em detalhe pois elas obscureceriam a invenção em detalhes desnecessários. A presente invenção fornece um método para transmitir QCTCs com velocidades de código diferentes de acordo com as características de códigos turbo, do ambiente de canal e da velocidade de dados dos dados de entrada. Dois tipos de QCTCs são aqui propostos, QCTCs bidimensionais e QCTCs adaptivos. NO primeiro esquema, um sub-código de um QCTC é escolhido entre uma pluralidade de QCTCs com diferentes velocidades de código em cada tempo de transmissão e, no último esquema, sub-códigos de um QCTC em particular são agrupados de acordo com uma velocidade de dados dada antes da transmissão. QCTCs bidimensionais Será dada consideração ao caso em que um sistema de comunicação utilizando QCTCs modifica a velocidade de dados dos dados de transmissão de acordo com o ambiente de canal antes de um QCTC ser inteiramente transmitido. Que lk seja uma palavra de informação ou um bloco de dado a ser transmitido. No caso de um QCTC, a palavra de informação é codificada conforme segue: Cj (k)=QCTC_ENC(lk), j=0,1,2,3, . . .,S-1 (10) em que QCTC_ENC refere-se à codificação QCTC, Cj (k) (j =0,1,2,3 , . . . , Si-1) é um jesimo sub-código de um QCTC gerado de lk, e S é o tamanho de conjunto do QCTC, isto é, o número de sub-códigos que formam o QCTC, determinado por uma velocidade de código de sub-código e uma velocidade de código materno.
Como é observado da equação acima, o esquema QCTC unidimensional existente transmite símbolos utilizando os sub-códigos de um QCTC seqüencialmente até lk ser completamente transmitido. Isto é, os sub-códigos são transmitidos na ordem de C0(k), Ci (k) , C2 (k) , . . . , CS-i e modificando a velocidade de código (falando estritamente, a velocidade de código dos sub-códigos) entre transmissões foi considerado sem apresentar um método específico. Se um sistema de comunicação que utiliza QCTC deve utilizar um QCTC com uma nova velocidade de código devido a modificações ambientais no canal antes dos sub-códigos de um QCTC serem todos transmitidos a uma velocidade de dados, ele precisa ser capaz de gerar uma pluralidade de QCTCs com velocidades de código diferentes.
Cij (k) =QCTC_ENC (lk) , i = 0,1,2,3, . . . ,NS-1 j=0,1,2,3, ..., S±-l (11) em que QCTC_ENC refere-se à codificação de QCTC, Cij (k) (i = 0,1,2,3, ... ,NS-1, j=0,l,2,3, . . . ,Si-l é um jésimo sub-código de um iesimo QCTC gerado de lk, e Si é o tamanho do conjunto do iesimo QCTC, determinado por uma velocidade de código de sub-código e uma velocidade de código materno.
De acordo com a Eq. (11), o transmissor em um sistema de comunicação que utiliza QCTC bidimensional seleciona um t NS QCTCs adaptivamente para modificações no ambiente de transmissão incluindo a modificação da condição do canal ou a modificação de uma velocidade de dado. Para otimizar o desempenho, o sistema precisa determinar uma ordem de transmissão ótima ao analisar as relações entre os NS QCTCs. Como o receptor pode combinar QCTCs bidimensionais de modo arbitrário diferentemente dos QCTCs unidimensionais, se a estrutura dos códigos resultantes da combinação de QCTC não satisfizer as características de código que os códigos turbo devem tomar, o desempenho pode ser deteriorado. Para minimizar este problema, QCTCs bidimensionais precisam ser projetados para satisfazer às condições seguintes.
Condição 1: um número mínimo de sub-códigos de QCTCs precisa ser combinado para gerar um código com uma velocidade de código materna. Em outras palavras, uma matriz de perfuração para cada sub-código precisa ser formada tal que um número mínimo de sub-códigos são combinados para alcançar uma velocidade de código materno.
Condição 2: apenas se a Condição 1 for satisfeita, os elementos de uma matriz de perfuração para o código resultante da combinação de QCTC precisa ser pesos iguais se possível. Isto é, os elementos da matriz de perfuração do código gerado pela combinação de um número mínimo de sub-códigos têm uma distribuição uniforme de repetição e de perfuração. A coisa mais importante para satisfazer a Condição 1 e a Condição 2 é formar matrizes de perfuração para cada QCTC e determinar a ordem de transmissão dos sub-códigos em cada QCTC. Tais QCTCs bidimensionais conforme produzidos utilizando QCTCs unidimensionais ótimos devem ter um ganho mais alto ' do que QCTCs bidimensionais selecionados aleatoriamente. Além disso, a ordem de transmissão do sub-código deve ser otimizada porque é um fator importante para determinar o desempenho dos QCTCs bidimensionais. Será descrita em detalhes abaixo a geração dos QCTCs bidimensionais com base nos dois princípios acima. O termo "QCTC" conforme aqui utilizado é definido como um conjunto de sub-códigos gerado com base em velocidade de código materno predeterminado e uma velocidade de sub-código dada. Como indicado anteriormente, matrizes de perfuração são utilizadas no mesmo sentido que os sub-códigos . A Figura 7 é um fluxograma que ilustra um método de geração de QCTC bidimensional de acordo com a primeira versão da presente invenção. Com referência à Figura 7, os conjuntos de sub-código de NS QCTCs unidimensionais ótimos com velocidades de código dadas são gerados na etapa 701. As matrizes de perfuração de Si sub-códigos Cij (i = 0,1,2, . . . ,NS-1, j =0,1,2 , . . . , Si-1) são formadas de acordo com uma velocidade de código materno predeterminado e velocidades de código dados Ri. Isto é efetuado na mesma maneira que a geração de QCTC convencional exceto que uma pluralidade de QCTCs Ci são gerados em correspondência com as velocidades de código dadas. Na etapa 703, o número das colunas na matriz de perfuração de cada sub-código de um QCTC tendo o maior tamanho de conjunto S entre os NS QCTCs é definido como CWf (0<f<NS-l).
Novas matrizes de perfuração com colunas CWf são formadas ao repetir as matrizes de perfuração existentes dos QCTCs na etapa 705. Se CWf não é uma integral múltipla do número CWi das colunas de cada matriz de perfuração para um QCTC Ci, 'o mínimo múltiplo comum (LCM) de CWf e CWi é definido como um novo CWf. Então, matrizes de perfuração com o novo CWf devem ser formadas de novo.
Na etapa 707, prioridade de transmissão é designada às matrizes de perfuração de cada conjunto de sub-código tal que as matrizes de perfuração produzidas pela combinação de matrizes de perfuração de dois conjuntos de sub-códigos diferentes pode tomar características de QCTC. Por exemplo, a prioridade de transmissão dos sub-códigos Cij em cada conjunto de sub-código C0 e Ci deve ser determinada de modo que pesos uniformes, se possível, sejam dados aos elementos da matriz de perfuração de um novo código resultante da combinação dos sub-códigos nos QCTCs C0 e Ci. A designação de pesos uniformes significa uma distribuição uniforme de elementos que representam a perfuração e a repetição na matriz de perfuração de uma palavra de código gerada pela combinação de um número mínimo de sub-códigos. A condição fundamental a ser satisfeita para gerar um QCTC é que um sub-código de transmissão inicial Ci0 precisa ter um símbolo de código de informação. Em outras palavras, símbolos de código de informação na primeira linha do sub-código Cio precisa ser transmitida em primeiro lugar.
Na etapa 709, as matrizes de perfuração são rearrumadas em cada conjunto de sub-código. Isto é, a seqüência de sub-códigos Cij é permutada em cada conjunto de sub-código Ci. Então, se um QCTC Ci em particular for selecionado, os sub-códigos Cij do QCTC Ci são transmitidos em uma ordem ascendente de j . Por exemplo, se ocorrer uma transmissão de QCTC na ordem de Ci, C3, e Cx, os sub-códigos são transmitidos na ordem de Ci0, C30 e Cn. Neste contexto, pode-se dizer que a Figura 7 ilustra o processo de rearrumação de sub-códigos com uma velocidade de código diferente a ser transmitida após um sub-código transmitido com uma velocidade de código em particular. O método de geração de QCTC bidimensional acima será tornado claro com citações específicas abaixo em conexão com a Figura 7. Antes da descrição, é suposto que NS=4, as velocidades de código Ri dos QCTCs Ci são dados como R0=l/2, R1=l/3, R2 = l/4 e R3 = l/8, e uma velocidade de código materno é R=l/5.
Etapa 701: geração de QCTCs unidimensionais Ro = l/2 , Co : R!=1/3,Ci: R2=1/4,C2: R3 = 1/8,C3: Etapa 703: CWf=2 Etapa 705 R0=1/2,C0: Ri.= l/ 3 , Cj.: R2=1/4,C2: R3 = 1/8,C3: Etapa 707 R0=l/2,C0: a ordem de transmissão é refixada ao colocar C0o na posição de C02, C0i na posição de C0o, e C02 na posição de Coi.
Ri=l/3,Ci: Cio é trocado com Cn na ordem de transmissão. R2 = 1/4,C2: R3=1/8,C3: Como é observado do que antecede, os sub-códigos C0o, C0i e C02 são rearrumados para C0i, C02 e C00 no conjunto de sub-códigos C0 e os sub-códigos C10 e Cu são trocados de posição no conjunto de sub-códigos Ci para satisfazer a Condição 1 e a Condição 2. Aqui, os sub-códigos em cada conjunto de sub-códigos são transmitidos em ordem ascendente de números de seqüência de sub-códigos. Por exemplo, se a transmissão QCTC ocorre na ordem de Cx, C3 e Ci, os sub-códigos são transmitidos na ordem de Ci0, C30 e Cu. A Tabela 3 a seguir relaciona as matrizes de perfuração mostradas acima. Como é observado na Tabela 3, a transmissão de sub-códigos é realizada seqüencialmente em cada conjunto de sub-código (QCTC). Embora cada matriz de perfuração para Ri=l/3 e para R2=l/4 deve possuir duas colunas, é mostrado como tendo apenas uma coluna. Isto é uma questão de representação. Assim, o mesmo desempenho é oferecido.
Uma estação móvel e um sistema leem uma matriz de perfuração de acordo com uma velocidade de código dada (ou velocidade de dados) e geram um sub-código ao repetir e perfurar símbolos de código emitidos de um codificador turbo com uma velocidade de código materna de acordo com a matriz de perfuração. Alternativamente, eles obtêm a matriz de perfuração utilizando um algoritmo predeterminado e geram o sub-código da matriz de perfuração.
Tabela 3 QCTCs adaptivos Como foi descrito acima, QCTCs bidimensionais com desempenho melhorado são obtidos pelo controle da ordem de transmissão dos sub-códigos em cada um dos QCTCs unidimensionais independentes com velocidades de código dadas. A geração de QCTCs independentes com vantagem facilita sua otimização mas tem a distinta falha em que no caso em que a velocidade de código Ri de determinado QCTC Ci é uma integral-múltipla da velocidade de código Rk de outro QCTC (k=0,1,2,...,NS-1), a relação de QCTCs pode evitar a otimização mesmo se houver suficiente espaço para otimização.
Para R0=l/2 e R2=l/4, QCTCs C0 e C2 são obtidos separadamente em um algoritmo de QCTC. Para utilizar integralmente as características de QCTCs, é preferível satisfazer a Condição 1. Para fazê-lo, dois sub-códigos sucessivos de C0 são agrupados para transmitir sub-códigos com R2 = 1 /4, como (C0o+C0i) , (C01+C02) ou (C02+C0o) · Então, se um sub-código com R0=l/2 é combinado com tais sub-códigos, um desempenho ótimo pode ser alcançado.
Um QCTC unidimensional com a velocidade de código mais alta entre QCTCs unidimensionais com as velocidades de código em uma relação de integral-múltipla é definido como um código primitivo Cp no grupo (p é uma integral entre 0 e NS-1) . Quando um sub-código com uma velocidade de código inferior ao código primitivo Cp é solicitado, o sub-código é gerado ao concatenar ou agrupar sub-códigos do código primitivo Cp. Isto se denomina esquema de QCTC adaptivo. A Figura 8 é um fluxograma que ilustra um método de geração de QCTC adaptivo de acordo com outra versão da presente invenção. Com referência à Figura 8, QCTCs com velocidades de código Ri são divididos em grupos, cada grupo incluindo QCTCs com velocidades de código em uma relação de integral-múltipla na etapa 801. Na etapa 803, um QCTC com a velocidade de código mais alta é selecionado de cada grupo de QCTC, como um código primitivo Cp. Assim, uma pluralidade ,de códigos primitivos Cp pode ser definida de acordo com o número de grupos.
Na etapa 805, a concatenação ou regras de agrupamento são fixadas para gerar sub-códigos para cada QCTC em cada grupo utilizando os sub-códigos Cpj (j=0,1,2...,Sp-1) de cada código primitivo Cp. As regras podem incluir o número de sub-códigos a serem concatenados ou agrupados em cada código primitivo. Em outras palavras, um sub-código pretendido Cij com uma velocidade de código Ri é gerado ao concatenar ou agrupar sub-códigos do código primitivo Cp. Uma tabela de agrupamento de sub-códigos pode ser feita preliminarmente ao considerar todos os agrupamentos de sub-códigos possíveis. Neste caso, é preferível agrupar os sub-códigos seqüencialmente no código primitivo Cp.
Uma vez que a velocidade de código (ou um QCTC ou um sub-código) seja dada, o sub-código de um QCTC com a velocidade de código é gerado pela concatenação de sub-códigos de um código primitivo Cp correspondente.
Se o código primitivo de um grupo grp (isto é, um grupo arbitrário) é Cp e seu tamanho de conjunto é Sp, os sub-códigos dos QCTCs no grupo grp podem ser expressos conforme segue: C9P. j 0<j<Sp-l, l<g Γ C1p0 CV ... CSsp-il Grupo gpr= | C2p0 C2pi . . . C2pSp-il C3 p3 pO ^ pl · · · ^ pSp-ll Lc4p0 c4pl . . . C4psp-J em que j denota um índice de sub-códigos e g é o número de sub-códigos a ser agrupado (isto é, número de agrupamento) . i Se g=l, os sub-códigos do código primitivo Cp são utilizados sem agrupamento. Se g=2, os sub-códigos do código primitivo Cp são agrupados por dois. Para a velocidade de código do código primitivo Cp Rs=2/3, se g=l, um novo sub-código tem a velocidade de código r=2/3. Se g=2, r=l/3 porque mais um conjunto de símbolos de código são gerados quando comparado com g=l. A matriz acima, portanto, define as velocidades de código de QCTCs que podem ser obtidas pelo agrupamento de um número integral de sub-códigos do código primitivo Cp, e os sub-códigos de cada QCTC. O número máximo de sub-códigos a serem agrupados não é limitado pois ele depende da implementação do sistema. Aqui, até quatro sub-códigos podem ser agrupados por meio de exemplo.
Na matriz, o número de linhas indica o número de agrupamento máximo. À medida que o número de linhas aumenta, a velocidade de código de um QCTC que pode ser implementado pelo agrupamento de sub-código é diminuído. O número de colunas na matriz é determinado pelo tamanho do conjunto Sp do código primitivo Cp.
Por exemplo, se a velocidade de código do código primitivo Cp é Rs=l/2, a primeira linha com g=l tem os sub-códigos do código primitivo Cp com Rs=l/2. Em outras palavras, os elementos da primeira linha na matriz indicam os sub-códigos do código primitivo Cp. A segunda linha com g=2 inclui os sub-códigos de um QCTC com Rs=l/4. A terceira linha com g=,3 tem os sub-códigos de um QCTC com Rs=l/6 e a quarta linha com g=4, os sub-códigos de um QCTC com Rs=l/8. A equação seguinte mostra a relação entre cada QCTC e um código primitivo Cp no mesmo grupo. Um grupo QCTC com um código primitivo Cp com Rs=l/2 e Sp=3 é conforme segue: t 9=1/ Rs = l/2: C1po=C10o, cV^oi, C1p2=C1oa 9=2, Rs=l/4: C2p0=C0oUC0i, C2pl=C02UCoo, C2p2=CoiUC02 9=3/ Rs=l/6 : C3po=CooUCoiUCo2, C3pi=CooUCoiUCo2, C3p2 = C00UC01UC02 .. g=4, Rs = l/8: C4po=CooUC01UC02UCoo, C4pi=C01UC02UCooUC0i , C4p2 = C02UC00UC01UC02 (13) Portanto, para ura grupo com ura código primitivo Cp com Rs=l/2, a matriz mostrada na Eq. (12) é expressa pela Eq. (14) abaixo. Γ C^o C3pl C^l Grupo grp= I C2p0 C2pX C2p2| I C3p0 C3pi C3p2| Lc4p0 C4pi C4PJ (14) Da mesma maneira, os sub-códigos dos QCTCs em um grupo de QCTC diferente podem ser dispostos em uma matriz de acordo com o tamanho do conjunto Sp de seu código primitivo Cp e as velocidades de código dos QCTCs. A geração de QCTC adaptiva acima será tornada clara com citações específicas em conexão com a Figura 8. Antes da descrição, supõe-se que NS=4, as velocidades de código Ri dos QCTCs Ci são dadas como R0=l/2, Ri=l/3, R2=l/4 e R3=l/8, e a velocidade de código materno de R=l/5.
Etapa 801: Agrupamento de código Grupo 0 = {co,‘ C2, C3} = {R0, R2, R3} Velocidade de código = {1/2, 1/4, 1/8} Grupo 1={C!} = {Ri} Velocidade de código ={l/3} Etapa 803: Códigos primitivos Cp={C0, Cx} C0 (R0=l/2) : Código primitivo no grupo 0 Ci (Rx=l/3) : Código primitivo no grupo 1 Etapa 805 Os sub-códigos Cij(i = 0, 1, 2, . .., NS-1, j=0, 1, 2, Si-1) dos QCTCs Ci em cada grupo são obtidos utilizando os códigos primitivos Cp.
Grupo 0: QCTC com Rs=l/2 R0=l/2: {Coo, Coi, C02} R2=l/4: { (Coo, C01) , (C01, C02) , (C02, Coo) } (até tres casos estão disponíveis) R3=l/8 • { (Coo, C01, C02, Coo), (C01, C02, Coo, C01) , (C02, Coo, C01, C02) } Grupo 1: QCTC com Ri=l/3 Ri=l/3: {C20, C2i} Quando um sub-código do QCTC com R2=l/4 é transmitido, há duas maneiras de determinar qual é o sub-código transmitido. (1) Identificação de sub=código implícita Se um transmissor e um receptor têm informação sobre uma ordem de transmissão dos sub-códigos, o transmissor não precisa transmitir a informação em um canal separado. Por exemplo, no caso do grupo 0, o receptor armazena o índice do sub-código recebido anteriormente para cada velocidade de código, isto é, R=l/2, 1/4, ou 1/8 de modo que, quando do recebimento de um novo sub-código no mesmo grupo, o receptor pode saber a posição do novo sub-código. (2) Identificação de sub-código explícita 0 transmissor notifica o receptor do tipo do sub-código atual. Então, o receptor combina os sub-códigos recebidos de modo correspondente. Em geral, se uma condição de canal não está muito ruim, a identificação de sub-código implícita é suficiente. Na presente invenção, os dois métodos de identificação são utilizados seletivamente de acordo com a confiabilidade de um canal de mensagem no sistema. A Figura 9 é um diagrama que ilustra uma implementação da geração de QCTC adaptiva de acordo com a segunda versão da presente invenção. Na Figura 9, uma velocidade de código materna de R=l/5, QCTCs com velocidades de código de 1/2, 1/4, 1/8 estão no grupo 0, e QCTCs com velocidades de código de 1/3 e de 1/6 estão no grupo 1. Para o grupo 0, um QCTC de 1/2 velocidade é um código primitivo Cp e para o grupo 1, uma velocidade de 1/3 QCTC é um código primitivo Cp. Com os códigos primitivos Cp, QCTCs com as velocidades de código de 1/2, 1/4, 1/8 e 1/3 são geradas.
Para o grupo 0, se a velocidade de 1/2 QCTC é C3, sub-códigos de velocidade de 1/4 e sub-códigos de velocidade de 1/8 são gerados ao agrupar seqüencialmente os sub-códigos C30, C31 e C32 de acordo com números de agrupamento. Por exemplo, sub-códigos de velocidade de 1/4 são produzidos pelo agrupamento de dois sub-códigos como (C30, C0i) , (C32, C30) , e (C3i, C32) , e os sub-códigos de velocidade de 1/8, pelo agrupamento de quatro sub-códigos (C30, C3i, C32, C30) . Para o grupo 1, se o QCTC de velocidade de 1/3 é C2, sub-códigos de velocidade de 1/6 são gerados pelo agrupamento de dois sub-códigos como (C20, C2i) . A Figura 10 é um diagrama que ilustra outra implementação da geração de QCTC adaptivo de acordo com a segunda versão da presente invenção. Na Figura 10, uma I velocidade de código materno de R=l/5, QCTCs com velocidades de código de 1/2, 1/4 e 1/8 estão no grupo 0, e QCTCs com velocidades de código de 2/3, 1/3 e 1/6 estão no grupo 1. Para o grupo 0, QCTC de 1/2 velocidade é um código primitivo Cp e para o grupo 1, o QCTC de velocidade de 2/3 é um código primitivo Cp. Com os códigos primitivos Cp/ QCTCs com as velocidades de código de 1/2, 1/4, 1/8, 2/3, 1/3 e 1/6 são gerados.
Para o grupo 0, se o QCTC de velocidade de 1/2 é C3, sub-códigos de velocidade de 1/4 e sub-códigos de velocidade de 1/8 são gerados ao agrupar seqüencialmente os sub-códigos C30, C31 e C32 de acordo com os números de agrupamento. Por exemplo, os sub-códigos de velocidade de 1/4 são produzidos pelo agrupamento de dois sub-códigos como (C30, Coi) , (C32, C30) , e (C3i, C32) , e os sub-códigos de velocidade de 1/8 são fornecidos pelo agrupamento de quatro sub-códigos (C30, C3i, C32, C30) . Para o grupo 1, se o QCTC de velocidade de 2/3 é Ci, os sub-códigos de velocidade de 1/3 e os sub-códigos de velocidade de 1/6 são gerados pelo agrupamento sequencial dos sub-códigos Cio, Cn, Ci2, e Ci3 de acordo com os números de agrupamento. Especificamente, os sub-códigos de velocidade de 1/3 são gerados pelo agrupamento de dois sub-códigos do código primitivo Cp com a velocidade de código de 2/3, como (Ci0, Cn) , (C12, C12) , ou (C10, Cn) , e os sub-códigos de velocidade de 1/6 são gerados pelo agrupamento de quatro sub-códigos do código primitivo Cp com a velocidade de código de 2/3, como (C10, Cn, C12, Ci3) . A estrutura de código mostrada na Figura 10 é mais adaptiva a mudanças na condição do canal e na velnciHade dc dadoo.
Se um sistema HARQ utiliza QCTCs com várias velocidades de código de acordo com o ambiente de canal, HARQ II é preferível. Então, sub-códigos com velocidades de código mais altas são necessários e assim um QCTC com R=2/3 será utilizado como um código primitivo. Obviamente, um código primitivo é determinado de acordo com a velocidade de código máxima que o sistema requer, da qual a descrição está além do escopo da presente invenção, e um QCTC adaptivo é gerado da maneira descrita acima. Por exemplo, para R=3/4, sub-códigos com R=3/4, R=2/3, R=l/3, R=l/6, etc., podem ser gerados da mesma maneira. A Tabela 4 relaciona as matrizes de perfuração de sub-códigos que são gerados pela utilização de códigos primitivos Cp com R=l/2 e R=l/3. A Tabela 5 relaciona as matrizes de perfuração de sub-códigos que são gerados pela utilização de códigos primitivos Cp com R=l/2 e R=l/3 .
Tabela 4 Tabela 5 Como é observado da Tabela 4 e da Tabela 5, os sub-códigos são produzidos pelo agrupamento dos sub-códigos dos códigos primitivos Cp. Os sub-códigos de um QCTC com uma velocidade de código dada são gerados pelo agrupamento sequencial dos sub-códigos de um código primitivo Cp. Na Tabela 4, dois grupos QCTC tendo os códigos primitivos com R=l/2 e R=l/3 são definidos. As matrizes de perfuração são os elementos da matriz de sub-códigos mostrada na Eq. (12). Por exemplo, C1^, e C1^ na Eq. (12) correspondem às matrizes de perfuração para o primeiro, segundo e terceiro sub-códigos C0o, C0i e C02 de R0=l/2, respectivamente. C2pi e c2-z '-orrccponder» au segundo sub-código Cu (C02 u C0o) e o terceiro sub-código C12 (C0i u C02) de Ri=l/4, respectivamente. A Tabela 5 ilustra os sub-códigos de dois grupos com códigos primitivos de R=l/2 e R=2/3. A estação móvel e o sistema incluem tabelas como a Tabela 4 e a Tabela 5 das quais matrizes de perfuração com uma velocidade de código dada (ou velocidade de dados) são lidos. Sub-códigos são gerados pela repetição e perfuração dos símbolos emitidos de um codificador turbo com uma velocidade de código materna em correspondência com as matrizes de perfuração. Alternativamente, as matrizes de perfuração são obtidas em um algoritmo predeterminado e os sub-códigos são gerados com base nas matrizes de perfuração. A Figura 13 é um diagrama de blocos de um aparelho de transmissão para transmitir QCTCs bidimensionais e QCTCs adaptivos de acordo com a presente invenção. Com referência à Figura 13, um codificador de canal 1301 codifica símbolos de informação de entrada a uma velocidade de código materno de R=l/5, por exemplo, e emite símbolos de código. Um gerador de QCTC 13 02 gera um sub-código ao perfurar e repetir os símbolos de código sob o controle de um controlador de seleção de sub-códigos 1303. O controlador 1303 tem uma memória para armazenar matrizes de perfuração como é mostrado na Tabela 3 à Tabela 5 pelas quais sub-códigos são gerados. O controlador 1303 controla o gerador de QCTC 13 02 em um algoritmo como é ilustrado na Figura 11 quando da geração de QCTCs adaptivos.
Alternativamente, o controlador 1303 pode transmitir um sinal de índice para o gerador de QCTC 13 02 para selecionar uma das matrizes de perfuração mostradas na Tabela 3 à Tabela 5 ao efetuar os algoritmos ilustrados na Figura 11 e na Figura 12 a cada tempo de transmissão de sub-código. Neste caso, o gerador de QCTC 1302 lê uma matriz de perfuração correspondente ao índice da Tabela 3 à Tabela 5 e gera um sub-código ao perfurar e repetir os símbolos emitidos do codificador de canal 1301 com base na matriz de perfuração.
Será dada abaixo uma descrição da seleção (ou transmissão) de um sub-código no controlador 1303. A Figura 11 é um fluxograma que ilustra a transmissão de sub-códigos utilizando QCTCs adaptivos unidimensionais de acordo com a segunda versão da presente invenção. Com referência à Figura 11, quando da geração de um novo bloco de codificador na etapa 1100, o controlador 1303 fixa todas as variáveis (j_current, j_pre, g_current e g_pre) para os valores iniciais na etapa 1101. Na etapa 1103, o controlador 1303 seleciona um grupo de QCTC incluindo um QCTC com uma velocidade de código dada e determina um número de agrupamento g, isto é, o número de sub-códigos a serem agrupados em um código primitivo Cp. Aqui, a velocidade de código é determinada de acordo com uma condição de canal e a velocidade de dados dos dados de entrada no transmissor. O número de agrupamento g é uma variável pela qual o QCTC incluído no grupo é identificado. Após determinar o grupo e o número de agrupamento g_current, o controlador 13 03 lê uma variável j_j?re armazenada para o QCTC Ci com a velocidade de código e fixa uma variável j_current para o valor lido na etapa 1105. O j_current indica o número de seqüência de um sub-código em um QCTC. Então, o controlador 1303 seleciona o jésimo_current sub-código do QCTC correspondente à variável g_current no grupo na etapa 1107 e transmite o símbolo codificado correspondente ao sub-código selecionado na etapa 1109. Para a transmissão seguinte, as variáveis g_current e j_current são armazenadas como variáveis g_pre e j_pre. Sub'-códigos que correspondem a j_current ( = 0) , isto é, os primeiros sub-códigos dos QCTCs são expressos como VgC9po, g=l, · · · , (15) Então, um sub-código que corresponde a g-current (ou g) é selecionado entre os primeiros sub-códigos.
Após transmitir o sub-código, o controlador 1303 determina se outro sub-código é solicitado, isto é, se uma solicitação de retransmissão foi recebida de um receptor na etapa 1113. Quando da solicitação de outro sub-código, o controlador 1303 transmite um sub-código com uma velocidade de código dada na etapa 1113. Caso contrário, o controlador 13 03 retorna à etapa 1100 para receber um novo bloco codificado.
Entrementes, o controlador 1303 seleciona um grupo de QCTC (g_current) incluindo um QCTC com a velocidade de código dada que é determinada de acordo com os ambientes de canal e de transmissão na etapa 1115.
Na etapa 1117, o controlador 1303 determina o número de seqüência j_current de um sub-código a ser transmitido (um elemento na matriz de grupo) de acordo com a equação seguinte 16 e retorna à etapa 1107 em que um sub-código correspondente à variável g_current é transmitido entre os sub-códigos que correspondem à variável j_current. [((j_pre+l)*g_premod Sp)-1]+1=(j_current*g_current)mod Sp (16) Na equação acima, o lado esquerdo, "[((j_pre+l)*g_premod Sp)-1" significa um sub-código terminado no grupo anterior, e o lado direito, "(j_current*g_current)mod Sp" significa um sub-código iniciado com o próximo grupo. Portanto, no caso de acrescentar 1 ao "[((j_pre+l)*g_pre mod Sp)-1)", significa o sub-código iniciado com o próximo grupo de modo que cada lado da equação tem o mesmo valor. Desta maneira, o valor de j_current pode ser obtido.
Na equação acima, A mod B é uma operação de alcançar o quociente de A dividido por B. Isto é, se a variável g_pre indica o número de agrupamento de sub-códigos de um código primitivo para gerar o sub-código anterior, isto é, o número de identificação do QCTC com o sub-código anterior, e j_pre indica o número de seqüência do sub-código anterior, o número de seqüência do sub-código atual a ser transmitido, j_current é determinado pela Eq. (16) . Entre os sub-códigos na coluna que corresponde à variável j_current, um sub-código é selecionado na linha que corresponde à variável g_current que é determinada de acordo com a velocidade de código. A razão para utilizar "mod Sp" na Eq. (16) é que o número das colunas na matriz de grupo é igual ou inferior a Sp. Como o número de sub-códigos do código primitivo é Sp, "mod Sp" permite uma seleção recursiva do primeiro sub-código Cp0 após a transmissão de todos os sub-códigos em cada linha (ver as Figuras 9 e 10). A operação da Figura 11 será descrita em maior detalhe com citações numéricas específicas.
Na suposição de que a velocidade de código de um código primitivo, Rs=l/2, o número de linhas em uma matriz de grupo g=4 (isto é, até um QCTC com Rs=l/8 pode ser gerado), Sp=3, velocidades de código são modificadas na ordem de Rs=l/2, Rs=l/4, Rs=l/2, Rs=l/8 e então g_pre=0, j_current=0, g_current=0 e j_pre=0 (valor inicial), então 1. R=1/2: g_current=l e j_current=0, assim g_pre=l e j_Pre=0.
Sub-código selecionado: C^o 2. R=1/4: g_current=2 e j_current=2, assim g_pre=2 e j_pre=l.
Sub-código selecionado: C2p2 3. R=l/2: g_current=l e j_current=0, assim g_pre=l e j_pre=0.
Sub-código selecionado: C1^ 4. R=l/8: g_current=4 e j_current=l, assim g_pre=4 e j_pre=l.
Sub-código selecionado: C4pi 5. R=l/2: g_current=l e j_current=2, assim g_pre=l e j_Pre=2.
Sub-código selecionado: Um sub-código dentro de cada grupo é selecionado de acordo com a Eq. (16) e um grupo é selecionado de acordo com uma velocidade de código que depende em um ambiente de canal e uma velocidade de dado de entrada. Como é mostrado nas Figuras 9 e 10, a transmissão do sub-código inicial é efetuada com j=0. Embora as matrizes de perfuração para os sub-códigos de cada QCTC são listadas em tabelas de memória como a Tabela 3 à Tabela 5 na versão da presente invenção, ela pode ainda ser contemplada como outra versão que os sub-códigos de um código primitivo para cada grupo é fornecido e um sub-código pretendido é gerado ao agrupar os sub-códigos do código primitivo pela Eq. (16). Neste último caso, se j_current é calculado na Eq. (16) , o controlador pode gerar um sub-código de transmissão ao agrupar g sub-códigos sucessivos do código primitivo, iniciando de um sub-código que corresponde a j_current. A Figura 12 é um fluxograma que ilustra a transmissão de sub-código utilizando QCTCs bidimensionais de acordo com a primeira versão da presente invenção. Com referência à Figura 12, quando da geração de um novo bloco de codificador na etapa 1200, o controlador 1303 fixa todas as variáveis (j e j_saved) para valores iniciais na etapa 1201. Na etapa 1203, o controlador 1303 determina um QCTC Ci de acordo com uma velocidade de código dada. Aqui, a velocidade de código é determinada de acordo com a condição do canal e a velocidade de dado do dado de entrada no transmissor. O controlador 1303 lê uma variável j_saved armazenada para o QCTC Ci na etapa 12 05, seleciona o jesimo sub-código Cij entre os sub-códigos do QCTC na etapa 1207 e transmite o símbolo codificado ao utilizar o sub-código selecionado ha etapa 1209.
Após transmitir o sub-código, o controlador 1303 determina se outro sub-código é solicitado, isto é, se uma solicitação de retransmissão foi recebida de um receptor na etapa 1211. Quando da solicitação de outro sub-código, o controlador 1303 seleciona um sub-código com uma velocidade de código determinada de acordo com o ambiente de canal na etapa 1213. Caso contrário, o controlador 1303 retorna à etapa 1200 para verificar se um novo bloco de codificador foi recebido.
Entrementes, o controlador 1303 determina se o sub-código selecionado é idêntico ao anterior na etapa 1215. Se forem idênticos, o controlador 1303 atualiza a variável j pela Eq. (17) e retorna à etapa 1207. Se forem diferentes, o controlador 1303 aumenta a variável j que representa o sub-código anterior por 1 e armazena o (j+1) como a variável j_saved na etapa 1219 e retorna à etapa 1203. j = (j+l) mod Si (17) em que Si é o tamanho fixado do QCTC Ci. A razão para utilizar "mod Si" na Eq. (17) é para permitir uma seleção recursiva do primeiro sub-código após a transmissão de todos os sub-códigos do QCTC.
De acordo com a presente invenção conforme descrita acima, um sistema de comunicação de retransmissão pode selecionar adaptivamente um QCTC diferente de acordo com uma velocidade de dados dada ou uma velocidade de código. Em outras palavras, QCTCs bidimensionais e QCTCs adaptivos são utilizados para retransmissão de pacote, assim aumentando admiravelmente a produtividade.
Embora a invenção tenha sido mostrada e descrita com referência a certas versões preferidas da mesma, será compreendido por aqueles habilitados na tecnologia que várias modificações na forma e nos detalhes podem ser nelas feitas sem desviar do espírito e escopo da invenção conforme definido pelas reivindicações anexas.

Claims (20)

1. Método de rearrumar sub-códigos de códigos turbo quase-complementares bidimensionais (QCTCs), caracterizado por compreender as etapas de: gerar conjuntos de sub-códigos de QCTCs com velocidades de código dadas; e rearrumar sub-códigos de um conjunto de sub-códigos com a mesma ou diferente velocidade de código que deve ser transmitida após um sub-código com uma velocidade de código predeterminada.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato do sub-código ser uma matriz com elementos que representam perfuração e repetição.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato da etapa de rearrumar compreender as etapas de: gerar novos conjuntos de sub-códigos, uma matriz para cada sub-código em cada novo conjunto de sub-código tendo tantas colunas quanto o mínimo múltiplo comum dos números de colunas de cada sub-código nos conjuntos de sub-códigos; e determinar prioridade das matrizes de sub-códigos em cada novo conjunto de sub-código de modo que uma matriz gerada pela combinação de matrizes de dois dos novos conjuntos de sub-códigos tenha uma característica de QCTC, e a rearrumação das matrizes em cada novo sub-código de acordo com a prioridade.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato da característica de QCTC ser de que elementos da matriz tenham uma distribuição uniforme de repetição e de perfuração.
5. Método de rearrumar matrizes de sub-códigos de QCTCs, caracterizado por compreender as etapas de: gerar conjuntos de sub-códigos de QCTCs correspondentes a uma pluralidade de velocidades de código dadas, cada sub-código do conjunto de sub-códigos sendo uma matriz com elementos que representam repetição e perfuração; gerar novos conjuntos de sub-códigos, uma matriz de cada sub-código em um novo conjunto de sub-códigos tendo tantas colunas quanto um mínimo múltiplo comum dos números de colunas de sub-códigos nos conjuntos de sub-códigos; determinar prioridade das matrizes de sub-códigos em cada novo conjunto de sub-códigos de modo que uma matriz gerada pela combinação de matrizes de dois dos novos conjuntos de sub-códigos tenha uma característica de QCTC; e rearrumar as matrizes em cada novo sub-código de acordo com a prioridade.
6. Método de transmitir símbolos utilizando sub- códigos de QCTCs bidimensionais, caracterizado por compreender as etapas de: rearrumar sub-códigos em conjuntos de sub-códigos de QCTCs correspondentes a uma pluralidade de velocidades de código dadas· e armazenar os sub-códigos rearrumados; selecionar um QCTC com uma velocidade de código determinada para transmissão; e transmitir símbolos utilizando um sub-código no conjunto de sub-códigos do QCTC selecionado.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato da etapa de rearrumação compreender as etapas de: gerar novos conjuntos de sub-códigos, uma matriz de cada sub-código do novo conjunto de sub-códigos tendo quantas colunas quanto o mínimo múltiplo comum de números das colunas de cada sub-códigos nos conjuntos de sub-códigos ; determinar prioridade das matrizes de sub-códigos em cada novo conjunto de sub-código de modo que uma matriz gerada pela combinação de matrizes de dois dos novos conjuntos de sub-códigos tenha uma característica de QCTC; e rearrumar as matrizes em cada novo sub-código de acordo com a prioridade.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato da característica de QCTC ser de que elementos de uma matriz tenham uma distribuição uniforme de repetição e de perfuração.
9. Método de gerar sub-códigos de QCTCs bidimensionais, caracterizado por compreender as etapas de: gerar sub-códigos de um QCTC com a velocidade de código mais alta entre QCTCs com velocidades de código em uma relação de integral-múltipla e fixar o QCTC com a velocidade de código mais alta como um código primitivo; determinar um número de sub-códigos a serem agrupados no código primitivo para gerar cada um dos outros QCTCs; e gerar súb-códigos dos outros QCTCs ao agrupar os sub-códigos do código primitivo de acordo com números de agrupamento.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de compreender ainda a etapa de transmitir um sub-código após um sub-código transmitido anteriormente em um conjunto de sub-códigos de um QCTC com uma velocidade de código determinada para transmissão.
11. Método de transmitir símbolos utilizando sub-códigos de QCTCs bidimensionais, caracterizado por compreender as etapas de: gerar sub-códigos de um QCTC com a velocidade de código mais alta entre QCTCs com velocidades de código em uma relação de integral-múltipla e fixar o QCTC com a velocidade de código mais alta como um código primitivo; determinar um número de sub-códigos a serem agrupados no código primitivo para gerar cada um dos outros QCTCs; e gerar um sub-código ao agrupar quantos sub-códigos do código primitivo como um número de agrupamento que corresponde a uma velocidade de código determinada para transmissão, iniciando com um sub-código após um sub-código transmitido anteriormente no código primitivo, e transmitir símbolos utilizando o sub-código gerado.
12. Método de transmitir símbolos utilizando sub-códigos de QCTCs bidimensionais, caracterizado por compreender as etapas de: gerar sub-códigos de um QCTC com a velocidade de código mais 'alta entre QCTCs com velocidades de código em uma relação de integral-múltipla e fixação do QCTC com a velocidade de código mais alta como um código primitivo; gerar sub-códigos dos outros QCTCs ao agrupar os sub-códigos de código primitivo; i determinar um número de seqüência, j_current, a ser utilizado na transmissão pela equação seguinte quando uma velocidade de código para transmissão é dada: [ ( (j_pre+l) *g_jpre mod Sp)-1]+1=(j_current*g_current) mod Sp onde j_pre é um número de seqüência de sub-código utilizado para a transmissão anterior, g_pre é um número de agrupamento utilizado para a transmissão anterior, g_current é um número de agrupamento determinado e Sp é um tamanho de conjunto do código primitivo; e transmitir símbolos utilizando um sub-código que corresponde ao número de seqüência determinado entre sub-códigos do QCTC de acordo com a velocidade de código determinada.
13. Método de gerar sub-códigos de QCTCs bidimensionais, caracterizado por compreender as etapas de: agrupar QCTCs de acordo com velocidades de código, cada grupo de QCTC incluindo QCTCs com velocidades de código em uma relação de integral-múltipla; gerar sub-códigos de um QCTC com a velocidade de código mais alta em cada grupo de QCTC e fixar o QCTC com a velocidade de código mais alta como um código primitivo? determinar um número de sub-códigos a ser agrupado no código primitivo para gerar cada um dos outros QCTCs em cada grupo de QCTC; e gerar um sub-código ao agrupar quantos sub-códigos do código primitivo quanto o número de agrupamento correspondente a uma velocidade de código.
14. Método de transmitir símbolos utilizando sub-códigos de QCTCs bidimensionais, caracterizado por compreender as etapas de: agrupar' QCTCs de acordo com velocidades de código, cada grupo de QCTC incluindo QCTCs com velocidades de código em uma relação de integral-múltipla; gerar sub-códigos de um QCTC com a velocidade de código mais alta em cada grupo de QCTC e fixar o QCTC com a velocidade de código mais alta como um código primitivo; determinar o número de sub-códigos a ser agrupado no código primitivo para gerar cada um dos outros QCTCs em cada grupo de QCTC; e gerar um sub-código ao agrupar quantos sub-códigos do código primitivo quanto o número de agrupamento correspondente a uma velocidade de código determinada para transmissão e transmitir símbolos utilizando o sub-código gerado.
15. Aparelho para rearrumar sub-códigos de QCTCs bidimensionais, caracterizado por compreender: um codificador turbo para codificar um fluxo de bit de informação de entrada com uma velocidade de código predeterminada e gerar símbolos de código; um controlador para rearrumar sub-códigos nos conjuntos de sub-códigos de QCTCs correspondente a uma pluralidade de velocidades de código dadas e armazenar os sub-códigos rearrumados, selecionar um QCTC com uma velocidade de código determinada para transmissão, e gerar sinal de controle de perfuração e de repetição para uma matriz seguinte a uma matriz utilizada para uma transmissão anterior entre as matrizes rearrumadas do QCTC selecionado; e um gerador de QCTC para gerar um sub-código a ser transmitido pela perfuração e repetição dos símbolos de código recebidos do codificador turbo de acordo com o sinal de controle de perfuração e de repetição.
16. Aparelho, de acordo com a reivindicação 15, caracterizado pelo fato do controlador rearrumar as matrizes em cada conjunto de sub-código de modo que uma matriz produzida pela combinação de matrizes de dois conjuntos de sub-código diferentes tenha uma característica de QCTC.
17. Aparelho, de acordo com a reivindicação 16, caracterizado pelo fato da característica de QCTC ser de que elementos de uma matriz tenham uma distribuição uniforme de repetição e de perfuração.
18. Aparelho para transmitir símbolos utilizando sub-códigos de QCTCs bidimensionais, caracterizado por compreender: um codificador turbo para codificar um fluxo de bit de informação de entrada com uma velocidade de código predeterminada e gerar símbolos de código; um controlador para armazenar um conjunto de matrizes das quais geram sub-códigos de um QCTC com a velocidade de código mais alta entre QCTCs com velocidades de código em uma relação de integral-múltipla, fixar o QCTC com a velocidade de código mais alta como um código primitivo, gerar sub-códigos de QCTCs ao agrupar os sub-códigos do código primitivo, selecionar um sub-código de QCTC de acordo com a velocidade de código determinada quando a velocidade de código para a transmissão é dada, e gerar um sinal de controle de perfuração e de repetição de acordo com o sub-código selecionado; e um gerador de QCTC para gerar um sub-código a ser transmitido pela perfuração e repetição dos símbolos de código recebidos do codificador turbo de acordo cora o sinal de controle de perfuração e de repetição.
19. Aparelho, de acordo com a reivindicação 18, caracterizado pelo fato do controlador selecionar um sub-código de acordo com um número de seqüência, j_current, do sub-código determinado por [((j_pre+l)*g_pre mod Sp)-1]+1=(j_current*g_current) mod Sp ode j_pre é um número de seqüência de um sub-código utilizado na transmissão anterior, g_pre é o número de agrupamento utilizado para a transmissão anterior, g_current é um número de agrupamento determinado e Sp é um tamanho de conjunto do código primitivo.
20. Aparelho, de acordo com a reivindicação 18, caracterizado pelo fato do controlador ter uma pluralidade de grupos de QCTC, cada agrupamento de QCTC tendo QCTCs com velocidades de código em uma relação de integral-múltipla.
BRPI0204016A 2001-02-07 2002-02-06 aparelho e método para gerar códigos em um sistema de comunicação BRPI0204016B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20010007139 2001-02-07
KR20010006662 2001-02-12
PCT/KR2002/000177 WO2002063778A1 (en) 2001-02-07 2002-02-06 Apparatus and method for generating codes in a communications system

Publications (2)

Publication Number Publication Date
BR0204016A BR0204016A (pt) 2003-02-04
BRPI0204016B1 true BRPI0204016B1 (pt) 2015-11-17

Family

ID=26638796

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0204016A BRPI0204016B1 (pt) 2001-02-07 2002-02-06 aparelho e método para gerar códigos em um sistema de comunicação

Country Status (13)

Country Link
US (2) US7213193B2 (pt)
EP (2) EP1231737B1 (pt)
JP (1) JP3753694B2 (pt)
KR (1) KR100464453B1 (pt)
CN (1) CN1276588C (pt)
AU (1) AU2002232276B2 (pt)
BR (1) BRPI0204016B1 (pt)
CA (1) CA2405465C (pt)
DE (2) DE60236268D1 (pt)
FR (1) FR2820565B1 (pt)
GB (1) GB2380915B (pt)
RU (1) RU2251793C2 (pt)
WO (1) WO2002063778A1 (pt)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2394153B (en) * 2001-02-13 2005-08-24 Samsung Electronics Co Ltd Apparatus and method for generating codes in communication system
JP3636708B2 (ja) 2001-02-13 2005-04-06 サムスン エレクトロニクス カンパニー リミテッド 通信システムにおける符号を生成するための装置及び方法
KR100724921B1 (ko) * 2001-02-16 2007-06-04 삼성전자주식회사 통신시스템에서 부호 생성 및 복호 장치 및 방법
EP1276267A3 (en) * 2001-07-12 2006-11-15 Samsung Electronics Co., Ltd. Hybrid automatic repeat-request system and method
WO2005025262A1 (ja) * 2003-09-04 2005-03-17 Fujitsu Limited 通信システム及びハンドオーバ通信方法
KR100770902B1 (ko) 2004-01-20 2007-10-26 삼성전자주식회사 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법
US7953047B2 (en) * 2005-01-24 2011-05-31 Qualcomm Incorporated Parser for multiple data streams in a communication system
FI20050264A0 (fi) * 2005-03-11 2005-03-11 Nokia Corp Tietojenkäsittelymenetelmä, verkkoelementti, lähetin, komponentti ja tietokoneohjelmatuote
KR100651881B1 (ko) * 2005-08-22 2006-12-01 엘지전자 주식회사 Ldpc 부호화된 데이터의 송수신 장치 및 그를 이용하는송수신 방법
US20080016425A1 (en) * 2006-04-04 2008-01-17 Qualcomm Incorporated Turbo decoder with symmetric and non-symmetric decoding rates
US7890833B2 (en) * 2006-06-08 2011-02-15 Intel Corporation Wireless communication using codeword encoded with high-rate code
US7813296B2 (en) * 2006-12-27 2010-10-12 Telefonaktiebolaget L M Ericsson (Publ) Adapting transmission and reception time in packet based cellular systems
KR101505193B1 (ko) * 2007-06-18 2015-03-23 삼성전자주식회사 직교주파수분할다중접속방식의 이동 통신시스템에서 심볼전송 방법 및 장치
KR100964610B1 (ko) 2008-04-18 2010-06-21 한국전자통신연구원 오류정정 부호를 이용한 다이버시티 방법
US8516351B2 (en) 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8516352B2 (en) 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US9397699B2 (en) 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US8375278B2 (en) 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2324934A (en) * 1997-05-02 1998-11-04 Motorola Ltd Multiplexing data from multi-media sources
US5907582A (en) * 1997-08-11 1999-05-25 Orbital Sciences Corporation System for turbo-coded satellite digital audio broadcasting
US6138260A (en) 1997-09-04 2000-10-24 Conexant Systems, Inc. Retransmission packet capture system within a wireless multiservice communications environment with turbo decoding
US6347122B1 (en) * 1998-01-13 2002-02-12 Agere Systems Guardian Corp. Optimal complement punctured convolutional codes for use in digital audio broadcasting and other applications
US6370669B1 (en) * 1998-01-23 2002-04-09 Hughes Electronics Corporation Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
CN100466483C (zh) * 1998-06-05 2009-03-04 三星电子株式会社 用于速率匹配的发送机和方法
GB9814960D0 (en) * 1998-07-10 1998-09-09 Koninkl Philips Electronics Nv Coding device and communication system using the same
US6298463B1 (en) * 1998-07-31 2001-10-02 Nortel Networks Limited Parallel concatenated convolutional coding
JP2000068862A (ja) * 1998-08-19 2000-03-03 Fujitsu Ltd 誤り訂正符号化装置
US6704898B1 (en) * 1998-10-23 2004-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Combined hybrid automatic retransmission request scheme
KR20000067738A (ko) * 1999-04-14 2000-11-25 서평원 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법
KR100357868B1 (ko) * 1999-07-06 2002-10-25 삼성전자 주식회사 데이터 통신시스템의 전송율 정합 장치 및 방법
CN100426717C (zh) 2000-01-20 2008-10-15 北方电讯网络有限公司 可变速率分组数据应用中带有软组合的混合arq方案
KR100734346B1 (ko) * 2000-08-02 2007-07-03 엘지전자 주식회사 데이터 레이트 매칭 방법
US6684367B1 (en) * 2000-10-13 2004-01-27 Agere Systems Inc. Channel coding based on hidden puncturing for partial-band interference channels
KR100442685B1 (ko) * 2000-10-21 2004-08-02 삼성전자주식회사 통신시스템에서 부호 생성장치 및 방법

Also Published As

Publication number Publication date
EP1385291A3 (en) 2004-06-23
FR2820565B1 (fr) 2011-09-23
JP2004519149A (ja) 2004-06-24
DE60236268D1 (de) 2010-06-17
GB2380915B (en) 2004-06-23
GB0202868D0 (en) 2002-03-27
EP1385291A2 (en) 2004-01-28
FR2820565A1 (fr) 2002-08-09
EP1231737A1 (en) 2002-08-14
RU2251793C2 (ru) 2005-05-10
CN1457553A (zh) 2003-11-19
US7213193B2 (en) 2007-05-01
US20050210365A1 (en) 2005-09-22
CA2405465A1 (en) 2002-08-15
EP1385291B1 (en) 2010-05-05
DE60236336D1 (de) 2010-06-24
CN1276588C (zh) 2006-09-20
GB2380915A (en) 2003-04-16
JP3753694B2 (ja) 2006-03-08
KR100464453B1 (ko) 2005-01-03
US20020152445A1 (en) 2002-10-17
RU2002126564A (ru) 2004-01-27
WO2002063778A1 (en) 2002-08-15
EP1231737B1 (en) 2010-05-12
CA2405465C (en) 2007-09-25
KR20020065866A (ko) 2002-08-14
AU2002232276B2 (en) 2004-01-15
BR0204016A (pt) 2003-02-04

Similar Documents

Publication Publication Date Title
BRPI0204016B1 (pt) aparelho e método para gerar códigos em um sistema de comunicação
JP3863148B2 (ja) インターリービング装置および方法
JP3636709B2 (ja) 通信システムにおける符号生成及び復号装置及び方法
JP3647437B2 (ja) 移動通信システムにおける複合再伝送装置及び方法
ES2344299T3 (es) Metodo y dispositivo para codificacion de canal adaptativo.
JP2004512740A (ja) 移動通信システムにおけるパケットデータを伝送するための方法及び装置
JP2006067606A (ja) 符号分割多重接続移動通信システムでのデータ送/受信装置及び方法
JP2004529571A (ja) 通信システムにおける符号生成装置及び方法
JP3574448B2 (ja) 通信システムにおける符号生成装置及び方法
AU2003266767B2 (en) Apparatus and method for transmitting symbols in a communications system
KR102163876B1 (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
KR20200116889A (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
KR20020008282A (ko) 가변 데이터 레이트 매칭 방법

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B11D Dismissal acc. art. 38, par 2 of ipl - failure to pay fee after grant in time
B11N Dismissal: publication cancelled [chapter 11.14 patent gazette]

Free format text: REFERENTE A RPI 2328 DE 18/08/2015, POR TER SIDO INDEVIDO.

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 17/11/2015, 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 20A 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 2656 DE 30-11-2021 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.