Sie sind auf Seite 1von 55

INSTITUTO FEDERAL DE EDUCAO, CINCIA E

TECNOLGIA DA PARABA
COORDENAO DO CURSO SUPERIOR DE TECNOLOGIA
EM SISTEMAS DE TELECOMUNICAES

Srgio Ricardo Lima Ribeiro

Cdigo Turbo

Joo Pessoa, 2012.

Srgio Ricardo Lima Ribeiro

Cdigo Turbo

Trabalho de Concluso de Curso


submetido Coordenao do CST em
Sistemas de Telecomunicaes do Instituto
Federal de Educao, Cincia e Tecnologia
da Paraba, como parte dos requisitos
para a obteno do grau de Tecnlogo em
Telecomunicaes.

Orientador:

Luiz Guedes Caldeira

Joo Pessoa, 2012.

Srgio Ricardo Lima Ribeiro

Cdigo Turbo

Trabalho de Concluso de Curso


submetido Coordenao do Curso
Superior de Tecnologia em Sistemas de
Telecomunicaes do Instituto Federal de
Educao, Cincia e Tecnologia da
Paraba, como parte dos requisitos para a
obteno do grau de Tecnlogo em
Telecomunicaes.

Aprovado Pela Banca Examinadora em: ____ / _____ / 2012

BANCA EXAMINADORA

Professor Luiz Guedes Caldeira, Dr.


Orientador

Professor Erick Silva, MSc.


Membro da Banca

Professora Ksia Santos, MSc.


Membro da Banca

Joo Pessoa, 2012.

AGRADECIMENTOS
Agradeo a Deus por ter me dado sade, perseverana e pelas pessoas que colocou em
meu caminho.
Agradeo ao meu orientador Professor Guedes, pela orientao, incentivo e pacincia.
Agradeo a minha esposa Aid pelos cuidados, pacincia, compreenso e por estar
sempre me ajudando nos momentos difceis e comemorando comigo nas conquistas.
Agradeo a meu filho Pablo pela compreenso e apoio.
Agradeo ao grande amigo Fbio Monteiro, por ter me dado a oportunidade de realizar
esta conquista.
Agradeo aos meus pais, Graa e Gildo pela motivao e lies de vida.
Agradeo aos meus irmos, Paulo e Danielle pelo companheirismo.
Agradeo aos amigos do IFPB pelo incentivo, especialmente a Adriana, Las, Girlene
e Isaac que estudaram ao meu lado sendo sempre companheiros nas horas difceis.
Agradeo aos professores com quem tive o prazer de estudar pelos ensinamentos,
especialmente aos professores Erick Silva, Ksia Santos, Jeferson Costa, Rossana Moreno e
Silvana Cunha.

RESUMO
Este trabalho tem como objetivo mostrar a importncia dos cdigos corretores de erros
na transmisso digital de informaes, onde a tendncia em curto prazo dos sistemas de
telecomunicaes a migrao total para a transmisso digital, devido a facilidade da
manipulao da informao, seja por processamento do sinal, utilizao de cdigos corretores
de erro, dentre outras o que pode aumentar de forma considervel as taxas de transmisso com
qualidade e confiabilidade. A nfase deste trabalho est no estudo dos cdigos turbo, os quais
so utilizados em vrios esquemas de codificao de canal em uma transmisso digital,
identificando os principais componentes que afetam as caractersticas e o desempenho da
codificao turbo. Para se averiguar de forma terica a eficcia do cdigo turbo foram
realizadas simulaes utilizando o Software Matlab.

Palavras-Chave: transmisso digital, cdigo corretor de erros, cdigo turbo, codificao de


canal, cdigo convolucional, entrelaadores.

ABSTRACT
This work aims to show the importance of error correcting codes in digital
transmission of information, where the trend in a short time of telecommunications systems is
the total migration to digital transmission, due to ease of manipulation of information, either
by processing signal, using error correcting codes, and others which may increase
considerably the rates of transmission quality and reliability. The emphasis of this work is the
study of turbo codes, which are used in various coding schemes in a digital transmission
channel, identifying the main components that affect the characteristics and performance of
turbo coding. To verify the theoretical form of the efficiency of the turbo code simulations
were performed using Matlab software.

Keywords: digital transmission, error correction code, turbo code, channel coding,
convolutional code, interleaving.

ii

SUMRIO
RESUMO ............................................................................................................................... i
ABSTRACT .......................................................................................................................... ii
SUMRIO ...........................................................................................................................iii
LISTA TABELAS ............................................................................................................... iv
LISTA DE SIGLAS ........................................................................................................... vii

CAPTULO 1 - Introduo...................................................................................................... 1

CAPTULO 2 - Transmisso digital de sinais ....................................................................... 4


2.1

Codificao de Canal .................................................................................................... 5

2.2

Cdigos convolucionais ................................................................................................ 5

CAPTULO 3 - Cdigo turbo ................................................................................................ 12


3.1

Decodificao iterativa do cdigo turbo ..................................................................... 19

3.2

Propriedades de distribuio de pesos do cdigo turbo .............................................. 24

CAPTULO 4 - Anlise de desempenho do cdigo turbo ................................................... 28


4.1

Simulao .................................................................................................................... 34

CAPTULO 5 - Concluso ..................................................................................................... 42

REFERNCIAS ..................................................................................................................... 43

iii

LISTA DE FIGURAS
Figura 2.1 - Etapas do processo da transmisso de um sinal digital. ......................................... 4
Figura 2.2 - Codificador convolucional linear com taxa R = ................................................. 7
Figura 2.3 - Diagrama de estados para o codificador da Figura 2.2. .......................................... 8
Figura 2.4 - Diagrama em trelia para o codificador da Figura 2.2 ......................................... 10
Figura 3.1 Diagrama de bloco do codificador turbo sem perfurao de taxa 1/3.................. 13
Figura 3.2 Diagrama de bloco do codificador turbo com perfurao de taxa 1/2 ................. 14
Figura 3.3 - Trelia terminada .................................................................................................. 16
Figura 3.4 - Ilustrao de spectral thinning.............................................................................. 18
Figura 3.5 - Um decodificador iterativo cdigo turbo baseado no algoritmo MAP ................. 22
Figura 3.6 - Desempenho do Cdigo Turbo (37, 21, 65536) em funo do nmero de iteraes
do decodificador. ...................................................................................................................... 23
Figura 3.7 - Diagrama do codificador e diagrama do estado para um cdigo (2,1,2). ............. 27
Figura 4.1 - Curvas para um PCCC e um Cdigo Convolucional com R = 1/3. (a) Palavra
cdigo (b) Probabilidade de erro de bit .................................................................................... 33
Figura 4.2 Modelo do simulador do cdigo turbo ................................................................. 36
Figura 4.3 Modelo do codificador turbo no perfurado. ....................................................... 36
Figura 4.4 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 4
iteraes e entrelaador 20 x 1024. .......................................................................................... 37
Figura 4.5 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 6
iteraes e entrelaador 20 x 1024. .......................................................................................... 37
Figura 4.6 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 4
iteraes e entrelaador 100 x 1024. ........................................................................................ 38
Figura 4.7 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 6
iteraes e entrelaador 100 x 1024. ........................................................................................ 38
Figura 4.8 Modelo do codificador turbo no perfurado. ....................................................... 39
Figura 4.9 Grfico da simulao do cdigo turbo perfurado de taxa R = com 4 iteraes e
entrelaador 20 x 1024. ............................................................................................................ 40
Figura 4.10 Grfico da simulao do cdigo turbo perfurado de taxa R = com 6 iteraes
e entrelaador 20 x 1024........................................................................................................... 40
iv

Figura 4.11 Grfico da simulao do cdigo turbo perfurado de taxa R = com 4 iteraes
e entrelaador 100 x 1024......................................................................................................... 41
Figura 4.12 Grfico da simulao do cdigo turbo perfurado de taxa R = com 6 iteraes
e entrelaador 100 x 1024......................................................................................................... 41

LISTA TABELAS
Tabela 2.1 - Tabela de transio de estados para o diagrama da Figura 2.4..............................9
Tabela 3.1 Peso e multiplicidade para o espectro de distncia para o cdigo (32,12)...........15
Tabela 3.2 - Cdigo de Hamming (7,4,3) sistemtico..............................................................24

vi

LISTA DE SIGLAS
AWGN (additive white gaussian noise) Rudo branco aditivo com distribuio gaussiana
BER (bit error ratio) Taxa de erro de bit
BPSK (binary phase shift keying) Chaveamento por deslocamento de fase binrio
CWEF (conditional weight enumerating function) Funo de distribuio de pesos
condicional
FEC (forward error correction) Correo posterior de erro
LLR (log likelihood ratio) Razo log de verossimilhana
MAP (maximum a-posteriori) Mximo posterior
MIMO (multiple input, multiple output) Mltiplas entradas, Multplas sadas
ML (maximum Likelihood) Mxima Verossimilhana
PCCC (parallel concatenated convolutional code) Codificador convolucional concatenado
em paralelo.
QAM (quadrature amplitude modulation) Modulao de amplitude em quadratura
QPSK (quadrature phase shift keying) Modulao em quadratura por deslocamento de fase
SNR (signal to noise ratio) Taxa de relao sinal rudo
SISO (soft-input, soft-output) Entrada suave e sada suave
WEF (weight enumerating function) Funo de distribuio de pesos

vii

CAPTULO 1
Introduo
Os cdigos corretores de erros so uma ferramenta fundamental na teoria da
informao. A necessidade de se garantir a integridade de uma grande quantidade de
informao transmitida em um curto espao de tempo pelos mais variveis meios de
transmisso exige o uso de sofisticados sistemas de correes de erros.
A teoria da informao trata dos aspectos quantitativos de armazenamento e
transmisso das mensagens e tem como objetivo principal, entre outros, garantir a integridade
dos dados enviados atravs de algum tipo de canal [1]. Na manipulao das mensagens vrios
obstculos so encontrados como falta de capacidade no armazenamento na transmisso das
mensagens enviadas e introduo aleatria de erros nestas mensagens, conhecidos como
rudos.
Ao contrrio das teorias matemticas que surgiram nas universidades e geralmente
aps um longo perodo de tempo migrou para as aplicaes prticas em tecnologia, a teoria de
cdigos corretores de erros surgiu nos laboratrios de empresas de telefonia e posteriormente
se transformou em uma teoria matemtica completa com aplicaes em vrias reas como,
por exemplo, geometria algbrica [1].
Um cdigo corretor de erro visa recuperar informaes que no processo de
transmisso tenham sofrido algum tipo de rudo [2]. Pode-se afirmar que hoje praticamente
todo sistema de envio de informaes possui algum tipo de cdigo corretor de erro. Como
exemplos tpicos, a telefonia digital, a transmisso de dados via satlite, a comunicao
interna em computadores, armazenamento ptico de dados e armazenamento de dados em
fitas ou disquetes magnticos [3].
Em 1993 com incio dos esquemas concatenados de cdigos que utilizam o sistema de
correo posterior de erro (FEC foward error correction) associado aos algoritmos de
decodificao iterativos ressaltou a importncia do conceito de capacidade de canal [4].
Analisando-se a curva de limite de Shannon possvel obsevar qual o limite de rudo ser
suportado por um esquema de codificao e decodificao infinitamente complexo. O cdigo
turbo est sendo apresentado como esquemas capazes de recuperar essa informao til a
1

0,1dB deste limite terico [4]. Essa recente aproximao ao limite terico uma forma de
avaliar o desempenho de um determinado sistema [5]. De forma genrica, pode-se classificar
como cdigo turbo todo esquema de codificao de canal que utilize processos de
decodificao iterativa e a concatenao de cdigos componentes separados por
entrelaadores temporais. Assim, percebe-se que o termo turbo est diretamente associado
decodificao iterativa e no necessariamente forma de implementao da codificao [6].
Hoje, quase 20 anos aps a inveno do cdigo turbo, as pesquisas sobre o tema se
encontram em um estgio avanado e ramificaram-se, dando surgimento ao processamento
turbo que o estado da arte dos cdigos corretores de erro sendo interpretado como uma das
mais promissoras tcnicas para a melhoria de desempenho em sistemas de comunicao. Por
essa razo, a inveno do cdigo turbo est sendo considerada como o segundo grande marco
do desenvolvimento cientifico das comunicaes, desde o desenvolvimento da teoria
matemtica da comunicao no final da dcada de 40 por Claude Elwood Shannon [7].
Qualquer sistema com realimentao a partir de agora deve ser interpretado no
simplesmente como um sistema onde a realimentao de sinais, mas sim onde a realimentao
de informao, como acontece no processamento turbo [8]. Dentre as vrias tcnicas nas quais
o processamento turbo pode ser aplicado podemos citar exemplos como a equalizao,
estimao de canal, codificao de fonte e canal conjunta, deteco multiusurio, o
cancelamento de interferncias, os sistemas MIMO (multiple input, multiple output) e a
codificao espao-temporal [9].
O objetivo deste trabalho analisar as vantagens da utilizao do cdigo turbo,
mostrando sua importncia para a transmisso digital e sua eficincia atravs de simulaes
realizadas no software Matlab.
Este trabalho est dividido em captulos organizados da seguinte forma:
No captulo 2 explanado como funciona a transmisso digital de sinais dando nfase
maior na codificao de canal onde se utilizado o objeto de nosso estudo e nos cdigos
convolucionais com suas formas de codificao e decodificao mostrando sua importncia
na construo do cdigo turbo.
No captulo 3 explicado em detalhes o cdigo turbo, como ele formado por cdigos
convolucionais e entrelaadores, o cdigo turbo perfurado e o no perfurado, algumas de suas
caractersticas como o error floor e o espectral thining e a importncia dos entrelaadores e
do espectro de distncia de Hamming para um projeto de cdigo turbo eficiente. Neste
2

captulo mostrado tambm como realizada a decodificao iterativa de mxima


verossimilhana.
No captulo 4 analisado o desempenho do cdigo turbo utilizando para isso duas
forma de abordagem, na primeira temos uma anlise matemtica utilizando a tcnica do
limitante da unio com a decodificao MAP. Na segunda so realizadas simulaes
utilizando um simulador turbo desenvolvido para o software Matlab, nesta simulao
enfatizada a importncia da quantidade de iteraes e do tamanho do entrelaador para um
bom desempenho do cdigo turbo.
Finalmente no captulo 5 so apresentadas as concluses desse trabalho mostrando a
utilizao de cdigos turbo em diversos meio de transmisso sendo utilizadas com outras
tcnicas para uma transmisso digital confivel robusta.

CAPTULO 2
Transmisso digital de sinais
A transmisso digital surgiu como ume evoluo natural da transmisso analgica,
antes todas as etapas envolvidas na transmisso de informao desde o tratamento da
informao at a recepo era tratada de forma de sinais analgicos, com o avano da
tecnologia agregado aos estudos sobre a quantizao e digitalizao das informaes surgiu a
transmisso digital de sinais [10].
A transmisso digital contem cdigos de controle de erros que detectam e corrigem os
erros de transmisso e admitem tcnicas complexas de condicionamento e processamento de
sinal, como codificao de fonte, criptografia e equalizao, para melhorar o desempenho
geral do enlace de comunicao. Outra principal vantagem a possibilidade de alterar ou
melhorar um sistema de transmisso sem a troca de equipamentos, bastando simplesmente
incluir uma melhoria no software [11].
O processo de transmisso de um sinal digital possui vrias etapas como podemos
visualizar na Figura 2.1, a primeira delas a codificao de fonte, depois a codificao de
canal (objetivo do estudo deste trabalho), modulao e o lado da recepo que refaz o
processo inverso.

Figura 2.1 - Etapas do processo da transmisso de um sinal digital.

O ltimo processo realizado no sinal antes da transmisso propriamente dita a


modulao que consta em transformar as informaes entregues pelo codificador de canal em
uma forma de onda e frequncia adequadas para transmisso por meio do canal [2]. O sinal
modulado para facilitar a transmisso do mesmo atravs de um meio, existem trs tipos
bsicos de modulao; por amplitude, por fase e por frequncia, todas estas tcnicas de
modulao representam a informao em um sinal senoidal. Os tipos de modulao mais
utilizados na transmisso digital so as modulaes em fase PSK (phase shift keying) e (QAM
- quadrature amplitude modulation) [12].
Depois que o sinal passa pelo canal chega ao receptor onde realizado todo processo
de tratamento do sinal, demodulao, decodificao de canal e decodificao de fonte, para
ento o sinal ser entregue ao destino. Essa sendo a parte mais complexa de um sistema de
comunicao.

2.1 Codificao de Canal


O canal de comunicao responsvel pela introduo de rudo, corrompendo a
informao transmitida. O principal objetivo da codificao de canal combater este efeito
danoso provocado pelo canal e propiciar uma comunicao confivel em uma dada taxa de
erro tolervel (BER bit error rate), reduzir a relao sinal/rudo (SNR - signal to noise
ratio) necessria, aumentando a eficincia na utilizao da potncia de transmisso [4].
A codificao de canal deve, obrigatoriamente, apresentar um melhor desempenho que
uma transmisso no codificada, para mesma SNR, caso contrrio codificao no se
justifica. O processo de codificao de canal consiste fundamentalmente na introduo de bits
redundantes na informao que vai ser transmitida transformando um bloco de informao
com tamanho k bits em um bloco codificado com n bits. Os bits adicionais permitem de um
modo geral, a deteco e/ou a correo de erros no sinal recebido.

2.2 Cdigos convolucionais


O cdigo turbo pode utilizar diversos tipos de cdigos corretores de erros, dentre eles
os mais utilizados so os cdigos convolucionais, pois oferecem uma grande facilidade de
5

implementao. Um codificador convolucional converte uma sequncia inteira de dados, no


importando o seu comprimento em uma palavra cdigo, consiste basicamente no mapeamento
de uma sequncia continua de bits de informao em uma sequncia continua de bits de sada
do codificador cujo mapeamento dado pela estrutura algbrica inerente ao codificador. A
codificao convolucional, em geral, alcana ganhos de codificao maiores do que os
cdigos de blocos de igual complexidade.
Os cdigos convolucionais foram inicialmente estudados por Peter Elias em 1955, ele
mostrou que possvel introduzir redundncia em uma sequncia de dados a partir do uso de
um registrador de deslocamento linear (linear shift register) [13]. Em 1961, Wozencraft e
Reiffen [14] descreveram o primeiro algoritmo prtico de decodificao para os cdigos
convolucionais, foi um dos primeiros algoritmos que forneceram decodificao rpida, porm
subtima, dos cdigos convolucionais. Em 1967, Viterbi [15] descobriu uma terceira
aproximao para a decodificao dos cdigos convolucionais que mostrou ser
assintoticamente tima. Em 1973, Forney [16] [17] mostrou que o algoritmo de Viterbi [15]
realmente de mxima verossimilhana para a decodificao de cdigos convolucionais.
Um cdigo convolucional gerado passando-se a sequncia de informao atravs de
um registrador de deslocamento associado a algumas funes lgicas. Em geral, o registrador
de deslocamento contm estgios de k bits e m geradores de funo linear algbrica baseado
nos polinmios geradores, Os dados de entrada so deslocados para e ao longo do registrador
de deslocamento, bit a bit de cada vez, O nmero de bits de sada para cada sequncia de
dados de entrada do usurio de k bits n bits. A taxa de cdigo R = k/n. Os estgios so
considerados como comprimento de restrio e indica o nmero de bits de dados de entrada
do qual a sada atual depende, este comprimento determina o quanto complexo e eficiente o
cdigo [18].
Devido utilizao de registros deslizantes e a permanente alimentao de bits na
entrada do codificador, existe um atraso associado ao processo de codificao. Estes tipos de
cdigos possuem memria. Assim, os bits codificados dependem no s dos bits de
informao como tambm da informao armazenada pela memria do cdigo. Na Figura 2.2
temos um exemplo de um codificador convolucional linear de taxa R = .
A sequncia binria de dados x = (x0, x1, x2...) aplicada entrada de um registrador
de deslocamento. A partir dos bits de entrada e dos valores armazenados no registrador cria-se
um par de sequncias de dados codificados y(0) = (y0(0), y1(0), y2(0),...) e y(1) = (y0(1), y1(1),
6

y2(1),...). Essas sequncias de sadas so multiplexadas para criar uma nica sequncia de sada
y = (y0(0) y0(1), y1(0) y1(1), y2(0) y2(1),...), em que y a palavra cdigo convolucional. [2].
Aps a entrada da sequncia x completa no codificador, introduz-se uma sequncia de
zeros para que no final do processo de codificao o contedo do registrador seja nulo. Essa
uma condio necessria para efetuar a decodificao dos cdigos convolucionais.
Um cdigo convolucional pode ser descrito por uma variedade de mtodos, podendose destacar o diagrama em trelia e o diagrama de estados. Como a sada do codificador
determinada pela entrada e pelo estado atual do codificador, um diagrama de estados pode ser
usado para representar o processo de codificao. O diagrama de estado simplesmente um
grfico dos possveis estados do codificador e das possveis transies de um estado para o
outro [19].
Considere o codificador da Figura 2.2, ele contm trs elementos de memria binrios
que assumem coletivamente um entre oito possveis estados designados por {S0, S1, S2, ..., S7}
e associados com o contedo dos elementos de memria como podemos ver a seguir.
S0 (000)

S2 (010)

S4 (001)

S6 (011)

S1 (100)

S3 (110)

S5 (101)

S7 (111)

Figura 2.2 - Codificador convolucional linear com taxa R =

Figura 2.3 - Diagrama de estados para o codificador da Figura 2.2.

Como se pode observar na Figura 2.3, os estados do codificador so representados por


crculos, enquanto que as transies de estado, provocadas por cada novo bit de informao,
so representadas pelas setas. Assim em cada uma das transies o parmetro k/n representa
atravs de k o bit de informao que est entrando no registrador enquanto n representa a
sequncia codificada na sada. Tendo em conta o diagrama de transies e considerando o
estado do codificador como sendo o contedo dos registros que o compe pode-se construir
uma tabela de transio de estados. A tabela de transio de estados permite relacionar os
estados final e inicial do codificador com a informao de entrada e a informao colocada
sada. A Tabela 2.1 apresenta a transio de estados para o codificador da Figura 2.2.

Tabela 2.1 - Tabela de transio de estados para o diagrama da Figura 2.3

Estado Inicial (S)

Entrada

Estado Final (S)

Sada

000 (0)

000 (0)

00

000 (0)

100 (1)

11

100 (1)

010 (2)

01

100 (1)

110 (3)

10

010 (2)

001 (4)

10

010 (2)

101 (5)

01

110 (3)

011 (6)

11

110 (3)

111 (7)

00

001 (4)

000 (0)

11

001 (4)

100 (1)

00

101 (5)

010 (2)

10

101 (5)

110 (3)

01

011 (6)

001 (4)

01

011 (6)

101 (5)

10

111 (7)

011 (6)

00

111 (7)

111 (7)

11

Alternativamente, o codificador pode ser representado por uma trelia. Este tipo de
diagrama permite observar em cada instante todas as transies de estado possveis, isto ,
mostra explicitamente a passagem do tempo. A nomenclatura utilizada semelhante j
apresentada no diagrama de estados. A trelia do cdigo convolucional referido anteriormente
pode ser observada na Figura 2.4.

Figura 2.4 - Diagrama em trelia para o codificador da Figura 2.2

.
Do ponto de vista puramente terico, a melhor forma de decodificar uma sequncia
recebida com erros compar-la com cada uma das sequncias de codificao possveis
procedendo-se, portanto a um processo de decodificao de mxima verossimilhana [10].
A funo do decodificador estimar a informao de entrada codificada usando um
mtodo que resulta no nmero mnimo possvel de erros. Existe uma correspondncia um a
um entre a sequncia de informao e a sequncia de cdigo e qualquer par de informao e
de cdigo associado exclusivamente a um caminho atravs da trelia, com isso a tarefa do
decodificador estimar o caminho que foi seguido pelo codificador na trelia [19].
Existem diversas tcnicas para decodificar os cdigos convolucionais. O mais
importante desses mtodos o algoritmo de Viterbi [15], por ser um decodificador de simples
implementao e que realiza a decodificao de mxima verossimilhana [2]. O algoritmo de
Viterbi basicamente considera que a decodificao tima de cdigos convolucionais envolve a
procura na trelia da sequncia transmitida mais provvel.
Outro decodificador para cdigos convolucionais o algoritmo BCJR [20] baseado em
probabilidades a posteriori desenvolvido em 1974 que leva o nome das iniciais de seus
criadores Bahl, Cocke, Jelinek e Raviv. Este algoritmo tambm conhecido como o algoritmo
MAP (maximum a posteriori) ou ainda por forward-backward algorithm [21], por ser mais
complexo que o algoritmo de Viterbi, durante cerca de vinte anos no foi usado na prtica,
10

situao que foi substancialmente alterada com o advento do cdigo turbo em 1993 e com a
atual capacidade de processamento.
Considerando um codificador convolucional de taxa k/n descrito por uma trelia, que
apresente na sua sada uma sequncia de N palavras de cdigo, ou smbolos, de n bits cada.
Designemos essa sequncia por x = x1x2...xN, onde xt representa o smbolo produzido pelo
codificador no instante t. O bit de informao que nesse instante lhe deu origem, uk, pode
tomar os valores -1 ou +1 com uma probabilidade de ocorrncia a priori P(uk). Associada a
esta probabilidade define-se a quantidade a que se d o nome de log-razo de
verossimilhana, (LLR - log-likelihood ratio) representado por

. Se os bits uk = 1

forem equiprovveis esta LLR a priori nula [21]. Este instante se d na Equao 2.1.

(2.1)

A sequncia codificada x atravessa um canal com rudo gaussiano sem memria (canal
AWGN - additive white gaussian noise) que a transforma numa sequncia de smbolos reais y
= y1y2...yN. esta sequncia que o decodificador recebe e a partir dela o algoritmo BCJR vai
tentar estimar a sequncia de bits originais uk. Para isso o algoritmo calcula a LLR a posteriori
dado sequncia de sada y, definindo assim um valor real pela Equao 2.2 [21].

(2.2)

O sinal, positivo ou negativo, da LLR, indicia que o bit enviado foi +1 ou -1,
respectivamente, e o seu valor absoluto traduz a maior ou a menor confiana, ou fiabilidade,
que temos nessa presuno, isto , quanto mais afastado o valor de

estiver do limiar

de deciso nulo mais confiana teremos na estimativa do bit, no numerador e no denominador


da Equao 2.2 temos probabilidades condicionais a posteriori, ou seja, probabilidades
calculadas aps o conhecimento de y [21].
Falaremos mais detalhadamente sobre este algoritmo de decodificao no captulo
sobre a decodificao iterativa do cdigo turbo.
11

CAPTULO 3
Cdigo turbo
A codificao turbo consiste em duas ideias fundamentais, a primeira que o
codificador produz um cdigo com propriedades aleatrias e a segunda que o decodificador
realiza uma deciso suave com decodificao iterativa. O codificador composto por dois ou
mais codificadores convolucionais e por entrelaadores, a decodificao de mxima
verossimilhana (Viterbi) muito complexa para ser utilizada neste tipo de codificao,
entretanto, possvel empregar decodificao de entrada e sada suave (SISO - soft-input, softoutput) iterativa em cada cdigo constituinte, tal que a informao de sada suave (informao

extrnseca) de um decodificador passada para o outro, e vice-versa, at uma estimativa sobre


a informao transmitida ser obtida.
Um diagrama em bloco de estrutura do codificador ilustrado na Figura 3.1 a sequncia
de informaes denotada por u = [u0, u1, ..., uk-1]. O esquema bsico consiste de dois
codificadores de taxa com 22 estados e um entrelaador denotado por , de comprimento K.
Os primeiros k bits de u so de informao e os restantes so bits de terminao. O polinmio
gerador mostrado na Figura 3.1 (b) [9].
O esquema de codificao da Figura 3.1 sistemtico, ento a primeira sequncia de
paridade V(0) = u. O primeiro codificador gera a sequncia de paridade V(1). O entrelaador
reordena os k bits de informao, produzindo a sequncia de u na entrada do segundo
codificador. A sequncia de paridade do segundo codificador V(2) = [V0(2), V1(2),..., Vk-1(2)].
Observe que os dois codificadores operam com verses diferentes da sequncia de
informao, embora esta tenha o mesmo peso. As duas sequncias de paridade V(1) e V(2)
tero pesos de Hamming [22] distintos. Esse esquema gera a palavra-cdigo V = [V0(0), V0(1),
V0(2), V1(0), V1(1), V1(2), V2(0)...].

12

Figura 3.1 Diagrama de bloco do codificador turbo sem perfurao de taxa 1/3

Para atingir o desempenho prximo o limite de Shannon [7] o tamanho do bloco de


informaes deve ser alto, tipicamente u > 1.000, o tamanho do entrelaador deve ser do
mesmo tamanho do bloco de informaes, u = K. Para obter probabilidade de erro de bit em
torno de 10-5, codificadores com V relativamente curtos podem ser usados, tipicamente V <=
4.

Podemos utilizar um esquema de cdigo turbo sem perfurao como na Figura 3.1 onde

se utiliza todas as sadas ou com perfurao onde as sadas geradas pelos cdigos
convolucionais so utilizadas de maneira alternada, um momento a palavra cdigo ter o
smbolo da sada V(1), no outro ter o smbolo da sada V(2) como mostra a Figura 3.2, nesse
esquema de codificao a palavra-cdigo gerada V = [V0(0), V0(1), V1(0), V0(2), V2(0), V1(1),
V3(0), V1(2)...]. Dessa maneira utilizamos o mesmo esquema da Figura 3.1 com o
posicionamento de bits alternados de V(1) e V(2), produzindo assim um cdigo de taxa R = .
13

Figura 3.2 Diagrama de bloco do codificador turbo com perfurao de taxa 1/2

Codificadores e entrelaadores adicionais podem ser empregados, produzindo cdigos


de baixa taxa. Os melhores entrelaadores reordenam os bits de forma pseudoaleatria. O
entrelaador parte integrante do esquema de codificao. A complexidade da descrio de
estados muito alta e a decodificao MAP no simples. Uma decodificao subtima
empregada com cada decodificador componente SISO implementando o algoritmo BCJR
[21]. A decodificao pode parar a um nmero fixo de iteraes (usualmente 10 a 20) ou de
acordo com um critrio de parada baseado na confiabilidade de deciso.
Podemos destacar algumas desvantagens para esse tipo de cdigo, como principalmente
o elevado atraso de decodificao devido ao tamanho do bloco de informao (u deve ser
elevado, tipicamente algumas dezenas de milhar) e s vrias iteraes necessrias para atingir
desempenho prximo capacidade [23].
Outra desvantagem a presena de um patamar de erro (error floor), existe um valor
mnimo da SNR pelo qual o aumento da SNR alm deste valor no acarreta na diminuio
significativa da BER, isto devido ao fato que o cdigo turbo no tem distncia mnima
elevada, sendo este um parmetro relevante para determinar o desempenho para SNR elevada.
Este patamar pode ser reduzido via projeto do entrelaador onde os entrelaadores podem ser
projetados para aumentar a distncia mnima do cdigo ou atravs de um cdigo
concentrador, ou seja, um cdigo externo pode corrigir erros na sada do esquema do cdigo
turbo, a um custo da complexidade [21].
O desempenho de um cdigo turbo est diretamente ligado s distncias de Hamming
entre as sequncias de smbolos codificadas. A enumerao destas distncias com suas
14

respectivas multiplicidades constituem o espectro de distncias do cdigo. O espectro de


distncias tem um papel importante na estimativa da probabilidade de erro, como exemplos de
espectro de distncias pode-se citar o espectro de distncias de cdigos convolucionais
terminados e o espectro de distncia de concatenao em paralelo [9], na Tabela 3.1 pode-se
visualizar o peso da distncia com sua respectiva multiplicidade para os dois exemplos
citados.
Tabela 3.1 Peso e multiplicidade para o espectro de distncia para o cdigo (32,12).

(a) Convolucional Terminado


Peso
Multiplicidade
0
1
1
0
2
0
3
0
4
0
5
0
6
11
7
12
8
23
9
38
10
61
11
126
12
200
13
332
14
425
15
502
16
545
17
520
18
491
19
346
20
212
21
132
22
68
23
38
24
11
25
2
26
0
27
0
28
0
29
0
30
0
31
0
32
0

(b) Concatenao em paralelo


Peso
Multiplicidade
0
1
1
0
2
0
3
0
4
0
5
1
6
4
7
8
8
16
9
30
10
73
11
144
12
210
13
308
14
404
15
496
16
571
17
558
18
478
19
352
20
222
21
123
22
64
23
24
24
4
25
4
26
1
27
0
28
0
29
0
30
0
31
0
32
0

15

Para o espectro de distncia de cdigos convolucionais terminados considere um cdigo


convolucional sistemtico recursivo de taxa R = com matriz geradora.

(3.1)

Para codificadores realimentados uma sequncia de terminao zero, definida por b,


requerida para retornar o codificador para o estado zero. A taxa do cdigo R = para u alto.
Um exemplo de uma trelia terminada mostrado na Figura 3.3.
Um cdigo convolucional terminado um cdigo de bloco. Estamos interessados em
enumerar o peso de Hamming de todas as 2k - 4 palavras cdigos no nula. Para isto devemos
enumerar sequncias que divergem do caminho todo zero em qualquer tempo. A sequncia de
informao de comprimento u = 16, incluindo a terminao, geram um cdigo de bloco
(32,12).
Para o espectro de distncia de concatenao em paralelo considere o codificador do
exemplo anterior com entrada de comprimento u = 16 com k = 12 (bits de informao) e b = 4
(bits de terminao). A sequncia de paridade V(1).

Figura 3.3 - Trelia terminada

16

A sequncia de informao entrelaada pelo entrelaador:

K = [0, 8, 15, 9, 4, 7, 11, 5, 1, 3, 14, 6, 13, 12, 10, 2]


A nova sequncia de informao u :
u0 = u0, u1 = u8, u2 = u15, u3 = u9, ...., u15 = u2
A sequncia u a entrada do codificador, produzindo V(2). Para produzir um cdigo de
taxa R = , o cdigo posicionado descartando-se bits das duas sequncias de paridade
alternadamente. O cdigo concatenado em paralelo resultante (32,12).
O espectro de distncia de concatenao em paralelo mostrado na Tabela 3.1 revela um
espectro menos denso nas distncias pequenas embora o mesmo codificador tenha sido
empregado. A alterao do espectro resultado direto do entrelaador que permutou os bits de
informao para codific-los novamente. A distncia mnima decresceu de 6 para 5, mas o
efeito relevante a reduo de multiplicidade dos pesos das palavras cdigo com peso de
Hamming entre 6 e 9.
Portanto, para o cdigo concatenado em paralelo, existe um deslocamento das
multiplicidades das palavras de peso baixo para peso mais elevado. Este efeito conhecido
como spectral thinning, onde palavras cdigo de peso baixo na sada do primeiro codificador
esto associadas a palavras de peso alto na sada do segundo codificador. Isto tpico de um
esquema concatenado em paralelo com codificadores realimentados.
Podemos observar que o spectral thinning tem pouco efeito em distncia mnima, mas
reduz a multiplicidade das palavras de peso pequeno. Este efeito mais dramtico quando o
comprimento do bloco aumenta. Os espectros de um cdigo terminado a um cdigo
concatenado so mostrados na Figura 3.4, para u = 32. O cdigo (64,28). A distncia
mnima igual a 6 nos dois casos e b = 4 (bits de terminao) so usados [9].

17

Figura 3.4 - Ilustrao de spectral thinning

Para valores de u elevados, os multiplicadores das palavras cdigo de peso pequeno so


reduzidos por um fator aproximadamente igual a u. Esta reduo referida como ganho de
entrelaamento.
O cdigo concatenado em paralelo no invariante no tempo. Se a sequncia de entrada
deslocada no tempo, a sada V(1) deslocada no tempo, mas a sada V(2) no. O entrelaador
quebra a invarincia no tempo, terminando o cdigo variante no tempo. Portanto, se u = D*u,
ento V(1) = D*V(1), mas u D*u e ento, V(2) D*V(2) com probabilidade alta [8].
Entrelaador estruturado, como de bloco ou convolucional, no garantem a associao
de V(1) de baixo peso com V(2) de alto peso. Um entrelaador deve quebrar os padres das
sequncias de entrada que produzem palavras cdigos de baixo peso. Entrelaadores
pseudoaleatrio tem esta propriedade e produzem spectral thinning com mais eficincia.
Desde que os cdigos constituintes so sistemticos recursivos, pelo menos um bit
requerido na parte de terminao da sequncia de informao para retornar o codificador ao
estado 0 (zero). Portanto, as palavras cdigos no nulas esto associadas com sequncia de
informaes de peso pelo menos 2 (pelo menos 1 bit para partir e outro para retornar para o
estado 0 (zero)) [9].
18

Quando os ltimos k bits de sequncia de informao u so usados para forar o


primeiro codificador retornar ao estado 0 (zero), provvel que o entrelaador produza uma
sequncia u que termine o segundo codificador no estado 0 (zero). Em geral, o segundo
codificador no terminado.
Entrelaadores pseudoaleatrio produzem um espectro de distncia com caractersticas
prximas da distribuio binomial, o que equivalente distribuio associada por Shannon
na prova do teorema de codificao de canal [7]. Em outras palavras, cdigos com
distribuio de peso binomial podem atingir o desempenho garantido pelo limitante de
Shannon. Em suma, entrelaadores tem um papel destacado para explicar o bom desempenho
do cdigo turbo [7].

3.1 Decodificao iterativa do cdigo turbo


Considere o esquema turbo com dois codificadores com taxa total igual a R = 1/3. O
decodificador emprega dois decodificadores iterados em srie que implementam o algoritmo
recursivo BCJR. Evidncias sugerem que o algoritmo iterativo, com troca de informaes
entre os decodificadores componentes converge para a soluo tima [21]. Em cada instante
de tempo, trs valores de sada do canal so disponveis.
Uma correspondente ao bit de informao uk na sada Vk(0) denotada por rk(0) e outras
duas sadas associadas aos bits de paridade Vk(1) e Vk(2), denotado por rk(1) e rk(2). Trs
sequncias recebidas so formadas:
r(0) = (r0(0), r1(0), ...., rk-1(0))
r(1) = (r0(1), r1(1), ...., rk-1(1))
r(2) = (r0(2), r1(2), ...., rk-1(2))
As sequncias r(0) e r(1) so as entradas do primeiro decodificador, enquanto r(2) uma
verso entrelaada de r(0). As sequncias r(2) e r(0) so as entradas do segundo decodificador.
O entrelaador idntico ao usado no codificador.
Dado um vetor recebido r, o algoritmo BCJR calcula as probabilidades a posteriores
P(uk = i|r) para formar a razo de log-probabilidade denotado por

19

(3.2)

A descrio do algoritmo BCJR complexa, exigindo muitos passos at a sua


formulao final, o que foge do escopo deste trabalho. Para maior clareza vamos admitir que
estamos transmitindo em um canal AWGN e aps algumas simplificaes dos referidos
passos temos:
(3.3)

Onde, r a razo de log-probabilidade de um canal AWGN para transmisso sem


codificao com smbolos de informao equiprovveis. A confiabilidade da deciso baseada
em rk(0) proporcional rk(2) e o fator de probabilidade aumenta linearmente com a SNR.
Denota-se por

o fator de confiabilidade do canal.

Na primeira iterao do algoritmo, as entradas do 1 decodificador de vetores r(0), r(1)


a(1) = [a(u0), a(u1), ...., a(uk-1)], que pode ser feito igual a zero nas primeiras k posies
se os smbolos de informao forem equiprovveis. As sadas suaves do primeiro
decodificador so as razes de log-probabilidade, denotado por (1)(uk):

(1)(uk) = a(1)(uk) + r(uk) + e(1)(uk) ,

k = 0, 1, .... K-1

(3.4)

O segundo decodificador calcula (2)(uk) baseado nas sequncias de entrada r(2) e r(0).
Note que este decodificador tem disponvel uma estimativa de probabilidade a posterior de uk
calculada pelo primeiro decodificador, (1)(uk). O segundo decodificador pode consider-la
como a razo a priori a(2)(uk). (devidamente entrelaada). O segundo decodificador calcula:
(2)(uk) = (1)(uk) + r(uk) + e(2)(uk)
(2)(uk) = a(1)(uk) + r(uk) + e(1)(uk) + r(uk) + e(2)(uk)

(3.5)

A Equao 3.5 revela que ao passar a(1)(uk) para o segundo decodificador, a estimativa
prvia de a(1)(uk) tambm passada, o que desnecessrio. Adicionalmente, quando o
20

decodificador continuar a iterar a razo r(uk) ser acumulada e a contribuio de rk(1) ser
enfatizada. Portanto, apenas a informao extrnseca e(1)(uk) = (1)(uk) + a(1)(uk) + r(uk)
(devidamente entrelaado) passada para o segundo decodificador. Esta subtrao remove o
efeito de rk(0) (sequncia recebida sistemtica de (1)(uk), deixando apenas o efeito dos
smbolos de paridade recebida produzir uma estimativa independente de a(2)(uk)). Como a
entrada do segundo decodificador inclui uma verso entrelaada de r(0) este est
correlacionada com a sada suave do primeiro decodificador (1)(uk). a contribuio devida a
rk(0) deve ser retirada de (1)(uk) para eliminar a correlao.
A sada do segundo decodificador contm 2 termos:
1 (2)(uk) = e(1)(uk) + r(uk) + e(2)(uk)
2 A informao extrnseca a(2)(uk) = (2)(uk) - e(1)(uk) - r(uk) produzida pelo
segundo decodificador, aps desentrelaar, passada para o decodificador 1 como a razo de
log-probabilidade a priori a(1)(uk).
Portanto, a informao extrnseca que passada de um decodificador para outro durante
o processo iterativo tratada como novos conjuntos de razo de log-probabilidade a priori
pelo algoritmo MAP. A Figura 3.5 ilustra o diagrama em blocos do decodificador.
A decodificao ento processada iterativamente com cada decodificador passando a
sua informao extrnseca para o outro decodificador. Os decodificadores SISO refinam a
confiabilidade dos smbolos de informao a cada iterao.
A razo de log-probabilidade a priori do segundo decodificador a informao
extrnseca do primeiro (entrelaada):

a(2)(uk) = e(1)(uk)

21

(3.6)

Figura 3.5 - Um decodificador iterativo cdigo turbo baseado no algoritmo MAP

As probabilidades a priori, que so as informaes de entrada de cada iterao e so a


partir de informaes extrnseca passada pelo outro decodificador:

(3.7)

Ento, as probabilidades a priori so dadas por:

(3.8)

(3.9)

22

Anlise similar vlida para as probabilidades a priori do codificador 1. Estas


probabilidades so usadas na probabilidade de transio de estados do algoritmo BCJR.
A informao extrnseca e(1)(uk) passada pelos decodificadores durante a primeira
iterao independente de uk , mas isto unidade para iteraes subsequentes. Ento, a
informao extrnseca torna-se menos importante para obter estimativas mais confiveis dos
smbolos de informao nas demais iteraes. Aps um nmero suficiente de iteraes, o
aumento da confiabilidade no possvel e a deciso final realizada comparando a razo
log-probabilidade do segundo decodificador, (2)(uk), k = 0, 1, ..., K-1 com o limiar 0 (zero).
A eficcia desta tcnica pode ser vista na Figura 3.6 que mostra o desempenho do
cdigo turbo original tendo o nmero de iteraes como parmetro, para K = 216 = 65.536
bits. O desempenho melhora at 18 iteraes.

Figura 3.6 - Desempenho do Cdigo Turbo (37, 21, 65536) em funo do nmero de iteraes do decodificador.

23

3.2 Propriedades de distribuio de pesos do cdigo turbo


O espectro de distncia de um cdigo turbo depende do entrelaador escolhido. Para
evitar uma busca exaustiva do melhor espectro para todos os possveis entrelaadores,
introduziremos o conceito de entrelaador uniforme.
Um entrelaador uniforme de comprimento K um dispositivo probabilstico que
mapeia uma sequncia de entrada de peso w em todas as
probabilidade

permutaes distintas com igual

[9]. Calcularemos um espectro de distncia mdio (sobre todos os possveis

entrelaadores). Este espectro mdio tpico de um espectro obtido por um entrelaador


escolhido de forma aleatria. Considere um cdigo conforme a Tabela 3.2.

Tabela 3.2 - Cdigo de Hamming (7,4,3) sistemtico

Informao
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Paridade
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1

0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1

0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1

24

Peso de Hamming da
palavra cdigo
0
3
3
4
3
4
4
3
4
3
3
4
3
4
4
7

A funo enumeradora dos pesos (WEF - weight enumeration function) dada por:

(3.10)

Onde Ad o nmero de palavras cdigo (no nulas) com peso de Hamming d, ou seja,
o nmero de palavras cdigo com distncia de Hamming d em relao palavra toda nula.
Para o cdigo de Hamming (7,4,3) sistemtico acima temos:

A(x) = 7x3 + 7x4 + x7

(3.11)

Isto 7 palavras cdigo tem peso de Hamming 3, 7 palavras cdigo tem peso de
Hamming 4 e 1 palavra cdigo com peso de Hamming 7. Para um cdigo sistemtico, cada
palavra cdigo composta de k smbolos de informao e (u-k) smbolos de paridade. O peso
de Hamming da palavra cdigo a soma dos pesos de Hamming destas duas pores.
conveniente enumerar o peso de Hamming de um cdigo dividindo a contribuio dos
smbolos de informao e dos smbolos de paridade.
A funo enumeradora condicionada no peso (CWEF - conditional weight enumerating
function) definida na forma:

(3.12)

Aw(z) enumera o peso de Hamming z na poro de paridade de todas as palavras cdigo


(no nulas) com peso de w na poro de informao. Desta forma:

(3.13)

25

Para o cdigo de Hamming (7,4,3), a Equao 3.13, torna-se:

A(w,z) = wA1(z) + w2A2(z) + w3A3(z) + w4A4(z)

(3.14)

A1(z) = 3z2 + z3

(3.15)

A2(z) = 3z + 3z2

(3.16)

A3(z) = 1 + 3z

(3.17)

A4(z) = z3

(3.18)

Onde:

A Figura 3.7 ilustra um dos codificadores convolucionais constituinte do esquema turbo


e seu respectivo diagrama de estados com os rtulos indicando os pesos de Hamming da
informao (w) e paridade (z). A partir deste diagrama de estados retira-se a enumerao
CWEFi , com i=1,2, de cada codificador em separado (que em geral so idnticos).
Para compor a CWEFTC do esquema turbo, multiplica-se as WEFs dos codificadores e
o que leva a CWEFTC mdia do turbo dada

divide-se pelo efeito mdio do entrelaador


por:

(3.19)

Esta expresso da CWEF mdia do esquema turbo utilizada na anlise de desempenho


para a estimativa da BER conforme veremos no prximo captulo.

26

Figura 3.7 - Diagrama do codificador e diagrama do estado para um cdigo (2,1,2).

O ganho de entrelaamento reduz as multiplicidades de palavras de baixo peso,


produzindo um desempenho excepcional para SNR's baixas ou moderadas. Como o turbo
tipicamente no tem distncias mnimas elevadas o desempenho mais fraco para SNR
elevada. Note que a CWEF mdia para um entrelaador uniforme resulta em dividir o produto
da CWEF de um cdigo constituinte por fator

. Desde que no existe sequncias de

entrada com peso w = 1 para um codificador sistemtico com realimentao, o menor fator de
diviso ser

para sequncia de entrada com w = 2. Para w = 3, este fator ser

, que o

maior par em fator aproximadamente igual a K. Para valores de K elevados, as palavras


cdigo com peso w = 2 so as contribuies mais importantes para as palavras de peso baixo
do codificador turbo.

27

CAPTULO 4
Anlise de desempenho do cdigo turbo
Nesta seo usaremos a tcnica do limitante da unio para estimar o desempenho de
cdigos turbo em canais AWGN com decodificao de mxima verossimilhana. Para um
entrelaador de comprimento K, existem 2k palavras cdigo distintas. A sequncia de sinal
transmitido para a sequncia toda zero em um canal AWGN normalizado com modulao
BPSK (binary phase shift keying) dada por v0 = (-1, -1, .., -1). A sequncia recebida para n-1
codificadores constituintes : r = (r0(0)... r0(n-1), r1(0) ... r1(n-1), ..., rk-1(0) ... rk-1(n-1)) composto de
nk variveis aleatrias Gaussianas independentes de mdia -1 e varincia

. Para facilitar a

notao adotaremos r = (r0 ... rnk-1).


O decodificador realiza a correlao de r com cada sequncia transmitida e decodifica a
que gerar a mxima correlao. A probabilidade de uma sequncia especifica v' com peso de
Hamming d ser escolhida ao invs de v0 dado que v0 foi transmitida.
Se vk a k-sima palavra cdigo, a probabilidade que uma palavra cdigo seja
codificada erroneamente limitada por:

(4.1)

(4.2)

Onde Ad o nmero de palavras cdigo com peso de Hamming d,

a SNR

do sistema e Q(.) a bem conhecida funo da cauda Gaussiana. A probabilidade mdia de


erro de bit dado v0 dada por:

28

(4.3)

Defina a varivel aleatria como:

Xj = 1, se P(j

j)

(4.4)

Yj = 0, se P(j =

j)

(4.5)

Ento:

(4.6)

Onde Mb uma varivel aleatria que descreve o nmero de bits em que b0... bk-1 e
diferem. Dado que v0 foi transmitido:

(4.7)

(4.8)

(4.9)

Onde wi o peso da i-sima sequncia de informao e o di o peso da i palavra cdigo.


Combinando (x) com (y) gera:

(4.10)

29

Podemos reescrever a Equao 4.10 da seguinte forma:

(4.11)

Onde Aw,d o nmero de palavras cdigo com peso de Hamming d gerados por todas
as sequncias de entrada de peso w.
Definir:
(4.12)

Ento:

(4.13)

Resumindo para o canal AWGN, temos:

(4.14)

(4.15)

Usando o limitante:

(4.16)

30

Obtemos os limitantes menos apertados:

(4.17)

(4.18)

(4.19)

Definindo a funo:
(4.20)

Escrevemos:
(4.21)

Gerando os seguintes limitantes:

(4.22)

(4.23)

Ento:
(4.24)

31

De forma anloga:
(4.25)

Esses limitantes diferem do anterior por um fator de escala

, que depende da

distncia livre do cdigo.


Como exemplo vamos considerar um PCCC (parallel concatenated convolutional code)
de taxa R = 1/3 gerado por um codificador sistemtico visto anteriormente. Aproximaes
para bit e palavra cdigo WEF so dada por:

(4.26)

(4.27)

A distncia mnima dfree = 7 (deve se dfree = 10 para vrios entrelaadores. Mas


devemos usar a menor possvel para avaliar o limitante).
Os limitantes Pw e Pb usando as WEF's acima so mostrados nas Figuras 4.1, para K =
100, 1.000 e 10.000. mostrado simulaes de um cdigo convolucional com 16 entradas
(mesma complexidade do PCCC). A simulao do PCCC para K = 10.000, com
entrelaamento pseudoaleatrio e 18 iteraes.

32

Figura 4.1 - Curvas para um PCCC e um Cdigo Convolucional com R = 1/3. (a) Palavra
cdigo (b) Probabilidade de erro de bit

33

A Figura 4.1 (b) claramente indica o ganho do entrelaamento. Quando K aumenta de


um fator de 10, Pb melhora do mesmo fator. O ganho de codificao (diferente de
Pb fixo) diminui com o aumento de

na curva

O Pw converge para o mesmo valor quando K aumenta, porque o nmero de palavras de


peso 10 no decresce com K. Para o cdigo convolucional o desempenho piora com K visto
que pelo menos 1 evento erro torna-se muito provvel quando K aumenta (Ads crescem
linearmente com K). No PCCC o entrelaador no permite este efeito. Para Pb = 10-5, o PCCC
com K = 10.000 tem ganho de codificao de 3,8dB mesmo com dfree = 12.
O limitante da unio no bom para

< 2dB. Este preciso para SNR elevado. Outra

metodologia deve ser empregada para melhorar o limitante para

4.1

baixa.

Simulao
Em 1993 Berrou, Glavieux e Thitimajshima [24] demonstraram atravs de resultados de

simulaes que uma relao sinal-rudo de 0,7dB era suficiente para garantir uma
probabilidade de erro de bit de 10-5 atravs do uso de um cdigo de taxa R= num canal
AWGN.
Nesta seo demonstra-se os resultados de uma simulao do cdigo turbo (37,21), onde
como principal caracterstica temos a importncia do entrelaador na codificao e
decodificao dos sinal transmitido para conseguir atingir o resultado prximo ao da
simulao de 1993.
Para simular o desempenho dos cdigos turbo foi utilizado o software Matlab e um
simulador desenvolvido pelo Departamento de Engenharia Eltrica e Computacional da
Universidade de Bradley nos Estados Unidos. O simulador foi desenvolvido utilizando as
ferramentas do Simulink para cdigo turbo, o esquema de blocos do simulador pode ser visto
na Figura 4.2.
Abaixo segue o programa para gerar os grficos no Matlab, no programa podemos
alterar parmetros como tamanho do entrelaador, a quantidade de iteraes, a potncia do
sinal e a matriz geradora do cdigo.

34

MaxdB = 6.0;
EbNo_incr = 0.5;
No_pts = MaxdB/EbNo_incr;
% nmero de iteraes.
Iter = 4;
%trellis = poly2trellis(3, [7 5],7);
trellis = poly2trellis(5, [37 21],37);
code_rate = 1/3;
multiplier = 1/code_rate;% multiplier = symbol_period/sample_time
% tamanho do entrelaador.
for numero = 20:20:100,
Len = numero*1024;
Turbo_Pb = zeros(Iter,No_pts);
Seed = 54123;
Ps = 1; % potncia do sinal
for i = 1:No_pts+1,
EbNodB = EbNo_incr*(i-1);
EbNo = 10.0.^(0.1*EbNodB);
EsNo = EbNo/code_rate;
Variance = Ps*multiplier/EsNo; %Calcula a varincia do rudo do canal.
sim('turbo_code_no_punc_multiple_run'); % Aciona o SIMULINK.
Turbo_Pb(:, i) = bit_error_rate.signals.values(:,:,4);
end
% grficos
x_index = (0:No_pts)*EbNo_incr;
figure
for i = 1:Iter,
semilogy(x_index,Turbo_Pb(i,:),'r.-');
hold on;
end
grid, xlabel('Eb/No em dB'), ylabel('BER')
title('Turbo code (no-puncionado)')
end

35

Figura 4.2 Modelo do simulador do cdigo turbo

A simulao consiste em passar um bloco de informaes binrias geradas


aleatoriamente por um canal AWGN utilizando o cdigo turbo (37,21) com taxa R = 1/3 na
codificao de canal e calcular a taxa de erro de bit da transmisso no receptor.
Na primeira simulao o cdigo turbo utilizado foi o no perfurado, na Figura 4.3
podemos ver o esquema desse cdigo.

Figura 4.3 Modelo do codificador turbo no perfurado.

36

Foram gerados quatro grficos para esse modelo de cdigo variando entre eles o
tamanho do entrelaador e a quantidade de iteraes. Nos grficos da Figura 4.4 e 4.5 temos o
mesmo tamanho de entrelaador variando apenas a quantidade de iteraes, podemos
visualizar nos dois grficos o aparecimento do error floor.

Figura 4.4 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 4
iteraes e entrelaador 20 x 1024.

Figura 4.5 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 6
iteraes e entrelaador 20 x 1024.

37

Figura 4.6 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 4
iteraes e entrelaador 100 x 1024.

Figura 4.7 Grfico da simulao do cdigo turbo no perfurado de taxa R = 1/3 com 6
iteraes e entrelaador 100 x 1024.

38

Nos grficos das Figuras 4.6 e 4.7 alteramos o tamanho do entrelaador com isso
podemos visualizar claramente a importncia do entrelaador para a codificao turbo, onde
com o aumento do entrelaador a taxa do BER ultrapassou a faixa de 10-5 chegando a uma
taxa de quase 10-6 com uma SNR de 1dB. No temos mais o aparecimento do error floor e
uma diferena considervel de ganho com o aumento de quatro para seis iteraes, porm se
tem uma desvantagem, o aumento de clculos exigindo um processamento mais demorado.
Para compensar o aumento desse processamento devido ao tamanho do entrelaador
utilizamos o modelo perfurado do cdigo turbo, na Figura 4.8 podemos ver o esquema desse
cdigo. A perfurao como j foi discutido transformar um cdigo de taxa R = 1/3 para um
cdigo de taxa R = , com isso diminui de forma considervel a quantidade de clculos.

Figura 4.8 Modelo do codificador turbo perfurado.

Para o codificador perfurado fora gerados mais quatro grficos tambm variando entre
eles o tamanho do entrelaador e a quantidade de iteraes. Nos grficos da Figura 4.9 e 4.10
temos o mesmo tamanho de entrelaador variando apenas a quantidade de iteraes, e nos
grficos das Figuras 4.11 e 4.12 aumentamos o entrelaador, comprovando mais uma vez a
importncia do entrelaador para a eficincia do cdigo turbo.
Ao compararmos os grficos do cdigo no perfurado com o perfurado percebemos
que apesar dos cdigos perfurados necessitar de menos processamento, perde um pouco em
eficincia, pois os codificador no perfurado consegue atingir o nvel de um BER 10-5 com
um SNR de 1dB, j o perfurado atinge o mesmo valor de BER mas com o SNR acima de 2dB,
uma diferena de fundamental para escolha correta do cdigo ao se desenvolver projetos.

39

Figura 4.9 Grfico da simulao do cdigo turbo perfurado de taxa R = com 4


iteraes e entrelaador 20 x 1024.

Figura 4.10 Grfico da simulao do cdigo turbo perfurado de taxa R = com 6


iteraes e entrelaador 20 x 1024.

40

Figura 4.11 Grfico da simulao do cdigo turbo perfurado de taxa R = com 4


iteraes e entrelaador 100 x 1024.

Figura 4.12 Grfico da simulao do cdigo turbo perfurado de taxa R = com 6


iteraes e entrelaador 100 x 1024.

41

CAPTULO 5
Concluso
Este trabalho teve como objetivo descrever de forma minuciosa o cdigo turbo com
suas principais caractersticas. Atravs de simulaes realizadas com o software Matlab foi
possvel verificar seu desempenho bem como sua fundamental importncia como cdigo
detector e corretor de erro para o avano de uma transmisso digital robusta e confivel.
Podemos analisar que no atual estgio tecnolgico das transmisses digitais, muitas
vezes para um mnimo ganho necessrio um aumento considervel de complexidade dos
sistemas, este aumento se torna aceitvel principalmente por se tratar de sistemas que podem
chegar perto do limite terico de Shannon.
Alguns sistemas de TV digital que ainda no utilizam os sistemas com cdigos turbo
podem ainda ser aperfeioados atravs de tcnicas de correo de erro com realimentao de
informao. Pesquisadores j detectaram que o uso de configuraes com codificadores turbo
nesses sistemas de tem um melhor desempenho, alem de uma proposta inovadora de
concatenao de codificadores para sistemas de TV digital.
Por se tratar de um sistema eficiente do ponto de vista computacional e que pode ser
utilizado com diversas formas de modulaes e variado comprimentos de entrelaadores,
vrias pesquisas j esto sendo realizadas para que o sistema turbo trabalhe juntos com outras
tcnicas para tornar a transmisso ainda mais robusta e confivel, como exemplo o uso de
codificadores turbo com transmisso em mltiplas antenas, tcnica conhecida como MIMO
(multiple input, multiple output), e o desenvolvimento dos cdigos RS-Turbo para
equipamentos mveis confirmando a tendncia de migrao dos futuros padres para o uso
dos algoritmos com decodificao iterativa.

42

REFERNCIAS
[1] M. A. da Cmara e A. O. Souza, Cdigos Corretores de Erros Lineares, Minas Gerais:
FAMAT em Revista, n. 6, mai, 2006.
[2] M. S. Alencar, Televiso Digital, 1a ed. So Paulo: Editora rica, 2007.
[3] C. P. Milies, Breve introduo teoria dos cdigos corretores de erros, Mato Grosso
do Sul: Departamento de Matemtica, UFMS, 2009.
[4] C. Berrou and A. Glavieux, Near optimun error correcting coding and decoding: Turbocode, Estados Unidos: IEEE Transactions on Communiations, vol. 44, n. 10, out, 1996.
[5] M. S. de Souza, Codificao de imagens utilizando turbo quantizao codificada por
trelias, Rio de Janeiro: UFRJ, 2005.
[6] C. Berrou and A. Glavieux, Reflections on the Prize paper: "Near optimum error
correcting coding and decoding: Turbo codes", IEEE IT Society Newsletter, Vol. 48,
N 2, June 1998.
[7] C. E. Sahnnon and W. Weaver, The Mathematical Theory of Communication,
Illinois: Illini Books, 1949. 117 p. Library of Congress Catalog Card n 49-11922.
[8] F. L. Garcia, Implementao de um Codificador LDCP para um sistema de TV Digital
usando ferramentas de prototipagem rpida, So Paulo: Dissertao (mestrado).
Universidade Estadual de Campinas. UNICAMP, 2006.
[9] D. J. C. Junior e S. Lin, Error control coding: Fundamentals and applications, 2. ed.
New Jersey: Pearson Prentice Hall, 2003.
[10] D. G. Caetano, Anlise de Desempemho de Sistemas de TV Digital Mvel DVB-H e
ISDB-T utilizando Concatenao de Cdigos BCH e Turbo Codificadores, Campinas:
Dissertao (mestrado). Universidade Estadual de Campinas. UNICAMP, 2007
[11] S. Haykin, Sistemas de comunicao: analgicos e digitais, 4. ed. Porto Alegre:
Bookman, 2004.
[12] S. Haykin e M. Moher Introduo aos sistemas de comunicao, 2. ed. Porto Alegre:
Bookman, 2008.
[13] P. Elias, Coding for Noisy Channels, IRE Conv. Rec., vol. 3, parte 4, pp.37-46, Maro
de 1955.
[14] J. M. Wozencraft e B. Reiffen, Sequential Decoding, MIT Press, 1961.

43

[15] A. J. Viterbi, Convolutional Codes and Their Performance in Communication Systems,


IEEE Transactions on Communications Technology, vol. COM-19, n 5, pp. 751-772,
Outubro de 1971.
[16] G. D. Forney Jr., Maximum-Likelihood Sequence Estimation of Digital Sequences in
the Presence of Intersymbol Interference, IEEE Transactions on Information Theory,
vol. IT-18, pp. 363-378, Maio de 1972.
[17] G. D. Forney Jr., Convolutional Codes II: Maximum-Likelihood Decoding,
Information and Control, vol. 25, pp. 222-226, Julho de 1974.
[18] D. G. Caetano, Y. Iano e R. Arthur, Performance Comparison of Convolutional and
Turbo Convolutional Codes for ISDB-T in AWG and Brazilian Channels, Fortaleza:
ITS2006 International Telecommunications Symposium, 2006.
[19] T. S. Rappaport, Comunicaes sem fio. Princpios e prticas, 2. ed. So Paulo:
Editora Pretence Hall, 2002.
[20] L. R. Bahl, J. Cocke, F. Jelinek e J. Raviv, Optimal decoding of linear codes for
minimizing symbol error rate, IEEE Transactions on Information Theory, vol. IT-20,
pp. 284-287, Maro de 1974.
[21] A. S. Abrantes, Do algoritmo BCJR decodificao turbo., FEUP, Abril 2004.
[22] R. W. Hamming, Error Detecting and Error Correcting Codes, Bell System Technical
Journal, vol. 29, pp.147-160, Abril de 1950.
[23] T. J. P. Martins, Turbo decodificadores de baixa potencia para comunicao digital
sem fio, Tese de Mestrado, USP, 2004.
[24] C. Berrou, A. Glavieux e P. Thitimajshima, Near Shannon Limit Error-Correcting
Coding and Decoding: Turbo Codes, IEEE International Conference on
Communications (ICC 93), pp. 1064-1070, Genebra, Sua, Maio de 1993.

44

Das könnte Ihnen auch gefallen