Você está na página 1de 11

1

Anlise de desempenho de cdigos corretores convolucionais com puncionamento.


Stoco, Jairo, Silva, F.S.
Graduando em Engenharia de Telecomunicaes do Unisal,
Doutor em Engenharia Eltrica Professor do Unisal

Resumo Este artigo tem como objetivo analisar os


resultados obtidos na transmisso de dados em um
sistema que utiliza um cdigo corretor de erros
convolucional com puncionamento. Foram analisados o
desempenho de diversas taxas de cdigo (atravs da
BER) e da eficincia espectral do cdigo, analisando os
bits de paridade inseridos no sistema. O sistema
analisado baseia-se em um cdigo convolucional
recursivo (com 7 memrias e polinmios geradores
171o e 133o), com taxa base 1/2, puncionado para
diversas taxas (1/2, 2/3, 3/4, 3/5, 4/5 e 7/8). Os
resultados das simulaes mostraram que, conforme a
proporo de bits de mensagem fica maior em relao
aos bits de paridade, nas taxas de cdigo, o sistema
transmite mais bits teis, porm a capacidade de
correo dos erros fica comprometida. Portanto,
sistemas de comunicao que utilizam cdigos
convolucionais devem ser corretamente dimensionados
quanto o seu puncionamento, para que no fiquem
ineficientes, e nem sofram com excesso de erros.
Palavras-chave:
Puncionamento, BER.

Cdigo

convolucional,

Abstract The goal of this paperwork is the analysis of


the results obtained in a digital system of transmission,
using a convolutional code, with puncture. Was
analyzed the performance of many code rates (through
the BER) and of the spectral efficiency by the code,
analysing the parity bits inserted in the system. The
analysed system is based in a recursive convolutional
code (with 7 memories and polynomial generators 171o
and 133o), with base rate 1/2, punctured for many code
rates (1/2, 2/3, 3/4, 3/5, 4/5 and 7/8). The simulation
results shows that, as the proportion of bits message is
higher, compared to the parity bits in the code rates, the
system is capable to transmit more useful bits, however,
the error correction capability is impaired. Therefore,
communication systems that uses convolutional codes
must be correctly dimensioned concerning their
puncture, to avoid that the code becomes inefficient, or
even with more errors than the necessary.

tipos de canais para a transmisso dos dados, como o ar,


a fibra ptica, cabos metlicos, dentre diversos outros.
Devido s muitas variveis que interferem nos canais
utilizados para a transmisso, a mensagem transmitida
invariavelmente chega ao receptor com erros. Estes
erros podem ser causados por interferncias ambientais,
pela distncia entre o transmissor e o receptor, por
multi-percurso do sinal, alm de vrios outros fatores. A
correo dos erros causados por esses fatores
fundamental para a recuperao da mensagem
transmitida, com a melhor qualidade e a menor perda de
dados possveis [2].
A teoria da informao prov os limites fundamentais
no desempenho de um sistema de comunicao, por
meio da especificao do nmero mnimo de bits por
smbolo necessrio para representar completamente a
mensagem transmitida pela fonte, e da especificao da
taxa mxima qual a transmisso da informao pode
ocorrer atravs do canal [3].
Por sua vez, o estudo da codificao para controle de
erros fornece mtodos prticos de transmisso da
informao de uma extremidade do sistema para um
usurio na outra extremidade, a uma taxa e qualidade
que sejam aceitveis. O objetivo da codificao para
controle de erros se aproximar dos limites impostos
pela teoria da informao [3].
Assim sendo, este artigo pretende amparar-se nessas
duas teorias, a fim de projetar um sistema de
comunicao eficiente, e analisar qual a maior taxa de
transmisso possvel, com a melhor qualidade possvel,
atravs da manipulao da taxa de cdigo do sistema, de
acordo com a relao sinal/rudo existente no canal.
Para que se possa atingir esse objetivo, sero
utilizadas algumas ferramentas. Uma delas a
simulao em diversos nveis do SNR (Signal Noise
Rate, ou Relao Sinal Rudo), calculadas pelo software
atravs da alterao dos valores de Eb/No, para que
possam ser traados grficos de desempenho do sistema
em diversas situaes. Sero analisadas tambm a BER
(Bit Error Rate, ou Taxa de Erro de Bit), alm da Taxa
de Cdigo, que representada atravs da relao r =
K/n, O software utilizado ser o Matlab, atravs do
mdulo Simulink.

Keywords: Convolutional code, puncture, BER.


II.
I.

INTRODUO

Um dos grandes problemas enfrentados em qualquer


sistema de telecomunicaes a integridade das
mensagens recebidas aps a transmisso e o percurso
dos dados pelo canal [1]. Podem ser utilizados diversos

PRINCPIOS DA COMUNICAO DIGITAL

Toda informao a ser transmitida provm de uma


fonte. Esse artigo aborda informaes transmitidas por
uma fonte discreta e sem memria, ou seja, todo e
qualquer smbolo emitido ser independente dos
smbolos anteriores [1]. Assim sendo, possvel

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

2
calcular a quantidade de informao transmitida, e essa
quantidade de informao est relacionada a dois
conceitos, o de surpresa ou incerteza [1].
Podemos considerar um evento S = Sk como um
evento que descreve a emisso de um determinado
smbolo (Sk), por uma fonte com uma probabilidade pk,
conforme definido na equao abaixo:
P(S = sk) = pk, k = 0, 1, ...., K 1

(1)

A equao 1 deve satisfazer a seguinte condio:

Porm, para que se entenda o processo da transmisso


e como ele pode ser aprimorado por um bom cdigo,
necessrio um panorama bsico de seu funcionamento e
de todos os seus componentes.
Processo de transmisso e recepo.
Lin [2] resume um sistema de comunicao digital
como no diagrama de blocos da Figura 1. A fonte de
informao que ser transmitida pode ser qualquer dado
ou informao proveniente de uma fonte analgica ou
uma fonte discreta (uma sequncia de smbolos,
formados por 0 e 1).
Figura 1 Diagrama bsico de um sistema de comunicao

Se a probabilidade pk = 1 e pi = 0 para todo i k,


ento no h surpresa, e dessa maneira no haver
nenhuma informao quando da transmisso do smbolo
sk, pois nesse caso possvel saber qual a mensagem a
ser transmitida pela fonte.
Porm, se os smbolos da fonte forem gerados com
probabilidades aleatrias, e a probabilidade de pk for
baixa, haver mais surpresa (e consequentemente mais
informao) quando o smbolo sk for emitido pela fonte,
do que quando o smbolo si, que tem maior
probabilidade, for transmitido (sendo i k) [1].
Em resumo, antes de ocorrer o evento S = Sk, h uma
certa quantidade de incerteza. Quando o evento ocorre,
existe uma quantidade de surpresa. Depois de ocorrido o
evento, existe um ganho na quantidade de informao, o
que se pode considerar como uma resoluo da
incerteza. Por fim, essa quantidade de informao que
produzida pela fonte em um intervalo de tempo
passvel de ser calculada, e ela depende do smbolo sk
emitido pela fonte. I(sk) uma varivel que assume os
valores I(so), I(s1), ...., I(sk-1) e com probabilidades po,
p1, ..., pk-1 respectivamente. A mdia dessa informao
dada por:

A quantidade H (S recebe o nome de entropia, e


a medida do contedo mdio da informao por
smbolo da fonte. Todo o projeto de correo de erros a
ser abordado nesse artigo utilizar a quantidade de
informao transmitida, e, portanto, esse conceito ser
de extrema importncia.
A ideia da utilizao da correo de erros em sistemas
de comunicao surgiu na dcada de 40, quando
Shannon [4] demonstrou em seu artigo A mathematical
theory of Communication, que os erros causados pelos
rudos do canal, em uma informao transmitida, podem
ser reduzidos a qualquer nvel desejado, caso a
informao seja codificada.
Esse estudo abriu caminho para que diversos grupo
de cientistas e pesquisadores buscassem maneiras cada
vez mais eficientes de codificar e decodificar
mensagens transmitidas, a fim de atender cada vez
maior demanda por velocidade e qualidade na
transmisso de dados.

Fonte: Error control coding [2]

O codificador de fonte transforma o sinal de sada da


fonte em uma sequncia binria, que formar a
sequncia de informao denominada (u), sequncia
essa que deve representar corretamente a informao
produzida pela fonte [1][4]. Sendo alguns smbolos da
fonte mais provveis que outros, possvel gerar
palavras-cdigo mais curtas para smbolos mais
provveis, e palavras-cdigo mais longas para smbolos
menos provveis.
Esse processo visa remover a redundncia da
informao gerada pela fonte antes da transmisso,
proporcionando uma representao da sada da fonte
eficiente em nmero mdio de bits por smbolo, a fim
de que se economize recursos importantes do canal,
porm sem nenhuma perda de informao.
A prxima etapa no caminho dos dados o
codificador de canal, que tem vital importncia nesse
projeto, e, portanto, ser melhor detalhado adiante. Sua
funo transformar a sequncia de informao u em
uma sequncia discreta codificada (v), chamada Palavra
Cdigo. A palavra cdigo pode ser criada atravs de
diversas tcnicas, e a tcnica utilizada nesse artigo ser
descrita adiante.
Porm, smbolos discretos no podem ser
transmitidos em canais fsicos, e ento o modulador ir
converter cada smbolo emitido pelo codificador do
canal em uma senide, que ter um tempo de durao de
T segundos, e que possvel de ser transmitida. Essa
forma de onda ser transmitida e ser deformada por
conta do rudo existente em cada tipo de canal.
Aps o modulador o sinal ir percorrer todo o canal
fsico, onde sofrer, at a chegada ao receptor, diversas
influncias externas.

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

3
Do outro lado do sistema, aps o canal, o sinal
recebido e o demodulador processa cada uma das
senides recebidas, produzindo uma sequncia de sadas
que podem ser discretas ou contnuas. Essas sequncias
so correspondentes s sequncias que foram
codificadas no transmissor (v), e recebem o nome de
sequncias recebidas (r).
O decodificador de canal ir transformar essa sequncia
(r) em uma sequncia , que a sequncia estimada. A
estratgia de decodificao depende das caractersticas
de cada canal, e ser parte do objeto de estudo desse
artigo, porm detalhada mais adiante. Idealmente,
seria uma rplica da sequncia de informao u,
entretanto o rudo adicionado ao sinal no canal, durante
a transmisso, poder causar alguns erros de
decodificao [5].
Finalizando o processo de transmisso, o
decodificador de fonte vai transformar a sequncia
estimada em uma estimativa do sinal transmitido pela
fonte de informao. Em um sistema ideal, essa
estimativa ser idntica ao sinal efetivamente
transmitido, apesar das interferncias ocorridas no canal
de transmisso.
Um sistema de comunicao pode ser bastante
complexo, e composto por diversas etapas. Apesar de
citar quais so as etapas de um sistema bsico de
comunicao, esse artigo pretende atentar-se 2 etapas
desse sistema, que so as fundamentais para que possa
se realizar o estudo de eficincia dos cdigos. Essas
etapas sero tratadas separadamente, e so a codificao
de canal e a decodificao de canal, e que sero
oportunamente detalhadas.
Conforme dito anteriormente, a transmisso dos
dados em um sistema real indubitavelmente ir sofrer
alguma perda ou ser corrompida por algum fator externo
durante a passagem pelo canal. Isso significa que bits
sero interpretados no receptor de maneira diferente
com que foram gerados pela fonte de dados.
Alguns sistemas so mais suscetveis a erros que
outros, porm, na maioria das vezes, uma quantidade de
erros de bit de no mximo

10

[1] um fator

suficiente para que haja viabilidade na comunicao, e


isso significa que somente 1 bit em 1 milho poder
conter um erro. Alm desse elevado nvel de preciso, o
sistema deve contar tambm com um elevado nvel de
eficincia, devido a limitao de capacidade do canal,
alm da limitao dos recursos disponveis para a
transmisso
(banda,
hardware,
software
de
processamento). Para efeitos de simulao, esse artigo
ir considerar valores de erro de bit por volta de

105 , sendo que em alguns grficos esse valor pode


ficar levemente acima desse nmero, por conta dos
valores de SNR nos diferentes momentos da simulao.
Em alguns aspectos, um canal de transmisso pode
ser comparado com uma rodovia, que pode, por
exemplo, ter 3 faixas de rodagem. Nessas faixas cabem
um nmero limitado de automveis, devido ao espao
fsico disponvel nas faixas. Se essa rodovia s

comporta a passagem de 10 carros por segundo, essa a


capacidade mxima da rodovia. Assim tambm funciona
com o canal de transmisso, porm ao invs de carros,
ela comporta bits, e tem como unidade de medida de
capacidade o nmero de bits por segundo (bps), e sua
capacidade mxima afetada pela quantidade de rudo
presente.
Para que possa ser alcanado ento o mximo de
confiabilidade, e tambm o mximo de eficincia,
alguns aspectos devem ser observados , e so esses
aspectos que sero tratados a seguir.
Codificao do canal
necessrio que a informao gerada e transmitida
em um sistema seja corretamente recuperada e
apresentada no receptor. Idealmente, um bit transmitido
com o valor 1 deve ser reproduzido com o valor 1,
independentemente de qualquer rudo que haja no canal,
pois seno a informao foi perdida. Para que essa
informao seja recuperada com um elevado grau de
certeza, utiliza-se a codificao de canal, que tem como
objetivo aumentar a imunidade de um sistema de
comunicao digital aos rudos do canal [1][2][3]. Essa
tcnica tem uma especial importncia nesse artigo, pois
ela ser uma das variveis a ser explorada nas
simulaes a ser realizadas no software Matlab
Simulink.
Especificamente, a codificao de canal consiste na
insero de dados de redundncia aos dados gerados
pela fonte, para que, aps passar por um canal ruidoso,
o decodificador tenha a capacidade de reconhecer e
reproduzir corretamente os bits que foram transmitidos,
e caso seja reconhecido algum erro, o sistema possa
fazer as devidas correes. Para a insero desses bits,
para cada k bits de mensagem so produzidos n bits de
sada, os chamados bits de paridade (bits redundantes), e
tem-se ento no total um nmero n de bits, sendo n > k.
A quantidade de bits adicionados ser sempre n k bits.
Dessas quantidades de bits pode-se extrair uma razo
[1]:

r=

k
n

(4)

Essa relao, denominada Taxa de Cdigo, muito


importante, pois atravs da manipulao desses
valores (alterao denominada de puncionamento) que
se alteram as taxas utilizadas no sistema.
Porm, nesse ponto importante notar que existe uma
limitao para a transmisso de um sinal e sua perfeita
reconstituio no receptor, e essa limitao nos
imposta atravs do segundo teorema de Shannon,
conhecido tambm como teorema de codificao do
canal [4].
Suponha-se um canal discreto sem memria, com
uma fonte que possui um alfabeto S com entropia H(

S , que produz smbolos a cada Ts segundos.

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

4
Suponha tambm um canal discreto sem memria, que
possua capacidade C e que seja utilizado uma vez a cada
Tc segundos. Se:

H ( S)
Ts

C
Tc

(5)

Existe, portanto, uma codificao na qual a sada da


fonte pode ser transmitida pelo canal e ser reconstruda
com uma probabilidade de erro muito pequena. Porm,
no caso da relao inversa, no ser possvel reconstruir
o sinal com uma taxa de erros muito pequena, visto que
a capacidade do canal est sendo excedida. Se a relao
tende a se aproximar da igualdade, convencionado
dizer que o sistema est se aproximando da taxa crtica,
que a taxa a partir da qual a probabilidade de erros
passa a no ser arbitrariamente pequena [1].
Em relao capacidade C do canal de transmisso, a
busca sempre para que se haja uma taxa de
transmisso to alta quanto possvel, a uma taxa de erros
mais baixa quanto possvel. Assim sendo, para que seja
respeitada a equao 5, deve-se levar em considerao a
capacidade do canal (em bits por segundo bps) sendo
ela calculada conforme a equao 6 [3][1][6]:

X;
I
C=
max Y)

Figura 2 Tipos de cdigo corretores de erros

(6)

{ p ( Xj ) }

Sendo, na equao:
X - Conhecida como entropia condicional, mede a
quantidade de incerteza que h na informao de
entrada, considerando que a sada conhecida;
Y a quantidade de informao que efetivamente
atravessa o canal.
Porm, ainda que as taxas propostas pelo segundo
teorema sejam respeitadas, devem ser utilizados cdigos
corretores de erros no sistema, para que a mensagem
estimada no receptor seja a mais fidedigna possvel
mensagem transmitida pela fonte.
Basicamente, existem dois tipos de cdigos mais
utilizados para essa correo. So esses os cdigos em
bloco e os cdigos convolucionais [1][6]. Cada um tem
suas especificidades, porm, devido ao cdigo utilizado
na simulao do sistema desse artigo ser o
convolucional, interessante destacar o seu
funcionamento.
III.

informao. Desde que Shannon [4] estabeleceu as


bases tericas para a criao dos cdigos corretores, na
dcada de 40, diversos estudiosos e engenheiros buscam
criar e aperfeioar os cdigos. Essa busca criou duas
vertentes de cdigos, que so os cdigos de bloco e os
cdigos convolucionais [6], e que se subdividem, como
possvel observar na figura 2. O presente trabalho
baseia-se em um cdigo convolucional, e todas as
simulaes utilizaro esse cdigo como referncia.
O cdigo de blocos e o cdigo convolucional
realizam a mesma funo, que adicionar a redundncia
necessria para que possa se recuperar a informao
durante o processo de decodificao. Porm, apesar do
mesmo objetivo, cada um possui seu prprio modus
operandi.

CDIGO CONVOLUCIONAL

Como j dito anteriormente, a funo dos cdigos


corretores de erros nas telecomunicaes identificar e
corrigir possveis mudanas na informao transmitida,
causada por um canal ruidoso, e que levam perda de

Fonte: Cdigos correctores de erros em comunicaes digitais [6].

Enquanto o cdigo de blocos no possui memria e


divide a informao transmitida em blocos, para ento
inserir a redundncia, na proporo demonstrada atravs
da frmula 4, os cdigos convolucionais possuem
memria, e a sada do codificador no dependente
somente da informao de entrada, mas tambm das
ltimas informaes de entradas anteriores.
Um codificador convolucional pode ser lido de
diversas maneiras [6][7]. A seguir sero apresentadas
diversas maneiras de se interpretar um cdigo
convolucional, e a primeira atravs de seu polinmio
gerador, conforme observado nas equaes 7 e 8:
g1(x) =

x 2 +1

g2(x) =

x2 + x + 1

(7)
(8)

Outra maneira bastante usual de representao


atravs de sua tabela verdade, que fornece todos os
possveis valores de sada para cada possvel entrada.
Tabela 1 Tabela-verdade do cdigo.

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

(c)
F
onte:

Fonte: Tcnicas de codificao/recepo para sistemas de


comunicao com espalhamento espectral [7].

Ele tambm pode ser visto em sua estrutura de


somadores (figura 3a), atravs da sua mquina de
estados (figura 3b), ou, por ltimo, em sua trelia,
conforme possvel observar na figura 3c (vale destacar
que na trelia da figura constam todos os possveis
caminhos que os bits podem percorrer partindo do
estado 00, e no somente o caminho percorrido). Todas
as figuras se referem ao mesmo cdigo, porm cada
uma delas utiliza uma representao diferente para
demonstr-lo.
Figura 3 Diferentes representaes de cdigos
convolucionais. (a) - Como somadores e memrias; (b) - Como
mquina de estados; (c) - Como trelia.

Tcnicas de codificao/recepo para sistemas de comunicao com


espalhamento espectral [7].

O codificador em questo composto por um registro


de deslocamento, com duas memrias e tambm dois
somadores mdulo-2, e tem a proporo de 1 para 2
(figura 3a). Isso significa que para cada 1 bit de entrada
haver dois bits de sada. O sistema adiciona esse bit de
redundncia para que no decodificador a informao
possa ser recuperada, e, em caso de erro, causado por
rudo, possa ser corrigida.
Para que esses bits de redundncia sejam gerados, o
codificador ir tratar e codificar os bits de entrada. A
informao u se movimenta da esquerda para a direita
razo de 1 bit por unidade de tempo, e dessa maneira os
somadores mdulo-2 geram duas sequncias codificadas
(

v (1) e v (2) ).

Sendo assim, a cada unidade de tempo i, o bit de


informao que entra no sistema corresponde posio
ui, enquanto os bits de informao passados so
chamados de ui-1 e ui-2, e os bits de sada so chamados
(a)

de

(1)

vi

(2)

vi

. A sada

(1)

vi

mdulo-2 de ui e ui-2 , enquanto a sada

(b)

a soma
(2)

vi

soma mdulo-2 de ui, ui-1 e ui-2. Essa sequncia


codificada ser ento multiplexada e posteriormente
transmitida ao canal.
Importante salientar que o algoritmo de convoluo
utilizado no Matlab tem uma taxa padro, e que se no
for alterada manualmente, tem a proporo de 1/2 (1 bit
de mensagem para 2 bits transmitidos, sendo o segundo
um bit de paridade) [8]. Porm, o algoritmo permite que
se altere a taxa do cdigo, e essa alterao recebe o
nome de puncionamento [6][9].
O puncionamento um mtodo de construo de
cdigos convolucionais que permite taxas de cdigo
mais altas do que as taxas originais. Esses cdigos tm
menor capacidade de correo de erros do que os
cdigos com taxas mais baixas, porm possuem uma
capacidade de transmisso (em bits por segundo) bem
maior do que os cdigos com taxas mais baixas,
proporcionando um melhor aproveitamento do canal [6]
[9]. Essa taxa de puncionamento pode inclusive ser
dinmica, sendo passvel de ser alterada em tempo real.
Tome-se como exemplo uma rede de wi-fi convencional.
Enquanto essa rede no sofre influncia significativa de
rudos, ela pode utilizar uma taxa da ordem de 9/16 (em
redes na faixa dos 5 GHz, de acordo com a norma

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

6
HIPERLAN/2).
Porm, em caso de influncia
excessiva de rudos, a taxa pode ser diminuda para at
1/2, que a taxa padro para esse servio [6]. Essa
alterao na taxa do cdigo feita modificando-se o
vetor de puncionamento do codificador convolucional.
Abaixo possvel entender o funcionamento do vetor de
puncionamento, e como a proporo do cdigo
definida:

-Com entrada em paralelo e circuito combinatrio;


-Com entrada em paralelo e filtros FIR.
O software de simulao utilizado nesse artigo
(Matlab) utiliza a estrutura de bits em paralelo para a
codificao
das
mensagens
[8],
conforme
exemplificado:
Figura 5 Codificador convolucional com entradas em paralelo de

Figura 4 Exemplo de funcionamento de um puncionador para um


vetor de proporo 2/3.

proporo r =

2
3

Fonte: Autores

A figura 4 exemplifica o funcionamento de um


puncionador. O campo Puncture vector, contido no
bloco de ajuste de parmetros do cdigo convolucional,
deve conter o vetor de puncionamento que ser utilizado
para gerar a taxa de cdigo desejada. esse vetor que
define quais bits recebidos sero descartados, e quais
bits permanecero no cdigo, gerando assim a taxa
pretendida. A figura em questo o exemplo da gerao
de uma taxa de cdigo de proporo 2/3, ou seja, 2 bits
de mensagem para cada 3 bits transmitidos, sendo o
terceiro um bit de paridade. Esse bit no contm
nenhuma mensagem, ele somente uma redundncia do
cdigo, e que ser utilizado pelo decodificador para
corrigir um possvel erro. Existe um total de 4 bits no
vetor de puncionamento do exemplo. Se o primeiro bit,
que relativo ao bit de mensagem M0, tiver o valor de
1, isso significa que esse bit de mensagem ser
transmitido. Se o valor for 0, esse bit no ser
transmitido. No exemplo em questo, os bits M0 e M1,
alm do bit P0 (que um bit de paridade) foram
transmitidos, e somente o bit P1 no foi. Nesse caso, 3
bits foram transmitidos no total, sendo 2 deles de
mensagem, e 1 de paridade, e, portanto, a taxa de cdigo
desse sistema ser de 2/3.
Por ltimo, existem 3 maneiras as quais os cdigos
convolucionais podem se estruturar quanto sua
codificao [2]. Essas 3 estruturas levam em
considerao que existem k bits de entrada, e logo aps
so acrescentados os bits de paridade, e que haver,
portanto, n bits na sada. Essas estruturas so:
-Com entrada em srie;

Fonte: Fundamentals of convolutional codes [9].

No diagrama da figura 5 pode-se observar que os k

u(1) , e

bits da mensagem so admitidos esquerda (

u(2) ) aps a sada de um conversor srie/paralelo,


que tem a funo de transformar a sequncia em srie da
chegada
(2)

em
(3 )

(n)

u ,u ,u

sequncias
e

paralelas

(1)

atravs de operaes de

deslocamento e soma em mdulo, so combinados para


formar ento as sadas [6][9]. Esses bits codificados so
ento entregues em paralelo a um conversor P/S
(paralelo-srie), que os transmitir ao canal em srie [6].
Considerando que a cada k bits de entrada so
produzidos n bits na sada, considera-se que o cdigo
tem taxa k/n. Importante relembrar que a sada do
sistema no depende somente dos bits na entrada, mas
sim de todos os kN bits que esto dentro do sistema (na
realidade, de todos os v = k(N-1) bits, considerando o
bit na entrada), e que so chamados de bits de estado,
que nada mais so do que a memria do codificador.
Esses bits de estado podem ser combinados de

maneiras diferentes, e cada uma dessas maneiras define


um estado do codificador. Cada bit de entrada, portanto,
influencia nN bits de sada. Por exemplo, se k=2, n=4 e
N=3, a memria do sistema ter k (N-1) = 4 bits,
possibilitando 16 combinaes diferentes, com cada bit
de entrada influenciando 12 bits na sada.

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

7
Aps todo o processo de codificao, a mensagem
estar melhor preparada para enfrentar os problemas os
quais um canal Gaussiano de rudo branco (AWGN)
pode gerar. Porm, ao chegar ao seu destino, a
mensagem dever ser submetida a um processo de
decodificao, para que a informao, que nesse ponto
somente uma sequncia binria gigantesca e
aparentemente desconexa, possa ser transformada em
uma sequncia binria inteligvel ao sistema que
receber. O agente responsvel pela decodificao da
mensagem, nesse artigo, ser o decodificador de Viterbi
IV.

DECODIFICADOR DE VITERBI

muito importante citar o decodificador de Viterbi,


pois ele representa um componente de fundamental
importncia nesse projeto. responsabilidade dele fazer
a decodificao dos dados que foram transmitidos, e que
invariavelmente chegaro bastante degradados ao
receptor.
A funo do decodificador de Viterbi est
intimamente ligada ao codificador convolucional, pois
ele faz o trabalho inverso do codificador, e tem como
intuito descobrir as sequncias geradas por ele, e ento
reproduzi-las com o mximo de perfeio possvel. Por
exemplo, na trelia, existem diversas possibilidades de
caminhos os quais podem ter sido percorridos pelo
cdigo, no processo de codificao. Cabe ao
decodificador de Viterbi descobrir qual foi o caminho
percorrido, ou o mais prximo possvel desse caminho.
Devido sua eficincia e leveza computacional para
descobrir esses caminhos, o algoritmo de Viterbi recebe
em algumas referncias o adjetivo de decodificador
timo para cdigos convolucionais [10], e por esse
motivo ele bastante usado na indstria de
Telecomunicaes [1][2][3][5][6][9][10].
O processo de decodificao atravs do algoritmo de
Viterbi pode ser feito de duas maneiras distintas,
conhecidas como soft decision ou hard decision, termos
que poderiam ser interpretados como deciso suave ou
deciso bruta.
A deciso suave (soft decision) quando o decisor
(que o sistema que aponta se o bit recebido 1 ou 0)
tem que decidir entre valores reais quantizados (0,8 ,
1,2, 0,3 , etc) para ento decidir se o valor final do bit
ser 0 ou 1 (0,9 seria bit 1, por exemplo, devido
probabilidade). Esse mtodo de decodificao, apesar de
exigir um poder computacional maior, traz ganhos da
ordem de at 2db na potncia necessria de recepo
[11].
A deciso bruta, ao contrrio, precisa escolher entre o
conjunto de nmeros inteiros (positivos ou negativos).
Usualmente, para cdigos convolucionais, esses dois
mtodos de deciso so usados em conjunto, sendo o
soft decision utilizado para o processo decisrio mais
pesado, e o hard decision utilizado no processo final de
decodificao, a fim de entregar os dados binrios ao
sistema receptor [9][11].
O decodificador produzir, durante o seu
funcionamento, milhes de palavras-cdigo. Uma
palavra-cdigo a representao de um dos possveis

caminhos atravs de uma trelia, e que gera como sada


um smbolo, a cada transio entre dois ns [1].
Devido semelhana entre a decodificao de mxima
verossimilhana e a decodificao de distncia mnima
para um canal simtrico (mtodos de decodificao
possvel de ser utilizados, mas que no cabem ser aqui
detalhados), possvel decodificar um cdigo
convolucional atravs de um percurso no cdigo em
trelia que seja diferente da sequncia recebida no
menor nmero de lugares possvel [3].
Esses melhores percursos so chamados de percursos
sobreviventes ou percursos ativos, em detrimento dos
percursos descartados [1]. Nesse artigo, esse clculo
feito atravs da distncia de Hamming entre a sequncia
codificada, representada pelo percurso, e a sequncia
recebida, para o canal binrio simtrico. A simulao
desse artigo utiliza, portanto, a distncia de Hamming,
calculada atravs do nmero de posies em que um
cdigo difere do outro.
Em outras palavras, o algoritmo de Viterbi percorre
toda a trelia, e responsvel por escolher, em cada
n da trelia, qual o percurso de chegada antes
daquele n foi o mais eficiente e com a menor mtrica
(que diferiu menos), o que ir gerar um smbolo a cada
dois ns.
V.

PROPOSTA

Conforme j citado, o software utilizado na simulao


dos diversos cenrios possveis o Matlab, da
companhia Mathworks. Ele foi escolhido devido sua
capacidade de recriar o ambiente de um canal AWGN
com um grau de fidelidade bastante alto, alm de
permitir que sejam alterados diversos parmetros do
codificador e do decodificador. Ele possui duas
interfaces, a interface de programao e a interface
grfica, chamada de Simulink. Optou-se pela utilizao
da interface grfica, na qual possvel uma melhor
visualizao dos parmetros da simulao e seus
resultados.
O sistema utilizado, conforme a figura 6, um
sistema de modulao binria por deslocamento de fase
(do ingls BPSK - Binary Phasing Shift Keying) [1][5].
Ele conta com uma fonte geradora binria de Bernoulli,
que responsvel por criar uma sequncia aleatria de
bits, que sero utilizados como a mensagem a ser
transmitida. Ela gera um frame com um nmero de bits
a ser definido (em funo do puncionamento do cdigo
no momento), a cada tempo amostral.
Figura 6 Esquema do simulador BPSK utilizado.

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

Fonte: Matlab.

Aps a sada da fonte, os dados encaminham-se ao


bloco do codificador convolucional (convolutional
encoder). A funo desse bloco codificar os dados
provenientes da fonte, para ento transmiti-los
posteriormente atravs do canal. nesse bloco tambm
que realizado o puncionamento, que conforme foi
explicado anteriormente, a proporo a qual o cdigo
vai seguir (lembrando do exemplo da figura 4, um
cdigo de proporo 3/4 ter 3 bits de mensagem para
cada 4 bits transmitidos, sendo 1 bit de paridade). O
cdigo utilizado na simulao tem a configurao
poly2trellis (7, [171 133]). O nmero 7 refere-se ao
comprimento de restrio do cdigo (nmero de bits de
estado do cdigo), e os demais nmeros fazem
referncia aos polinmios geradores de cdigo, que so
171o e 133o (em octal) [8].
Na sequncia, adicionado o bloco de modulao.
Para um sinal ser transmitido por um canal, que um
meio fsico, ele deve ser modulado, para que possa
viajar fisicamente de um ponto a outro. O bloco
adicionado ir modular o sinal utilizando o mtodo
BPSK, j citado anteriormente.
Aps a modulao, o sinal efetivamente transmitido
por um canal AWGN, abreviao do ingls Additive
White Gaussian Noise, ou em Portugus, canal de rudo
branco Gaussiano aditivo. Esse um canal que simula
um canal real de transmisso com rudo Gaussiano, que
o rudo encontrado em canais reais [7]. Esse canal
possui diversos parmetros que podem ser controlados,
e dentre eles importante citar o parmetro Eb/N0, que
foi alterado em cada simulao, e atravs de seu valor
que o bloco AWGN do Matlab ir realizar o clculo da
SNR (clculo esse que no ser detalhado, pois os dados
esto em funo de Eb/N0).
Importante salientar que esse rudo AWGN fornece
um sinal complexo, composto por uma parte real e uma
parte imaginria. Essa componente imaginria
removida do sistema, logo aps a sada do canal. Essa
remoo ocasiona a perda da metade da potncia do
rudo, o que causa uma perda de 3db no sinal final. Nos
grficos da simulao essa perda j foi considerada,

portanto os valores so referentes ao sinal j


descontados os 3db de potncia.
Aps a remoo da parte imaginria, o sinal
encaminhado ento para o bloco do decodificador de
Viterbi. Ele o responsvel por receber a imensa
sequncia de bits, tanto os corretos como os que
possuem erros, devido ao rudo do canal, e ento
decodific-los, para que possam ser corrigidos e
entregues ao mdulo responsvel pelo clculo de taxa
de erro. Esse mdulo faz o clculo do nmero de erros
ocorridos, dividido pela quantidade de bits transmitidos,
gerando assim a taxa de erros do sistema (BER), que
pde ento ser analisada na sequncia, atravs dos
grficos.
Os parmetros utilizados para a simulao so vrios,
porm os mais importantes para a anlise dos resultados
e a produo dos dados foram Eb/N0 e os vetores de
puncionamento. Os valores de Eb/N0 partiram do maior
valor possvel para uma transmisso sem erros (sendo o
maior de 13 db), ou seja, uma relao maior do sinal
sobre o rudo, e foram at o menor valor possvel (por
volta de 0 db) onde o sinal j era praticamente
impossvel de ser decodificado, por conta do rudo
excessivo.
O segundo parmetro utilizado foi a taxa de cdigo,
obtida atravs do vetor de puncionamento, conforme
exemplificado na figura 4. As taxas de cdigo utilizadas
foram 1/2, 2/3, 3/4, 3/5, 4/5 e 7/8. Para que essas taxas
fossem simuladas, foi necessrio a mudana dos vetores
de puncionamento do sistema para cada taxa de cdigo
desejada. Para cada vetor de puncionamento tambm foi
necessrio ajustar o nmero de amostras por frame
produzidas pela fonte de Bernoulli.
Outros parmetros tambm foram alterados e
merecem ser citados, como por exemplo o nmero de
bits utilizados para cada simulao (1x

106 , ou 1

milho) e o nmero mximo aceitvel de erros, que


definia o fim da simulao (valor de 1x

104

ou 10

mil), ambos para efeitos de preciso dos resultados. Os


demais parmetros da simulao, apesar de tambm
produzir efeitos importantes nos resultados, no fazem
parte do objeto de estudo desse artigo.
VI.

ANLISE DOS RESULTADOS

Foi possvel observar que, de acordo com o aumento


da taxa de puncionamento do sistema, houve uma piora
significativa dos resultados na taxa de erros em todos os
nveis de Eb/N0 simulados. Desde os valores mais altos,
que variaram na faixa de 7 a 13 db, at os menores
valores (prximos de zero), o comportamento dos
cdigos seguiu a mesma lgica, de ter sua capacidade de
correo de erros prejudicada, quanto maior era a
proporo de bits de mensagem em detrimento dos bits
de paridade. Ou seja, conforme a proporo entre o
nmero de bits de mensagem e os bits de paridade
aumenta, a taxa de erros do sistema tambm aumenta,
conforme possvel observar nas simulaes realizadas
(figuras de 7 a 12):

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

Figura 7 Grfico para taxa de cdigo 1/2

Fonte: Autores
Fonte: Autores

Figura 11 Grfico para taxa de cdigo 4/5

Figura 8 Grfico para taxa de cdigo 2/3

Fonte: Autores

Fonte: Autores

Figura 12 Grfico para taxa de cdigo 7/8

Figura 9 Grfico para taxa de cdigo 3/4

Fonte: Autores
Fonte: Autores
Figura 10 Grfico para taxa de cdigo 3/5

Esse efeito ocorre, pois, quanto maior a quantidade


de bits transmitidos, mais difcil fica a deteco e
correo dos erros. Tome-se como exemplo a taxa de
cdigo 7/8, expressa na figura 12. Existe somente 1 bit
de paridade para encontrar um possvel erro dentre
outros 7 bits, tarefa que mais difcil do que na taxa de

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

10
1/2, por exemplo, onde o bit de paridade tem que
procurar e corrigir o erro em somente outro bit.
Atravs da anlise dos grficos de cada uma das
simulaes em separado, possvel observar que, a
princpio, o comportamento das diversas taxas de
cdigo simuladas bastante parecido. Porm, uma
observao mais detalhada, e no mesmo grfico, revela
diferenas importantes em seus resultados, como mostra
a figura 13. Ela traz todas as curvas de desempenho em
uma mesma escala, e ento possvel observar as
diferenas entre cada uma das taxas simuladas:
Figura 13 Comparativo de desempenho

Fonte: Autores

Em se tratando da eficincia na remoo dos erros,


bastante claro que as taxas menores so mais eficientes,
pois a quantidade de bits de mensagem menor em
relao ao nmero dos bits de paridade, que auxiliam na
correo dos erros. Porm no somente a eficincia na
correo dos erros que deve ser considerada, mas
tambm a eficincia quanto ocupao da banda, ou do
canal.
Uma taxa de cdigo com um nmero maior de bits de
paridade ser capaz de transmitir menos informao til
pelo canal, pois estar ocupando uma quantidade de
banda maior com bits de paridade, que no carregam
nenhuma mensagem, usados somente para a correo
dos erros. A garantia de recepo com qualidade maior
para taxas como 1/2, por exemplo, porm a taxa de bits
transmitida ser menor, devido a capacidade do canal
estar ocupada com mais bits de paridade. o preo a se
pagar a fim de obter uma maior qualidade e menor taxa
de erros, e esse preo pode ser chamado de eficincia
espectral. Quanto maior a eficincia espectral do canal,
menor a capacidade de correo dos erros. possvel
observar essas comparaes na tabela 2, que faz uma
comparao do nvel de proteo contra rudos versus
quantidade de banda consumida por bits de paridade e
eficincia espectral:

Tabela 2 Comparativo BER x Eficincia espectral

Fonte: Autores

Com um Eb/N0 de 6db, a taxa de 1/2 87% mais


eficiente que o cdigo 2/3 na correo de erros, que por
sua vez 74% mais eficiente do que o cdigo de taxa
3/4. Esse, por sua vez, 51% mais eficiente do que o
cdigo 4/5. Finalizando, o cdigo 4/5 78% mais
eficiente do que o cdigo de taxa 7/8. Porm, como
possvel observar, os cdigos menos eficientes na
correo de erros consomem uma porcentagem de
banda muito menor com bits de paridade, em detrimento
da sua menor capacidade de correo de erros, e,
portanto, so mais eficientes na quantidade de
informao til transmitida.
Sendo assim, fica claro que, para atingir-se uma taxa
de correo de erros eficiente, porm com um bom
aproveitamento do canal, deve haver um correto
balanceamento da taxa de cdigo, o que exemplificado
na figura 14.
Figura 14 BER 3/4 x BER 3/5

Fonte: Autores

Na figura 14 possvel comparar o desempenho dos


cdigos com taxa de bits 3/4 e 3/5. O primeiro, de 3/4,
apresenta uma BER de 0,01577 considerando um Eb/N0
de 6db, e consome 25% da banda com os bits de
paridade. O cdigo de taxa 3/5, na mesma SNR,
apresenta uma BER de 0,002046, consumindo 40% da
banda com bits de paridade. Resumindo, o cdigo 3/5
consome 15% a mais de banda do que o cdigo 3/4,
porm ele 7,7 vezes mais eficiente na correo dos
erros.
Outra comparao interessante entre os cdigos,
utilizando a figura 14, revela que a uma taxa de cdigo
de 3/5 (que consome 40% da banda com bits de

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015

11
paridade), a BER fica em 0,002046. Esse valor
praticamente a metade da taxa de um cdigo de
proporo 2/3 (que tem uma BER de 0,004093 e
consome 33% da banda com bits de paridade),
conforme a tabela 2. Ou seja, um cdigo de taxa 3/5
50% mais eficiente na correo de erros e consome
somente 7% mais banda do que um cdigo de taxa 2/3.
VII.

CONCLUSO

Atravs desse artigo foi possvel observar que a taxa


de cdigo deve ser definida pelo projetista do sistema,
de acordo com a aplicao a ser utilizada. Para sistemas
que exigem alta taxa de confiabilidade e baixa taxa de
transmisso, pode ser utilizada uma taxa de cdigo 1/2,
por exemplo. Para sistemas que exigem alta taxa de
transmisso, mas que suporta melhor os erros, uma taxa
de 7/8 pode ser utilizada.
Essa uma ferramenta bastante importante no projeto
de um sistema de transmisso digital, a fim de tornar o
sistema mais robusto e resistente a interferncias as
quais ele estar exposto no canal, mas tambm para
determinar a taxa de transmisso mais adequada
capacidade do canal.
Como sugesto para futuros trabalhos, ou mesmo
para a continuao desse artigo, pode ser realizado um
sistema de puncionamento automtico e dinmico, que
seja capaz de ajustar a taxa de puncionamento conforme
a exigncia do canal, do sistema, ou mesmo conforme a
exigncia de um sistema com prioridades pr-definidas.
REFERNCIAS
[1] HAYKIN, Simon; Sistemas de comunicao. 5.
Ed. Porto Alegre: Bookman, 2011. p. 442

[2] LIN, Shu; COSTELLO, Daniel J. Error control


coding. 1. ed. Englewood Cliffs: Prentice-Hall,
1983
[3] HAYKIN, Simon; VAN VEEN, Barry. Sinais e
sistemas. 4. ed. Porto Alegre: Bookman, 2001
[4] SHANON, C.E. A Mathematical theory of
communication. The Bell System technical
Journal, 1948.
[5] LATHI, B.P; Modern digital and analog
communication systems. 3. Ed. New York:
Oxford University Press Inc, 1998.
[6] ABRANTES, Slvio; Cdigos correctores de
erros em comunicaes digitais. 1. ed. Porto:
Norprint, 2010.
[7] DE ALMEIDA SERRAZINA, Marcos Paulo;
Tcnicas de codificao/recepo para sistemas
de comunicao com espalhamento espectral.
Universidade Nova de Lisboa, 2006.
[8] MATLAB Reference guide. The Math works Inc.
http://www.mathworks.com/help/comm/ref/poly2tr
ellis.html. Acesso em 16/09/2015.
[9] JOHANNESSON, Rolf; Sh. ZIGANGIROV,
Kamil; Fundamentals of convolutional coding.
2. ed. Hoboken: John Wiley & Sons, 2015.
[10] PROAKIS, John G.; SALEHI, Masoud;
Communication Systems Engineering. 2. Ed.
New Jersey: Prentice-Hall, 2002.
[11] MAZDA, Fraidoon F.; Telecommunications
engineers reference book. Oxford: ButterworthHeinemann, 1993.

TCC Anlise de desempenho de cdigos corretores convolucionais com puncionamento, 10 semestre/5 ano, 2015