You are on page 1of 262

Departamento de Engenharia Electrotcnica e de Computadores

Apontamentos de
T
T
e
e
o
o
r
r
i
i
a
a
d
d
a
a
I
I
n
n
f
f
o
o
r
r
m
m
a
a

o
o


Slvio A. Abrantes

2003
1. Shannon e a Teoria da Informao
1.1. Introduo e perspectiva histrica
1.2. Medidas de informao: incerteza, entropia,
informao mtua mdia e capacidade de canal
1.3. Teorema da codificao de canal: ritmo de
informao, teorema da codificao de canal,
codificao de fonte, redundncia
1.4. Teorema da codificao de fonte: cdigos
unicamente descodificveis, cdigos de prefixao,
desigualdade de Kraft-McMillan, teorema da
codificao de fonte, extenses
1.5. Cdigos de fonte para compresso de dados:
tcnicas de compresso sem perdas, cdigos
baseados em modelos estatsticos e em dicionrios:
cdigo de Shannon-Fano, cdigo de Huffman,
cdigo aritmtico, cdigo de Lempel-Ziv (L-Z)
1.6. Fontes e canais contnuos: entropia diferencial,
teorema da capacidade de canal (lei de
Shannon-Hartley), limite de Shannon, plano da
probabilidade de erro e plano da eficincia em
largura de banda
2. Codificao para correco de
erros

2.1. Introduo
2.2. Tcnicas ARQ
2.3. Cdigos de blocos
2.4. Cdigos cclicos
2.5. Cdigos convolucionais
2.6. Cdigos entrelaados e concatenados

1
1
.
.
1
1
.
.
I
I
n
n
t
t
r
r
o
o
d
d
u
u

o
o
e
e
p
p
e
e
r
r
s
s
p
p
e
e
c
c
t
t
i
i
v
v
a
a
h
h
i
i
s
s
t
t

r
r
i
i
c
c
a
a

Teoria da Informao Introduo e perspectiva histrica 1
Shannon e a Teoria da Informao

Teoria da Informao Introduo e perspectiva histrica 2
Introduo
Uma teoria geral da comunicao necessria para adquirirmos uma viso
mais ampla, uma perspectiva mais vasta, que conduza aos princpios
bsicos do projecto e comparao de sistemas de comunicaes.
A Teoria da Informao uma disciplina centrada volta de uma
abordagem matemtica comum ao estudo do armazenamento e
manipulao da informao. Como tal, fornece uma base terica para
actividades como:
observao, medida, compresso e armazenamento de dados
telecomunicaes
estimao
tomada de decises
reconhecimento de padres.
Relativamente s telecomunicaes, a Teoria da Informao
fornece-nos pistas para melhorar a eficincia da comunicao, com base
no estudo das possibilidades e limitaes inerentes s leis fsicas.
A Codificao (de fonte e de canal) uma forma de melhorar a eficincia da comunicao.
estabelece limites para essa eficincia, em relao aos quais poderemos
comparar diversos sistemas.
Teoria da Informao Introduo e perspectiva histrica 3
Introduo
A Teoria da Informao uma teoria matemtica que trata de trs
conceitos bsicos:
A medida da informao.
A capacidade de um canal de comunicaes transferir informao.
A codificao, como meio de utilizar os canais com toda a sua
capacidade.
Estes trs conceitos esto ligados pelo que se pode chamar o

Teorema Fundamental da Teoria da Informao (de Shannon):
Dada uma fonte de informao e um canal de comunicao, existe uma
tcnica de codificao tal que a informao pode ser transmitida atravs
do canal a qualquer ritmo inferior capacidade do canal e com uma
frequncia de erros arbitrariamente pequena apesar da presena do
rudo.

O aspecto surpreendente deste teorema a transmisso sem erros
atravs de um canal ruidoso, uma condio que obtida atravs de
codificao adequada.
A codificao usada para adaptar a fonte e o canal para a mxima
transferncia fivel de informao.
Teoria da Informao Introduo e perspectiva histrica 4
Introduo

A Teoria da Informao tenta responder a perguntas do gnero:

O que a informao? Como a medimos?
Quais so os limites fundamentais transmisso de informao?
Quais so os limites fundamentais extraco de informao do meio
ambiente?
Como que se devem projectar dispositivos ou equipamentos que se
aproximem desses limites?
Os dispositivos e equipamentos actuais aproximam-se, ou no, desses
limites?
Teoria da Informao Introduo e perspectiva histrica 5
Perspectiva histrica
Prenncios remotos da Teoria da Informao: cdigo Morse (Samuel
Morse, 1832-1838).
As primeiras tentativas para definir uma medida de informao foram
feitas pelos tericos da comunicao H. Nyquist (telegrafia e critrios de
Nyquist 1924-1928) e Hartley (1928) e pelo estatstico R. Fisher
(1925).
Hartley definiu pela primeira vez a quantidade de informao como
logaritmo do nmero de smbolos ou mensagens.
O assunto s tomou a sua forma actual aps os trabalhos de Claude
Shannon (1948), Wiener (1948) e Kotelnikov (1947). Dos trs foi
Shannon quem estabeleceu os fundamentos mais importantes e
genricos da teoria, no seu artigo "The Mathematical Theory of
Communication" (Bell System Technical Journal, Julho '48 e Outubro '48),
considerado a base da moderna teoria da comunicao.
Durante a 2 Guerra Mundial:
* N. Wiener (U.S.A.) e A. Kolmogoroff (U.R.S.S.)
Apresentaram independentemente a soluo para alguns problemas relacionados
com a influncia do rudo sobre os sinais de radar, de modo que estes fossem
convenientemente detectados com vista exacta localizao dos avies inimigos.
* Claude Shannon (U.S.A.) criptografia
Tendo comeado por considerar as vantagens relativas de muitos sistemas de
comunicaes novos na poca (PCM), procurou um mtodo geral de comparao
dos seus mritos. Revelando uma percepo notvel baseada largamente em
consideraes heursticas, Shannon procurou uma teoria bsica para a
comunicao atravs de canais ruidosos.
Outras contribuies: Hamming (1950), Feinstein (1954), Fano (1952,
1961), Elias (1954, 1963), Berlekamp (1964), Gallager (1965), Viterbi
(1967), Massey (1969), Cover (1972), Slepian & Wolf (1973), Blahut
(1977).
Teoria da Informao Introduo e perspectiva histrica 6
Perspectiva histrica
Norbert Wiener ("Cybernetics: Control and Communication in the Animal
and the Machine", 1948) colocou a seguinte questo:
Dado um conjunto de sinais possveis que no so da nossa escolha, mais o rudo
(inevitvel), como que faremos a melhor estimativa dos valores presentes e futuros
do sinal recebido?
Estamos no mbito da Teoria da Deteco, onde as solues ptimas para este
problema e outros semelhantes so procuradas.

O trabalho de Shannon est mais relacionado com o que habitualmente
achamos que a comunicao, onde o processamento do sinal se pode
fazer tanto no emissor como no receptor.
Shannon colocou esta questo:
Dado o conjunto de mensagens possveis que uma fonte pode produzir e que no so
da nossa escolha, como que as mensagens devero ser representadas para que
melhor transmitam a informao num dado sistema com as suas limitaes fsicas
inerentes?
Para tratar deste problema em termos genricos necessrio
concentrarmo-nos mais na informao que nos sinais
Teoria da Informao Introduo e perspectiva histrica 7

1
1
.
.
2
2
.
.
M
M
e
e
d
d
i
i
d
d
a
a
s
s
d
d
e
e
i
i
n
n
f
f
o
o
r
r
m
m
a
a

o
o


Incerteza
Entropia
Informao mtua mdia
Capacidade de canal
Medida da informao

Informao tudo aquilo que produzido por uma fonte para ser
transferido para o utilizador.
No que respeita medida da informao podemos considerar dois pontos
de vista:
UTILIZADOR a medida da informao est relacionada com incerteza
(em relao mensagem a ser transmitida).
FONTE a medida da informao uma indicao da liberdade de
escolha exercida pela fonte ao seleccionar uma mensagem.

Se a fonte puder escolher livremente entre muitas mensagens
diferentes o utilizador ter muitas dvidas em relao
mensagem que vai ser escolhida.
Se no houver nenhuma possibilidade de escolha ( s uma
mensagem possvel) no h incerteza no h informao.
Teoria da Informao Medidas de informao 2
Medida da informao
A medida da informao envolve probabilidades
Informao (ou auto-informao):

1
( ) log log
A A A
b
A
b
I f P P
P
= = = (0 P
A
1)
Se b = 2 bit
b = e nat
b = 10 hartley
Um dgito binrio (0 e 1) pode transportar uma informao superior ou
inferior a 1 bit, consoante as probabilidades de ocorrncia de cada dgito.
Esta medida logartmica de informao a nica funo que satisfaz as
seguintes propriedades:
1) I
i
0 para 0 P
i
1 (a auto-informao no-negativa)
2) I
i
0 para P
i
1 (a incerteza aumenta a informao)
3) I
i
> I
j
para P
i
< P
j
4) com mensagens independentes x
i
e y
j
( P(x
i
y
j
) = P
i
P
j
)

2 2 2
1 1 1
log log log
ij i j
i j i j
I I I
PP P P
= = + = +


(a informao total a soma das informaes individuais)
EXEMPLO:
0
1
4
= P ;
1
3
4
P =
Informao transportada pelo dgito 0:
0 2
1
log 2
4
I = = bits
Informao transportada pelo dgito 1:
1 2
3
log 0, 41
4
I = = bits
Teoria da Informao Medidas de informao 3
Entropia (ou informao mdia)
Auto-informao definida em termos das mensagens ou smbolos
individuais.
Informao mdia (entropia) definida em termos do conjunto das
mensagens que a fonte pode produzir.
Seja uma fonte discreta X com M smbolos diferentes e estatisticamente
independentes.
Quando o smbolo de ordem j transmitido a informao transportada
2
log
j j
I P = bits.
A informao mdia associada aos M smbolos da fonte X a mdia
ponderada das auto-informaes de cada smbolo. A essa informao
mdia por smbolo da fonte chama-se entropia e designa-se por H(X):
( )
2
1 1
log
M M
j j j j
j j
H X P I P
= =
= =

P

bits/smbolo
O que que significa a entropia de uma fonte
1
? Significa que:
Embora no possamos prever qual o smbolo que a fonte ir
produzir a seguir, em mdia esperamos obter H bits de informao
por smbolo, ou NH bits numa mensagem de N smbolos, se N for
elevado.

1
Em Fsica Estatstica a entropia de um sistema fsico definida por S = k ln , em que k a constante de Boltzmann
e o nmero de estados acessveis ao sistema. Esta funo, que fornece uma medida quantitativa do grau de
casualidade do sistema, semelhante na forma entropia da Teoria da Informao.
Teoria da Informao Medidas de informao 4
Entropia
Vamos reescrever a frmula da entropia como
( ,
1 2 2
1
, , ) log
M
M j
j
j
H P P P P P
=
=

(bits/smbolo)
No caso de uma fonte ou mensagem binria com 2 sadas possveis, com
probabilidades p e 1-p, a entropia designada por (p) e vale

2 2
( ) ( ,1 ) log (1 )log (1 ) p H p p p p p p = =
0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
(p)

Entropia de uma fonte binria
De modo geral, com um alfabeto de M smbolos tem-se
O H
2
( ) log X M

A fonte no fornece informao, em
mdia no h incerteza quanto
mensagem.
Mxima incerteza ou mxima liberdade de
escolha todos os smbolos so
equiprovveis (nenhum favorecido).
Ex.: a fonte produz continuamente o
mesmo smbolo (todas as
probabilidades dos smbolos so
nulas excepto uma, unitria)
Ex.:
P
j
=
M
1
H = H
max
=
= P
1
I
1
+ P
2
I
2
+= MP
j
I
j
= log
2
M

Teoria da Informao Medidas de informao 5
Entropia Exemplos

EXEMPLO 1
Qual a informao mdia, em bits/carcter, da lngua portuguesa (23
letras) supondo cada letra equiprovvel?
R.:
1
log 4,52
23
H = = bits /carcter Limite Superior


EXEMPLO 2
Na realidade as letras no so equiprovveis. Admitindo (ADMITINDO...) que
as letras ocorrem com as probabilidades indicadas, quanto vale a entropia?
A, E, O, T: p = 0,10
H, I, N, R, S: p = 0,07
C, D, F, L, M, P, U: p = 0,02
B, G, J, Q, V, X, Z: p = 0,01
R.:

2 2 2 2
(4 0,10log 0,1 5 0, 07log 0, 07 7 0, 02log 0, 02 7 0, 01log 0, 01)
3, 92 bits/carcter
H = + + + =
=
Teoria da Informao Medidas de informao 6
Entropia mxima
Teorema
A entropia ) ( X H de uma fonte respeita sempre . O valor
mximo atinge-se apenas quando todas as sadas da fonte so
equiprovveis.
M X H
2
log ) ( 0
Demonstrao
A demonstrao baseia-se na desigualdade
1 ln x x
. Seja
i
i
Q
P
= , em que
Q
i
e P
i
so probabilidades discretas vlidas, isto ,
P Q
1 1
, 0 e 1
M M
i i i i
i i
P Q
= =
=

=
1
Sendo ento
ln
, teremos:
x x
ln 1
i i
i i
Q Q
P P
, ou ln ln
i i i i i
P P Q P P Q
i
i
z
i
Q
Somando para todos os ii:

1 1 1 1
ln ln
M M M M
i i i i i
i i i i
P P Q P P Q
= = = =


Mas

e ln . Portanto,
1 1
1 1 0
M M
i i
i i
Q P
= =
= =
2
ln 2 log z =


2 2
1 1
ln 2 log ln 2 log
M M
i i i
i i
P P P
= =

2
1
( ) log
M
i i
i
H X P Q
=

Isto vlido para todos os valores de Q


i
, incluindo
1
i
Q
M
= (porque no?).

2 2
1 1
1
( ) log log log
M M
i
i i
H X P M P M
M
= =
= =
2 i
. c.q.d.
Teoria da Informao Medidas de informao 7
Exemplo:
informao contida numa imagem
de televiso e em texto
Televiso (com Independncia entre Smbolos)
Linhas activas: 575
Pontos de ecr: 350 000 608 pontos/linha 608 575 = 349 600 pontos
Informao mdia (entropia) mxima:
(Preto e Branco, m = 8 nveis de luminncia por "spot" (nveis equiprovveis))
1 8
2
log 3 = bits
(A Cores ( vermelho, verde, azul))
m = 8 3 = 24 entropia mxima: 1 24
2
log 4, 58 = bits
Em cada imagem: Preto & Branco: 3349 600 = 1 048 800 bits/imagem
A cores: 4,58 349 600 = 1 601 973 bits/imagem
Projeco da imagem (50 quadros/s 25 imagens/s)
Preto e Branco: 25 1 048 800 = 26 220 000 bit/s
A cores: 25 1 601 973 = 40 049 312 bits/s

Texto (letras equiprovveis)
Portugus: 23 letras + espao auto-informao mxima :
1
log 4, 58
24
= bits
comprimento mdio de cada palavra = 23
Contedo de informao por palavra (entropia): 23 4,58 = 105,4 bits/palavra
Comparando com uma imagem a Preto e Branco, uma descrio impressa
necessitaria de
1048800
9951
105, 4
palavras.
Russo: 33 letras + espao 33 log 34 = 33 5,1 = 168,3 bits/palavra 6232 palavras
Ingls: 26 letras + espao 26 log 27 = 26 4,8 = 124,8 bits/palavra 8404 palavras
Teoria da Informao Medidas de informao 8
Caracterizao de canais
Consideremos um canal com M entradas seleccionadas de um alfabeto X e N
sadas seleccionadas de um alfabeto Y. Podemos encarar a sada do canal
como a verso ruidosa da entrada.
costume caracterizar o canal de duas maneiras:
atravs do diagrama de transio
atravs da matriz de probabilidades de transio (ou matriz do canal)

X Y

x
1
p(y
1
|x
2
)
p(y
4
|x
4
)
x
2
x
3
x
4
x
M
y
1
y
2
y
3
y
4
y
N

Diagrama de transio do canal
1 1 2 1 1
1 2 2 2 2
1 2
( | ) ( | ) ( | )
( | ) ( | ) ( | )
[ ( | )]
( | ) ( | ) ( | )
N
N
M M N M
p y x p y x p y x
p y x p y x p y x
P Y X
p y x p y x p y x

(
(

(
=
(
(



Matriz de probabilidades de transio do canal
Nesta matriz cada linha est associada ao correspondente smbolo de
entrada e cada coluna est associada ao correspondente smbolo de
sada.
A soma dos elementos de cada linha 1: ( | )
j i
j
p y x =1


Teoria da Informao Medidas de informao 9
Simplificao de canais discretos
compostos

x
0

x
1

y
0

y
1

w
0
w
1
w
2
p(w
0
|x
0
)
p(w
2
|x
0
)

A partir das matrizes de transio:
A matriz de transio global igual ao produto das matrizes de
transio individuais.
Exemplo:

[ ]
0, 2 0,3 0,5
( | )
0, 4 0,5 0,1
P W X
(
=
(

[ ]
0, 6 0, 4
( | ) 0,5 0,5
0, 7 0,3
P Y W
(
(
=
(
(



[ ] [ ] [ ]
0, 62 0,38
( | ) ( | ) ( | )
0,56 0, 44
P Y X P W X P Y W
(
= =
(


A partir de um diagrama de probabilidades de transio:
As probabilidades condicionais (
j i
) p y x (x
i
entrada; y
j
sada) so
iguais soma das probabilidades associadas aos diversos trajectos de
x
i
para y
j
.


Teoria da Informao Medidas de informao 10
Simplificao de canais discretos
compostos: exemplo
Exemplo com o diagrama de probabilidades de transio: como
simplificar o canal composto seguinte?

x
0

x
1

y
0

y
1

w
0
w
1
w
2
p(w
0
|x
0
)
p(w
2
|x
0
)

H dois percursos de x
0
para y
0
: x
0
w
0
y
0
e x
0
w
1
y
0


0 0 0 0 1 0
0 0 0 0 0 0 1 0 0 1
( | ) ( | ) ( | ) ( | ) ( |
x w y x w y
P y x P w x P y w P w x P y w

= +

)
H dois percursos de x
1
para y
0
: x
1
w
0
y
0
e x
1
w
1
y
0


0 1 0 1 0 0 1 1 0 1
( | ) ( | ) ( | ) ( | ) ( | ) P y x P w x P y w P w x P y w = +
H trs percursos de x
0
para y
1
:
x
0
w
0
y
1
, x
0
w
1
y
1
e x
0
w
2
y
1

1 0
( | ) P y x a soma das probabilidades associadas aos trs percursos,
etc.
O resultado final seria o canal binrio seguinte:
x
0
x
1
y
0
y
1
p(y
0
|x
0
)
p(y
1
|x
1
)
p(y
1
|x
0
)
p(y
0
|x
1
)

Teoria da Informao Medidas de informao 11
Entropia Condicional
Admitamos que h dois acontecimentos, X e Y, com M possibilidades para X
e N para Y. Seja a probabilidade conjunta da ocorrncia ( , ( , )
i j
P x y )
i j
x y e
( | )
j i
P y x a probabilidade condicional de
j
y ocorrer dado
i
x ter ocorrido.

X Y

x
1
p(y
1
|x
2
)
p(y
4
|x
4
)
x
2
x
3
x
4
x
M
y
1
y
2
y
3
y
4
y
N

A entropia condicional de Y dada a ocorrncia
i
x definida como

2
1 1
1
( | ) log ( | ) log ( | )
2
( | )
( | ), ( | ), , ( | )
1 2
( | )
N N
j i j i
j j
P y x P y x P y x
j i
P y x
j i
H P y x P y x P y x
i i N i
H Y x
i
= =
=
(
=

= =


As probabilidades condicionais envolvidas so as dos ramos que saem de
i
x .
A entropia condicional de Y dado X definida como a mdia ponderada
de para todos os valores de ( | )
i
H Y x
i
x :
entropia condicional
1
1 1
( ) ( | )
( ) ( | ) log ( | )
( | )
M
i i
i
M N
i j i j
i j
P x H Y x
P x P y x P y x
H Y X
=
= =
=
=
=

i
A entropia conjunta de X e Y dada por

1 1
1
( , ) log
2
( , )
( , )
M N
i j
P x y
i j
P x y
i j
H X Y
= =
=

entropia conjunta
Prova-se que . ( , ) ( ) ( ) H X Y H X H Y +
Teoria da Informao Medidas de informao 12
Entropia Condicional
P.: Qual a relao entre a entropia conjunta e a entropia
condicional ?
( , ) H X Y
( | ) H Y X
R.: Como P x (regra de Bayes) ento ( , ) ( ) ( | )
i j i j i
y P x P y x =

2
1 1
2 2
1 1 1 1
1
( , ) ( ) ( | ) log
( ) ( | )
( ) ( | ) log ( ) ( ) ( | ) log ( |
M N
i j i
i j i i j
M N M N
i j i i i j i j
i j i j
H X Y P x P y x
P x P y x
P x P y x P x P x P y x P y x
= =
= = = =
= =
=


)
i
2
x
=

Mas

2 2
1 1
1
( ) ( | ) log ( ) ( ) log ( ) ( | ) ( ) log ( )
N N
i j i i i i j i i i
j j
P x P y x P x P x P x P y x P x P
= =
= =


2
1 1 1
( ) ( | ) log ( | ) ( ) ( | ) ( | )
M N M
i j i j i i i
i j i
P x P y x P y x P x H Y x H Y X
= = =
=


2
1
( , ) ( ) log ( ) ( | )
( ) ( | )
M
i i
i
H X Y P x P x H Y X
H X H Y X
=
= + =
= +

Se os smbolos forem independentes ( , ) ( ) ( ) H X Y H X H Y = +


Do mesmo modo se provaria que ( , ) ( ) ( | ) H X Y H Y H X Y = + .
Como ( , ) ( ) ( ) H X Y H X H Y + ( | ) ( ) H X Y H X e ( | ) ( ) H Y X H Y
Como se v, a entropia de smbolos dependentes menor que a entropia
de smbolos independentes.
Teoria da Informao Medidas de informao 13
Entropia condicional: um exemplo
Uma fonte produz trs smbolos, A, B e C, com as seguintes probabilidades:
{ }
9 16 2
( ), ( ), ( ) , ,
27 27 27
P X A P X B P X C

= = = =
`
)


y
j


P(y
j
|x
i
)
A B C
A 0 4/5 1/5
x
i

B 1/2 1/2 0
C 1/2 2/5 1/10
P.: Determine a entropia da fonte, , e as entropias e . ( ) H X ( | ) H Y X ( , ) H X Y
R.: As probabilidades conjuntas valem: ( , ) ( ) ( | )
i j i j i
P x y P x P y x =

y
j


P(x
i
,y
j
)
A B C
A 0 4/15 1/15
x
i

B 8/27 8/27 0
C 1/27 4/135 1/135
Como ( ) ( , )
j i j
i
P y P x y =

{ }
1 16 2
( ), ( ), ( ) , ,
3 27 27
P Y A P Y B P Y C

= = = =
`
)

Assim, ( ) (1 3,16 27, 2 27) 1, 29 H Y H = = ( ) H X
( | ) H Y X
bits/smbolo (= )
A entropia condicional ser menor. De facto:
( | ) (0, 4 5,1 5) 0, 72 X A H = = = H Y
( | ) (1 2,1 2, 0) 1 X B H = = = H Y
( | ) (1 2, 2 5,1 10) 1, 36 X C H = = = H Y

9 16 2
( | ) 0, 72 1 1, 36 0, 93
27 27 27
X = + + = H Y bits/smbolo
Portanto, a entropia conjunta vale bits/smbolo. ( , ) 1, 29 0, 93 2, 22 H X Y = + =
Teoria da Informao Medidas de informao 14
Equivocao em
canais discretos com rudo
Consideremos o canal discreto do diagrama seguinte:

X Y

x
1
p(y
1
|x
2
)
p(y
4
|x
4
)
x
2
x
3
x
4
x
M
y
1
y
2
y
3
y
4
y
N

A entropia da fonte de mensagens, H(X), depende apenas da fonte X. a incerteza
em relao a x
i
, isto , em relao a que smbolo ser transmitido.
A entropia da sada do canal, H(Y) que equivalente a uma nova fonte depende
da fonte X e dos erros de transmisso. a incerteza em relao ao smbolo que ser
recebido, no caso de uma dada fonte de mensagens e de um dado canal de
comunicao.
Conhecendo as estatsticas da fonte de mensagens e do canal ruidoso conhece-se a
entropia conjunta, H(X,Y). a incerteza sobre a transmisso de x
i
e a recepo de
y
j
.
Suponhamos que conhecemos x
i
(isto , sabemos que smbolo foi enviado):

2
1 1
( | ) ( ) ( | )log ( | )
M M
i j i j
i j
i
H Y X p x p y x p y x
= =
=

Entropia condicional
a incerteza de receber y
j
quando x
i
enviado, isto , a incerteza mdia do
emissor em relao ao que ser recebido.
Suponhamos que conhecemos y
j
(isto , sabemos que smbolo foi recebido):

2
1 1
( | ) ( ) ( | )log ( |
M M
j i j i
j i
)
j
H X Y p y p x y p x y
= =
=

Entropia condicional.
a incerteza sobre x
i
ter sido enviado quando se recebe y
j
, ou a incerteza mdia
do receptor da mensagem em relao ao que foi realmente enviado. Por outras
palavras, a incerteza sobre a entrada que resta depois da sada ter sido
observada.
A ( | ) H X Y chama-se equivocao do canal: a medida da informao
perdida devido ao canal.
Teoria da Informao Medidas de informao 15
Informao mtua mdia
A entropia ( ) H X representa a incerteza a priori sobre a entrada do canal antes
de observarmos a sada.
A entropia condicional ( | ) H X Y representa a incerteza a posteriori sobre a
entrada do canal depois de observarmos a sada. a incerteza remanescente sobre o
acontecimento X aps se conhecer o acontecimento Y.
A diferena ( ) ( | ) H X H X Y deve ento ser a incerteza sobre a entrada que
eliminamos observando a sada.
Quer dizer que ( ) ( | ) H X H X Y traduz a reduo de incerteza sobre X que
ganhamos pela observao de Y.
Por exemplo, se depois da observao de Y continuarmos exactamente com as
mesmas dvidas que tnhamos sobre a entrada X, ento no reduzimos incerteza
nenhuma: ( ) ( | ) 0 H X H X Y = .
diferena ( ) ( | ) H X H X Y chama-se informao mtua mdia entre a entrada X
e a sada Y. Pode ser interpretada como um ganho de informao sobre X, que no
teramos se no conhecssemos Y.
( ; ) ( ) ( | ) I X Y H X H X Y =
Quanto maior for ( | ) H X Y menor ( ; ) I X Y . Da se lhe chamar equivocao.
Uma determinada ocorrncia pode tornar a deciso sobre a ocorrncia
j
y
i
x ainda
mais incerta ( ); o conhecimento da distribuio de probabilidades de Y
ajuda a reduzir essa incerteza (
( ; ) 0
i j
I x y <
( ; ) 0 I X Y ).
Teoria da Informao Medidas de informao 16
Informao mtua mdia
Informao mtua mdia entre a entrada X e a sada Y do canal:

) |
2
2
1 1 1
( ; ) ( ) ( | )
1 1
( ) ( ( )log
log ( ) ( | )
M M N
i j i j
i i
i i j
j
I X Y H X H X Y
p x p y p x y
p x p
= = =
= =
=

x y
j

Mas P x , logo
1
( ) ( , )
N
i i
j
P x y
=
=


( , )
1
2 2
( ) ( )
1 1
2
1 1
( , )
1 1
( ; ) ( , ) log log
( , )
( , )log
( ) ( )
( , ) ( , )
i j
i j
i j
M N
p x y
i j
p x p y
i j
M N
i j
i j
i j
i j
I x y
M N
i j i j
i j
I X Y p x y
p x y
p x y
p x p y
p x y I x y
+
= =
= =
= =
(
= =
(

= =
=


( , )
i j
I x y a informao mtua entre a entrada
i
x e a sada ,
j
y

2 2 2
( , ) ( | ) ( | )
( , ) log log log
( ) ( ) ( ) ( )
i j j i i j
i j
i j j i
p x y p y x p x y
y
p x p y p y p x
= = = I x .
A informao mtua mdia ( ; ) I X Y a mdia das informaes mtuas
entre as diversas entradas e sadas.
Prova-se tambm que ( ; ) ( ) ( | ) I X Y H Y H Y X = .
Teoria da Informao Medidas de informao 17
Informao mtua mdia: um exemplo
Uma fonte X produz smbolos com probabilidades
{ }
1 2,1 3,1 6 , os quais
atravessam um canal com a matriz de probabilidades de transio

2 3 0 1 3
1 3 2 3 0
0 1 3 2 3
(
(
(
(

.
A incerteza que temos sobre os smbolos produzidos pela fonte X
mensurvel:
( )
( ) 1 2,1 3,1 6 1, 46 H X H = =
)
bits/smbolo.
P.: a) De quanto reduzimos a incerteza sobre X observando a sada Y?
b) Calcule a equivocao do canal e a informao mtua
2 1
( , I x y .
R.: a) Sendo P y ( ) ( ) ( |
j i j
i
P x P y x = )
i

{ }
1 2 3
4 5 5
( ), ( ), ( ) , ,
9 18 18
P y P y P y

=
`
)


( )
( ) 4 9,5 18,5 18 1,55 H = = H Y bits/smbolo

( | ) ( ) ( | )
1 2 1 1 1 2 1 1 2
, 0, , , 0 0, , 0,92
2 3 3 3 3 3 6 3 3
i i
i
H Y X P x H Y x
H H H
= =
| | | | | |
= + + =
| | |
\ . \ . \ .


A informao mtua mdia vale, portanto, bits/smbolo.
Isto significa que a observao da sada do canal baixou a incerteza de
para 1,46 - 0,63 = 0,83 bits/smbolo.
( ; ) 1, 55 0, 92 0, 63 I X Y = =
( ) 1, 46 H X =
b) Como ( ; ) ( ) ( | ) ( ) ( | ) I X Y H Y H Y X H X H X Y = = , conclumos que a equivocao
devida ao canal ( ) ( ) ( ; ) 0, 8 H X Y H X I X Y = = 3 bits/smbolo.
Ser que a observao do smbolo ajuda a decidir se o smbolo
1
y
2
x foi emitido
pela fonte? Vamos ver:

1 2
2 1 2 2
1
( | ) 3
( , ) log log 0, 42
( ) 4
P y x
y
P y
= = = I x bits/smbolo
2
Conclui-se que esta observao especfica aumenta a indefinio sobre x .
Teoria da Informao Medidas de informao 18
Informao e entropia:
definies e relaes importantes

X, Y variveis aleatrias com ocorrncias x
i
e y
j,
i M e 1, 2,..., = 1, 2,..., j N =

Varivel X Variveis X e Y
uma ocorrncia Auto-informao Informao mtua

I(x
i
) = log
2
P(x
i
)
I(x
i
;y
j
) = log
2
P(x
i
, y
j
)
P(x
i
)P(y
j
)

vrias ocorrncias Entropia
(informao mdia)
Informao mtua mdia

H(X) = P(x
i
)I(x
i
)
i=1
M

=
= P(x
i
)log
2
P(x
i
)
i =1

M


I(X;Y) = P(x
i
, y
j
)I(x
i
;y
j
)
j =1
N

i=1
M

=
= P(x
i
, y
j
)log
2
P(x
i
, y
j
)
P(x
i
)P(y
j
)

j=1
N

i =1
M



( , ) ( ) ( | ) ( ) ( | ) H X Y H X H Y X H Y H X Y = + = +
( , ) ( ) ( ) H X Y H X H Y +
( | ) ( ) H X Y H X
( | ) ( ) H Y X H Y
( ; ) ( ) ( | ) ( ) ( | ) I X Y H X H X Y H Y H Y X = =
( ; ) ( ) ( ) ( , ) I X Y H X H Y H X Y = +
Teoria da Informao Medidas de informao 19
Informao mtua mdia, entropias
condicionais e diagrama de Venn
muito fcil de estabelecer as relaes entre as diferentes entropias
condicionais e entre estas e a informao mtua mdia se usarmos o
seguinte diagrama de Venn:
H(X|Y) H(Y|X) I(X,Y)
H(X) H(Y)
H(X,Y)

Repetem-se aqui as relaes j conhecidas. Ora confirme-as com o
diagrama!
( , ) ( ) ( | ) ( ) ( | ) H X Y H X H Y X H Y H X Y = + = +
( , ) ( ) ( ) H X Y H X H Y +
( | ) ( ) H X Y H X
( | ) ( ) H Y X H Y
( ; ) ( ) ( | ) ( ) ( | ) I X Y H X H X Y H Y H Y X = =
( ; ) ( ) ( ) ( , ) I X Y H X H Y H X Y = +

Teoria da Informao Medidas de informao 20
Informao mtua mdia
A informao mtua mdia sempre no negativa:
Teorema
Seja XY o conjunto discreto dos pares (x
i
,y
j
). A informao mtua
mdia entre X e Y satisfaz I(X;Y) 0, em que a igualdade s
satisfeita sse x e y forem estatisticamente independentes.
Demonstrao
Provemos que -I(X;Y) 0. Sabemos que :
2 2
log ln log a a = e
( | )
( )
( ; ) log ( , )ln log ( , )ln
( ) ( | )
i j
i
i j i j
i i
i j i j
P x y
P x
I X Y e P x y e P x y
P x P x y
= =

j

Como ln 1 :
( )
( , ) log ( , ) 1 log ( ) ( ) ( , )
( | )
i
i j i j i j
i j
i j i j
P x
I X Y e P x y e P x P y P x y
P x y
(
(
=
(
=

(



=
1
1 1
log ( ) ( ) ( , ) 0
i j i j
i j i j
e P x P y P x y
(
(
(
(
(


= ( ; ) 0 I X Y
Note-se que ( , ) 0 I X Y = sse ln 1 1 = sse
se x e y forem estatisticamente independentes, c.q.d.
( ) ( | ) P x P x y =
Demonstrao alternativa:
Sendo ( , ) ( ) ( ) ( , ) I X Y H X H Y H X Y = + e ( , ) ( ) ( ) H X Y H X H Y + , ento
necessariamente ( , ) 0 I X Y
( , ) ( )
. Se X e Y forem estatisticamente
independentes, ento ( ) H X Y H X = H Y + ( , ) 0 I X Y = . c.q.d.
Teoria da Informao Medidas de informao 21
Informao mtua mdia
Como I(X;Y) 0 e I(X;Y) = H(X) - H(X|Y) H(X) H(X|Y)
(e, tal como antes, H(X) = H(X|Y) sse X e Y forem estatisticamente independentes)
Esta desigualdade mostra que se colocarmos restries a um conjunto X
(fazendo-o depender de outras ocorrncias) diminuimos a sua entropia.
o que acontece com as lnguas (portugus, francs, etc.).
Por exemplo em ingls (26 letras mais espao):
Codificao letra a letra, considerando cada letra equiprovvel:
So precisos dgitos binrios/carcter. (entropia mxima)
2
log 27 4, 76 =
Codificao letra a letra tendo em conta as probabilidades relativas de
ocorrncia:
So precisos 4,03 dgitos binrios/carcter. (entropia condicional)
Codificao palavra a palavra tendo em conta a frequncia relativa das
palavras:
S so precisos 1,66 dgitos binrios/carcter. (entropia condicional)
Teoria da Informao Medidas de informao 22
Informao mtua mdia e capacidade de
canal
( ; ) ( ) ( | ) I X Y H X H X Y =

ENTROPIA DA FONTE EQUIVOCAO
a incerteza mdia sobre a incerteza mdia sobre a fonte
a fonte de informao X depois de se observar a sada do canal, Y
A diferena entre estas duas quantidades a informao mtua mdia
uma medida da informao que passou atravs do canal.
Quanto maior for a equivocao menor a
quantidade de informao que passa atravs do canal.
Definio:
A capacidade do canal o valor mximo da informao mtua mdia.
( )
max ( ; )
X
s
p x
C I X = Y (bits/smbolo)
Visto o canal ser fixo a maximizao deve fazer-se relativamente s
probabilidades da fonte.
Teoria da Informao Medidas de informao 23
Exemplo de capacidade de canal
Exemplo 1: Canal binrio simtrico (Binary symmetric channel, BSC)
p P P = = ) 0 | 1 ( ) 1 | 0 (
e
p P P = = 1 ) 1 | 1 ( ) 0 | 0 (
.
0
1 1

X
Y
0

p
1-p
p
1-p

Como ( ; ) ( ) ( | ) I X Y H Y H Y X = vamos calcular estas entropias:
A entropia H(Y) mxima quando as sadas so equiprovveis entradas
equiprovveis. Nesse caso H(Y) = 1 bit/smbolo.

) ( ) 1 , ( ) 1 ( ) , 1 ( ) 0 (
) 1 ( ) 1 ( ) 0 ( ) 0 ( ) ( ) ( ) (
) ( ) (
1
p p p H X P p p H X P
X Y H X P X Y H X P x Y H x P X Y H
p p
M
i
i i
= = + = =
= = = + = = = =

=



A capacidade vale, portanto, C , isto : 1 ( = )
s
p
2 2
)
s
p Capacidade do canal binrio simtrico C p 1 log (1 )log (1 p p = + +


0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
C
s

p
0


Se , isto , dada uma
determinada sada (1 ou 0) temos 50% de
probabilidades de acertarmos na entrada
realmente enviada a capacidade do canal
nula nesse caso o canal no serve para
nada: basta "deitar uma moeda ao ar" no
destino.
5 , 0 ) 0 | 1 ( ) 1 | 0 ( = = P P

Teoria da Informao Medidas de informao 24
Exemplo de capacidade de canal
Exemplo 2: Comunicao via satlite

P
e
= 0,01 P
e
= 0,1
P
e
= 0

H 3 canais envolvidos: canal ascendente, canal a bordo e canal
descendente. Para determinar a capacidade do sistema global temos de
primeiro calcular a matriz de probabilidades de transio global
multiplicando as matrizes de probabilidade de transio individuais:

0,99 0, 01 1, 0 0 0,9 0,1 0,892 0,108
[ ( | )]
0, 01 0,99 0 1, 0 0,1 0,9 0,108 0,892
P Y X
( ( (
= =
( ( (

(
(

O diagrama de transio global deste canal BSC :


0
1 1

X Y
0

0,892
0,108
0,892
0,108

A capacidade do sistema global , portanto:
bit/smbolo
2 2
1 0,892log 0,892 0,108log 0,108 0,51
s
C = + + =
(As probabilidades hiptese so muito mais elevadas que num caso real.
Tomaram-se para simplificar os clculos).
Teoria da Informao Medidas de informao 25

1
1
.
.
3
3
.
.
T
T
e
e
o
o
r
r
e
e
m
m
a
a
d
d
a
a
c
c
o
o
d
d
i
i
f
f
i
i
c
c
a
a

o
o
d
d
e
e
c
c
a
a
n
n
a
a
l
l


Ritmo de informao
Teorema da codificao de canal

Teoria da Informao Teorema da codificao de canal 1
Ritmo (ou taxa) de informao
Se a fonte de entropia H(X) emitir uma sequncia de smbolos a
informao total a ser transferida de bits.
1 n
( ) nH X
Se a fonte produzir r smbolos/s a durao da sequncia de n smbolos
n/r segundos.
Portanto, a informao deve ser transferida razo mdia de:

informao total ( )
( )
durao total
nH X
R rH X
n r
= = = bits/s
Esta a taxa de informao da fonte.
Se a fonte produzir smbolos com diferentes duraes (segundos) o ritmo,
ou taxa, de informao pode ser calculado alternativamente como
i


( ) H X

R = bits/s
em que a durao mdia de cada smbolo,

1 1 2 2
1
...
M
M M i
i
P P P P
=
= + + + =
i


.

Teoria da Informao Teorema da codificao de canal 2
O teorema da codificao de canal
(aplicado a canais discretos sem memria)
A entropia representa a informao esperada por cada smbolo de fonte.
Se tivermos duas fontes com iguais entropias, aquela que produzir mais
smbolos por unidade de tempo vai colocar mais exigncias no sistema de
comunicaes.
(imagine duas pessoas a ler o mesmo texto escrito numa lngua que domina mal.
Uma delas l depressa. Qual a que entende melhor?)
O ritmo de informao mede a quantidade de informao produzida
num certo intervalo de tempo.
Existem limitaes fsicas fundamentais transferncia de informao
(rudo, largura de banda, ), que se reflectem na capacidade do canal:
A capacidade do canal (em bits/s) mede a quantidade de informao
que um canal pode transferir por unidade de tempo.
Shannon relacionou estes dois conceitos atravs do teorema da codificao
de canal, tambm chamado Teorema Fundamental da Teoria da
Informao:
Dado um canal de capacidade C e uma fonte com ritmo de
informao R, ento se R C existe uma tcnica de codificao
tal que a sada da fonte pode ser transmitida atravs do canal
com uma frequncia arbitrariamente pequena de erros, apesar
da presena de rudo.
Se R > C, no possvel a transmisso sem erros.
Teoria da Informao Teorema da codificao de canal 3
O teorema da codificao de canal
aplicado a canais discretos sem memria
(formulao alternativa)
Teorema:
Uma fonte X de entropia H(X) produz smbolos razo de um smbolo por
cada T
s
segundos. Consideremos um canal discreto sem memria de
capacidade C
s
(bits/smbolo!) e que seja usado uma vez em cada T
c

segundos. Ento, se
( )
s
s c
C H X
T T
,
existe uma tcnica de codificao dos smbolos da fonte que permite que os
smbolos transmitidos atravs do canal possam ser recuperados com uma
probabilidade de erro arbitrariamente pequena.
Se, pelo contrrio,
( )
s
s c
C H X
T T
> , ento no possvel transmitir os smbolos e
recuper-los com uma probabilidade de erro arbitrariamente pequena.


Converso de C
s
(bits/smbolo) em C (bits/s):
s
c
C
C
T
=
Teoria da Informao Teorema da codificao de canal 4
Aplicao do Teorema da Codificao do
Canal a um canal binrio simtrico
Considere-se uma fonte binria a gerar smbolos equiprovveis de durao
T
s
segundos, ou seja, a produzi-los taxa de 1
s
r T = smbolos por segundo.
Sendo os smbolos binrios equiprovveis, a entropia da fonte vale ( ) 1 H X =
bit/smbolo e a taxa de informao da fonte ( ) 1
s
R rH X T = = bits/s.

Fonte
binria
Codificador de
canal binrio
Canal binrio
simtrico
1 dgito binrio em
T
c
segundos
capacidade por unidade
de tempo = C
s
/T
c
bits/s
R
c
=k/n
rH(X) bits/s
1 smbolo em
T
s
segundos
(r=1/T
s
)

O codificador (de canal!) produz um smbolo binrio em cada T
c
segundos, o
qual transmitido atravs de um canal binrio simtrico (BSC) que,
portanto, usado uma vez em cada T
c
segundos. Assim, a capacidade do
canal por unidade de tempo C C bits/s. T =
s c
De acordo com o teorema da codificao do canal, ter de ser
( )
s
s c
C H X
T T

1
s
s c
C
T T

c
s
s
T
C
T

Mas
c
c
s
T
R
T
= (taxa do cdigo, ver a seguir), pelo que
c s
R C
Como a capacidade do canal BSC C p : 1 ( = )
s
)
c
1 ( R p (canal BSC)
Teoria da Informao Teorema da codificao de canal 5
Aplicao do Teorema da Codificao do
Canal a um canal binrio simtrico
(contin.)
Porque que
c
c
s
T
R
T
= ?
T
s
Antes da codificao
Depois da codificao
T
c
k = 4
n = 7
Durao do bloco: 4T
s
Durao do bloco: 7T
c

razo
c
k
R
n
= chama-se taxa do cdigo.
Como a durao dos blocos a mesma:
s c
kT nT =
ou, neste caso,
4 7 4 7 T T T T = = =
s c c s c
R
Em resumo, temos duas maneiras de exprimir o teorema da codificao de
canal:
Com a capacidade expressa em bits/smbolo, C
s
:
c s
R C
Com a capacidade expressa em bits/s, C: ( ) R rH X C =

s c
C C T =
bits/smbolo
bits/s

Teoria da Informao Teorema da codificao de canal 6

1
1
.
.
4
4
.
.
T
T
e
e
o
o
r
r
e
e
m
m
a
a
d
d
a
a
c
c
o
o
d
d
i
i
f
f
i
i
c
c
a
a

o
o
d
d
e
e
f
f
o
o
n
n
t
t
e
e

Teorema da codificao de fonte
Redundncia
cdigos unicamente descodificveis
cdigos sem prefixos
desigualdade de Kraft-McMillan
extenses
Codificao de fonte
Queremos transformar as mensagens de uma fonte num conjunto de smbolos de
modo que seja ocupado menos espao ou que a informao da fonte demore
menos tempo a ser transmitida. Queremos faz-lo sem perdas: a operao inversa de
descodificao ou descompresso deve dar origem exactamente s mesmas
mensagens originais. Ora,
A caracterizao de uma fonte discreta fcil se os smbolos forem
independentes e equiprovveis (a entropia mxima).
Essa caracterizao j mais difcil se os smbolos no forem independentes (a
probabilidade de um smbolo depende dos smbolos passados e a entropia
menor).
Shannon provou que, se dividirmos a mensagem em blocos de letras ou palavras
(no caso de texto), podemos calcular a entropia de cada bloco (= smbolo) pela
mesma frmula usada com smbolos independentes e assim aproximar-nos da
entropia da fonte, considerando os blocos muito compridos.
Existe alguma relao entre a entropia e o nmero mdio de dgitos binrios por
smbolo necessrio para codificar uma mensagem? Sim, existe!
A questo est em descobrir como codificar eficientemente os smbolos da fonte,
tendo cada um uma certa probabilidade de ocorrer.
No caso dos smbolos da fonte no serem equiprovveis o cdigo ptimo tem em
conta as diferentes probabilidades de ocorrncia usando palavras com
comprimentos variveis.
Convm agrupar os smbolos da fonte antes de codificar ou comprimir.
Teoria da Informao Teorema da codificao de fonte 2

Representao de smbolos por dgitos
binrios: dois exemplos
1

1. Mquina de escrever com 48 teclas + CR + LF = 50 smbolos
Precisaramos de log
2
50 = 5,62 dgitos binrios/smbolo. A codificao faz-se atribuindo um
nmero binrio com 6 dgitos a cada smbolo (desperdiando 2
6
- 50 = 14 nmeros binrios).
Mas em 50 caracteres existem 50
3
= 125 000 grupos diferentes possveis de 3 caracteres. Por
outro lado 17 dgitos binrios podem ser combinados de 131 072 maneiras diferentes (2
17
).
Se dividirmos o texto em blocos de 3 caracteres sucessivos poderemos atribuir a
cada bloco um nmero binrio de 17 dgitos.
Se tivessemos representado cada carcter por 6 dgitos binrios precisvamos de 18 dgitos
binrios por cada grupo de 3 caracteres, em vez de 17.
Concluso: agrupando os smbolos a compresso ou codificao mais eficiente.
2. Ingls (26 letras + espao)
Codificao letra a letra, consideradas equiprovveis:
So precisos 4,76 dgitos binrios/carcter
Codificao letra a letra tendo em conta as probabilidades relativas de ocorrncia:
So precisos 4,03 dgitos binrios/carcter
Codificao palavra a palavra tendo em conta a frequncia relativa das palavras:
So precisos 1,66 dgitos binrios/carcter
Shannon calculou a entropia do ingls entre 0,6 e 0,13 bits/carcter.

Teoria da Informao Teorema da codificao de fonte 3

1
In J. R. Pierce, An Introduction to Information Theory, 2 edio, Dover, 1980.
Redundncia
A influncia entre smbolos reduz a entropia.
Exemplo: linguagem, textos escritos: cada letra depende da(s) precedente(s) ou at das
palavras anteriores, devido a regras impostas pela linguagem.
A seguir letra Q vem sempre U.
A influncia mtua reduz a incerteza, logo, reduz a quantidade de informao.
Trata-se de uma fonte redundante: significa qe h smbolos produzidos pla font qe no
so absolutament essenciais para a transmsso da informao.
A redundncia de uma sequncia de smbolos mede-se em funo da reduo de
entropia ocorrida:
Redundncia: E = 1
H(Y| X)
H(X)

H(Y|X) supondo smbolos dependentes
H(X) supondo smbolos independentes
Num exemplo anterior em que H(Y| X) = 0, 9328 bits/smbolo e H(X) = 1, 287
bits/smbolo existe uma redundncia na informao da fonte de E = 27,5%.
Numa comunicao eficiente a redundncia indesejvel (a mesma informao
poder ser transmitida usando menos smbolos).
MAS ... ajuda a resolver ambiguidades se a mensagem for recebiga com errus.
A codificao para transmisso ptima pretende:
reduzir a redundncia ineficiente cdigos de fonte (compresso)
acrescentar redundncia eficiente cdigos de canal
Teoria da Informao Teorema da codificao de fonte 4

Codificao de fonte
Consideremos uma fonte discreta de entropia H(X) a gerar smbolos cadncia
de r smbolos/s. O ritmo de informao , como se sabe, bits/s. ( ) R rH X =
E se quisermos codificar estes smbolos atravs de dgitos binrios?

Fonte
discreta
Codificador
de fonte
Canal sem
rudo
Dgitos binrios
R = rH(X) bits/s
Smbolos
discretos X
r
b
binits/s

Shannon mostrou que a informao proveniente de qualquer fonte
discreta sem memria pode ser codificada como dgitos binrios e
transmitida atravs de um canal sem rudo taxa binria de r
b
R dgitos
binrios/s. No possvel faz-lo a uma taxa inferior ( ).
b
r R <
Esta uma manifestao do famoso teorema da codificao de fonte, de
Shannon, demonstrado mais adiante.

OBS: Aos dgitos binrios vamos passar a chamar binits, para evitar confuses com a
unidade de informao bit. S lhes deveremos chamar bits se no houver
ambiguidades de interpretao.
Teoria da Informao Teorema da codificao de fonte 5

Teorema da codificao de fonte
Fonte de M smbolos equiprovveis produzidos ao ritmo r R = r logM
Todos os smbolos transportam a mesma quantidade de informao.
Fonte de smbolos com diferentes probabilidades P
i
R = rH(X) < rlog M
A transmisso eficiente requer um processo de codificao que tenha em conta a
quantidade varivel de informao por smbolo.

Fonte discreta
sem memria
Codificador de
fonte binrio
R = r H(X)
Converte os smbolos da fonte em palavras de cdigo
constitudas por n
i
dgitos binrios produzidos a uma taxa r
b

( )
b b
r p r
r
b
binits/s
r smbolos/s

O codificador comporta-se como uma fonte binria com entropia (p) e taxa de
informao binits/s.
( ) log 2
b b
r p r r =
b
O comprimento mdio das palavras de cdigo igual a
1
M
n
i i
i
N P
=
=

.
A codificao no gera informao adicional nem destri a informao SE o
cdigo for decifrvel de uma nica maneira, sem ambiguidades (cdigos unicamente
decifrveis ou descodificveis). Nesse caso as taxas de informao entrada e sada
do codificador so iguais:



( ) e H
( ) ( )
b b
rH X r p r =
b
r rH X (X)
r
b
r
= N
(Teorema da codificao de fonte)
Teoria da Informao Teorema da codificao de fonte 6

Codificao de fonte e ritmo de
informao: um exemplo
Uma fonte emite r = 2000 smbolos/s seleccionados de um alfabeto de M = 4
elementos, com as probabilidades de ocorrncia indicadas. Se quisermos codificar
estes smbolos atravs de dgitos binrios qual o nmero mnimo de binits que
podemos transmitir por unidade de tempo?
x
i
P
i
I
i

A 1/2 1
B 1/4 2
C 1/8 3
D 1/8 3
R.: A entropia desta fonte vale
H(X) =
1
2
1+
1
4
2 +
1
8
3 +
1
8
3 = 1, 75 bits/smbolo
(o mximo seria log M = 2)
A respectiva taxa de informao vale R = 2000 1,75 = 3500 bits/s
Uma codificao de fonte apropriada permitir transmitir a informao da fonte
a uma taxa binria r
b
3500 binits/s. No possvel transmitir com menos dgitos
binrios por unidade de tempo.
Repare-se nas dimenses que nos aparecem neste exemplo:
[r] smbolos/s [R] bits/s [r
b
] binits/s
Teoria da Informao Teorema da codificao de fonte 7

Teorema da codificao da fonte e
desigualdade de Kraft
Num cdigo binrio unicamente descodificvel condio necessria que os
comprimentos n
i
das palavras respeitem a desigualdade (ver Anexo 1)
1
2
i
M
n
i
K

=
=

1
(Desigualdade de Kraft)
Se o alfabeto do cdigo tiver tamanho D a desigualdade de Kraft
1
1
i
M
n
D
i
K

=
=

.
O teorema da codificao da fonte, de Shannon, estabelece que, com cdigos
binrios unicamente descodificveis, o comprimento mdio N limitado por
H(X) N < H( X) + > 0, arbitrariamente pequeno
Com codificao ptima: N = H(X). Na prtica: N > H( X).
A eficincia da codificao mede-se calculando a razo

comprimento mdio das palavras de cdigo
entropia da fonte

A eficincia igual a
R
r
b
=
/
r N
=
N
1.
/
r H(X) H(X)
Codificao mais simples: cdigo de comprimento fixo (exemplo: ASCII).
Neste caso a desigualdade de Kraft toma a forma K = M.2
N
1
N log
2
M eficincia =
H(X)
N

H(X)
logM

Para aumentar a eficincia preciso diminuir o comprimento mdio N, o que se
consegue com os cdigos de comprimento varivel:
Aos smbolos que ocorrem com mais frequncia devem corresponder palavras de
cdigo mais curtas que as que correspondem aos smbolos mais raros.
Teoria da Informao Teorema da codificao de fonte 8

Codificao binria de uma
fonte discreta sem memria
EXEMPLO: fonte discreta sem memria produzindo 4 smbolos A, B, C e D com
probabilidades 1/2, 1/4, 1/8 e 1/8, respectivamente.
Temos muitas possibilidades de codificao. Eis quatro possveis:

x
i
P
i

Cdigo I Cdigo II Cdigo III Cdigo IV
A 1/2 00 0 0 0
B 1/4 01 1 01 10
C 1/8 10 10 011 110
D 1/8 11 11 0111 111
N 2,0 1,25 1,875 1,75
K 1,0 1,5 0,9375 1,0
(comprimento fixo) ("comma code") ("tree code")
H(X) = 1,75 bits/smbolo (exemplo anterior)
Cdigo I: Eficincia =
H(X)
N
= 88%
Cdigo II: N = 1,25 < H(X), K = 2
-1
+ 2
-1
+ 2
-2
+ 2
-2
= 1,5 > 1 no unicamente
(ex.:10011 pode ser BAABB ou CABB ou CAD, etc.) decifrvel.
Cdigo III: unicamente decifrvel (cada palavra comea por 0).
Eficincia =
( )
93%
H X
=
N

Cdigo IV: Nenhuma palavra de cdigo aparece como o prefixo de outra palavra de
cdigo. um cdigo ptimo para esta fonte porque N = H(X) e K = 1.
Eficincia =
( )
100%
H X
=
N

(Exemplo: 110010111 CABD)
Teoria da Informao Teorema da codificao de fonte 9

Cdigos unicamente descodificveis

cdigo unicamente
descodificvel
para cada sequncia de fonte de comprimento finito a
sequncia de letras de cdigo que lhe corresponde diferente
da sequncia de letras de cdigo correspondente a qualquer
outra sequncia de fonte.
Existe uma classe especial de cdigos unicamente descodificveis que satisfaz
uma restrio chamada condio de prefixao. Chamar-lhes-emos cdigos sem
prefixos:

cdigo sem prefixos
(cdigo instantneo)
um cdigo no qual nenhuma palavra de cdigo o
prefixo de qualquer outra palavra de cdigo.
Seja x
i
= (x
i,1
, ... , x
i,ni
) a palavra de cdigo de ordem i. Qualquer sequncia
constituda por uma parte inicial de x
i
(isto , (x
i,1
, ... , x
i,k
), k n
i
) chama-se um
prefixo de x
i
.

Para descodificar uma sequncia de palavras de cdigo gerada por um cdigo
sem prefixos comea-se no princpio de cada palavra e descodifica-se uma a uma.
Sabemos que chegmos ao fim de cada palavra porque essa palavra de cdigo no
prefixo de qualquer outra (veja-se o anterior cdigo IV, por exemplo).
Teoria da Informao Teorema da codificao de fonte 10

Cdigos sem prefixos
Representao grfica atravs de "rvores"
Raz
Ns
intermdios
0
0
0
1
1
1
0
10
110
111
Ns de 1 ordem
Ns de 2 ordem
Ns de 3 ordem
A 0
B 10
C 110
D 111
Ns terminais

Num cdigo sem prefixos as palavras de cdigo terminam sempre nos ns terminais.
Para descodificar, o receptor "sobe pela rvore", desde a raiz.
Para que N nmero mdio de dgitos binrios por smbolo de fonte seja minimizado
convm escolher as palavras de cdigo de tal maneira que cada ramo que sai de um n seja
equiprovvel (idealmente).
Exemplo: Cdigo de Shannon-Fano.
Se cada ramo for equiprovvel e o cdigo tiver um alfabeto de D elementos, ento

P a

a
( )
i
i
n
D

=
i
smbolo da fonte
n
i
comprimento da palavra de cdigo correspondente

Exemplos de cdigos de fonte sem prefixos:
Shannon-Fano
Huffman.
Teoria da Informao Teorema da codificao de fonte 11

Teorema da codificao de fonte, de
Shannon: demonstrao
Teorema: Dada uma fonte X com entropia H(X) e dado um alfabeto de cdigo com
D smbolos, possvel atribuir palavras de cdigo s letras da fonte de tal maneira
que a condio de prefixao satisfeita e o comprimento mdio das palavras de
cdigo, N , satisfaz
N <
H( X)
log D
+1
Para qualquer conjunto unicamente descodificvel de palavras de cdigo tem-se
tambm
N
H( X)
log D

Demonstrao:
Mostremos que N
H( X)
log D
, ou H(X) Nlog D 0.
Sejam P(a
1
), P(a
2
) ... P(a
M
) as probabilidades das letras da fonte e sejam n
1
, ..., n
M
os
comprimentos das palavras de cdigo respectivas:

1 1
1
1
( ) log ( )log ( ) log
( )
( )log
( )
i
M M
i i
i
i i
M
i
i
i
i
H X N D P a P a n D
P a
n
D
P a
P a
= =

=
=
=

=

Como l para z > 0, ento og z ( z 1) loge
1
1
( ) log log ( )[ 1] log ( )
( )
i
i
i i
i
i i
n
D
n
i
H X N D e P a e D P a
P a

(
(
=
(
(



H(X) Nlog D 0
A igualdade verifica-se para
( )
i
i
n
P a D

=
1 i M (Continua)
Teoria da Informao Teorema da codificao de fonte 12

Teorema da codificao de fonte
(Contin.)
Provemos agora que N <
H( X)
log D
+1:
Como n
i
tem de ser inteiro poderemos aproximar escolhendo n
i

como o inteiro que satisfaz
( )
i
n
i
P a D

=

D P
1 i M (*)
1
( )
i
n
i
a D

<
i
n +
=
Somando em i:


(Kraft...)
( ) 1
i
i
i i
n
D P a


existe um cdigo sem prefixos com estes comprimentos.
Quanto ao 2 membro de (*), tomemos logaritmos:

lo

g ( ) ( 1)log
i i
P a n D < +
Multiplicando por P(a
i
) e somando em i:
1
( )
1
( )log ( ) ( )log ( )( 1) log
( ) ( ) log
i
n
i i i i i
i i i
H X
i i i
i i
N
P a P a P a D P a n D
P a n P a D
+

(
< = +
(

(
(
(
= +
(
(



=


D N X H log ) 1 ( ) ( + <

1
log
) (
+ < N
D
X H

ou
1
log
) (
+ <
D
X H
N
c.q.d.
Teoria da Informao Teorema da codificao de fonte 13

Agrupamentos de smbolos de fontes
(extenses)
Seja H(X) a entropia de uma fonte discreta X que gera smbolos independentes
retirados de um alfabeto com M smbolos. Agrupando os smbolos de X em grupos de
L smbolos obtemos um conjunto aumentado, X
L
, de M
L
smbolos chamado extenso
de ordem L de X. A entropia da nova fonte X
L
est relacionada com a entropia de X
atravs de
( ) (
L
) H X LH X =
Exemplo 9.2 de Haykin, 4 edio (pg. 573):
As probabilidades dos smbolos de uma fonte ternria (M=3) so

0
1
2
1 4
1 4
1 2
P
P
=
=
=
P
A entropia desta fonte vale (1 4,1 4,1 2) 1,5 H = bits/smbolo. Uma extenso de
segunda ordem produz nove (M
2
) smbolos com as seguintes probabilidades:

Smbolos de X
2

1

2

3

4

5

6

7

8

Sequncias
correspondentes
de smbolos de
X
x
0
x
0
x
0
x
1
s
0
s
2
x
1
x
0
x
1
x
1
x
1
x
2
x
2
x
0
x
2
x
1
x
2
x
2
( ),
0,1, 8
i
p
i

=

1 16 1 16 1 8 1 16 1 16 1 8 1 8 1 8 1 4
A entropia da fonte aumentada vale, portanto,
H X ,
8
2
0
( ) ( )log ( )
i i
i
p p
=
= =

3
que precisamente igual ao dobro de H(X), como se esperava.
Teoria da Informao Teorema da codificao de fonte 14

Teorema da codificao de fonte
Aplicao a fontes aumentadas atravs de extenses ou
agrupamentos de smbolos
Admitamos que os smbolos de X
L
so codificados usando um cdigo
unicamente descodificvel. Se
L
N for o comprimento mdio, por smbolo de X
L
, das
respectivas palavras de cdigo,
L
N N L = representa o comprimento mdio por
smbolo de X. O Teorema da Codificao de Fonte indica que

2 2
( ) ( )
1
log log
L L
L
H X H X
N
D D
< +

Como ( ) ( )
L
H X LH X = , poderemos escrever

2 2
( ) ( )
1
log log
L
LH X LH X
N
D D
< +
2 2
( ) ( )
1
log log
L
H X H X
N L L
D D
< +
isto ,

2 2
( ) ( )
1
log log
H X H X
N L
D D
< +
Se no se tivesse feito um agrupamento antes da codificao (ou seja, se 1 L = ),
teramos

2 2
( ) ( )
1
log log
H X H X
N
D D
< + ,
que representa um intervalo maior para o comprimento mdio das palavras de cdigo.
Caso de fontes binrias:
Passamos a ter expresses simplificadas:
( ) ( )
L L
L
H X N H X < +1

( ) ( ) 1 H X N H X < + L

Teoria da Informao Teorema da codificao de fonte 15

Codificao de fonte:
consideraes diversas

Embora no possamos controlar a estatstica da fonte de informao, a
codificao de fonte deve obedecer ao seguinte (como nos cdigos de Morse,
Huffman, etc.):
Aos smbolos mais frequentes devem corresponder palavras de
cdigo curtas; aos smbolos menos frequentes devem corresponder
palavras compridas.
Entropia de fonte binria = 1 bit/smbolo se os smbolos forem equiprovveis.
Se os smbolos no forem equiprovveis a informao mdia por smbolo
inferior a um e a fonte apresenta redundncia.
A codificao da fonte reduz essa redundncia por forma a aumentar a eficincia
da comunicao.
A codificao faz-se agrupando a sequncia de dgitos binrios da fonte em
blocos de n smbolos, passando a formar um novo conjunto de 2 smbolos.
n
A probabilidade de cada um dos 2 novos smbolos calculada e atribui-se a
palavra de cdigo mais curta ao novo smbolo mais provvel, e assim por diante:
palavras mais compridas correspondem a smbolos menos frequentes.
n
Ao conjunto de 2 novos smbolos chama-se extenso de ordem n da fonte
binria.
n
Teoria da Informao Teorema da codificao de fonte 16

Exemplo de codificao de fonte binria
com extenses de 2 e 3 ordem

i
(1)
i
S

(1)
i
P
S


(

Palavras de
cdigo

1 A 0,9 0
2 B 0,1 1

i
(2)
i
S

(2)
i
P
S


(

Palavras de
cdigo

1 AA 0,81 0
2 AB 0,09 10
3 BA 0,09 110
4 BB 0,01 111

i
(3)
i
S

(3)
i
P
S


(

Palavras de
cdigo

1 AAA 0,729 0
2 AAB 0,081 100
3 ABA 0,081 101
4 BAA 0,081 110
5 ABB 0,009 11100
6 BAB 0,009 11101
7 BBA 0,009 11110
8 BBB 0,001 11111



Fonte original:
H(X) = 0, 469 bits/smbolo

1
1, 0
1
N
N = =
binit




Extenso de 2 ordem

2
0, 645
2
N
N = =
binits






Extenso de 3 ordem

3
0,5333
3
N
N = =
binits

( )
2
1
n
n
i i
i
N N P S
=
(
=
(

n
comprimento mdio das palavras de cdigo para a
extenso de ordem n.


n
N
N
n
=
nmero mdio de smbolos de cdigo por smbolo de
fonte.
n
n
N
N
n
=

menor taxa de smbolos
(Continua)
Teoria da Informao Teorema da codificao de fonte 17

Exemplo de codificao de fonte binria
com extenses de 2 e 3 ordem
Exemplo com modulao PSK binria:
Potncia recebida =
10

W
5
Taxa da fonte = 1000 smbolos/s Energia de bit:
J E
b
8
10

=

Hz W N
9
0
10

=
(densidade espectral de potncia do rudo branco)
Se a potncia de emisso for fixa a energia de smbolo pode ser aumentada
usando uma extenso porque a taxa de smbolos passa a ser menor.
Em PSK binrio a probabilidade de erro sem codificao

|
|
.
|

\
|
=
0
2
N
E
Q P
b
B
.
Substituindo valores e consultando uma tabela da funo Q, teremos:

( )
6
9
8
10 . 9 , 3 20
10
10 2

= =
|
|
.
|

\
|

= Q Q P
B

Usemos agora extenses:
Extenso de 2 ordem 645 smbolos/s E
b
= 1, 55.10
8
J P
B
= 1,3.10
8

Extenso de 3 ordem 533,3 smbolos/s P
B
= 4,5.10
10

Como se v
Teoria da Informao Teorema da codificao de fonte 18


1.5. Cdigos de fonte para compresso de
dados
tcnicas de compresso sem perdas
cdigos baseados em modelos estatsticos e em
dicionrios
cdigo de Shannon-Fano
cdigo de Huffman
cdigo aritmtico
cdigos de Lempel-Ziv (LZ77 e LZ78)
Compresso de dados
Tcnicas de compresso sem perdas
Modelos estatsticos Tcnicas baseadas em
dicionrios
Shannon-Fano
Huffman
Codificao aritmtica
Lempel-Ziv (LZ 77)
Lempel-Ziv (LZ 78)
Lempel-Ziv-Welch (LZW)
Exemplos de cdigos

Teoria da Informao Cdigos de fonte 2
Compresso de dados
Compresso = Modelizao + Codificao
Se o modelo no fornecer probabilidades correctas o codificador comprime
pouco, por muito eficiente que seja.
Dados de
entrada
Modelo Codificador
Smbolos
Probabilidades
Smbolos
codificados
Modelo estatstico

L smbolo
de entrada
Codifica
smbolo
Actualiza
modelo
Smbolos Smbolos
Modelo
codificados
Compresso adaptativa genrica

L smbolo
codificado
Descodifica
smbolo
Actualiza
modelo
Smbolos
Modelo
descodificados
Smbolos
codificados
Descompresso adaptativa genrica

Teoria da Informao Cdigos de fonte 3
Porqu mtodos de compresso
adaptativos?
Huffman (esttico): as estatsticas da fonte tm de ser passadas ao
programa de expanso (descodificao).

Essa informao um overhead, que tanto pode ser pequeno como
muitssimo grande (depende do rigor do modelo).

Num modelo adaptativo no se passa informao estatstica ao
descodificador

no h overhead.
Mas de incio o codificador est s escuras, isto , no conhece as
estatsticas da fonte porque ainda no comeou a determin-las.

Isto quer dizer que:
de incio comprime mal os dados mas vai melhorando com o tempo!
Teoria da Informao Cdigos de fonte 4
Compresso de dados
Marcos histricos

1952: D. A. Huffman, A method for the construction of
minimum redundancy codes, Proceedings of the
IRE, Setembro de 1952.
1977: J. Ziv e A. Lempel, A universal algorithm for
sequential data compression, IEEE Transactions on
Information Theory, Maio de 1977.
1978: J. Ziv e A. Lempel, Compression of individual
sequences via variable rate coding, IEEE
Transactions on Information Theory, Setembro de
1978.
1984: T. Welch, A technique for high-performance data
compression, IEEE Computer, Junho de 1984.

Teoria da Informao Cdigos de fonte 5
O artigo (comprimido) de David Huffman

Teoria da Informao Cdigos de fonte 6
Um exemplo simples de compresso
Um texto codificado em ASCII (8 bits/letra, de acordo com a tabela seguinte).

Suponhamos que a frequncia relativa com que os caracteres ocorrem representada pelo
seguinte histograma. Os caracteres mais frequentes so as minsculas, o espao e o retorno ao
incio de linha (carriage return, CR).

Verificou-se que 96% do texto constitudo por 31 caracteres (letras minsculas, espaos,
vrgulas, etc.).
Cada um desses 31 caracteres pode ser representado por 5 bits. A 32 palavra de 5 bits (11111)
pode ser uma flag indicando que a seguir vem um carcter que no um dos 31 anteriores.
Cada um desses outros caracteres representado por 5 + 8 = 13 bits.
Comprimento mdio das palavras do cdigo: 0, 96 5 0, 04 13 5, 32 N = + = bits
(em vez dos 8 originais).
Teoria da Informao Cdigos de fonte 7
Cdigo de Shannon-Fano
No Cdigo de Shannon-Fano as palavras a codificar devem ser ordenadas por
ordem decrescente de probabilidades. Suponhamos, por exemplo, que temos as
palavras x
1
, x
2
, x
3
, x
4
, x
5
e x
6
, que ocorrem com as seguintes probabilidades:

P(x
1
) = 0,1 P(x
2
) = 0,2 P(x
3
) = 0,2
P(x
4
) = 0,03 P(x
5
) = 0,07 P(x
6
) = 0,4
Ordenando os smbolos e dividindo-os sucessivamente em dois grupos de
probabilidades aproximadas, obteremos o seguinte:
Smbolo Probabilidade
de ocorrncia
Construo das
palavras de cdigo
Palavras de
cdigo
P(x
6
)
0,4 0 0 00
P(x
2
)
0,2 0 1 01
P(x
3
)
0,2 1 0 10
P(x
1
)
0,1 1 1 0 110
P(x
5
)
0,07 1 1 1 0 1110
P(x
4
)
0,03 1 1 1 1 1111
Entropia da fonte:
6
1
2 2 2 2 2 2
( ) log
(0, 4log 0, 4 0, 2log 0, 2 0, 2log 0, 2 0,1log 0,1 0, 07log 0, 07 0, 03log 0, 03)
2, 21 bits/smbolo
i i
i
H X P P
=
= =
= + + + + + + =
=


Comprimento mdio das palavras de cdigo:

N = 2 0, 4 + 2 0, 2 + 2 0, 2 + 3 0,1 + 4 0, 07 + 4 0, 03 =
= 2, 3 dgitos binrios / smbolo

Eficincia do cdigo =
Entropia da fonte
comprimento mdio das palavras de cdigo
=
H X ( )
N
=
2, 21
2, 3
= 96%
Teoria da Informao Cdigos de fonte 8
Cdigo de Huffman binrio
Este cdigo de fonte ptimo no sentido de que o nmero mdio de dgitos
binrios necessrio para representar o smbolo da fonte mnimo.
Vamos usar o cdigo de Huffman com uma fonte que produz oito smbolos:
P(x
1
) = 0,50 P(x
2
) = 0,02 P(x
3
) = 0,03 P(x
4
) = 0,04
P(x
5
) = 0,10 P(x
6
) = 0,04 P(x
7
) = 0,12 P(x
8
) = 0,15
Passos a tomar para construir a rvore do cdigo (ver exemplo):
1. Ordenar as mensagens por ordem decrescente de probabilidades.
x
1
x
8
x
7
x
5

x
4
x
6

x
3
x
2

2. Agrupar as duas mensagens com as probabilidades mais baixas e somar estas
probabilidades.
Agrupamos x
2
e x
3
no n a, cuja soma de probabilidades d 0,05. De um conjunto de oito
probabilidades passmos a ter um conjunto de 6+1=7 probabilidades.
3. Repetir o passo anterior para o novo conjunto de probabilidades, at chegar raiz da rvore.
3.1 Agrupamos x
4
e x
6
no n b, cuja soma de probabilidades d 0,08. De um conjunto de sete
probabilidades passmos a ter um conjunto de seis probabilidades: 0,50, 0,15, 0,12, 0,10, 0,08
(n b) e 0,05 (n a).
3.2 Agora agrupamos os ns a e b, produzindo o n c. Depois agrupamos x
5
e x
7
, produzindo o n
d, e assim por diante, gerando os ns e e f e chegando finalmente raiz.
4. Da copa para a raiz arbitrar o bit 1 (ou 0) para os ramos que partem do n de menor
probabilidade e o bit 0 (ou 1) para os que partem do outro n.
Por exemplo, ao ramo que vai do n a para o n c atribuamos-lhe o bit 1.
5. Determinar as palavras de cdigo percorrendo a rvore da raiz para a copa.
Por exemplo, ao smbolo x
7
corresponde a palavra de cdigo binria 110.
A entropia da fonte vale H(X) = 2,21 bits/smbolo e N = 2, 26 . Se tomssemos
palavras de cdigo de igual comprimento necessitaramos de 3 binits/smbolo. Assim
bastou tomar 2,26 binits/smbolo Eficincia =
2, 21
2, 26
= 97,3%.
Teoria da Informao Cdigos de fonte 9
A rvore do exemplo de
cdigo de Huffman binrio
x1
x8
x7
x5
x4
x6
x3
x2
0,50
0,15
0,12
0,10
0,04
0,04
0,03
0,02
a
b
c
0,05
0,08
0,13
0,22
0,28
0,50
1,00
d
e
f
0
1
0
0
0
0
0
0
1
1
1
1
1
1
Palavras de cdigo
0
1 0 0
1 1 0
1 1 1
1 0 1 0 0
1 0 1 0 1
1 0 1 1 0
1 0 1 1 1
Probabilidade
Arvore

Repare-se que no cdigo de Huffman a codificao se faz em direco raiz da
rvore, ao contrrio do cdigo de Shannon-Fano mas a formao das palavras de
cdigo faz-se no sentido contrrio.
Teoria da Informao Cdigos de fonte 10
Cdigo de Huffman no binrio
Se o cdigo no for binrio (D > 2) preciso proceder a um agrupamento inicial
de mensagens de acordo com o seguinte procedimento
1
:
Sendo M o tamanho do alfabeto da fonte e D o tamanho do alfabeto
do cdigo, agrupam-se primeiro as 2
mensagens menos provveis.
) 1 mod( ) 2 ( + D M
( ) 1 mod( ) 2 ( D M o resto da diviso de M-2 por D-1)
EXEMPLO: D = 3, M = 6

a1
a2
a3
a4
a5
a6
0,4
0,3
0,2
0,05
0,03
0,02
0,05
0
0
0
1
1
1
2
0,3
2
1,0
Palavras de cdigo
0
1
2 0
2 1
2 2 0
2 2 1
Probabilidade
Arvore
Agrupamento prvio das 2 + 4 mod 2 = 2
mensagens menos provveis

O agrupamento prvio diminui o valor de N pois assim h menos palavras
compridas (duas de 3 dgitos ternrios em vez de trs (D=3)).

1
A justificao pode encontrar-se em R. G. Gallager, Information Theory and Reliable
Communication (Wiley, 1968), Sec. 3.4.
Teoria da Informao Cdigos de fonte 11
Algo mais sobre o cdigo de Huffman
Reduo da varincia
Se ao formar um novo conjunto de probabilidades decrescentes houver
probabilidades iguais as que resultam de agrupamentos devem ser colocadas o
mais alto possvel. Desse modo reduz-se a varincia V dos comprimentos n
i
das
palavras de cdigo. No entanto o comprimento mdio N mantm-se.

2
ncia =
i
V E n N

=

2
i
Vari
, com
2 2
1
M
i i
i
E n P
=

=


n
A varincia mnima tem vantagens:
o ritmo de produo de bits mais uniforme (o que conveniente para o preenchimento de
buffers);
h uma maior imunidade (resistncia) a erros do canal, na descodificao.
Aumento da eficincia da codificao no binria com agrupamento
prvio
O agrupamento prvio de smbolos na codificao de Huffman no-binria
aumenta a sua eficincia pois baixa o comprimento mdio N, dado que assim as
palavras mais compridas so em menor nmero.
Aplicaes
O cdigo de Huffman usado em equipamento comercial de compresso de
dados para reduzir o nmero de bits transmitidos permitindo, portanto, reduzir o
tempo de transmisso. Um exemplo concreto o equipamento de fax.
Teoria da Informao Cdigos de fonte 12
Codificao aritmtica
Dizemos que um codificador ptimo quando permite comprimir os dados
gerados por uma determinada fonte com o nmero mnimo possvel de bits.
Apesar de os cdigos de Huffman serem muito eficientes na maioria das
aplicaes, s so ptimos num reduzido nmero de casos (quando a
probabilidade de ocorrncia de cada smbolo for uma potncia inteira de 1/2).
A codificao aritmtica surgiu em 1976 com Rissanen. Esta tcnica de
codificao permite gerar cdigos ptimos se as diversas probabilidades de
ocorrncia forem conhecidas rigorosamente.

necessria uma correcta modelizao da fonte
(como j acontecia na codificao de Huffman).
O cdigo gerado por um codificador aritmtico representa um nmero real: o
codificador faz corresponder a uma qualquer sequncia de smbolos (cada um
com a sua probabilidade) um nmero real superior ou igual a 0 e inferior a 1.
O intervalo de 0 a 1 inicialmente dividido em tantos intervalos quantos os
smbolos diferentes produzidos pela fonte, de tamanhos proporcionais s
probabilidades de ocorrncia respectivas.
Consoante o smbolo que for sendo gerado assim o respectivo intervalo vai sendo
subdividido proporcionalmente.
O resultado final ser um nmero real includo no intervalo final (fechado
esquerda e aberto direita). O nmero escolhido dever ser um de entre os que
podem ser representados pelo menor nmero de bits (se a codificao for
binria).
necessrio acrescentar um smbolo especial ao conjunto de smbolos da fonte
para assinalar o fim da sequncia.
O melhor vermos um exemplo
Teoria da Informao Cdigos de fonte 13
Codificao aritmtica: introduo
Uma fonte produz os smbolos A e B com as probabilidades 0,6 e 0,4,
respectivamente.
Ao smbolo A vamos associar o intervalo semifechado de 0 a 0,6
(exclusiv) e a B vamos associar o intervalo semifechado de 0,6 a 1:
0
0,6
1
A B

Se cada um dos intervalos for dividido noutros dois com a mesma
proporo (60% e 40%) obtemos quatro intervalos mais pequenos, [ [,
, [ [ e [ [:
0;0, 36
0, 36; 0, 6 [ [ 0, 6;0,84 0,84;1
0
1
AA BA AB BB
0,6x0,6=0,36 0,6 0,6+0,6x0,4=0,84

Prosseguindo a subdiviso obteramos oito intervalos ainda mais
pequenos:
0
0,2160 0,504 0,744 0,936 0,6
1
0,36 0,84
AAA AAB ABA ABB BAA BAB BBA BBB

mensagem AAA corresponde o intervalo de 0 a 0,216 (com largura igual
a ), a BAB corresponde o intervalo de 0,744 at 0,84 (com
largura 0,
p( A)
3
= 0, 216
84 0, 744 = p(B)p(A)p(B) = 0, 096), e por a adiante.
Para codificar a mensagem AAA s temos que escolher um nmero dentro
do intervalo correspondente, e de preferncia um que seja representado
pelo menor nmero de bits:
0,2160 0,504 0,744 0,936 0,6 0,36 0,84
0 1
AAA
1/8
001
0,001
AAB
2/8
010
0,010
ABA
4/8
100
0,100
ABB
9/16
1001
0,1001
BAA
5/8
101
0,101
BAB
6/8
110
0,110
BBA
7/8
111
0,111
BBB
15/16
0,1111
1111

Teoria da Informao Cdigos de fonte 14
Codificao aritmtica exemplo 1

0 1
0,4 0,75
0,16
0,3
0,4
0,34
0,375
0,354
0,36625
0,3456
0,3505
0,34224 0,3442
0,34224
0,3442
0,34
0,34
0,3456
0,354
0,375
0,34
0,3
0,4
0
a
c
b
a
a
b
a b c
Sequncia a codificar: a c b a a b
P(a) = 0,4 P(b) = 0,35 P(c) = 0,25

O cdigo deve ser um nmero real includo no intervalo [0,34224; 0,3442[.
Teoria da Informao Cdigos de fonte 15
Codificao aritmtica exemplo 2
Carcter Probabilidade Gama de valores
Espao 0,1 [0,0 ; 0,1[
A 0,1 [0,1 ; 0,2[
B 0,1 [0,2 ; 0,3[
C 0,1 [0,3 ; 0,4[
E 0,1 [0,4 ; 0,5[
H 0,1 [0,5 ; 0,6[
L 0,2 [0,6 ; 0,8[
R 0,1 [0,8 ; 0,9[
V 0,1 [0,9 ; 1,0[
Codificao de BARCA VELHA:
Carcter Valor inferior Valor superior Largura do
intervalo
0,0 1,0 1,0
B 0,2 0,3 10
-1
A 0,21 0,22 10
-2

R 0,218 219 10
-3

C 0,2183 0,2184 10
-4

A 0,21831 0,21832 10
-5

Espao 0,21831 0,218311 10
-6

V 0,2183109 0,218311 10
-7

E 0,21831094 0,21831095 10
-8

L 0,218310946 0,218310948 2x10
-9

H 0,218310947 0,2183109472 2x10
-10

A 0,21831094702 0,21831094704 2x10
-11

BARCA VELHA = 0,21831094702 (por exemplo).
Teoria da Informao Cdigos de fonte 16
Procedimento de descodificao
1) Subtrair o valor inferior do intervalo da letra;
2) Dividir pela largura desse intervalo;
3) O resultado indica a nova letra;
4) Repetir
Exemplo abaixo:
0, 21831094702 B
0, 21831094702 0,2
0,1
= 0,1831094702 A
Descodificao de 0,21831094702:
Nmero
codificado
Carcter Valor inferior Valor superior Largura do
intervalo
0,21831094702 B 0,2 0,3 0,1
0,1831094702 A 0,1 0,2 0,1
0,831094702 R 0,8 0,9 0,1
0,31094702 C 0,3 0,4 0,1
0,1094702 A 0,1 0,2 0,1
0,094702 Espao 0,0 0,1 0,1
0,94702 V 0,9 1,0 0,1
0,4702 E 0,4 0,5 0,1
0,702 L 0,6 0,8 0,2
0,510 H 0,5 0,6 0,1
0,10 A 0,1 0,2 0,1
0,0
0,21831094702 = BARCA VELHA
Teoria da Informao Cdigos de fonte 17
Codificao aritmtica exemplo 3
Codificao

X
0
= 0
0,6 0,9
1
a
3
0,96
1
0,936
0,9216
0,9324
0,9280 0,9
0,92548
0,92743
0,9
0,96
0,9
0,936 0,9
0,9324
0,9216
0,9216 0,9280
a
1
a
1
a
1
a
2
a
2
(60%) (30%)
(60%) (30%)
(10%)

Descodificao

0,6 0,9 1 0
0,6 0,9 1 0
0,6 0,9 1 0
0,6 0,9 1 0
0,6
0,9 1 0
0,6 0,9 1 0
Z
5
Z
4
Z
3
Z
2
Z
1
Z
6
= 0,927430
a
3
a
1
a
2
a
1
a
1
a
2
Sada do
descodificador

Teoria da Informao Cdigos de fonte 18
Inconvenientes dos cdigos estatsticos
preciso conhecer a estatstica da fonte. Para texto vulgar as frequncias de
ocorrncia conhecidas bastariam; para texto mais especializado (reservas de
avio, cotaes da Bolsa, etc.) essas estatsticas no permitiriam uma codificao
muito eficiente. Usando tcnicas adaptativas consegue-se uma compresso de
cerca de 43% em ingls vulgar
*
com cdigo de Huffman.
Em mensagens de texto a codificao no tem em conta a dependncia entre
letras (por exemplo, entre q e u) pois apenas so codificadas letras individuais.
O facto das palavras de cdigo terem comprimento varivel pe problemas na
transmisso pois a fonte est a gerar smbolos a uma taxa constante e o
codificador produz smbolos a uma taxa varivel. O emissor ter, pois, de possuir
um buffer para obviar a este problema.
O cdigo de Huffman uma abordagem de codificao estatstica. Uma
alternativa que remedeia algumas das suas deficincias a abordagem com
dicionrios, de que os algoritmos de Lempel-Ziv (L-Z) so exemplos. Nesses casos
constri-se gradualmente um dicionrio, ou livro de cdigo, isto , usa-se um
algoritmo adaptativo.

*
R. Gitlin, J. Hayes e S. Weinstein, "Data Communications Principles", Plenum Press, 1992.
Teoria da Informao Cdigos de fonte 19
Codificao LZ77
Usa-se uma janela de observao de comprimento fixo que desliza ao longo da
mensagem a comprimir. composta por duas partes:
corpo (da janela)
Contm vrios milhares de caracteres (8192, por exemplo)
look-ahead buffer
Bastante mais pequeno (10 a 20 caracteres, ou at mais)
Janela deslizante
Look-ahead buffer Corpo da janela
N-F caracteres F
o que acabou de acontecer o que est a acontecer

Passos a dar na codificao:
1. compara-se o contedo do corpo da janela com o contedo do buffer e verifica-se
se existe algum padro ou sequncia de smbolos igual. Esse padro substitudo
na sada do codificador por um apontador constitudo por um trio de elementos
que na maior parte dos casos ocupa menos espao que o padro
repetido:
< i, j, a >
i : distncia (ou offset) do incio do buffer ao incio do padro igual; especifica uma de
N F posies na janela e pode ser 0.
j : comprimento do padro; tem um valor entre 0 e . F 1
a : primeiro carcter que j no faz parte do padro repetido. o prximo smbolo a
codificar.
2. Desloca-se a janela para a frente de caracteres. j +1
A incluso do prprio carcter a no apontador para que a codificao prossiga
mesmo que no haja padro repetido. Nesse caso o apontador ( . 0, 0, a)
Teoria da Informao Cdigos de fonte 20
LZ77: nmero de bits do apontador
O nmero de bits necessrios para representar cada apontador sempre o
mesmo:
O primeiro elemento (distncia) requer log
2
(N F)

bits;
o segundo elemento (comprimento) requer log
2
F

bits;
o terceiro (smbolo da fonte) requer log
2
M

bits, em que M o tamanho do
alfabeto da fonte.
Para representar cada apontador so precisos, no total,


log
2
(N F) + log
2
F

+ log
2
M

bits

Exemplo com uma janela deslizante com e N = 24 F = 8
T U D O , T A S T I O C O M E T U D O ,
distncia = 6
comprimento = 7
. . . . . .

(o smbolo

representa um espao)
Ao olhar para o look-ahead buffer verifica-se que o padro TUDO, , de
sete caracteres, j apareceu antes, concretamente seis caracteres atrs. Como a seguir
vem o carcter T, TUDO, ser codificado como (6, 7, T).
Nmero de bits de cada apontador (vamos supor que M = 50):
log
2
(N F)

+ log
2
F

+ log
2
M

= log
2
16

+ log
2
8

+ log
2
50

= 13
Teoria da Informao Cdigos de fonte 21
Descodificao LZ77
A janela deslizante tem o mesmo tamanho N que foi usado na codificao mas,
em vez de se procurar uma correspondncia entre corpo de janela e look-ahead buffer
copia-se da prpria janela para a sada do descodificador o padro indicado pelo
apontador.
Suponhamos que o apontador (3, 5, E) quando, num determinado momento da
codificao, a janela deslizante estiver preenchida como na figura:

E B A C B C A ? ? ?
(3, 5, E)

Como descodificar o apontador (3, 5, E)?
A sequncia EBACBCA j est na sada do descodificador. Ora (3, 5, E) est
a apontar para a terceira letra (a partir do fim) e corresponde a uma sequncia de
cinco letras seguida da letra E. Ento na sada vo surgindo sucessivamente as
seguintes letras:
1. EBACBCA B
2. EBACBCA BC
3. EBACBCA B C A
Neste momento j temos trs caracteres a partir do B inicial. Ainda faltam dois:
4. EBACBCA B C A B
5. EBACBCA B C A B C
S falta o carcter seguinte, E:
6. EBACBCA B C A B C E
Teoria da Informao Cdigos de fonte 22
Limitaes de LZ77
1. Se no look-ahead buffer no houver nenhuma sequncia que case com o
contedo da janela o carcter a codificar , mesmo assim, representado por um
apontador constitudo pelo trio de elementos habitual (distncia, comprimento e
carcter seguinte); nesse caso a codificao de um carcter necessitar de mais
bits que o prprio carcter no codificado.
Exemplo: se a janela tiver 4K bytes (de 8 bits) com um buffer de 16 bytes e se
cada carcter no codificado for representado por 1 byte sero necessrios 12
bits (distncia) mais 4 bits (comprimento) mais 8 bits (carcter), isto , 24 bits para
representar um carcter que inicialmente s ocupava 8 bits: o codificador em vez
de comprimir expandiu!!
2. A janela s observa o que recente (porque o seu tamanho finito): LZ77 mais
eficiente a comprimir padres iguais prximos uns dos outros (isto , que estejam
na janela e no buffer) do que padres iguais que estejam longe.
3. O tamanho limitado do buffer restringe o tamanho dos padres que se comparam,
que no podem ser maiores que o buffer. Mas s vezes as equivalncias so mais
compridas pelo que se perde eficincia.
Uma soluo possvel: aumentar os tamanhos da janela e do buffer, mas nesse
caso sero precisos mais bits para representar a distncia e o comprimento, alm de
que a codificao ser mais lenta (mais comparaes tero de ser feitas entre as
sequncias da janela e do buffer).
H que estabelecer um compromisso entre, por um lado, os valores de N e F e,
por outro, a eficincia e a velocidade de compresso.
Teoria da Informao Cdigos de fonte 23
Codificao LZ78
Existem imensas variantes do cdigo LZ
*
e j conhecemos a LZ77. A variante que a seguir se
apresenta, seguindo Gitlin et al., devida aos prprios "inventores", Jacob Ziv e Abraham Lempel
(1978).
Na sequncia de sada da fonte vamos procurar uma sequncia de smbolos que ainda no
tenha sido encontrada antes. Esta sequncia codificada usando sequncias que j foram
encontradas antes e que, por isso, j foram guardadas num livro de cdigo, ou dicionrio.
O algoritmo compreende-se melhor com um exemplo:
Suponhamos que a sequncia original (na fonte) era
1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1
Percorrendo a sequncia da esquerda para a direita e admitindo que no nosso livro de cdigo
j esto guardados os smbolos 0 e 1, obteramos a seguinte segmentao:
1 1 / 0 0 / 1 1 0 / 0 0 1 / 0 1 / 0 1 1 / 0 0 1 0 / 0 1 1 1 / 1 0 / 0 1
O livro de cdigo, inicializado com os smbolos 0 e 1, vai conter os seguintes smbolos, com a
numerao indicada:
0 1 11 00 110 001 01 011 0010 0111 10
1 2 3 4 5 6 7 8 9 10 11
A sequncia a transmitir ser a seguinte: 21 10 30 41 11 71 60 81 20 11.
Cada inteiro representado por um bloco de dgitos binrios cujo tamanho depende do
tamanho do livro de cdigo. Na prtica so normalmente usados blocos de 12 bits (isto , 4096
entradas no livro de cdigo).
Uma sequncia nova termina sempre em 0 ou em 1. Consequentemente, apenas 1 bit
necessrio para representar os fins de cada palavra de cdigo, isto , as palavras de cdigo so
representadas por 12+1=13 bits.
No algoritmo LZ78 palavras de cdigo de comprimento fixo representam um nmero varivel
de smbolos de sada da fonte. Isto o inverso do algoritmo de codificao de Huffman e muito
adequado para transmisso sncrona.

*
Ver, por exemplo, T. Bell, J. Cleary e I. Witten, "Text Compression", Prentice-Hall, 1990.
Teoria da Informao Cdigos de fonte 24
Cdigo LZ78
Exemplo
Consideremos a seguinte passagem literria:
"Foi ele que rapou avaramente a sopeira. E j espreitava a porta, esperando a portadora dos
pitus, a rija moa de peitos trementes, que enfim surgiu, mais esbraseada, abalando o sobradoe
pousou sobre a mesa uma travessa a transbordar de arroz com favas. Que desconsolo! Jacinto, em
Paris, sempre abominara favas!Tentou todavia uma garfada tmidae de novo aqueles seus
olhos, que o pessimismo enevoara, luziram, procurando os meus. Outra larga garfada, concentrada,
com uma lentido de frade que se regala. Depois um brado:
ptimo!Ah, destas favas, sim! Oh que favas! Que delcia!"
Suponhamos que o livro de cdigo j contm todas as letras, maisculas e
minsculas, espao e todos os sinais de pontuao. A segmentao do texto seria
assim:
"Fo/i /el/e /qu/e r/ap/ou/ a/va/ra/me/nt/e a/ s/op/ei/ra./ E/ j/ /es/pr/eit/av/a /a p/or/ta/,
/esp/er/an/do/ a /po/rt/ad/ora/ d/os/ p/it/u/s,/ a r/ij/a m/o/a d/e p/eito/s /tr/em/en/te/s, /que/ e/nf/im/
su/rg/iu/, m/ai/s e/sb/ras/ea/da/, a/ba/la/nd/o /o s/ob/rad/o/e po/us/ou /sob/re/ a m/esa/ u/ma/
t/rav/ess/a a/ tr/ans/bo/rd/ar/ de/ ar/ro/z /co/m /fa/vas/. /Qu/e d/esc/on/sol/o!/ J/ac/in/to/, e/m P/ari/s,
s/emp/re /ab/om/ina/ra /fav/as/!/Te/nto/u /tod/avi/a u/ma /ga/rf/ada/ t/mi/da/e d/e n/ov/o
a/quel/es /se/us /ol/ho/s, q/ue/ o/ pe/ss/imi/sm/o e/ne/vo/ara/, l/uz/ir/am/, p/roc/ur/and/o o/s m/eu/s./
O/ut/ra l/arg/a g/arf/ada,/ c/onc/ent/rada/, c/om /um/a l/enti/d/o d/e f/rade/ q/ue /se /reg/al/a./
D/ep/oi/s u/m b/rado/:
//pt/imo/!A/h,/ des/tas/ f/ava/s, si/m!/ Oh/ qu/e fa/vas!/ Q/ue d/el/ci/a!/"
Cada nova sequncia ser codificada em duas palavras que j existem no livro
de cdigo, a ltima das quais faz parte do livro inicial. Repare-se, por curiosidade,
como codificada a palavra favas, que aparece quatro vezes.
Com o cdigo LZ78 consegue-se uma compresso de aproximadamente 55% em
ingls vulgar (em portugus no se conhecem dados). Em texto mais estruturado
linguagens de programao, por exemplo pode-se atingir maiores compresses.
Como j se disse antes, com o cdigo de Huffman consegue-se chegar a 43%.
Teoria da Informao Cdigos de fonte 25
Codificao LZ78 um exemplo
Mensagem a codificar: A A A A B A B C C A A B A C C A A A A B C

A 1 0A
B 2 0B
C 3 0C
AA 4 1A
AAB 5 4B
AB 6 1B
CC 7 3C
AABA 8 5A
CCA 9 7A
AAA 10 4A
BC 11 2C
Entrada ndice Palavra de cdigo


Sada do codificador: 1A 4B 1B 3C 5A 7A 4A 2C
Teoria da Informao Cdigos de fonte 26
Compresso de dados
Programas ou formatos de compresso
Nome Ambiente Algoritmo Comentrio
COMPACT Unix Huffman adaptativo Lento, patenteado
SQ CP/M e
MS-DOS
Huffman esttico,
ordem 0
Incio anos 80;
compresso comparvel
a COMPACT
ARC PC LZ78/compress Comprime e arquiva
LHarc PC/Mac LZ77 freeware
ARJ PC/Mac LZ77 Melhor que LHarc
CPT Mac LZ
DEFLATE

LZ77 + Huffman Para substituir LZW.
Muito popular.
Autor: Phil Katz.
PKZIP, zip DEFLATE Autor: Phil Katz
gzip
Windows,
Mac,
Linux,
LZ77 Para substituir compress
Autores: Jean-Loup
Gailly e Mark Adler
bzip
Codificao
aritmtica
Autor: Julian Seward
bzip2
Huffman +
transformada de
Burrows-Wheeler
Sucessor de bzip
Autor: Julian Seward
(1996)
(Continua)
Teoria da Informao Cdigos de fonte 27
Teoria da Informao Cdigos de fonte 28
Compresso de dados
Programas ou formatos de compresso
(Cont.)
Nome Companhia Algoritmo Comentrio
MNP-5 Microcom variante dinmica
de Huffman
Modems
V42.bis CCITT/ITU LZW Modems; melhor que
MNP-5

G.721 CCITT/ITU ADPCM Compresso de voz
LPC Compresso de voz

StuffIt Win, Mac, Linux LZ Utilitrio de
compresso
WinZip Win, Mac, Linux zip Utilitrio de
compresso
GIF Compuserve LZW Para imagens
bit-mapped
JPEG ISO/CCITT DCT/Huffman Para imagens fixas
MPEG ISO/CCITT Para imagens mveis
Adobe
Acrobat
Adobe LZW Ficheiros .pdf


1.6. Fontes e canais contnuos
entropia diferencial
teorema da capacidade de canal (lei de
Shannon-Hartley)
limite de Shannon
plano da probabilidade de erro
plano da eficincia espectral
Fontes contnuas
Uma fonte de informao contnua produz sinais variveis no tempo, x(t).
O conjunto de sinais possveis considerado como um conjunto de formas de
onda geradas por um determinado processo aleatrio (suposto ergdico).
Suponhamos que o processo aleatrio tem uma largura de banda finita. Ento
x(t) pode ser completamente caracterizado em termos de valores amostra peridicos.
Em qualquer instante a coleco de valores amostra possveis constitui uma varivel
aleatria X descrita pela sua funo densidade de probabilidade, p(x).
No caso das fontes contnuas a quantidade mdia de informao por amostra de
x(t) mede-se atravs da funo entropia diferencial:
h(X) = p( x)log
2
1
p(x)
dx

(Entropia de fonte contnua)


A entropia diferencial h(X) atinge o seu valor mximo se p(x) for uma
funo densidade de probabilidade gaussiana (ver Anexo 2):
max
p
X
( X)
h( X) =
1
2
log
2
2eS em que S = E(X
2
) (varincia)
Teoria da Informao Fontes e canais contnuos 2
Fontes e canais contnuos
A transferncia de informao num canal contnuo toma a forma de transmisso
de sinal: a fonte emite um sinal x(t) que, aps corrupo por rudo de transmisso,
aparece no destino como um outro sinal, y(t).
A informao mtua mdia definida como
I(X;Y) = p
XY
(x, y)log
2
p
X
(x| y)
p
X
( x)
dx dy



I(X;Y) mede a transferncia de informao por amostra de y(t) no destino. Tal
como no caso discreto tambm aqui se verifica que I(X;Y) 0 (e I(X;Y) = 0 se o
rudo for to elevado que y(t) no est relacionado com x(t).
A informao mtua mdia est relacionada com a entropia diferencial atravs
de
I(X;Y) = h(Y) h(Y| X) = h(X) h(X| Y)
em que h(X) representa a entropia diferencial da fonte, h(Y) representa a entropia
diferencial do destino, h(X|Y) a equivocao e h(Y|X) representa a entropia
diferencial do "rudo", como se ver.
h(X| Y) = p
XY
(x, y)log
2
1
p
X
(x| y)
dxdy

p
Y
(y) p
X
(x| y)log
2
1
p
X
(x| y)
dx dy



h(Y| X) = p
XY
(x, y)log
2
1
p
Y
(y| x)
dxdy

p
X
(x)p
Y
(y| x)log
2
1
p
Y
(y| x)

dxdy


Teoria da Informao Fontes e canais contnuos 3
Capacidade de canais contnuos
Sabe-se, da teoria das probabilidades, que se Y = aZ+b, em que Z e Y so
variveis aleatrias, ento p
Y
(y) =
a
1
p
Z
a
| |
1
\


.
| =
a
p
Z
(z). Assim, se o canal
introduzir rudo gaussiano aditivo independente, tal que y(t) = x(t) + n(t), ento
Y b

( | ) ( ) ( ) ( )
Y Y N N
p y x p x n p y x p n = + = =

e portanto
2 2
1 1
( | ) ( ) ( | )log ( )log ( )
( | ) ( )
X Y N
Y N
h Y X p x p y x dxdy p n dn h N
p y x p n


= =

=
Isto , a entropia diferencial condicional de Y, dado X, no depende de p
X
(x) e igual
entropia diferencial de N. Podemos, ento escrever:
I(X;Y) = h(Y) h( N)
A transferncia mxima de informao por amostra de y(t) obtm-se
maximizando I(X;Y). Esta maximizao equivalente maximizao de h(Y), logo Y
deve ser uma varivel aleatria gaussiana. Como N tambm gaussiana, X deve
tambm ser gaussiana.
Se o canal tiver uma largura de banda fixa B ento a sua sada, y(t), um sinal
de banda limitada que pode ser completamente definido por amostras Y
k
, k = 1,2,,
obtidas taxa de Nyquist, f
s
= 2B amostras/s. Definindo
C
s
= max
p
X
(x)
I(X;Y) = maxI(X;Y) : X gaussiana E(X
2
) = S
[ ]
bits / amostra
a taxa mxima de transferncia de informao, em bits/s, ento
C = 2BC
s
bits/s (capacidade de um canal contnuo de banda limitada)
Teoria da Informao Fontes e canais contnuos 4
Capacidade do canal AWGN
Consideremos um canal contnuo de banda limitada afectado de rudo gaussiano
branco aditivo (canal AWGN).
Propriedades:
o sinal de entrada, x(t), tem banda limitada e uma potncia mdia fixa,
S = E(X
2
).
a transmisso no sofre distoro na largura de banda B do canal (a menos de
atenuao)
o rudo aditivo que contamina a sada do canal tem funo densidade de
probabilidade gaussiana com mdia nula e potncia mdia N = N
o
B
o sinal e o rudo so independentes:
y(t) = x(t) + n(t) E Y
2
[ ]
=
y
2
= S + N
A entropia diferencial condicional h(Y|X) = h(N) pode calcular-se a partir de
p
N
(n), sendo :
n
2
= N

2
1
) (
2
2
2
2
n
n
n
n
e n p

=
log
2
1
p
n
(n)
= log
2
2N +
n
2
2N
log
2
e
h(Y| X) = h(N) = p
n
(n)log
2
1
p
n
(n)
dn

= log
2
2N

+
1
2
log
2
e =
1
2
log
2
(2eN)
O valor mximo de h(Y) igual a
) ( 2 log
2
1
2 log
2
1
2
2
2
N S e e
y
+ =


(Continua)
Teoria da Informao Fontes e canais contnuos 5
Capacidade do canal AWGN
(Contin.)
Podemos ento calcular a capacidade de um canal AWGN:
h(Y| X) =
1
2
log
2
(2eN)
max
p
X
( x)
h(Y) =
1
2
log
2
2e(S + N)

C
s
= max
p
X
( x)
I( X;Y) = max
p
X
(x )
h(Y)
[ ]
h(Y| X) =
=
1
2
log
2
2e(S + N)
1
2
log
2
2eN =
1
2
log
2
1+
S
N
|
\

|
.
|
bits / amostra

Capacidade do canal em bits/s:
C = Blog
2
1+
S
N
|
\

|
.
|



Esta expresso traduz o Teorema da capacidade de canal ou lei de
Shannon-Hartley, que um dos mais famosos e importantes resultados da Teoria da
Informao:

No possvel transmitir sem erros a um ritmo superior a C = Blog
2
1+
S
N
|
\

|
.
|


bits/s
atravs de um canal com largura de banda B e relao sinal-rudo S/N.

Teoria da Informao Fontes e canais contnuos 6
Implicaes do teorema da capacidade de
canal
Um sistema ideal com largura de banda infinita tem uma capacidade de canal
finita:

2 2
0
0
log 1 log 1
ln 1
ln2
S S
C B B
N N
B S
N B
| |
| |
= + = +
| |
\ .
\ .
| |
= +
|
\ .
B
=

Se B ,
0
0 S N B . Mas . Portanto,

0 0
1
lim 1, 44
ln2 ln2 B
0
B S S
C C
N B N N

= = =
S

Existe um valor limite de E
b
/N
0
(limite de Shannon) abaixo do qual no pode
haver comunicao sem erros, qualquer que seja o ritmo de transmisso.
Sendo T a durao de cada bit, E
b
a sua energia e R = 1/T bits/s, ento
0 0
b b
E T E S R
N N B N B
= =
2 2
0
log 1 log 1
b
E S R
C B B
N N
| |
| |
= + = +
| |
\ .
\ .
B

Mas R C
2
0
log 1
b
E R C R
B B N
| |
= +
|
\ .
B

Se B
0
0
2
0
ln 1
log 1
ln2 ln2
b b
b
E R E R
N B
E N B R R
B N B
| |
+
|
| |
\ .
+ =
|
\ .

Portanto,

E
b
N
0
ln 2 = 0, 693 1, 59dB (limite de Shannon)
Teoria da Informao Fontes e canais contnuos 7
Capacidade de canais contnuos
Capacidade do canal em funo da largura de banda
S/N
o
B (Hz)
1,44 S/N
o
S/N
o
C (bits/s)

O limite de Shannon
0,1
1
10
20
30
-10 0 10 20 30 40
-1,59
Regio com R > C
Regio com R < C
R = C
E
b
/N
0
(dB)
C/B (bits/s/Hz)

Teoria da Informao Fontes e canais contnuos 8
Capacidade de canal AWGN com largura
de banda finita
Temos
2 2
0
log 1 log 1
b
E R C S R
B B N N
| |
| |
= + = +
|
\ .
\ .
B
|
, donde se tira

0
2 1
R B
b
E
N R B

(R/B a eficincia espectral)


Consideremos agora a seguinte situao com codificao de canal:

Codificador
de canal
Canal Fonte
R bits/s 1/T = R/R
c
R
c
= k/n
B 1/2T

Para que no haja interferncia intersimblica preciso que B 1/2T, ou seja,

1
2 2
c
R
B
T R
= ou 2
c
R
R
B

Se queremos aumentar a eficincia espectral teremos de aumentar a taxa do cdigo.
Assim:
2
0
2 1
2
c
R
b
c
E
N R


Exemplos:
R
c
= 1/2
0
0
b
E
dB
N

R
c
= 1/3
0
0,55
b
E
dB
N

R
c
= 1/4
0
0,82
b
E
dB
N

medida que a taxa de cdigo diminui mais nos podemos aproximar do limite de
Shannon (-1,59 dB).
Teoria da Informao Fontes e canais contnuos 9
Capacidade de um canal afectado de
rudo gaussiano colorido
O enchimento de gua
Vamos tratar do caso mais geral de rudo colorido.

H(f)
Rudo colorido
n(t)
x(t)
y(t)

Admitamos que o sinal de entrada ) (t x tem uma potncia mdia P fixa e que
a sua densidade espectral de potncia: ) ( f S
X


= df f S P
X
) (
O rudo gaussiano estacionrio colorido tem mdia nula e a sua
densidade espectral de potncia.
) ( f S
N
) ( f H a funo de transferncia do canal.
Qual a capacidade deste canal? E qual a densidade espectral de potncia do
sinal de entrada, , que maximiza a informao mtua mdia? ) ( f S
X
Os resultados, obtidos com o mtodo dos multiplicadores de Lagrange, so os
seguintes, sendo K uma constante:


=
outros
F f
f H
f S
K
f S
N
X
0
) (
) (
) (
2


2
2
( )
1
log
2 (
N
H f
C K
S f

| |
| =
|
\ .

)
df
Teoria da Informao Fontes e canais contnuos 10
Capacidade de um canal afectado de
rudo gaussiano colorido
O enchimento de gua
(cont.)
Para valores especificados de P, e ) ( f S
N
) ( f H a constante K a soluo da
equao seguinte:



|
|
.
|

\
|
= =
F f
N
F f
X
df
f H
f S
K df f S P
2
) (
) (
) (
O conjunto {
2 1
: f f f f F = } representa a gama de valores de frequncia
para os quais a constante K superior a
2
) ( f H
N
) ( f S
.
Estas consideraes conduzem chamada interpretao do enchimento de
gua:

K
P = reas sombreadas
S
N
(f)/|H(f)|
2
f f
2
f
1
-f
1
-f
2

S
X
(f) invertido

como se estivssemos a encher de gua (ou melhor, de potncia de x(t)) o
grfico de
2
) ( ) ( f H f S
N
: onde houver menos rudo (nos vales) coloca-se mais
potncia de sinal de entrada, onde houver mais rudo coloca-se menos potncia.
Teoria da Informao Fontes e canais contnuos 11
Capacidade de um canal afectado de
rudo gaussiano colorido
Exemplo 1: Canal com rudo AWGN (o rudo branco)

2
) (
0
N
f S
N
=

+
=
outros
B f f B f
f H
c c
0
2 2 0 1
) ( (canal ideal)
Da expresso da potncia, ( )

=
2
0
2 2
B f
c
c
df N K P
+ 2 B f
, tiramos o valor de K:

B
B N P
K
2
0
+
=
A capacidade deste canal obtm-se imediatamente:

0
2
2
2
2
2
2
log
) (
) (
log
2
1
2
N
K
B df
f S
f H
K C
B f
B f
N
c
c
= =


Substituindo o valor de K obtido atrs chegamos expresso j conhecida do
teorema de Shannon-Hartley:
|
|
.
|

\
|
+ =
+
=
B N
P
B
N
B
B N P
B C
0
2
0
0
2
1 log
2
2
log
Teoria da Informao Fontes e canais contnuos 12
Capacidade de um canal afectado de
rudo gaussiano colorido
Exemplo 2: DSL com interferncia NEXT (near-end crosstalk)

H(f)
Linha DSL
S
X
(t)
H
NEXT
(f)
S
N
(t)
S
X
(t)


Normalmente
2 3
) ( f f H
NEXT
= , em que uma caracterstica dos cabos
telefnicos.
) ( ) ( ) (
2
f S f H f S
X NEXT N
=
A nica restrio a impor que a densidade espectral de potncia de ) (t x seja
no-negativa. Substituindo valores chega-se constante K,
) (
) (
) (
1
2
2
f S
f H
f H
K
X
NEXT
|
|
.
|

\
|
+ = ,
e da capacidade do lacete de assinante (DSL) afectado de crosstalk do tipo
NEXT:

|
|
.
|

\
|
+ =
F f NEXT
df
f H
f H
C
2
2
2
) (
) (
1 log
2
1

(F o conjunto das frequncias positivas e negativas para as quais ) 0 ) ( > f S
X
Teoria da Informao Fontes e canais contnuos 13
Plano da probabilidade de erro
o lugar geomtrico dos pontos de funcionamento disponveis para um
determinado tipo de modulao ou codificao.
Cada curva est associada largura de banda mnima exigida.

O funcionamento do sistema caracterizado por um ponto no plano da
probabilidade de erro, para um determinado tipo de modulao escolhido e para a
razo E
b
/N
o
disponvel.
Compromissos:
Em funcionamento: 1 Entre P
B
e E
b
/N
o
(com B fixo)
S na fase de projecto 2 Entre P
B
e B (com E
b
/N
o
fixo)
3 Entre B e E
b
/N
o
(com P
B
fixo)
O compromisso 1 s envolve variao de potncia. Os restantes envolvem
mudanas nos tipos de modulao e codificao.
Teoria da Informao Fontes e canais contnuos 14
Capacidade de canal gaussiano e
eficincia espectral de modulaes


Teoria da Informao Fontes e canais contnuos 15
Anexo 1
Desigualdade de Kraft (ou de Kraft-McMillan)
Teorema: Se os inteiros n
1
, n
2
, ..., n
M
satisfazem a desigualdade


1
1
i
M
n
i
D

ento existe um cdigo sem prefixos com um tamanho de alfabeto D cujos comprimentos de
palavras so esses inteiros.
Inversamente: os comprimentos de qualquer cdigo sem prefixos satisfazem a desigualdade.
O teorema no diz que qualquer cdigo cujos comprimentos satisfazem a
desigualdade um cdigo sem prefixos. O que o teorema diz que existe um certo
cdigo sem prefixos e que tem esses comprimentos.
4 ordem
3 ordem
2 ordem
Ns de 1 ordem
D
-3
D
-2
D
-1
D
4
ns
D
3
ns
D
2
ns
D ns
Arvore cheia (com D=2)

Existem D
n
ns de ordem n
De cada n de ordem i saem D ramos ligados a D ns de ordem i+1.
De cada um dos D ns de ordem 1 sai uma fraco D
-1
dos ns de ordem i 1.
De cada um dos D
2
ns de ordem 2 sai uma fraco D
-2
dos ns de ordem i 2.
Genericamente: De cada um dos D
i
ns de ordem i sai uma fraco D
-i
dos ns de ordem maior ou
igual a i.
Teoria da Informao Anexos 1
Desigualdade de Kraft
x
4
x
3
x
2
x
1
N de ordem n
1
Fraco D
-n1
Fraco
D
-n2


Sejam n
1
n
2
... n
M
um conjunto de M
inteiros que satisfazem a desigualdade de
Kraft.
Suponhamos que a rvore ao lado tem
ordem n igual ao maior inteiro n
M
.
Demonstrao do teorema:
1 Tomemos um n qualquer de ordem n
1
(x
1
, por exemplo) como o primeiro n terminal da
rvore de cdigo. Todos os ns de cada ordem n
1
esto ainda disponveis para ns
terminais,
excepto uma fraco
1
n
D

(ns que saem de x


1
)
2 A seguir tomemos outro qualquer n de ordem n
2
(x
2
, por exemplo). Todos os ns de cada
ordem n
2
esto ainda disponveis para ns terminais,
excepto a fraco
1
n
2
n
D D

+ (ns que saem de x
1
e x
2
)
3 Continuando dessa maneira, depois da atribuio do n terminal de ordem k na rvore de
cdigo, todos os ns da rvore cheia, de cada ordem n
k
, esto ainda disponveis
excepto a fraco
1 2
1
k i
k
n n n n
i
D D D D

=
+ ++ =

4 Por hiptese , para i < M h sempre um n disponvel para servir como n


terminal existe um cdigo sem prefixos.
1
1
i
k
n
i
D

=
<

Inversamente: A rvore de cdigo de um cdigo sem prefixos est contida numa rvore cheia
um n terminal de ordem n
i
d origem a uma fraco dos ns terminais da rvore
cheia. Como os conjuntos dos ns terminais da rvore cheia que derivam dos ns terminais da
rvore de cdigo so disjuntos, conclui-se que essas fraces somadas so 1, c.q.d.
i
n
D

Teoria da Informao Anexos 2


Anexo 2
Valor mximo da entropia diferencial
Teorema
O valor mximo da entropia diferencial h para todas as escolhas de
funes densidade de probabilidade satisfazendo
(Y) = p(y)log
2
p(y)

dy
(a)
y
2
p(y)dy

=
2
unicamente atingido pela funo densidade de probabilidade gaussiana
(y) =
1
2
2
e

y
2
2
2
(b)
e tem o valor h(Y) =
1
2
log
2
(2e
2
).
Demonstrao (de acordo com R. G. Gallager, Information Theory and Reliable Communication
(Wiley, 1968))
Seja p(y) uma fdp arbitrria satisfazendo (a) e seja (y) a fdp gaussiana de (b). Ento
p(y)log
2
1
(y)
dy =

p( y) log
2
2
2
+
y
2
2
2
log
2
e






dy =

= log
2
2
2
+

2
2
2
log
2
e =
1
2
log
2
(2e
2
)

Portanto,
h(Y)
1
2
log
2
(2e
2
) = p(y)log
2
( y)
p(y)
dy


Como log , ento
2
z ( z 1)log
2
e
h(Y)
1
2
log
2
(2e
2
) log
2
e p(y)
(y)
p( y)
1






dy

= 0
A igualdade obtm-se apenas sse
(y)
p( y)
=1 para todos os y, c.q.d.
Teoria da Informao Anexos 3
Resumo do Captulo 1
Neste captulo foram estabelecidos trs limites fundamentais em diferentes aspectos de um
sistema de comunicaes digitais atravs do teorema da codificao da fonte, do teorema da
codificao de canal e do teorema da capacidade do canal, todos devidos a Claude Shannon.
O teorema da codificao da fonte fornece-nos um padro pelo qual podemos medir a
informao proveniente de uma fonte discreta sem memria. Diz-nos o teorema que podemos tornar
o nmero mdio de elementos binrios (binits) por smbolo da fonte to pequeno como, mas no
menor que, a entropia da fonte medida em bits. A entropia de uma fonte uma funo das
probabilidades dos smbolos que a fonte produz. Visto a entropia ser uma medida de incerteza,
mxima quando a distribuio de probabilidades associadas gera a mxima incerteza, ou seja,
quando os smbolos so equiprovveis.
Os objectivos do teorema da codificao da fonte so perseguidos e aproximados se, antes da
codificao, os smbolos produzidos pela fonte forem agrupados em blocos de N smbolos
teremos ento uma extenso de ordem N e se os cdigos forem de comprimento varivel. Destes
s nos interessam cdigos unicamente descodificveis, em especial um seu subconjunto, o dos
cdigos sem prefixos, definidos atravs de rvores. Ambos obedecem desigualdade de
Kraft-McMillan, que relaciona entre si os comprimentos de cada palavra de cdigo. Os cdigos de
Shannon-Fano e Huffman so dois exemplos de cdigos sem prefixos cujo comprimento mdio das
palavras de cdigo se aproxima da entropia da fonte.
Uma outra abordagem foi feita atravs da codificao aritmtica, embora tambm baseada em
modelos probabilsticos da fonte, tal como os dois cdigos precedentes; completamente diferente
so as codificaes de Lempel-Ziv (LZ77 e LZ78). Nesta ltima, por exemplo, vai-se construindo
um dicionrio medida que a codificao se realiza.
O teorema da codificao de canal o resultado mais surpreendente e talvez o mais
importante da Teoria da Informao. Por exemplo, para um canal binrio simtrico (BSC), o
teorema da codificao de canal diz-nos que para qualquer taxa de informao menor ou igual
capacidade do canal existem cdigos tais que a probabilidade de erro mdia to pequena quanto
quisermos. Um canal binrio simtrico a forma mais simples de um canal discreto sem memria;
simtrico se a probabilidade de se receber um 1 se se tiver enviado um 0 for igual probabilidade
de se receber um 0 se se tiver enviado um 1. Esta probabilidade, chamada probabilidade de
transio, define univocamente a capacidade do canal.
O terceiro teorema de Shannon, provavelmente o mais famoso, o teorema da capacidade do
canal, ou lei de Shannon-Hartley, e aplica-se a canais contnuos. Diz-nos o teorema que em
qualquer canal de comunicao limitado em potncia existe uma velocidade mxima de transmisso
de informao sem erros, dependente da largura de banda do canal e da relao sinal-rudo. Esta
velocidade, ou taxa, mxima chama-se capacidade do canal e mede-se em bits/s. Se o sistema
funcionar a uma taxa superior capacidade do canal est condenado a uma probabilidade de erro
elevada, independentemente do receptor ou da tcnica de transmisso usada.
A codificao de canal (ou codificao com controlo de erros), referida no teorema da
codificao de canal, vai ser objecto do nosso estudo em seguida.

Teoria da Informao Resumo 2

2. Cdigos para controlo de erros

2.1. Introduo (com um pouco de histria)
2.2. Tcnicas ARQ
2.3. Cdigos de blocos
2.4. Cdigos cclicos
2.5. Cdigos convolucionais
2.6. Cdigos entrelaados e concatenados

One can no longer claim to be a communication or computer system engineer
without knowing something about coding
D. J. Costello, J. Hagenauer, H. Imai e S. B. Wicker,
Applications of Error-Control Coding,
IEEE Transactions on Information Theory, Out. 98.

2
2
.
.
1
1
.
.
I
I
n
n
t
t
r
r
o
o
d
d
u
u

o
o
(
(
c
c
o
o
m
m
u
u
m
m
p
p
o
o
u
u
c
c
o
o
d
d
e
e

h
h
i
i
s
s
t
t

r
r
i
i
a
a
)
)

Cdigos para controlo de erros
Um pouco de histria
A investigao sobre cdigos para controlo de erros, ou cdigos de canal, tem
seguido dois "percursos": um, com um "sabor" mais algbrico, refere-se principalmente
aos cdigos de blocos; o outro, mais probabilstico, diz especialmente respeito aos
cdigos convolucionais.
Os primeiros cdigos de blocos foram introduzidos por Richard Hamming em 1950.
Tratava-se de cdigos correctores de erros simples, portanto com uma reduzida
capacidade de correco. Na mesma poca M. Golay inventou um cdigo corrector de
erros triplos num artigo surpreendentemente curto (uma pgina, como se v na figura
seguinte).

O artigo em que Golay apresentou o seu cdigo.
S anos mais tarde surgiriam melhores cdigos: o principal avano surgiu quando
R. C. Bose e D. K. Ray-Chaudhuri (em 1960) e A. Hocquenghem (em 1959) descobriram
independentemente uma classe alargada de cdigos correctores de erros mltiplos (os
Cdigos para controlo de erros Introduo 2
cdigos BCH), e I. Reed e G. Solomon (1960) descobriram uma classe, relacionada com a
primeira, de cdigos para canais no binrios.
Estes cdigos permanecem entre as classes mais importantes de cdigos; mesmo
assim, desde ento a teoria dos cdigos tem-se desenvolvido imenso e novos cdigos vo
sendo descobertos de tempos a tempos.
A descoberta dos cdigos BCH levou pesquisa de mtodos prticos (em hardware
e software) de implementar o codificador e o descodificador. O primeiro algoritmo
"bom" foi proposto por W. Peterson. Mais tarde E. Berlekamp e J. Massey descobriram
um algoritmo poderoso para efectuar os clculos de Peterson, cuja implementao foi
tornada possvel atravs de tecnologia digital.
O outro percurso de investigao em cdigos tem um "sabor" mais probabilstico,
como se disse. Nos primeiros tempos os investigadores procuravam estimar a
probabilidade de erro das melhores famlias de cdigos de blocos, apesar de esses
cdigos "melhores" no serem conhecidos. Procurava-se compreender tambm a
codificao e a descodificao de um ponto de vista probabilstico, o que levou noo
de descodificao sequencial. A descodificao sequencial exigiu uma nova classe de
cdigos sem blocos, de comprimento indefinido, representveis por uma rvore e que
pudessem ser descodificados percorrendo essa rvore. Os cdigos arborescentes mais
teis so cdigos altamente estruturados chamados cdigos convolucionais, que podem
ser gerados por um circuito com registos de deslocamento lineares que efectua a
operao de convoluo sobre a sequncia de informao que se deseja codificar.
No fim dos anos 50 os cdigos convolucionais foram descodificados com sucesso
com algoritmos de descodificao sequencial. Um algoritmo de descodificao muito
mais simples o algoritmo de Viterbi foi proposto apenas muito mais tarde (1967).
Este algoritmo goza de grande popularidade em cdigos convolucionais de complexidade
modesta mas impraticvel com cdigos mais complexos.
Na dcada de 70 estas duas vias de investigao foram-se aproximando uma da
outra: a teoria dos cdigos convolucionais foi sendo estudada pelos matemticos, com
outros pontos de vista, e tambm se fizeram avanos nos cdigos de blocos em direco
ao prometido por Shannon anos antes (Teorema da Codificao de Canal: para R C
existe um cdigo), especialmente quando foram propostos dois novos esquemas de
codificao, um proposto por Justesen e o outro por Goppa. O objectivo comum era o de
criar famlias de cdigos que tivessem ao mesmo tempo um comprimento de palavra
longo e uma "performance" muito boa. No entanto ambos os esquemas sofrem de
algumas limitaes prticas.
Cdigos para controlo de erros Introduo 3
Mais recentemente, na IEEE International Conference on Communications (ICC93),
em Junho de 1993, C. Berrou, A. Glavieux e P. Thitimajshima apresentaram pela
primeira vez os turbo-cdigos. De certo modo pertencentes famlia dos cdigos
convolucionais, so realizados por concatenao em paralelo com entrelaamento e
descodificados usando a tcnica da descodificao iterativa. uma rea contempornea
de intensa actividade de investigao e que provocou o renascimento de uns outros
cdigos surgidos cerca de trinta anos antes, em 1963: os cdigos LDPC (low density
parity check), de R. Gallager.

A primeira pgina do artigo de apresentao dos turbo-cdigos, em 1993.
Cdigos para controlo de erros Introduo 4
cada vez mais frequente encontrar codificadores e descodificadores em novos
sistemas quer de comunicaes digitais quer de armazenamento digital.
Da histria prtica
A primeira aplicao bem sucedida da codificao sucedeu nas comunicaes
espaciais. S assim tem sido possvel, por exemplo, a recepo de imagens e outra
informao proveniente da sonda Voyager I, dos confins do Sistema Solar, para l de
Pluto, para a Terra.
Hoje em dia muito comum encontrar sistemas de codificao para controlo de
erros em qualquer sistema de comunicaes moderno (veja-se a televiso digital, por
exemplo, ou ouam-se as comunicaes mveis celulares).
Uma outra aplicao a dos sistemas de armazenamento em disco e em fita
magntica, especialmente em equipamento de elevada capacidade e "performance". So
usados cdigos de blocos e cdigos convolucionais, em esquemas concatenados com
entrelaamento.
Tambm nas memrias de semicondutores so usadas tcnicas de codificao. O
intuito diminuir a taxa de falhas de vrias falhas por hora para algumas poucas por
ano. Como preciso que os cdigos sejam simples (para no ocuparem uma grande rea
no "chip") um dos cdigos usados o de Hamming.
A tcnica de controlo de erros mais amplamente usada talvez seja a que detecta
erros por "verificao cclica" (CRC). aplicada com sucesso em sistemas ARQ e em
sistemas hbridos FEC-ARQ.
Por ltimo, e no demais repetir, tambm s com controlo de erros possvel
no ouvir o efeito de riscos, arranhes e at buracos nos CDs, CD-ROMs e DVDs. A
codificao da informao assenta num esquema concatenado de cdigos Reed-Solomon
(RS), com entrelaamento duplo.
Tambm os sistemas de gravao DAT e as redes locais sem fios (WLAN) usam
codificao de canal.
E assim se vai fazendo a Histria...
Cdigos para controlo de erros Introduo 5
Cdigos correctores de erros: introduo
Os erros de transmisso em comunicaes digitais dependem da relao
sinal-rudo (S/N).
Se S/N for fixo e a taxa de erros for muito elevada preciso melhorar a
fiabilidade por outro meio.
Uma maneira possvel codificar a informao de modo a detectar ou a
corrigir os erros (codificao para controlo de erros).

Cdigos para controlo de erros: Envolvem a adio sistemtica de dgitos
redundantes os quais, s por si, no
transportam informao mas tornam possvel
detectar e at corrigir alguns erros de
transmisso.
Categorias de cdigos com controlo de erros
Cdigos de blocos
ARQ (Automatic Repeat Request)
FEC (Forward Error Correction)
Cdigos convolucionais

Mtodo ARQ: necessita de caminho de retorno e normalmente s detecta
erros.
Mtodo FEC: detecta e corrige erros.
A codificao para detectar erros, sem correco, mais simples que a
codificao para os corrigir.
Cdigos para controlo de erros Introduo 6
Cdigos correctores de erros: introduo
Cdigos de blocos
A fonte binria gera uma sequncia de smbolos taxa de r smbolos/s.
Estes smbolos so agrupados em blocos de k smbolos.
A cada um destes blocos de k smbolos so acrescentados n-k smbolos
redundantes, produzindo uma palavra de cdigo de n smbolos.
A taxa de smbolos passa a ser
b
n
r r
k
= smbolos/s.

k smbolos n-k smbolos n smbolos
+ =
Smbolos de informao Smbolos de
paridade
Palavra de cdigo (n,k)

Taxa do cdigo

c
k
R
n
=
Codificao:
A uma sequncia de informao
1 2
( ... )
k
x x x = X faz-se corresponder uma
palavra de cdigo de acordo com regras bem definidas.
1 2
( ... )
n
y y y = Y
Descodificao:
A partir da sequncia recebida determina-se a palavra de cdigo
mais provvel, isto , a palavra de cdigo mais prxima em distncia de
Hamming da palavra Z.
1 2
( ... )
n
z z z = Z

Codificador Canal Descodificador Fonte
X Y Z
Y X

{ }
, , 0,1
i i i
x y z
Cdigos para controlo de erros Introduo 7
Aplicaes e tipos de codificao
1

Aplicaes de cdigos para controlo de erros
Communication
systems
Control
systems
Information security
and retrieval systems
Information storage
systems
Signal
processing
systems
broadcasting
HF, VHF, etc.
line
microwave
military
mobile networks
optical
power line
satellite
sonar
space
spread spectrum
telemetry
telex and fax
troposcatter
aeronautical
aerospace
automobile
naval railway
RPV
account and card
codes
bar and dot codes
crypto
ISBN
product identification
codes
compact discs
magnetic tapes and
discs
punched cards and
tapes
semiconductor
memories
fault tolerance
image coding
speech coding
Tipos e classes de cdigos vulgares
Blocos Convolucionais Modulao
codificada
Concatenados
Array
BCH
CRC
Fire
Golay
Hamming
Ortogonais
Reed-Muller (RM)
Reed-Solomon (RS)
Repetio
SPC
Gerados em computador
Dual-k
LDPC (Gallager)
Hagelbarger
Idaware
Paridade mvel
random-error-correcting
Wyner-Ash
BCM
TCM
Bloco-bloco (RS)
Convolucional-bloco (RS)
Entrelaamento cruzado
(CIRC)
Turbo-cdigos

1
In Coding as a cure for communication calamities: the successes and failures of error control, P. G. Farrell.
Cdigos para controlo de erros Introduo 8
Exemplos de codificao
Codificador cclico

A
B
B
A
Palavra de
cdigo
Mensagem
A: quatro bits
B: trs bits

Codificador convolucional

k = 1 n = 2
R
c
= k/n = 1/2
d
f
= 10
K = 7

International Standard Book Number (ISBN)
i 1 2 3 4 5 6 7 8 9
soma de controlo, x
10
ISBN 0 1 9 8 5 3 8 0 4 9
x i Se x
9
10
1
(mod11)
i
i
x
=
=
10
= 10 x
10
= X

Cdigos para controlo de erros Introduo 9
Exemplos de codificao
para deteco de erros
ISBN (International Standard Book Number)
um conjunto de 10 caracteres identificativos de um livro. O ltimo
carcter serve para detectar um nmero ISBN errado.

vale? Quanto
10 9 8 7 6 5 4 3 2 1
x x x x x x x x x x
Os dgitos so tais que , isto , ) 11 (mod 0
10
1
=

= i
i
x i
) 11 (mod 0 10 3 2 1
10 3 2 1
= + + + + x x x x
Se substitui-se pelo carcter X. 10
10
= x
Exemplos: 0-89006-530-6 e 0-13-212713-X
Bilhetes de identidade portugueses
Tm um nmero varivel de caracteres (n). O ltimo carcter direita
(que no faz parte do nmero!) serve para detectar um nmero de B. I.
errado.

Controlo
1
. B.I de N
2 3 1
x x x x x
n n


Agora dever ser , isto , se dividirmos ) 11 (mod 0
1
=

=
n
i
i
x i
11
3 2 n

=
3 2 nx x x + +
, o seu resto somado a deve dar 11.
1
x
x Se x ento deveria ser X mas algum ignorante substituiu-o por 0!! 10
1 1
Exemplos: 2967981 (n de controlo: 8)
10060579 (n de controlo: 6)

Cdigos para controlo de erros Introduo 10
Exemplos de codificao
para deteco de erros
Cdigos de barras (sistema EAN-13)

Cdigos para controlo de erros Introduo 11
Exemplos de codificao
para deteco de erros
Cdigos de barras EAN-13 (continuao)
Neste sistema de numerao de artigos o dgito de controlo c obtido assim:
12 11 10 9 8 7 6 5 4 3 2 1
a a a a a a a a a a a a c
6 6
2 1 2
1 1
e' mu'ltiplo de10
3 mod10 0
i i
i i
a a c

= =

+ +


=
Ou seja: a soma dos algarismos de ordem par (a contar da direita) somada ao triplo da soma
dos algarismos de ordem mpar. O resultado, somado a c, deve ser um mltiplo de 10.

Exemplo (um produto de hipermercado)

12 11 10 9 8 7 6 5 4 3 2 1

5 6 0 1 3 7 7 3 3 1 0 8 4
Pas Empresa Produto
mpares: (8 + 1 + 3 + 7 + 1 + 6) x 3 = 78
Pares: 0 + 3 + 7 + 3 + 0 + 5 = 18
96
+ 4
100

Controlo

Cdigos para controlo de erros Introduo 12
Cdigos de blocos
FEC

Bits da
mensagem
de entrada
Codificador
Emissor
Canal
Receptor
Descodificador
d
min
= 2t+1
N
0
/2
Rudo
r bits/s
r
b
= r/R
c
, r
b
> r
Bits da mensagem
de sada
R
c
= k/n
+

ARQ

Buffer e
controlador de
entrada
ACK/NAK
Transmisso
directa
Descodificador
Buffer e
controlador de
sada
Codificador
Transmisso
de retorno

ACK (positive ACKnowledgement) o descodificador no detectou nenhum erro.
NAK (Negative AcKnowledgement) o descodificador detectou erro.


ARQ exige menos bits de paridade e a taxa de cdigo
c
k
R
n
= mais elevada que
num cdigo FEC (ou seja, a largura de banda ocupada menor).
Requer um percurso de retorno e "hardware" para transmisso repetida de palavras
de cdigo, o que no acontece nos cdigos FEC.
A taxa de transmisso directa deve ter em conta as transmisses repetidas.
Cdigos para controlo de erros Introduo 13

2
2
.
.
2
2
.
.
T
T

c
c
n
n
i
i
c
c
a
a
s
s
A
A
R
R
Q
Q

Tipos bsicos de ARQ: "Stop & Wait", "Go-Back-N"
e "Selective Repeat"
Probabilidade de retransmisso
Taxa de transferncia (throughput)
Eventos de erro e fiabilidade da transmisso
Os trs tipos bsicos de ARQ
Stop and Wait

Tempo morto
ACK
Retransmisso
Emissor
Transmisso
Receptor
2 1 2 3 4 5 5
2 1 2 3 4 5
Retransmisso
Erro Erro
ACK ACK ACK NAK NAK
SW

Go-back-N (com N = 7)

Erro
Retransmisso
(Go-back-7)
Emissor
Transmisso
Receptor
Atraso de
ida-e-volta
Retransmisso
1 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 10 11 12 13 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 10 11 12 13 7 8 9 10
Erro
ACK
NAK
GBN

Selective Repeat

Erro
Emissor
Transmisso
Receptor
Retransmisses
1 2 3 4 5 6 7 3 8 9 10 7 11 12 13
1 2 3 4 5 6 7 3 8 9 10 7 11
ACK
NAK
Erro
SR

Cdigos para controlo de erros Tcnicas ARQ 2
ARQ
Considere-se a transmisso atravs de um canal binrio simtrico (BSC) com
rudo. Se p for a probabilidade de transio do canal (isto , p a probabilidade de
erro num bit), a probabilidade de ocorrerem i erros em n bits vem dada por
( , ) (1 )
i n
n
P i n p p
i

| |
=
|
\ .
i
.

p
1-p
1-p
p
1 1
0 0


Em ARQ uma palavra de cdigo pode ser transmitida uma nica vez ou pode ter
de ser transmitida duas ou mais vezes, consoante os erros de transmisso.
Suponhamos que, dada a baixa bit rate da transmisso de retorno (1 bit por cada
palavra de cdigo), a sua probabilidade de erro desprezvel

Todas as palavras de cdigo com erros detectados so retransmitidas tantas
vezes quantas as necessrias e os nicos erros na sada ocorrem nas palavras
com erros no detectados.
Temos ento trs acontecimentos possveis na recepo de uma palavra de
cdigo ( direita est a probabilidade da respectiva ocorrncia):
No existem erros
) , 0 ( n P

So detectados
R
p
Existem erros


No so detectados

end
P
Quer dizer que
1 ) , 0 ( = + +
end R
P p n P
Cdigos para controlo de erros Tcnicas ARQ 3
Probabilidades em ARQ
A probabilidade de uma palavra recebida no conter erros dada por

n n
p p
n
n P ) 1 ( ) 1 (
0
) , 0 ( =
|
|
.
|

\
|
=
Num cdigo (n, k) capaz de detectar at A erros por palavra de cdigo a
probabilidade de numa palavra recebida os erros no serem detectados :


1 1 1
( , ) (1 ) (se 1)
n n n
i n i i
end
i l i l i l
n n
P P i n p p p p
i i

= + = + = +
| | | |
= =
| |
\ . \ .


Como a probabilidade de haver A+1 erros muito maior que a probabilidade de
haver A+2 (ou mais) erros, ento:

1
( 1, ) (se 1
1
l
end
n
P P l n p p
l
+
| |
+ =
|
+
\ .
)
A probabilidade de erro em bits de palavras de cdigo vale, portanto, em mdia:

1 1
1
1 1
(se 1)
1
l l
be end
n n
l l
P P p p p
l l n n
+ +

| | | | + +
= =
| |
+
\ . \ .


(significado de P
be
: se uma palavra de cdigo estiver errada, em mdia A+1 dos seus n bits
esto errados)
Cdigos para controlo de erros Tcnicas ARQ 4
Probabilidade de retransmisso em ARQ
O descodificador do sistema ARQ aceita palavras de cdigo em duas situaes:
ou a palavra no tem erros Probabilidade: P n (0, )
ou a palavra tem erros mas no foram detectados Probabilidade: P
end

Se nenhuma destas situaes ocorrer o emissor dever retransmitir a palavra
errada. A probabilidade de retransmisso de palavras , portanto:

[ ]
1 (0, )
R e
n P = +
nd
end
n
)
p P
Como num bom cdigo detector de erros se verifica que : (0, ) P P
p 1 (0, ) 1 (1 ) 1 (1 ) (se 1
n
R
P n p np np np = =

de notar que:
a probabilidade de uma palavra de n bits recebida no conter erros P(0, n) s
depende das estatsticas de erro do canal (p).
a probabilidade de uma palavra recebida conter um padro de erros detectveis
(p
R
) ou um padro de erros no detectveis (P
end
) depende das estatsticas de erro
do canal e do cdigo (n, k) escolhido.
Cdigos para controlo de erros Tcnicas ARQ 5
Taxa de transferncia ARQ
Definio:
A taxa de transferncia, ou taxa de sucesso (throughput), a razo entre o
nmero mdio de dgitos de informao recebidos com sucesso no receptor por
unidade de tempo e o nmero total de dgitos transmitidos nessa unidade de tempo.
Como cada palavra de cdigo tem n bits, em mdia o sistema deve transmitir
bits por cada k bits de mensagem, em que representa o nmero mdio de
palavras transmitidas por palavra aceite. Por definio a taxa de transferncia vale,
portanto,
nm m

k
nm
R =
A taxa de transferncia uma medida do desempenho dos sistemas ARQ (quanto maior
melhor).
Dos 3 mtodos ARQ apresentados o mtodo Selective Repeat tem uma maior taxa de
transferncia.
O nmero total de transmisses de uma dada palavra uma varivel aleatria, m, com as
seguintes probabilidades:
Probabilidade de m = 1 transmisso: ( 1) (0, ) 1
R
P m P n p = =
Probabilidade de m = 2 transmisses: ( 2) (1 )
R R
p p = P m

2 transmisso (no "deu" erro) 1 transmisso (recebida com erro)
Probabilidade de m = 3 transmisses (2 transmisses sem sucesso + 1 transmisso (final)
com sucesso):
2
( 3) (1 )
R R
P m p p =
A taxa de transmisso efectiva, r
b
, e a primitiva taxa de mensagens, r, esto relacionadas por

b
r
r
R
=

(tal como nos sistemas FEC, em que

b
c
r
r
R
=
)

Cdigos para controlo de erros Tcnicas ARQ 6
Taxa de transferncia ARQ
Calculemos as taxas de transferncia de cada mtodo.
Selective Repeat (SR)
O nmero mdio de palavras transmitidas por palavra aceite vale
2
2 3
2 3
1 (1 )
1 (1 ) 2 (1 ) 3 (1 ) 4 (1 )
1
(1 )(1 2 3 4 )
1
R
R R R R R R R
R R R R
R
p
m p p p p p p p
p p p p
p

= + + + +=
= + + + + =


Portanto,

) 1 (
R SR
p
n
k
m n
k
R = =
(taxa de transferncia do mtodo SR)
(Repare-se que no depende do atraso de ida-e-volta do sistema)
Se p 1 <<
R
n
k
R
SR


Para a mesma capacidade de controlo de erros um cdigo detector apresenta
uma taxa n k mais elevada que um cdigo corrector, como se ver mais adiante. Isto
significa que num mesmo canal, com k e n fixos, o sistema ARQ SR poder
comportar-se melhor que um cdigo FEC (mas o seu "hardware" ("buffers",
controladores, etc.) mais elaborado).
Cdigos para controlo de erros Tcnicas ARQ 7
Taxa de transferncia ARQ
Stop and wait (SW)
A transmisso de retorno ACK s se
inicia aps a recepo da palavra
completa
Emisso
Recepo
T
w
t
d
1 2
1
t
t
t
d
-T
w
t
d
D
ACK

Neste esquema a eficincia de codificao vem reduzida por um factor de
w
w
T D +
T
, em que
w
n r =
b
T
a durao de cada palavra de cdigo (de n bits) e D o
intervalo de tempo entre duas palavras enviadas (tempo morto (idle time ou round
trip delay))
No sistema SW a quantidade
m
igual do mtodo SR. Assim, teremos:
'
1 1
(1 )
1 1
w R R
SW R
b
w
w
T p p k k k
R p
D
n T D n n
T n

= = =
+
+ +
Dr
(taxa de transferncia do mtodo SW)
Mas
w
b
n k
r r
= T (porque
b
b
r nm n k k
r r
R k r rm
= = =
r
, pois 1 m )
D (t
d
- T
w
) + T
w
+ t
d
= 2t
d


o sinal de retorno no pode chegar depois do incio de transmisso da palavra seguinte.
Assim:
2 2
1 1 1
/
w d
w w
T D t t D
T T k r
+
= + + = +
d
r
k
e, portanto,

'
1
2
1
R
SW
d
k p
t r
n
k

+
R (majorante de
'
SW
R )
Como se v, a taxa de transferncia do mtodo "stop and wait" depende (como seria de
esperar) do "atraso de ida-e-volta" (mas aproxima-se do mtodo SR se 2 ).
d
t r k <<
Se o mtodo SW muito pouco eficiente. 2
d
t r k
Cdigos para controlo de erros Tcnicas ARQ 8
Taxa de transferncia ARQ
Go-Back-N (GBN)
A transmisso contnua, isto , no h tempos mortos, mas preciso
retransmitir N palavras por cada palavra com erros detectados.
O nmero mdio de transmisses (incluindo a original) :

[ ]
R
R
p
R R
p
R R R
R R R
R R R R R
p
Np
p Np p p p
p N p N p
p p N p p N p m
R R

+ =
(
(
(

+ + + + + + =
= + + + + + =
= + + + + + =


1
1 ) 2 1 ( ) 1 ( ) 1 (
) 1 2 ( ) 1 ( 1 ) 1 (
) 1 ( ) 1 2 ( ) 1 ( ) 1 ( ) 1 ( 1
2 1
) 1 ( ) 1 (
2
2
2


A taxa de transferncia vem dada por

'
1
1
R
GBN
R R
k k p
nm n p Np

= =
+
R (taxa de transferncia do mtodo GBN)
Como , a taxa de sucesso limitada superiormente por: 2 NT t
w d

'
1 1
2
1
1
R
GBN
d
R R
R R
k p k p
R
t r
n p Np n
R
p p
k

=
+
+
(majorante de R )
'
GBN
Como se v, a taxa de transferncia em GBN depende da taxa de erros do canal, p
R
, e do atraso
N. Se p
R
for baixa o efeito de Np
R
insignificante taxa de transferncia elevada.
Tambm neste mtodo aconselhvel que . 2
d
t r k <<
Significa isto que este mtodo especialmente usado em duas situaes: quando o "atraso de
ida-e-volta t
d
baixo e quando a taxa de transmisso r no muito elevada.
Cdigos para controlo de erros Tcnicas ARQ 9
Taxa de transferncia ARQ:
resumo de expresses

Mtodo
Taxa de transferncia,
'
c
R
conveniente que:
Valor exacto Majorante
Stop-and-wait
(SW)
1
1
R
b
k p
Dr
n
n

+

1
2
1
R
d
k p
t r
n
k

+

2
d
t r k
Go-back-N
(GBN)
1
1
R
R R
k p
n p Np

+

1
2
1
R
d
R R
k p
t r
n
p p
k

+

2
d
t r k
Selective repeat
(SR)
(1 )
R
k
p
n



p
R
probabilidade de retransmisso
r dbito binrio antes da codificao

'
b
c
r
r
R
= dbito binrio depois da codificao

Cdigos para controlo de erros Tcnicas ARQ 10
Taxa de transferncia ARQ
Comparao das taxas de transferncia dos mtodos SR e GBN
(em funo do comprimento do cdigo, n, e do atraso de ida-e-volta, N)


Cdigos para controlo de erros Tcnicas ARQ 11
ARQ Selective Repeat: um exemplo
numrico
Seja k = 9, n = 10, A = 1 (isto , detecta 1 erro/palavra) e um canal de
comunicao que introduz rudo gaussiano, com
'
0
2
b
SR
E
p Q R
N
| |
=
|
|
\ .
. Qual o
valor de
0
N E
b
requerido para que
5
10
be
P ?
R.:
5
1 2 5
1 9
1 1
10 1,1.10
1 9
l
be end
n
l
P P p p p
l n

| | | | +
= = = =
| |
\ . \ .
3
0

)

A probabilidade de retransmisso de palavras vale
p P 1 (0, ) ( 1
R
n np <<
A taxa de transferncia vale ento

' '
(1 ) 0,9 2 1,8
SR R SR
k k
R
n n
= = = R p
Como
' 3
0 0
2 10 (consultando uma tabela ou grfico) 5, 3 7, 3
b b
SR
E E
p Q R d
N N

| |
=
|
|
\ .
B
Qual a probabilidade de bit errado, , sem codificao?
be
P
R.:
( )
4
0
2 2 5,3 6.10 (
b
be be
E
P Q Q P
N

| |
= =
|
|
\ .
) >
Se quisssemos obter a mesma probabilidade de erro, 10
-5
:

5
0 0
2 10 9, 6
b b
be
E E
d
N N

| |
= =
|
|
\ .
P Q B
O sistema ARQ SR permitiu poupar 9,6 - 7,3 = 2,3 dB em potncia.
Cdigos para controlo de erros Tcnicas ARQ 12
Fiabilidade da transmisso com ARQ:
um exemplo
Diz-se que ocorreu um evento, ou acontecimento, de erro se o receptor
aceitar uma palavra recebida com erros no detectados, mesmo depois
de retransmisses.
Probabilidade de acontecimento de erro, P(E):

2 3
( ) (palavra com erro no detectado) +
+ (palavra com erro detectado) (palavra com erro no detectado) + =
=
1
end
R end
P
p P
end R end R end R end
end R
P E P
P P
P p P p P p P
P p
=

+ + + +=
= + +

"

( )
2
1
1
(0, )
R
end
R
end
p
P
p
P n P

=
+


Exemplo: Cdigo BCH (2047, 2014) e um canal binrio simtrico com
p = 10
-3
.
Este cdigo satisfaz a desigualdade
( )
( )
1 1 2
k
n k
end
P p

(


Temos k = 2014 e n = 2047 n - k = 33. Ento:

10
10
end
P

( )
( )
2047
3
(0, ) 1 1 10 0,129
n
P n p

= =
Finalmente:

10
10
10
10
( ) 7, 75.10
0,129 10
P E

=
+

Concluso: pode obter-se grande fiabilidade na transmisso usando um
esquema ARQ com muito poucos bits de paridade.
Cdigos para controlo de erros Tcnicas ARQ 13
Exemplo ARQ-SW
Vamos aplicar o esquema Stop-and-Wait a um sistema
de comunicaes por satlite. Dbito binrio: 1Mbits/s;
round-trip delay de 700ms.
Em ARQ-SW:
'
1
(1 )
1
SW R
b
k
n D
=
+
R p
r n
Durante o tempo morto podiam ter sido transmitidos bits.
6
0, 7 10
b
Dr =
Convinha que
6
1
b
Dr
n
n
<< >10 . um milho de bits!! Impraticvel!
Mas seja n = 10000. Ento:

6
4
0, 7 10
70 ( 1)
10
b
Dr
n

= = >>
Com este valor a eficincia do sistema inaceitvel.

Concluso: no se deve usar Stop-and-Wait com dbitos
binrios muito elevados e quando os atrasos so grandes.
Cdigos para controlo de erros Tcnicas ARQ 14
Exemplo ARQ-GBN
Vamos aplicar o esquema Go-Back-N ao anterior
sistema de comunicaes por satlite. Dbito binrio:
1Mbits/s; atraso de ida-e-volta de 700ms; probabilidade
de erro no canal: p = 10
-4
.
Seja n = 10000. Durante 700ms podem ser transmitidas

6
4
0, 7 10
70
10
b
Dr
N
n

= = = palavras de 10000 bits.


(O nosso sistema ento Go-Back-70)
Em ARQ-GBN:
'
1
1
R
GBN
R R
k p
n p Np

=
+
R
Probabilidade de receber palavra de cdigo de 10000 bits sem erros:
( )
( )
4
10
4
(0, ) 1 1 10 0,3679
n
P n p

= = =
Probabilidade de retransmisso:
1 (0, ) 1 0,3679 0, 6321
R
p P n = =
Substituindo valores obtemos finalmente:

'
0,3679
0, 0082
0,3679 70 0, 6321
GBN
k k
R
n n
= =
+

No chega a 1% de
k
n
Inaceitvel!
(Se p = 10
-5
(0, ) 0,9048 P n = 0, 0952
R
p =
'
0,12
GBN
k
R
n
= .
continua muito baixo!)
'
GBN
R
Cdigos para controlo de erros Tcnicas ARQ 15

2 2. . 3 3. . C C d di i g go os s d de e b bl l o oc co os s
Distncia de Hamming e distncia mnima
Matriz geradora e matriz de verificao de paridade
Grficos de Tanner
Sndrome e descodificao de mxima verosimilhana
Matriz-padro e coset leaders
Limites de Singleton, de Hamming e de Plotkin
Distribuio de pesos
Probabilidade de erro no detectado
Probabilidade de erro no corrigido
Cdigos aumentados e encurtados
Cdigos para controlo de erros Cdigos de blocos 2
Distncia de Hamming e distncia mnima
Seja um vector de cdigo representado por X = (x
1
x
2
... x
n
).
Um cdigo linear quando:
inclui o vector nulo
a soma de dois vectores do cdigo ainda um vector do cdigo.
Soma de vectores:

XY = (x
1
y
1
x
2
y
2
x
n
y
n
) x
i
, y
i
= 0,1
Peso do vector X, w( X) : Nmero de elementos no nulos do vector.
Ex.: Se X = (101101) w(X) = 4
Distncia de Hamming, d(X,Y), entre quaisquer dois vectores do cdigo:
nmero de elementos diferentes.
Exemplo:
X = (1 0 111 01)
Y = (11 0 0 1 0 1)



d(X, Y) = 3
Z = X Y = (0 1 1 1 0 0 0)
Note-se que w(Z) = w(X Y) = 3 = d(X,Y)
A distncia de Hamming entre dois vectores igual ao peso do seu vector
soma.
Distncia mnima de um cdigo, d
min
: a menor distncia de Hamming entre
dois vectores vlidos do cdigo.
A distncia de Hamming entre X e Y igual ao peso de um outro vector do cdigo, X Y.
Logo, a menor distncia de Hamming igual ao menor peso. Portanto,
d
min
= [w(X)]
min
X (0 0 0)
De todos os vectores no nulos um apresenta o menor peso. Esse peso a
distncia mnima do cdigo.
Cdigos para controlo de erros Cdigos de blocos 3
Cdigos, distncias mnimas e
empacotamento de esferas
(In "The Packing of Spheres", N. J. A. Sloane, Scientific American, Janeiro de 1984)


Cdigos para controlo de erros Cdigos de blocos 4
Capacidade de controlo de erros
A deteco de erros sempre possvel quando o nmero de erros de transmisso
numa palavra de cdigo inferior distncia mnima d
min
a palavra errnea
no um vector vlido.
Inversamente, se o nmero de erros iguala ou excede d
min
a palavra errnea pode
corresponder a outro vector vlido e os erros no podem ser detectados.
Se um cdigo detecta at / erros por palavra: min
1 d l +
Se um cdigo corrige at t erros por palavra:
min
2 1 d t +
Se um cdigo corrige at t erros por palavra e
detecta / > t erros por palavra:
min
1 d t l + +
A distncia mnima de um cdigo de blocos (n, k) limitada superiormente por

min
1 d n k + (Limite de Singleton)
Com cdigos binrios a igualdade s se atinge com cdigos de repetio (k = 1).
Infelizmente a sua taxa muito pequena ( 1
c
R k n n = = ).
Um cdigo com d
min
= n k +1 chama-se cdigo separvel pela distncia
mxima (maximum-distance-separable code, ou cdigo MDS).
Um exemplo o cdigo de Reed-Solomon, que encontraremos mais adiante.
Cdigos para controlo de erros Cdigos de blocos 5
Capacidade de detectar e corrigir erros
Exemplos:
1) d
min
= 5
Palavra de cdigo
vlida
Palavra de cdigo
vlida
Palavras no vlidas

Este cdigo consegue detectar at 4 erros por palavra. Consegue corrigir
at 2 erros por palavra.

2) Cdigo de repetio tripla:
0 000
1 111 (s tem estas duas palavras de cdigo)
d
min
= 3 Pode detectar 3 1 2 l = erros/palavra de 3 bits
Pode corrigir
3 1
1
2
t

= erro/palavra de 3 bits

3) d
min
= 7
possvel:
corrigir erros triplos (t = 3)
ou
corrigir erros duplos (t = 2) e detectar erros qudruplos (/ = 4).
Cdigos para controlo de erros Cdigos de blocos 6
Vale a pena codificar?
Seja: S Potncia do sinal
T
w
durao de uma palavra de k smbolos antes da codificao (= durao da palavra
de n smbolos depois da codificao) Energia/palavra de cdigo:
s w
E ST =
Energia recebida / smbolo
w
b
ST
E
k
= (sem codificao)
Energia recebida / smbolo
w
bc b
ST k
E E
n n
= = (com codificao)
Como n > k , a energia por smbolo diminui com o uso de codificao a probabilidade de
erro num smbolo maior com codificao do que sem codificao.
No entanto a redundncia introduzida pelos n - k smbolos de paridade permite corrigir erros, o
que pode conduzir a uma melhoria global do desempenho do sistema.
Uma medida da eficincia da codificao obtm-se comparando a probabilidade de erro numa
palavra codificada, P
enc
, com a probabilidade de erro numa palavra no codificada, P
e
.
Seja
0
2
b
E
p Q
N

=



probabilidade de erro num smbolo, sem codificao.

0
2
b
c
E k
p Q
n N

=



probabilidade de erro num smbolo, com codificao.
Sem codificao:
Probabilidade de erro numa palavra 1 menos a probabilidade de todos os k smbolos da palavra
serem recebidos correctamente:
1 (0, ) 1 (1 )
k
e
P P k p = =

Com codificao:
Probabilidade de erro numa palavra a probabilidade de haver t + 1 erros, t + 2 erros, t + 3 erros,
etc.:
1 1
( , ) (1 )
n n
i n i
enc c c
i t i t
n
P P i n p p
i

= + = +

= =




Cdigos para controlo de erros Cdigos de blocos 7
Exemplo com cdigo de Golay (23,12) e
transmisso BPSK

0
2
b
E
p Q
N

=



0
12
2
23
b
c
E
p Q
N

=




12
1 (1 )
e
P p = t = 3
23
23
4
23
(1 )
i i
enc c c
i
P p p
i

=

=


0
2
N
densidade espectral de potncia do rudo branco

10
- 8
10
-6
10
- 4
10
- 2
10
0
4
E
b
/ N
o
(dB)
6 8 10 12
P
r
o
b
a
b
i
l
i
d
a
d
e

d
e

e
r
r
o

10
- 10
10
- 12
10
- 14
P
e
p
p
c
P
enc

Cdigos para controlo de erros Cdigos de blocos 8
Cdigos de repetio
So cdigos (n, 1): a cada bit de informao acrescentam-se n-1 bits iguais.
Taxa Distncia mnima Erros corrigidos por
palavra
Palavra de cdigo
1/3 3 1 0 0 0
1 1 1
1/5 5 2 0 0 0 0 0
1 1 1 1 1
.
.
.
.
.
.
.
.
1/n n
1
2
(n 1)

0 0 0
1 1 1
Exemplo: Canal binrio simtrico e transmisso BPSK
Probabilidade de erro sem e com codificao:
p = Q
2E
b
N
0







p
c
= Q
2E
b
nN
0





> p

O cdigo de repetio pode corrigir
min
1 1
2 2
d n
t


= =


erros por palavra de
cdigo.

1
(1 )
n
i n i
enc c c
i t
n
P p p
i

= +

=

( P
e
=1 (1 p) = p, porque k = 1)
Por exemplo, num cdigo de repetio tripla (n = 3) pode corrigir-se 1 erro.
Os erros duplos e triplos ocorrem com uma probabilidade
3
3 2 3
2
3
(2,3) (3,3) (1 ) 3 2
i i
enc c c c c
i
P P P p p p p
i

=

= + = =


Cdigos para controlo de erros Cdigos de blocos 9
Representao matricial dos cdigos de
blocos
Cdigos sistemticos
Vamos considerar apenas os cdigos sistemticos, nos quais:
os primeiros k smbolos da palavra de cdigo de n bits constituem a sequncia de
informao X = (x
1
x
2
... x
k
), e os ltimos n - k smbolos representam os bits de
verificao ou bits de paridade.
1 2 1 2
( ... ... ) ( | )
k n k
x x x c c c

= = Y X C X Vector de mensagem
C Vector de verificao
Cada palavra de cdigo Y obtida multiplicando o vector X por uma matriz G,
chamada matriz geradora, de dimenses
k n
:
Y = XG
Matriz geradora
A matriz geradora de um cdigo sistemtico tem a estrutura seguinte:
1, 1 1,
2, 1 2,
, 1 ,
( )
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

k n
k n
k k k n
k k k n k
g g
g g
k
g g
+
+
+






= =





G I P

.
. . . . .

_ _

I
k
Matriz identidade k k
P Submatriz k (n k)
Cdigos para controlo de erros Cdigos de blocos 10
Representao matricial dos cdigos de
blocos
Cdigos sistemticos
Determinao do vector C:
Como Y = XG = (X | C) e G = (I
k
| P) C = XP
A questo est em determinar a submatriz P para obtermos os valores
pretendidos de d
min
e R
c
.

Matriz de verificao de paridade
Relacionada com G temos a matriz de verificao de paridade, H, de dimenses
n (n k), tal que GH= 0:
1, 1 1,
2, 1 2,
, 1 ,
1 0
0 1
k n
k n
k k k n
n k
g g
g g
g g
+
+
+







= =








P
H
I


O produto de qualquer palavra de cdigo pela matriz H um vector nulo:

= =
0
YH XGH 0

Cdigos para controlo de erros Cdigos de blocos 11
Um exemplo de cdigo de blocos:
o cdigo de Hamming
Um cdigo de Hamming um cdigo linear de blocos (2
n - k
- 1, k) com
n k 3 bits de paridade
n = 2
n k
1
A taxa do cdigo

R
c
=
k
n
= 1
n k
2
n k
1

( 1 se n k >> 1)
Independentemente do nmero de bits de paridade a distncia mnima sempre d
min
= 3.
Um cdigo de Hamming um cdigo que permite corrigir 1 erro ou detectar 2 erros.
As k linhas da submatriz P consistem em todas as palavras de n - k bits com dois ou mais
uns (por causa de H, como ver), em qualquer ordem.
Exemplo:
Seja n k = 3 n = 2
3
- 1 = 7, k = 4 cdigo (7, 4)
4
1 0 0 0 1 0 1
0 1 0 0 1 1 1
[ | ] [ | ]
0 0 1 0 1 1 0
0 0 0 1 0 1 1
k



= = =




G I P I P (isto apenas um exemplo para P)
Dada uma mensagem X = (x
1
x
2
x
3
x
4
) os bits de verificao obtm-se de C = XP, isto , do
sistema de 3 equaes
1 1 2 3
2 2 3 4
3 1 2 4
0
0
0
c x x x
c x x x
c x x x
=

(observe as colunas de P)
Alguns outros cdigos de Hamming ( (2 1, )
n k
k

):
(15,11) (31,26) (63,57)
Cdigos para controlo de erros Cdigos de blocos 12
Grficos de Tanner ou grficos bipartidos
Retomemos as equaes de paridade do cdigo (7,4) anterior:
1 1 2 3
2 2 3 4
3 1 2 4
c x x x
c x x x
c x x x
=


0
1 2 3 1
0
2 3 4 2
0
1 2 4 3
x x x c
x x x c
x x x c
=
=
=


A partir delas podemos desenhar o respectivo grfico de Tanner, ou grfico
bipartido.

n
ns de var i vei s
n - k
ns de ver i f i cao
y
7

y
6

y
5

y
4

y
3

y
2

y
1

s
3

s
2

s
1


A soma (mod 2) dos bits que concorrem num qualquer n de verificao nula se
a palavra de n bits pertencer ao cdigo.
Exemplo: 0
1 2 3 5
y y y y =
S = [s
1
s
2
s
3
] a sndrome correspondente a uma palavra de sete bits recebida
[ ]
1 2 7
z z z = Z
Exemplo: Z = [0111011] S = [001]
Cdigos para controlo de erros Cdigos de blocos 13
Nem todos os cdigos (2
n-k
-1, k)
so cdigos de Hamming!!
Um cdigo de Hamming um cdigo perfeito corrector de erros simples, com
t =1 e
min
3 d = . Ora no basta que um cdigo tenha dimenses
(2 1, )
n k
k

para
que seja de Hamming.
Exemplo:
O cdigo (7,4) gerado pela matriz seguinte no um cdigo de Hamming.
1 0 0 0 0 1 0
0 1 0 0 1 0 0
0 0 1 0 1 1 1
0 0 0 1 1 0 0
G



=




que a submatriz P tem linhas iguais e algumas com peso 1. A distncia
mnima 2.

Este cdigo no corrige sequer todos os padres com 1 erro!
Nos cdigos de Hamming todas as linhas de P so diferentes e tm sempre mais
do que um 1.

Cdigos para controlo de erros Cdigos de blocos 14
Distncia mnima e capacidade de
correco
Exemplos com cdigos binrios
(n, n 1), Par i dade par
(7, 4) , Hammi ng
(8, 4) , Hammi ng aument ado
(5,1) , cdi go de r epet i o

Cdigos para controlo de erros Cdigos de blocos 15
Codificao linear
P. : Como cal cul ar as pal avras de um cdi go l i near?
R. : Como a soma de duas pal avr as de um cdi go l i near uma pal avr a do
mesmo cdi go, podemos obt er pal avr as cust a de out r as j
det er mi nadas.
P. : Quai s?
R. : Havendo k bi t s de i nf or mao s pr eci samos de usar k pal avr as de
cdi go l i nearment e i ndependent es, i st o , um conj unt o de k pal avr as
nenhuma das quai s pode ser obt i da por combi nao l i near de 2 ou mai s
pal avr as do conj unt o.
As r est ant es 2
k
k pal avr as so obt i das das pr i mei r as por adi o
mdul o 2.
Ist o quer di zer que no pr eci samos de cal cul ar 2
k
pal avr as r ecor r endo
mat r i z ger ador a: bast a cal cul ar k.
P. : Como det ermi nar k pal avras l i nearment e i ndependent es?
R. : Uma manei r a f ci l escol her aquel as que s t m um 1 nas pr i mei r as
k posi es, i st o , as mensagens de k bi t s com peso 1.

As oper aes ant er i or es equi val em a somar l i nhas da mat r i z ger ador a
(ver exempl o segui nt e) .
Cdigos para controlo de erros Cdigos de blocos 16
Exemplo de codificao
Consideremos o cdigo (7, 4) com a matriz geradora seguinte:
G=
1 0 0 0 1 0 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1













Existem 2
k
= 2
4
= 16 palavras de cdigo correspondentes a outras tantas
mensagens de k = 4 bits. Nestas 16 mensagens h 4 com peso unitrio.
As palavras de cdigo correspondentes so:
Mensagens de 4 bits Palavras de cdigo com 7 bits
(1) 1000
(2) 0100
(3) 0010
(4) 0001

1000101
0100111
0010110
0001011

As restantes 12 palavras podem ser obtidas a partir destas. Por
exemplo, qual a palavra de cdigo correspondente mensagem
X = 0101 [ ]? Basta adicionar a 2 e a 4 palavras:
0001011
0100111
0101100

A operao anterior equivalente soma das linhas de ordem 2 e 4 da
matriz geradora G:
Y = XG = 010 1 [ ]G= [01011 0 0]
Cdigos para controlo de erros Cdigos de blocos 17
Como determinar a distncia mnima
a partir da matriz H?
A matriz de verificao de paridade pode ser escrita linha-a-linha como

H =
h
1
.
h
i
.
h
nk
















(h
i
vector-linha de ordem i)
Ora j sabemos que se Y for um vector de cdigo ento YH = 0. Suponhamos ento
que o vector Y tem elementos no-nulos nas posies i, j e k, por exemplo. Ser fcil
de verificar que as linhas h
i
, h
j
e h
k
somadas do zero.
Exemplo: cdigo (6,3) definido pela matriz G =
100110
010011
001101










.
O vect or [ 110101] per t ence ao cdi go. Como os bi t s 1 est o nas 1,
2, 4 e 6 posi es, a soma das l i nhas 1, 2, 4 e 6 de H dever ser nul a. De
f act o, sendo
H = 110 011 101 100 010 001 [ ]
T
,
a soma das l i nhas i ndi cadas d h
1
+ h
2
+ h
4
+ h
6
= 0:
110
011
100
001
000

Cdigos para controlo de erros Cdigos de blocos 18
Como determinar a distncia mnima
a partir da matriz H?
As consideraes anteriores levam-nos a concluir o seguinte:
Se houver uma palavra de cdigo de peso L ento existiro L linhas de H que
somadas do zero.
Como a distncia mnima do cdigo igual ao peso mnimo de todas as palavras
de cdigo, ento existem pelo menos d
min
linhas de H que somadas do zero.
Em concluso:
O menor nmero de linhas de H cuja soma nula igual distncia mnima
do cdigo.
(dito de outra maneira: d
min
igual ao menor nmero de linhas de H
linearmente dependentes)
Exempl o: mesmo cdi go (6, 3) def i ni do ant er i or ment e:
[ ] 110 011 101 100 010 001
T
= H
no h nenhuma l i nha nul a d
min
> 1
no h l i nhas i guai s d
min
> 2
a soma das t r s l i nhas 1, 2 e 3 (por exempl o) nul a

min
3 d =
Cdigos para controlo de erros Cdigos de blocos 19
Como fazer a descodificao?
Uma maneira seria comparar a palavra recebida com todas as possveis 2
k

palavras do cdigo.
Mas ... imaginemos que queramos usar um cdigo de Hamming com 0,8
c
R :
5 n k 31 n , 26 k
Seria preciso guardar
9
2 10
k
n > bits para comparao!!
H outros mtodos mais prticos, associados matriz de verificao de paridade
H. Como ZH = (00... 0) se Z pertencer ao conjunto das palavras de cdigo, se Z no
pertencer ento
(00...0) ZH
( pelo menos um elemento ser no nulo)
A descodificao faz-se multiplicando a sequncia recebida Z =(z
1
z
2
... z
n
) pela
matriz de verificao de paridade H, o que d um vector de n - k bits:
S = ZH S a sndrome ou sndroma
Uma sndrome no nula indica a presena de erros.
Uma sndrome nula significa que:
ou no houve erros introduzidos na transmisso
ou houve erros na transmisso que transformaram a palavra de cdigo enviada numa
outra palavra de cdigo vlida.
Se o cdigo tiver uma distncia mnima d
min
so precisos pelo menos d
min
erros
para transformar uma palavra de cdigo noutra palavra de cdigo igualmente
vlida.
Cdigos para controlo de erros Cdigos de blocos 20
Descodificao com sndromes
A sequncia recebida Z a soma em mdulo 2 da palavra de cdigo Y com um
eventual vector binrio de erro, E:
S = ZH = (Y E) H = YH EH = EH
Sendo Z = Y E ento Y = Z E
Exemplo: Se Y = [10011] e Z = [10110] E = [00101]
Z E = [10110] [00101] = [10011] = Y
O vector de erro, E, tem n bits existem 2
n
padres de erro possveis.
A sndrome, S, tem n-k bits existem 2
nk
< 2
n
sndromes possveis.
a sndrome no determina univocamente E.
Dos 2
n
padres possveis de erro apenas podem ser corrigidos 2
nk
1 padres (exclui-se o
padro nulo).
conveniente que os 2
nk
1 padres que podem ser corrigidos sejam os padres de erro
mais provveis, isto , aqueles que apresentem menos erros (por outras palavras, aqueles que
tenham um peso mais baixo).
Chama-se a esta tcnica a descodificao de mxima verosimilhana:
1. A partir dos 2
nk
1 padres de erro mais provveis calcula-se uma tabela de 2
nk
1
sndromes S = EH possveis.
2. Tendo recebido uma palavra Z de n bits calcula-se a sndrome respectiva, S = ZH.
3. Consulta-se a tabela de sndromes para determinar o padro de erro mais provvel, , que
corresponde sndrome calculada.
4. A palavra transmitida mais provvel,

Y, obtm-se adicionando a palavra recebida, Z, ao padro


de erro estimado.
Cdigos para controlo de erros Cdigos de blocos 21
Descodificao com sndromes
Se
1 2
[ ... ... ]
j n
e e e e = E e
1 2
[ ... ... ]
T
j n
h h h h = H (h
j
vector linha de n - k smbolos)
1
1 2
[ ... .. ]
j
j n
n
h
h
e e e e
h




= =




S EH
.
.

Imaginemos que ocorreu um nico erro, isto , E nulo excepto na posio j:
E = [00 ... 1 ... 0] S = [00 ... 1 ... 0] H = h
j

Isto significa que, num cdigo corrector de erros simples como o de Hamming:
Se a sndrome for igual linha de ordem j da matriz H ento houve um erro no
i-simo bit da palavra de cdigo recebida.
Para permitir a deteco de erros, as linhas da matriz de verificao de paridade
devem ser distintas (para que no haja ambiguidade) e diferentes de zero
*
.
Nmero de linhas de H: n
Nmero de linhas com n - k bits, distintas e diferentes de zero: 2
nk
1
n = 2
n k
1 (cdigo de Hamming, precisamente)

*
Est a ver porque que no exemplo de cdigo de Hamming apresentado anteriormente se disse que as
linhas de P deviam ter dois ou mais uns? para que todas as linhas de H sejam diferentes.
Cdigos para controlo de erros Cdigos de blocos 22
Exemplo de descodificao de
mxima verosimilhana
Consideremos o cdigo de Hamming (7, 4) anterior e seja G a sua matriz
geradora:
4
1 0 0 0 1 0 1
0 1 0 0 1 1 1
[ | ] [ | ]
0 0 1 0 1 1 0
0 0 0 1 0 1 1
k



= = =




G I P I P

A matriz de verificao de paridade vale
3
1 0 1
1 1 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
n k





= = =







P P
H
I I

As sndromes so as linhas de H e h 2
nk
1 = 7 padres de erro corrigveis,
que so os 7 vectores de erro com menor peso:
S


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

Este cdigo (7,4) permite detectar erros duplos (pois d
min
= 3) mas apenas corrigir erros
simples.
Cdigos para controlo de erros Cdigos de blocos 23
Exemplo de descodificao de
mxima verosimilhana
Codificador do exemplo:

Buf f er
x
4
c
3
x
4
x
2
x
1
x
4
x
3
C
X
Ent r ada
Bi t s de mensagem
Bi t s de
ver i f i cao
de par i dade
Regi st o das Mensagens
Regi st o dos bi t s de ver i f i cao
de par i dade
Par a o emi ssor
Y
x
3
x
2
x
1

c
2
c
1
x
3
x
2
x
2
x
1

Descodificador de mxima verosimilhana respectivo:

Z

7
... ...
z
7
... ...
Cal cul ador da Sndr ome
... ...

S
Tabel a
}
Z

z
2
z
1

1

Cdigos para controlo de erros Cdigos de blocos 24
Exemplo de descodificao de
mxima verosimilhana
1. Qual a palavra de cdigo Y correspondente mensagem X = [1011]?
R.:
[ ] [ ]
1 0 0 0 1 0 1
0 1 0 0 1 1 1
1011 1011000
0 0 1 0 1 1 0
0 0 0 1 0 1 1



= = =



Y XG

2. Qual a mensagem estimada,

X , se recebermos Z = [1011100]?
R.: A sndrome vale:
[ ] [ ] 1 1 1 1 1 1 1 1 0 0 = = = S ZH
(5 linha de H)
Da tabela: = [0000 100].
Portanto,
[ ] [ ] [ ]

1011100 0000100 1011000 = = = Y Z E
[ ]

1011 = X
3. possvel corrigir erros duplos com este cdigo?
R.: Como d
min
= 3 para este cdigo, no possvel corrigir erros duplos. Se, por
exemplo, Z tal que E = [1000010] ento
S = ZH = EH = [111] = [0100000]
O resultado, Z, seria uma palavra com 3 erros, na 1, 2 e 6 posies (dois
erros de transmisso + uma correco errada). Note-se, no entanto, que a sndrome
igual soma das linhas 1 e 6 de H (reparou certamente que os erros tinham ocorrido
nas posies 1 e 6).
Cdigos para controlo de erros Cdigos de blocos 25
Cdigos de Hamming (7,4)
e diagramas de Venn
Um cdigo de Hamming (7,4) pode ser caracterizado atravs de um diagrama de
Venn, o que nos permite codific-lo e descodific-lo muito facilmente. Como fazer?
Desenham- se t r s ci r cunf er nci as que se i nt er sect em, col ocando duas em ci ma e
uma por bai xo. Assi m ser o cr i adas 7 r eas, numer adas de 1 a 7 na f i gur a abai xo*.
Col ocam-se os quat r o bi t s da mensagem nas r eas de i nt er seco 1, 2, 3 e 4.
Os t r s bi t s de par i dade so col ocados nas r eas 5, 6 e 7 de modo que em cada um
dos cr cul os exi st a um nmer o par de uns (ou sej a, a soma mod 2 dos bi t s dent r o
de cada cr cul o 0).

Mensagem:
1010
Pal avr a de cdi go:
1010 011
0
1
1
1 0
0 1
2
3
7
1 4
5 6
A B
C

Descodi f i cao

Pal avr a r ecebi da: 0010011
Pal avr a de
cdi go:
1010 011
Mensagem:
1010
0
1
1
0 0
0 1
C
A B
0
1
1
1 0
0 1
C
A
B
A: mpar
B: par
C: mpar
Er r o est em
A C B
N de uns

* A numerao de 1 a 7 deve respeitar as equaes de paridade (ver pgina seguinte).
Cdigos para controlo de erros Cdigos de blocos 26
Cdigos de Hamming (7,4)
e diagramas de Venn
A numerao dos crculos A, B e C no diagrama de Venn anterior depende do
cdigo (7,4) usado, ou seja, deve obedecer s equaes de paridade, ou vice-versa,
que neste exemplo so
1 1 2 3
2 2 3 4
3 1 2 4
c x x x
c x x x
c x x x
=


Trata-se do cdigo de Hamming (7,4) do anterior exemplo, em que
1 0 0 0 1 0 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1



=



G

Repare-se que nas equaes de paridade o bit x
2
comum s trs equaes pelo
que deve ser atribudo rea intersectada pelos trs crculos.
Pode confirmar-se que uma palavra com 2 erros no ser correctamente
descodificada, pois o cdigo de Hamming um cdigo corrector de erros simples:

Pal avr a r ecebi da: 0010010
A: mpar
B: par
C: par
Er r o est em A
N de uns
0
1
0
0 0
0
C
A B
1
0
1
0
0 0
1
C
A B
1
Pal avr a
envi ada:
0010 110
Mensagem:
0010
Errada!

Cdigos para controlo de erros Cdigos de blocos 27
Matriz-padro de um cdigo de blocos
Sejam Y
1
, Y
2
, ...Y
2
k as 2
k
palavras de cdigo de n bits de um cdigo de blocos
(n, k).
Existem 2
n
vectores recebidos possveis. Vamos coloc-los numa matriz de 2
n

elementos, chamada matriz-padro, de acordo com as seguintes regras:
1. Na 1 linha colocamos todos os 2
k
vectores de cdigo, comeando pelo vector nulo
Y
1
= [000].
2. Dos restantes 2
n
2
k
nuplos colocamos um nuplo E
2
por baixo de Y
1
. A 2 linha
formada somando E
2
a cada vector Y
i
e colocando a soma E
2
+ Y
i
por baixo de Y
i
.
3. Nas restantes linhas procede-se de maneira idntica.
1 2 3
2
2 2 2 3 2 2
2
3 2 3 3 3 3
2
2 3
2 2 2 2 2
0
. .
k
k
k
n k n k n k k n k
Y Y Y Y
E Y E Y E Y E
E Y E Y E Y E
E Y E Y E Y E
=


+ + +

+ + +



+ + +

. . . . .


Existem 2
k
colunas e
2
n
2
k
= 2
nk
linhas.
Cada linha da matriz-padro do cdigo chama-se coset.
Ao primeiro elemento de cada linha (coset) chama-se coset leader.
Qualquer elemento de um coset pode ser usado como o seu coset leader: os elementos do
coset no so alterados, apenas permutados (verifique para confirmar).
Cdigos para controlo de erros Cdigos de blocos 28
A matriz-padro e a descodificao
Seja D
j
a coluna de ordem j da matriz-padro:
D
j
= {Y
j
, Y
j
+ E
2
, Y
j
+ E
3
,... ,Y
j
+ E
2
nk }

vector de E
2
, E
3
, coset leaders
cdigo
As colunas D
1
, D
2
, ..., D
2
k podem ser usadas para descodificar o cdigo.
Suponhamos que o vector de cdigo Y
j
transmitido atravs de um canal
ruidoso. Da expresso de D
j
vemos que a palavra recebida, Z, est em D
j
se o padro
de erro causado pelo canal for um coset leader. Nesta situao o vector recebido Z
ser correctamente descodificado no vector transmitido Y
j
.
E se o padro de erro no for um coset leader? A descodificao no ser correcta.
Vejamos porqu:
Se no um coset leader o padro de erros X est localizado num coset mas por baixo de um
vector de cdigo no nulo (por exemplo, no coset de ordem l e por baixo do vector Y
i
0 ):
X = Y
i
+ E
l
o vector recebido Z = Y
j
+ X = Y
j
+(Y
i
+ E
l
) = (Y
j
+ Y
i
) + E
l
= Y
s
+ E
l

o vector recebido, Z, est na coluna D
s
e ser descodificado em Y
s
, que no a
palavra transmitida.

Y
s
Y
j
00 ... 0
E
2

Y
2
k Y
2
Y
i
... ... ... ...
.
.
Padr o de
er r o
Vect or Recebi do
Vect or Envi ado
Vect or Descodi f i cado
E
3

E
l

Y
3

X Z
.
.
.
.
.
.
.
.
.
.

Cdigos para controlo de erros Cdigos de blocos 29
Matriz-padro, capacidade de correco e
sndrome
Conclumos que a descodificao estar correcta se e s se o padro de erro
causado pelo canal for um coset leader.
Como h 2
nk
coset leaders conclumos ainda que
Capacidade de correco
Qualquer cdigo de blocos linear (n, k) capaz de corrigir 2
n-k
padres de erro.
Para minimizar a probabilidade de um erro de descodificao escolhem-se como
coset leaders os padres de erro mais provveis (mxima verosimilhana).
Sndrome
Consideremos o coset de ordem j Y
i
+ E
j
um nuplo desse coset. A sua
sndrome vale:

0
( )
i j i j j
S Y E H Y H E H E H = + = + =

Por aqui se v que
todos os membros da mesma linha tm a mesma sndrome:
podemos estimar o coset leader podemos estimar o padro de erro.
Cdigos para controlo de erros Cdigos de blocos 30
Matriz-padro: um exemplo
Consideremos um cdigo (6, 3) com as seguintes palavras de cdigo:
(000000) (110100) (011010) (101110)
(101001) (011101) (110011) (000111) (Ateno: Y = (C|X)!)
A sua matriz-padro pode ser escrita como:
000000 110100 011010 101110 101001 011101 110011 000111
000001 110101 011011 101111 101000 011100 110010 000110
000010 110110 011000 101100 101011 011111 110001 000101
000100 110000 011110 101010 101101 011001 110111 000011
001000 111100 010010 100110 100001 010101 111011 001111
010000 100100 001010 111110 111001 001101 100011 010111
100000 010100 111010 001110 001001 111101 010011 100111
010001 100101 001011 111111 111000 001100 100010 010110

Padres de erro corrigveis
As palavras de cdigo com menor peso so
(110100), (011010), (101001) e (000111) d
min
= 3 t = 1
Se corrigisse todos os padres com t ou menos erros e no corrigisse nenhum
padro com mais de t erros diramos que o cdigo era perfeito. Como afinal tambm
corrige um padro com t + 1= 2 erros (neste caso o padro 010001, escolhido algo
arbitrariamente), diremos que este cdigo no perfeito.
Cdigos para controlo de erros Cdigos de blocos 31
Capacidade de deteco
Embora um cdigo de blocos garanta que detecta todos os padres de erro com
d
min
1 ou menos erros, tambm consegue detectar uma grande fraco de padres
de erro com d
min
ou mais erros. Na verdade,
Capacidade de deteco
Com um cdigo (n,k) possvel detectar 2
n
2
k
padres de erro de comprimento n.
Porqu?
Existem 2
n
1 padres de erro no nulos.
Desses 2
n
1 padres existem 2
k
1 padres de erro que so iguais s 2
k
1 palavras de
cdigo no nulas (pois elas prprias constituem padres de erro possveis).
Se um destes 2
k
1 padres de erro ocorre transforma a palavra emitida Y
i
numa outra
palavra vlida Y
j
.
sndrome nula descodificao errada
Logo, h 2
k
1 padres de erro no detectveis
Se o padro de erro no for idntico a uma dessas 2
k
1 palavras de cdigo o erro
detectvel.
Existem 2
n
1 (2
k
1) = 2
n
2
k
padres de erro detectveis. c. q. d.
Para n elevado 2
k
1 em geral << 2
n
Apenas uma pequena fraco dos padres de
erro no detectada.
Cdigos para controlo de erros Cdigos de blocos 32
Matriz-padro e padres de erro
Nmero de padres de erro detectveis: 2
n
2
k
.
Nmero de padres de erro corrigveis: 2
nk
.

2
k
colunas
2
n-k
linhas
padres
indetectveis
padres
corrigveis


A probabilidade de erro no detectado, P
end
, menor que a
probabilidade de erro no corrigido, P
enc
.
Cdigos para controlo de erros Cdigos de blocos 33
Probabilidade de erro no detectado
Seja A
i
o nmero de vectores de cdigo com peso i. Aos nmeros A
0
, A
1
, ... , A
n

chama-se distribuio de pesos do cdigo. Os valores de A
1
a A
dmin-1
so nulos.
Se o cdigo for usado apenas para deteco num canal binrio simtrico a
probabilidade do descodificador no detectar a presena de erros pode ser calculada a
partir da distribuio de pesos:
Um erro no detectado ocorre apenas quando o padro de erro idntico a um vector de
cdigo no nulo.
Existem A
i
padres de i erros nessas condies.
A
1
p(1 p)
n1
probabilidade associada aos A
1
padres com 1 erro.
A
2
p
2
(1 p)
n2

probabilidade associada aos A
2
padres com 2 erros.

A
i
p
i
(1 p)
n i
probabilidade associada aos A
i
padres com i erros.
A probabilidade de erro no detectado dada ento por
P
end
= A
i
i =1
n

p
i
(1 p)
ni

0
(com 2 )
n
k
i
i
A
=
=


Exemplo: Cdigo (6,3) usado apenas para deteco. Canal BSC e p = 10
-2
.
Consultando a lista de palavras de cdigo apresentada anteriormente:
A
o
= 1, A
1
= A
2
= 0, A
3
= 4, A
4
= 3, A
5
= A
6
= 0
P
end
= A
i
p
i
1 p ( )
6i
i=1
6

= 4p
3
1 p ( )
3
+ 3p
4
1 p ( )
2
= 3, 9.10
6

Em 1 milho de palavras transmitidas h em mdia 4 palavras erradas no detectadas.
Cdigos para controlo de erros Cdigos de blocos 34
Probabilidade de erro no corrigido
A probabilidade de erro no corrigido majorada por
P
enc
P i, n ( ) =
n
i





i =t +1
n

p
i
1 p ( )
n i
i=t +1
n

p probabilidade de transio do canal


( O mximo atinge-se se o cdigo no corrigir mais que t erros, isto , se for um cdigo perfeito)
Um erro de descodificao ocorre se e s se o padro de erro no for um coset
leader. Se
i
for o nmero de coset leaders de peso i, ento a probabilidade de erro
num canal binrio simtrico com probabilidade de transio p
( )
0
1 1
n
n i
i
enc i
i
P p p

=
=


Em resumo:
Cdigo (n, k): Detecta 2 2
n k
padres de erro
S corrige 2
n k
padres de erro
enc end
Se
n P P
grande
>>

Exemplo: Cdigo (6, 3) j apresentado, canal BSC e p = 10
-2
Na matriz-padro v-se que

0
= 1,

1
= 6,

2
= 1,

3
=
4
=
5
=
6
= 0,
logo, a probabilidade de descodificao errada vale
P
enc
=1 1 p ( )
6
6 p 1 p ( )
5
p
2
1 p ( )
4
1, 37.10
3

(compare-se com P
end
= 3, 9.10
6
)
Cdigos para controlo de erros Cdigos de blocos 35
Comprimento de cdigo e distncia
mnima
A partir de um dado valor de k queremos construir um cdigo com uma dada distncia
mnima d
min
. Qual o menor valor de n necessrio? A tabela seguinte d a resposta.
Menor compri ment o n de qual quer cdi go (n, k) conheci do
para valores sel ecci onados de k e d
min


(In John B. Anderson, Digital Transmission Engineering, IEEE Press, 1999)
Cdigos para controlo de erros Cdigos de blocos 36
Limites de Singleton e de Hamming
Limite de Singleton
A distncia mnima de um cdigo de blocos (n, k) limitada superiormente por
min
1 d n k +
Demonstrao: A palavra de cdigo no nula com menor peso tem peso d
min
(por definio ).
Ora existem sempre palavras de cdigo sistemtico com apenas um smbolo de
informao no-nulo + (n - k) smbolos de paridade. Tal palavra de cdigo no pode
ter peso maior que 1+(n - k). Logo, o peso mnimo do cdigo isto , d
min
no
pode ser maior do que 1 + (n - k). c.q.d.
Limite de Hamming
O nmero de dgitos de verificao de paridade de qualquer cdigo linear
binrio (n,k) com distncia mnima d
min
2t + 1 satisfaz o limite de Hamming
2
log 1 ...
1 2
n n n
n k
t

+ + + +



Demonstrao: Sendo d
min
2t + 1, ento todos os nuplos de peso t ou menos (isto , padres
de t erros ou menos) podem ser usados como coset leaders de uma matriz-padro.
Se o cdigo corrige t ou menos erros por bloco, o conjunto de todos os padres de t
ou menos erros ( incluindo o padro nulo )
...
0 1 2
n n n n
t

+ + + +



deve ser menor ou igual que o nmero de coset leaders, 2
n-k
:
... 2
0 1
n k
n n n
t


+ + +



o mesmo que
2
log 1 ...
1
n n
n k
t

+ + +


c.q.d.
O limite de Hamming estabelece um valor mximo para a capacidade de correco de erros t
do cdigo.
Cdigos para controlo de erros Cdigos de blocos 37
O limite de Hamming e o empacotamento
de esferas
Vejamos como obter o limite de Hamming pensando em esferas, ou bolas:
Existem 2
n
palavras de n bits das quais 2
k
pertencem a um cdigo (n, k).
Das que no pertencem ao cdigo
1
n



esto distncia de Hamming de 1 de
qualquer uma das palavras de cdigo.
Ou seja, este o nmero de pontos (ou palavras de n bits) que esto superfcie de uma
esfera de raio 1 centrada na palavra de cdigo.
Existem
2
n



palavras (pontos) de n bits distncia 2 da palavra de cdigo; esses
pontos esto superfcie de uma esfera de raio 2 centrada na palavra de cdigo.
Quantos pontos ou palavras de n bits esto superfcie e no interior de uma esfera
de raio t centrada numa palavra de cdigo (incluindo esta)?
0
1
1 2
t
i
n n n n
t i
=

+ + + =


A distncia entre duas esferas de raio t que no se toquem
min
2 1 d t + .
Como existem 2
k
esferas de raio t centradas nas 2
k
palavras de cdigo ento em
todas essas esferas o nmero de pontos
0
2
t
k
i
n
i
=


, que no pode ser maior que o


nmero total de pontos (dado que as esferas no se interpenetram):
0
2 2
t
n k
i
n
i
=


0
2
t
n k
i
n
i

(limite de Hamming)
A igualdade verifica-se nos cdigos perfeitos, onde no h nenhuma palavra de
n bits a uma distncia maior que t de alguma palavra de cdigo.
Cdigos para controlo de erros Cdigos de blocos 38
Limite de Plotkin
Imaginemos que dispomos linha a linha as 2
k
palavras de cdigo de um cdigo
(n,k). Obteremos ento uma matriz de 2
k
linhas e n colunas. Em cada uma dessas
colunas metade dos bits (isto , 2
k
2) 0 e metade 1. Logo, o nmero total de
uns que existe em todas as palavras de cdigo
Nmero de uns: n
2
k
2
= n. 2
k1

Como existem 2
k
1 palavras no nulas ento
Peso mdio das palavras de cdigo:
n. 2
k1
2
k
1

d
min
peso mdio
isto ,
d
min

n. 2
k1
2
k
1

Este majorante da distncia mnima o chamado limite de Plotkin.

Cdigos para controlo de erros Cdigos de blocos 39
Modificaes nos cdigos
Cdigos aumentados
( , ) ( 1, ) n k n k +
Acrescenta-se um bit de paridade (para obter paridade par)
Se o cdigo original tiver distncia mnima mpar a nova distncia mnima vem
incrementada de 1.
Porqu? Porque:
com palavras de cdigo de peso mpar o peso incrementado.
com palavras de cdigo de peso par o peso mantm-se.
Exemplos:
Hamming aumentado

min min
(15,11), 3 (16,11), 4 d d = =

min min
(7, 4), 3 (8, 4), 4 d d = =


Peso i 0 1 2 3 4 5 6 7 8
A
i
(7,4) 1 0 0 7 7 0 0 1
A
i
(8,4) 1 0 0 0 14 0 0 0 1
(7,4) ( ) ( ) ( )
7
7 4 3
3 4 7 9
1
1 7 1 7 1 7.10
i
i
end i
i
P A p p p p p p p

=
= = + +


(8,4) ( ) ( )
8
8 3
4 8 11
1
1 14 1 1, 4.10
i
i
end i
i
P A p p p p p

=
= = +

(!!)
Golay aumentado

min min
(23,12), 7 (24,12), 8 d d = =
Cdigos para controlo de erros Cdigos de blocos 40
Modificaes nos cdigos
Cdigos encurtados
( , ) ( , ) n k n l k l
Nas 2
k
palavras do cdigo original alguns (l) bits de informao so forados a
zero e depois removidos.
o nmero de bits de informao passa a ser k - l mas o nmero de bits de
paridade o mesmo.
Passa a haver 2
k-l
palavras de cdigo (se l = 1 passa a haver metade das
palavras)
A nova distncia mnima a mesma ou superior (depende dos bits removidos)
Se se removerem os bits de ordem i ( 1, 2, , i k = ) a nova matriz geradora
obtm-se eliminando as linhas e as colunas de ordem i.
Cdigos para controlo de erros Cdigos de blocos 41
Cdigos encurtados: um exemplo
Seja
1 0 0 0 1 1 0
0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1



=



G (cdigo de Hamming (7, 4))
Vamos obter o cdigo de Hamming encurtado (6, 3) removendo o terceiro bit de
informao. A nova matriz geradora obtm-se da primeira eliminando a 3 linha e a 3
coluna:
1 0 0 0 1 1 0
0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1
=
1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 1 1 1
G'=

Eis as novas palavras de cdigo:

Palavras do cdigo (7,4) Palavras do cdigo (6,3)
Original 3 bit nulo Remoo do 3 bit
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1
0 0 1 0 0 1 1 0 0 0 0 0 1 1
0 0 1 1 1 0 0 0 0 0 1 1 0 0
0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0
0 1 1 0 1 1 0 0 1 0 0 1 1 0
0 1 1 1 0 0 1 0 1 0 1 0 0 1
1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0
1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1
1 0 1 0 1 0 1 1 0 0 0 1 0 1
1 0 1 1 0 1 0 1 0 0 1 0 1 0
1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1
1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0
1 1 1 0 0 0 0 1 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 0 1 1 1 1
d
min
= 3 d
min
= 3
A distncia mnima no se alterou.
Cdigos para controlo de erros Cdigos de blocos 42
Exemplo de aumento da distncia mnima
com um cdigo encurtado
Matriz geradora de um cdigo (15,11) com distncia mnima 3:
11
1 0 0 1 0 0 1
0 1 0 1 0 1 0
0 0 1 1 0 0
0 1 1 0 1
0 0 1 1
0 1 0 1
( ) 1 0 0 1
1 0 1 1
0 0 1 1 1 0
0 0 0 0 1 1 1
0 0 1 1 1 1 1
I








=










G


Se se eliminarem as linhas de G que em P tm peso par (1, 2, 3, 5, 6, 7 e 11) e tambm as
colunas com o mesmo ordinal obtemos a matriz geradora de um cdigo encurtado (8,4):
1 0 0 0 1 1 0 1
0 1 0 0 1 0 1 1
0 0 1 0 1 1 1 0
0 0 0 1 0 1 1 1



=



G'
A matriz de verificao de paridade deste cdigo encurtado
1 1 0 1
1 0 1 1
1 1 1 0
0 1 1 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1






=







H'
Em H' nenhuma linha nula ( d
min
> 1), no h duas linhas iguais (logo, nenhum par de
linhas somadas d zero d
min
> 2) e cada uma tem peso mpar (logo, nenhum conjunto de trs
linhas somadas d zero d
min
> 3). Como h pelo menos um grupo de quatro linhas (1, 2, 6 e 7)
que somadas d zero d
min
= 4 .

2
2
.
.
4
4
.
.
C
C

d
d
i
i
g
g
o
o
s
s
c
c

c
c
l
l
i
i
c
c
o
o
s
s

Polinmio gerador
Como gerar cdigos cclicos
Sndrome
Diviso polinomial
Equivalncia entre a representao matricial de
cdigos de blocos e a representao polinomial de
cdigos cclicos
Exemplos de cdigos: Hamming, BCH, Golay,
Reed-Solomon e CRC
Cdigos para controlo de erros Cdigos cclicos 1
Cdigos cclicos
Os cdigos cclicos so os cdigos de blocos lineares mais teis e populares.
Porque que este tipo de
cdigo importante?
Como se codifica? Como se calcula a
sndrome?
Porque a codificao e a
descodificao se podem fazer
facilmente com registos de
deslocamento e alguma lgica
adicional
Com registos de
deslocamento de k
andares ou de n-k
andares
Com registos de
deslocamento de k andares ou
de n-k andares
Os cdigos cclicos so "manuseveis" algebricamente, com polinmios, sem
necessidade de recorrer a matrizes e vectores.
Num cdigo cclico um deslocamento de uma palavra de cdigo conduz a uma
outra palavra de cdigo:
Se [y
n
y
n-1
... y
o
] for uma palavra de cdigo [y
n-1
y
n-2
... y
0
y
n
] tambm uma palavra
de cdigo.
Mas s n-1 palavras de cdigo so geradas por deslocamento cclico.
para gerar por deslocamento todo o conjunto de 2
k
palavras de cdigo
temos de considerar vrias palavras.
Cdigos para controlo de erros Cdigos cclicos 2
Cdigos cclicos
Associemos um polinmio de grau n 1 a cada palavra de cdigo:
Palavra de cdigo Polinmio
Y = (y
n1
y
n2
... y
1
y
0
)
1 2
1 2 1
( )
n n
n n
Y p y p y p y p y


= + + +
0
+
Como formar nova palavra por deslocamento cclico?
Formemos o polinmio pY(p):
pY( p) = y
n1
p
n
+ y
n2
p
n1
+. .. +y
1
p
2
+ y
0
p
No palavra de cdigo porque, se y
n-1
= 1, o polinmio tem grau n.
Vamos dividir pY(p) por p
n
+ 1:

pY( p)
p
n
+1
= Y
n1
+
Y
1
p ( )
p
n
+1
(com Y )
1
( p) = y
n 2
p
n 1
+ y
n 3
p
n2
+.. . +y
0
p + y
n 1
Y
1
(p) um polinmio que representa a nova palavra de cdigo
Y
1
= (y
n2
y
n3
. .. y
0
y
n1
) (deslocamento de Y de uma posio).
Como Y
1
(p) o resto da diviso de pY(p) por p
n
+ 1 podemos escrever
Y
1
(p) = p Y(p) mod (p
n
+ 1)
Generalizando:
Se Y(p) representa uma palavra de cdigo ento p
i
Y(p) md (p
n
+ 1) tambm palavra de cdigo.
( ) ( )( 1) ( )
Quociente Resto (corresponde a uma
palavra de cdigo deslocada)
i n
i
p Y p Q p p Y p = + +


Cdigos para controlo de erros Cdigos cclicos 3
Como gerar cdigos cclicos?
Vamos ver duas maneiras de calcular as palavras de cdigo a partir da
mensagem, uma para cdigos no sistemticos e outra para cdigos sistemticos.

Seja
1 2
1 2 1
( )
k k
k k 0
X p x p x p x p x

+ ++

= + um polinmio de grau k-1 representando uma
mensagem de k bits.

Seja g(p) um polinmio de grau n - k que seja divisor de p
n
+ 1.
A este polinmio vamos chamar polinmio gerador do cdigo.
Existem 2
k
polinmios {X
i
(p)} h 2
k
palavras de cdigo possveis, a partir de um dado g(p).
Cdigos no sistemticos:
O produto X(p)g(p) tem grau e pode representar uma palavra de cdigo. 1 n
Representemos as 2
k
palavras de cdigo por
Y
m
(p) = X
m
(p) g(p) m = 1, 2, ... , 2
k

Cdigos sistemticos:
Seja C(p) = c
q-1
p
q-1
+ ... + c
1
p + c
0
o polinmio de teste de paridade (em que q = n-k).
Cada palavra de cdigo obtida percorrendo a seguinte sequncia de operaes:
1. Calcula-se p
n-k
X(p).
2. Calcula-se C p ( ) = p
nk
X(p) (modg( p)) .
3. Determina-se a palavra de cdigo calculando Y(p) = p
n-k
X(p) + C(p)

Se Y(p) representa uma palavra de cdigo ento Y(p) ser mltiplo de g(p).
No exemplo seguinte vamos ver a razo destas operaes.
Cdigos para controlo de erros Cdigos cclicos 4
Exemplo de codificao
c
0
c
1
c
3
c
2
0 1 1
0 1 1
0 1 1 0 0 0 0
+
=
= X(p)=p+1
= p
4
X(p)=p
5
+p
4
= C(p)
= Y(p)
mensagem original
mensagem deslocada
paridade
palavra de cdigo
Cdigo cclico (7,3) sistemtico
c
0
c
1
c
2
c
3

A figura mostra que Y . ( p) = p
4
X( p) +C( p)
Quanto vale C(p)?
R.: Y(p) mltiplo de g(p), por definio Y(p) = p
4
X( p) + C(p) = Q( p)g( p)

p
4
X(p)
g( p)
+
C( p)
g( p)
= Q(p)
p
4
X(p)
g( p)
= Q( p) +
C(p)
g(p)

C( p) = c
3
p
3
+ c
2
p
2
+ c
1
p + c
0
representa o resto da diviso de p
4
X(p) por g(p).
Se C p
4 2
( ) 1 g p p p p = + + +
3
( ) 1 p = +
(ou c c )
3 2 1 0
1, 0, 0, 1. c c = = = =
Resumindo para calcular uma palavra de cdigo de um cdigo cclico
sistemtico (n, k) devemos:
1. Factorizar p
n
+ 1 e escolher um factor com grau n-k. Ser esse o polinmio gerador g(p).
2. Calcular p
n-k
X(p).
3. Dividir p
n-k
X(p) por g(p) e achar o resto, C(p).
4. Determinar Y(p) = p
n-k
X(p) + C(p).
Cdigos para controlo de erros Cdigos cclicos 5
Polinmios usados em cdigos cclicos
Polinmios

grau
Polinmio gerador g(p) n-k
Polinmio de verificao de paridade h(p) k
Polinmio de informao X(p) k-1
Polinmio de palavra de cdigo Y(p) n-1
Polinmio de erro e(p) n-1
Polinmio recebido Z(p) n-1
Polinmio da sndrome S(p) n-k-1

Os polinmios g(p) e h(p) esto relacionados atravs de . g(p) h(p) p
n
= +1
Sndrome:
Dado um vector recebido Z a sndrome calcula-se de S(p) = Z(p) mod g(p). Se Z(p) for um
polinmio de cdigo vlido ento g(p) ser um factor de Z(p) e
g( p)
ter um resto nulo. Se o
resto no for nulo porque houve erros na transmisso.
Z( p)

( ) ( ) ( ) ( ) ( ) [ ]
( ) ( ) ) ( mod ) ( mod ) ( mod ) (
) ( mod mod
0
p g p e p g p e p g p Y
p g p e p Y p g p Z p S
= + =
= + = =

Para cada polinmio e(p) corrigvel calcula-se e tabula-se S(p) como se mostra
na seguinte tabela de sndromes:
e(p) S(p)
1 ) ( mod 1 p g
p ) ( mod p g p
p
2

) ( mod
2
p g p
... ...
1+p ) ( mod ) 1 ( p g p +
1+p
2

) ( mod ) 1 (
2
p g p +
... ...

Cdigos para controlo de erros Cdigos cclicos 6
Cdigos cclicos um exemplo
Exemplo: cdigo (7,4)
Vamos determinar a palavra de cdigo correspondente mensagem
. X = [1010] X p = p + 0 + p + 0 ( )
3
Por definio o polinmio gerador factor de . Ora o polinmio
tem os seguintes factores:
p
n
+1 p
7
+1
p
7
+ 1= ( p +1)(p
3
+ p
2
+1)( p
3
+ p + 1)
Se quisermos gerar um cdigo cclico (7, 4) o polinmio gerador tem grau
7-4=3 e pode ser
g
1
p ( ) = p
3
+ p
2
+1 ou g
2
p ( ) = p
3
+ p +1
Vamos escolher g , por exemplo.
2
( p)
Clculo do polinmio de teste de paridade, C(p):
1. p
nk
X p ( ) = p
3
X( p) = p
6
+ p
4

2. Dividindo por p
nk
X( p) g( p):
p
6
+ p
4
p
3
+ p +1
= p
3
+1+
p + 1
p
3
+ p +1

Portanto, C( p) = p +1.
Palavra de cdigo: Y( p) = p
3
X( p) +C( p) = p
6
+ p
4
+ p +1
Y =[1010011]
Cdigos para controlo de erros Cdigos cclicos 7
Cdigos cclicos um exemplo (cont.)
O cdigo ( precedente pode ser gerado por um registo de deslocamento de 3
andares. O polinmio gerador g .
7, 4)
( p) = p + g
2
p + g
1
p + 1= p + p +1
3 2 3

Comutador 1
Sada
Comutador 2
+
Entrada (p
3
+ p)
+
A
B
C D E
(palavra de cdigo)
(sequncia de informao)
g
1
= 1 g
2
= 0

TABELA DE CONTEDOS DO CODIFICADOR (7, 4)
Deslocamento Entrada Comutador
1
Comutador
2
C D E Sada
1 1 Fechado A 1 0 0 1
2 0 Fechado A 1 1 0 0
3 1 Fechado A 0 1 1 1
4 0 Fechado A 1 0 1 0
5 -- Aberto B 1 1 0 0
6 -- Aberto B 0 1 1 1
7 -- Aberto B 0 0 1 1
Durante os primeiros 4 deslocamentos o comutador 1 est fechado e o
comutador 2 est na posio A. S aps esses 4 deslocamentos (k = 4) que os 3 bits
de paridade so acrescentados.
Cdigos para controlo de erros Cdigos cclicos 8
Cdigo cclico (7, 4) Descodificao

S
1

R
1
Sada
Entrada
recebida
Gerador de
sndrome
R
2
R
3
S
2
S
3
S
4
S
5
S
6
S
7
Comutador

Suponhamos que a palavra enviada foi [1010011] e que a palavra recebida foi [1 0 1 1 0 1 1].
TABELA DE CONTEDOS DO DESCODIFICADOR (7,4)
Deslocam. Entrada Comut. R
1
R
2
R
3
AND S
1
S
2
S
3
S
4
S
5
S
6
S
7
Sada
1 1 Fech. 1 0 0 -- 1 -- -- -- -- -- -- --
2 0 " 0 1 0 -- 0 1 -- -- -- -- -- --
3 1 " 0 0 1 -- 1 0 1 -- -- -- -- --
4 1 " 0 0 0 -- 1 1 0 1 -- -- -- --
5 0 " 0 0 0 -- 0 1 1 0 1 -- -- --
6 1 " 1 0 0 -- 1 0 1 1 0 1 -- --
7 1 " 1 1 0 -- 1 1 0 1 1 0 1 --
8 -- Aberta 1 1 1 0 -- 1 1 0 1 1 0 1
9 -- " 0 1 1 0 -- -- 1 1 0 1 1 0
10 -- " 0 0 1 0 -- -- -- 1 1 0 1 1
11 -- " 1 0 0 1 -- -- -- -- 1 1 0 0
12 -- " 0 1 0 0 -- -- -- -- -- 1 1 0
13 -- " 1 0 1 0 -- -- -- -- -- -- 1 1
14 -- " 1 1 0 0 -- -- -- -- -- -- -- 1
No 11 deslocamento a sada do AND 1 (e a nica ocasio em que isso sucede), a qual vai
inverter (11 = 0) o 4 smbolo recebido, que estava em erro.
Calculando as matrizes G e H verificar-se-ia que S = [0 11], a que corresponderia um vector de erro
com erro na 4 posio. Logo, o rectngulo tracejado desempenha as funes de um gerador de
sndrome.
Cdigos para controlo de erros Cdigos cclicos 9
Circuito para dividir polinmios
Dados dois polinmios V(X) e g(X):

0 1
1
1
... ) ( v X v X v X v X V
m
m
m
m
+ + + + =


) ( ... ) (
0 1
r m g X g X g X g
r
r
+ + + =
o circuito seguinte realiza a diviso polinomial de V(X) por g(X), determinando o
quociente e o resto:
) (
) (
) (
) (
) (
X g
X r
X q
X g
X V
+ =


V(X)
g
0

...
v
m-1
, v
m
,
(primeiro o coeficiente de
ordem mais elevada)
Quociente
...
g
1
g
2
g
3
g
r-1
g
r

Aps m+1 deslocamentos no registo de deslocamento o quociente foi
apresentado em srie na sada e o resto reside no registo de deslocamento.
Cdigos para controlo de erros Cdigos cclicos 10
Diviso polinomial
Exemplo:
Use um circuito divisor idntico ao apresentado para dividir V(X) = X
3
+ X
5
+ X
6

(V = 1 1 0 1 0 0 0) por g(X) = X
3
+ X + 1. Determine o quociente e o resto. Compare
a implementao em circuito com os passos da diviso polinomial feita mo.
R.: Queremos determinar o quociente e o resto:
6 5 3
3 3
( )
( )
1 1
X X X r X
q X
X X X X
+ +
= +
+ + + +

mo:
feedback aps X
6
+ X
5
+ X
3
4 deslocamento X
6
+ X
4
+ X
3
registo aps 4 desloc. X
5
+ X
4
feedback aps 5 deslocamento X
5
+ X
3
+ X
2
registo aps 5 deslocamento X
4
+ X
3
+ X
2
feedback aps 6 deslocamento X
4
X
2
+ X
registo aps 6 deslocamento X
3
+ X
feedback aps 7 deslocamento X
3
+ X + 1
registo aps 7 deslocamento (RESTO) 1
X
3
+ X + 1
X
3
+X
2
+X+1
Sada aps
deslocamento n
4 5 6 7

Portanto e r(X) = 1.
3 2
( ) q X X X X = + + +1
Cdigos para controlo de erros Cdigos cclicos 11
Diviso polinomial com o circuito

O circuito divisor este:

X
0
1101000
Entrada
Primeiro bit a chegar
Polinmio de feedback
X
1
X
2
X
3
Sada


Fila de entrada Deslocamento
n
Contedo
registo
Sada
0 0 0 1 0 1 1 0 0 0 0 -
0 0 0 1 0 1 1 1 0 0 0
0 0 0 1 0 2 1 1 0 0
0 0 0 1 3 0 1 1 0
0 0 0 4 0 1 1 1
0 0 5 1 1 1 1
0 6 1 0 1 1
-- 7 1 0 0 1

Coeficientes do quociente: 1111 q(X) = X + X + X +1
3 2
Coeficientes do resto: 100 r(X) =1
isto ,
X
6
+ X
5
+ X
3
X
3
+ X +1
= X
3
+ X
2
+ X +1+
1
X
3
+ X +1

Cdigos para controlo de erros Cdigos cclicos 12
Codificao sistemtica com um registo
de deslocamento de n - k andares
Forma Geral:

...
...
g
1
g
2
g
n-k-1
r
n-k-1
r
2
r
1
r
0

n - k andares
Fechado durante os
primeiros k deslocamentos
mensagem
Para baixo durante os
primeiros k deslocamentos
Comutador
1
Comutador 2
Sada
V(X)

Exemplo: Codificar a mensagem m = [1 1 0 1] num vector de cdigo (7, 4) usando o polinmio
gerador g(p) = p
3
+ p + 1.
R.:
3 2
[1101] ( ) 1 m m p p p = = + +

3 6 5
( ) ( )
n k 3
p m p p m p p p p

= = + +
( ) ( ) ( ) ( ) Cdigo sistemtico
n k
p m p q p g p r p

= +
Paridade r(p) = p
6
+ p
5
+ p
3
md. ( p
3
+ p + 1)
Circuito:

r
2
r
1
r
0
n k = 3 andares
Entrada
(p
3
+p
2
+1)
Comutador 2
Sada
Comutador 1

Vector de cdigo de sada: [1101 001] (p
6
+p
5
+p
3
+1)
Cdigos para controlo de erros Cdigos cclicos 13
Descodificao com um registo de
deslocamento de n - k andares
O clculo da sndrome na descodificao de cdigos cclicos (n,k) realiza-se
com um circuito de n-k andares anlogo ao que foi usado na codificao:

Calculador de sndromes

...
bits
recebidos
...
g
1
g
2
g
3
g
n-k-1

Comutador
s
n-k-1
s
2
s
1
s
0
n - k andares

A sndrome reside no registo (isto , o seu contedo) no fim do deslocamento
dos bits da palavra recebida esquerda.
Cdigos para controlo de erros Cdigos cclicos 14
Equivalncia entre a representao
matricial de cdigos de blocos e a
representao polinomial de cdigos
cclicos
Seja g(p) o polinmio gerador de um cdigo cclico (n, k).
A linha de ordem i da matriz geradora equivalente, G, de um cdigo de blocos
sistemtico vem dada por
i=1, 2, ..., k (com ) p
ni
+ R
i
p ( ) R
i
p ( )= p
ni
modg p ( )
isto ,
( )
( )
( )
( )
n i
i
i
R p
p
Q p
g p g p

= + ou p
ni
= Q
i
p ( )g p ( ) + R
i
p ( ) i =1, 2, .. ., k
R
i
(p) representa o resto da diviso de pelo polinmio gerador g(p). p
ni
Se estivermos interessados apenas na submatriz P, as suas k linhas vm dadas por:
( ) ( ) mod 1, 2,...,
n i
i
R p p g p i

= = k

Exemplo: Seja o cdigo (7,3) definido pelo polinmio g . ( p) = p
4
+ p
2
+ p+1
1 linha de P: [1011] p
71
mod g(p) = p
6
mod g(p) = p
3
+ p +1
2 linha de P: [1110] p
72
mod g(p) = p
5
mod g( p) = p
3
+ p
2
+ p
3 linha de P: [0111] p
73
mod g( p) = p
4
mod g( p) = p
2
+ p +1
Logo, G =
1001011
0101110
0010111





(

(
(
(

Cdigos para controlo de erros Cdigos cclicos 15
Exemplos de cdigos de blocos
Cdigo de Hamming
So os cdigos de blocos mais simples.
Estrutura: ( m = 2, 3, ... n, k ) = (2
m
1, 2
m
1 m)
Distncia mnima = 3
Corrigem todos os erros simples (t=1) um cdigo perfeito.
Detectam todas as combinaes de 2 ou menos erros dentro de um bloco (l = 2 ).
Cdigo de Golay Aumentado (24, 12)
um dos cdigos de blocos mais teis.
O cdigo formado acrescentando um bit de paridade ao cdigo perfeito (23,12)
(cdigo de Golay). Este bit extra aumenta a distncia mnima d
min
de 7 para 8.
O cdigo corrige todos os erros triplos e alguns (mas no todos) erros qudruplos.
A taxa do cdigo 1/2 pelo que mais fcil de implementar (relativamente a
"relgios") que o cdigo de Golay original.
Os cdigos de Golay aumentados so consideravelmente mais poderosos que os
cdigos de Hamming. Em contrapartida:
O descodificador mais complexo.
A taxa de cdigo mais baixa.
H uma maior expanso de largura de banda.
Cdigos para controlo de erros Cdigos cclicos 16
Exemplos de cdigos de blocos:
o cdigo BCH
B Bose C Chaudhuri H Hocquenghem
So dos mais importantes cdigos cclicos e so uma generalizao dos cdigos de Hamming,
permitindo correces de erros mltiplos.
Para um dado comprimento de bloco, n, podem definir-se cdigos com uma gama alargada de
taxas e capacidades de correco de erros:
Sendo o n de erros corrigveis/palavra
2 1
e um inteiro arbitrrio
m
t
n m
m
n k mt
= >

`

)
2


Cdigos para controlo de erros Cdigos cclicos 17
Comparao entre cdigos de blocos

Cdigos para controlo de erros Cdigos cclicos 18
Exemplos de cdigos de blocos:
Cyclic Redundancy Check Codes
(CRC)
Os cdigos cclicos usados para deteco de erros so habitualmente designados
por CRCs. Os mais usados so caracterizados pelos polinmios geradores da tabela
seguinte.
Polinmios geradores dos principais cdigos CRC
Cdigo Polinmio gerador
CRC-12
p
12
+ p
11
+ p
3
+ p
2
+ p +1
CRC-16
p
16
+ p
15
+ p
2
+1
CRC-32
(Ethernet)
p
32
+ p
26
+ p
23
+ p
22
+ p
16
+ p
12
+ p
11
+ p
10
+ p
8
+ p
7
+ p
5
+ p
4
+ p
2
+ p +1

CRC-CCITT
(norma X25)
p
16
+ p
12
+ p
5
+1
CRC-16, por exemplo, significa que o nmero de bits de paridade 16.
Uma palavra com erro detectada se, dividindo o seu polinmio pelo polinmio
gerador, o resto (checksum) no for zero.
Nem todos os cdigos CRC so cclicos. Para o serem o seu polinmio gerador
tem de ser um factor de dependendo, portanto, do comprimento n. 1
n
p +
Definio: uma rajada de erros (CRC Error Burst) de comprimento B numa
palavra recebida de n bits uma sequncia contgua de B bits em que o primeiro e
o ltimo bits e qualquer nmero de bits intermdios so recebidos com erro.
Cdigos para controlo de erros Cdigos cclicos 19
Cdigos CRC
Os cdigos ( binrios so capazes de detectar os seguintes padres de erro: n, k )
Todas as rajadas de erros CRC de comprimento n k ou menor;
Uma fraco, 1 , de rajadas de comprimento n 2
(nk1)
k +1;
(isto , apenas no detecta a fraco
1
2
nk1
destas rajadas).
Uma fraco, 1 , de rajadas de comprimento maior que n 2
(nk)
k +1;
(isto , apenas no detecta a fraco
1
2
nk
destas rajadas).
Todas as combinaes de d
min
1, ou menos, erros, como sempre;
Todos os padres de erro com um nmero mpar de erros se o polinmio gerador
do cdigo, g( p), tiver um nmero par de coeficientes no nulos.
Percentagem de rajadas de erros detectadas com cdigos CRC
n-k+2 n-k+1 n-k
Percentagem de
deteco das rajadas
1-2
-(n-k-1)
1-2
-(n-k)
100%
Comprimento das
rajadas de erros


Tipo de erros CRC-12 CRC-16
CRC-CCITT
CRC-32
Rajadas de comprimento
n k
100% 100% 100%
Rajadas de comprimento
1 n k +
99,951% 99,997% 99,99999995%
Rajadas de comprimento
1 n k > +
99,976% 99,998% 99,99999998%

Cdigos para controlo de erros Cdigos cclicos 20
Exemplos de cdigos de blocos:
o cdigo de Reed-Solomon (RS)
O cdigo de Reed-Solomon um cdigo no-binrio que constitui uma sub-classe dos cdigos
BCH.
Os cdigos RS possuem a maior distncia mnima possvel (n - k + 1) entre cdigos lineares
com os mesmos comprimentos de blocos de entrada (k) e sada (n) do codificador.
So muito teis na correco de "burst errors" (erros agrupados).
Existem tcnicas eficientes de descodificao de cdigos RS.
Um cdigo RS com correco de t smbolos tem os seguintes parmetros:
Comprimento do bloco: n = 2
m
-1 smbolos
Tamanho da mensagem: k smbolos
Nmero de smbolos de paridade: n-k = 2t smbolos
Distncia mnima: d
min
= 2t+1 smbolos
A distncia mnima igual ao nmero de smbolos de paridade + 1
(o limite de Singleton atingido)
t igual a metade dos smbolos de paridade.
O codificador agrupa os bits de entrada em grupos de km bits, isto , em grupos de k smbolos,
em que cada smbolo composto por m bits.
A cada k smbolos o codificador acrescenta n-k smbolos de paridade.
Os cdigos RS so por vezes usados num modo concatenado. Por exemplo:
O cdigo interior um cdigo convolucional
O cdigo exterior um cdigo Reed-Solomon
Nos discos compactos (CD) so usados cdigos RS concatenados.
Cdigos para controlo de erros Cdigos cclicos 21
Um exemplo com o cdigo de
Reed-Solomon
Um cdigo RS corrector de erros simples usa smbolos com bytes de 2 bits, isto
, t = 1 e m = 2. Se os quatro smbolos possveis forem designados por 0, 1, 2 e 3,
podemos escrever a sua representao binria como
0 : 00
1 : 01
2 : 10
3 : 11
Este cdigo tem os seguintes parmetros:
n = 2
2
- 1 = 3 bytes = 6 bits
n - k = 2t = 2 bytes = 4 bits
Taxa do cdigo:
1
3
k
R
n
= =
Cdigos para controlo de erros Cdigos cclicos 22
Curvas de probabilidade de erro com
o cdigo de Reed-Solomon
Probabilidade de bit errado para um cdigo RS com n = 31 (trinta e um smbolos
de 5 bits por bloco de cdigo):

Cdigos para controlo de erros Cdigos cclicos 23
Anexo 1
Aplicao de codificao de canal a transmisses espaciais





O conceito de codificao concatenada usado pela NASA

Codificador
Reed-Solomon
Codificador
convolucional
Sistema de
telemetria da nave
Desmodulador Descodificador
Reed-Solomon
Descodificador
convolucional
de mxima
verosimilhana
RF (modulao
de fase)
Andar de
entrada de RF
Dados no
codificados
Canal
Codificao concatenada


O cdigo interior (cdigo convolucional de taxa 1/2 e comprimento de restrio 7)
o ltimo a ser usado na codificao, na nave espacial, e o primeiro a ser usado na
descodificao em Terra.
algoritmo usado: algoritmo de Viterbi com decises brandas.
O codificador exterior um codificador Reed-Solomon que alimenta o codificador
convolucional da nave.




(Adaptado de IEEE Communications Magazine, Setembro de 1990)
Cdigos para controlo de erros Cdigos cclicos 24
Anexo 2
Evoluo dos cdigos e seu uso em sondas espaciais

BPSK, deteco coerente e sem codificao: Pb = 10-5 @ Eb/N0 = 9,6 dB
BPSK, deteco coerente e com codificao:
Sonda Cdigo
0 b
E N
10
b
P =
para

5
Mariner e Viking Biortogonal (Reed-Muller) (32,6) 6,4 dB
Pioneer 10 (1972, Jpiter)
Pioneer 11 (1973, Saturno)
Convolucional (2,1,32) no sistemtico,
descodificao sequencial
2,5 dB
Voyager (1977) Convolucional (2,1,7), descodificao de
Viterbi, soft decision
4,5 dB

Com concatenao, RS(255,223) 2,5 dB
Galileo (1989, Jpiter) Convolucional (4,1,15), BVD 1,75 dB

Com concatenao, RS(255,223) 1 dB
Turbo-cdigos, descodificao iterativa 0,7 dB
Fonte: C. Schlegel, Trellis Coding, IEEE Press, 1997.
Cdigos para controlo de erros Cdigos cclicos 25
Anexo 3
Voyager: algumas especificaes e caractersticas
Emissores - 20 W
Frequncia "downlink" - Banda X (8,5 GHz)
Antenas - 3,66 m (48,2 dB de ganho)
Distncia a Neptuno =
9
4, 42 10 km
Taxa de transmisso = 21600 bit/s
Cdigo de canal no "downlink" - Cdigo convolucional, comprimento de restrio 7, taxa 1/2
(norma da NASA)
Probabilidade de erro requerida (para 5.10
3
E
b
N
0
= 2, 34 dB, the lowest anywhere
ever).
Tambm foi usado: Cdigo de Golay (24,12), como cdigo exterior concatenado, para
. P
e
=10
5
Aps encontro com Urano (1986) foi usado o cdigo concatenado:
- Exterior: Cdigo Reed-Solomon (255,223)
- Interior: Cdigo Convolucional 1/2, 7 (como em cima)
- Profundidade de entrelaamento: 4 (a deep-space first)
Na altura do lanamento (1977) no havia ainda descodificador RS. A nave transportou o
codificador mas o descodificador s foi construdo mais tarde, a tempo do encontro com Urano.
Conseguiu-se com este esquema concatenado melhorado:
6
10
e
P

= ,
com

0
2, 43
b
E
dB
N
=

Est a 4,02 dB do limite do Shannon (-1,59 dB), o que, no momento, era
the closest anywhere for this low error probability.

(In IEEE Communications Magazine, Setembro de 1990)
Cdigos para controlo de erros Cdigos cclicos 26
Anexo 4
Caractersticas dos cdigos mais conhecidos

Hamming
BCH
Comprimento do bloco: n = 2
m
1
Comprimento do bloco: m 3 n = 2
m
1
N de bits da mensagem:
k = 2
m
m1

N de bits da mensagem:
k n mt

N de bits de paridade: n k = m
Distncia mnima: d
min
2t +1
Distncia mnima: d
min
= 3
N de erros corrigveis: t <
2
m
1
2
N de erros corrigveis: t = 1 (cdigo perfeito)
CRC
Cdigos de comprimento mximo
(cdigos PN)
CRC-12 g (p) = p
12
+ p
11
+ p
3
+ p
2
+ p +1
k = 6
Comprimento do bloco: m 3 n = 2
m
1
CRC-16 g (p) = p
16
+ p
15
+ p
2
+1
N de bits da mensagem:
k = m

k = 8
Distncia mnima:
d
min
= 2
m 1
CRC-CCITT g(p) = p
16
+ p
12
+ p
5
+1
k = 8
g(p) =
p
n
+1
h( p)

Golay
h(p) polinmio primitivo de grau m
Comprimento do bloco: n = 23
Reed-Solomon
N de bits da mensagem: k = 12
N de bits de paridade: n - k = 11
Cdigo BCH no binrio
Distncia mnima: d
min
= 7
Comprimento do bloco: smbolos n = 2
m
1
N de erros corrigveis: t = 3 (cdigo perfeito) N de bits/smbolo: m
g
1
( p) = p
11
+ p
10
+ p
6
+ p
5
+ p
4
+ p
2
+1
N de smbolos da mensagem: k smbolos
N de smbolos de paridade: n k = 2t smbolos
ou
Distncia mnima: d
min
= 2t +1 = n k +1 smbolos
g
2
(p) = p
11
+ p
9
+ p
7
+ p
6
+ p
5
+ p +1
(maximum-distance separable code, ou MDS)
p
23
+1 = (1+ p) g
1
( p) g
2
( p)
N de smbolos corrigveis: t =
n k
2
smbolos
Golay aumentado
Comprimento do bloco: n = 24
N de bits da mensagem: k = 12
N de bits de paridade: n - k = 12
Distncia mnima:
d
min
= 8
N de erros corrigveis: t = 3
Cdigos para controlo de erros Cdigos cclicos 27
Anexo 5: Factorizao de p
n
+1
A Tabela seguinte apresenta os factores de , para n e n . p
n
+1 63 = 127
Notas:
Na Tabela s esto valores mpares de n porque em lgebra binria .
( )
2
2
1 1
m m
p p + = +
No h entradas para porque para estes valores a
factorizao de simplesmente
3, 5,11,13,19, 29, 37, 53, 59, 61 n =
1
n
p +
( )
1 2
1 ( 1) 1
n n n
p p p p p

+ = + + ++ +
Os factores so dados em octal, com o termo de maior grau esquerda ao converter em
binrio.
Exemplo: Qual a factorizao de ? Da Tabela vemos que p
9
+1

2
6 3
9
1
1
1
1 3.7.111 011 111 001 001 001
p
p p
p p
p
+
+ +
+ +
+


9 2 6
1 ( 1)( 1)( 1) p p p p p p + = + + + + +
3

n Factores de p
n
+ 1
7 3.13.15.
9 3.7.111.
15 3.7.23.31.37.
17 3.471.727.
21 3.7.13.15.127.165.
23 3.5343.6165.
25 3.37.4102041.
27 3.7.111.1001001.
31 3.45.51.57.67.73.75.
33 3.7.2251.3043.3777.
35 3.13.15.37.13627.16475.
39 3.7.13617.17075.17777.
41 3.5747175.6647133.
43 3.47771.52225.64213.
45 3.7.23.31.37.111.10011.11001.
47 3.43073357.75667061.
49 3.13.15.10000201.10040001.
51 3.7.433.471.637.661.727.763.
55 3.37.3777.5551347.7164555.
57 3.7.1341035.1735357.1777777.
63 3.7.13.15.103.111.127.133.141.147.155.163.165.
127 3.203.211.217.221.235.247.253.271.277.301.313.323.
325.345.357.361.367.375.

Adaptado de Digital Transmission Theory, S. Benedetto, E. Biglieri e V. Castellani, Prentice-Hall, 1987.
Cdigos para controlo de erros Cdigos cclicos 28
Anexo 6
Distribuio de pesos
Cdigo de Hamming (n,k) binrio
O nmero de palavras de cdigo de peso i o coeficiente de z
i
no polinmio enumerador de pesos
1 1
2 2
1
( ) (1 ) (1 ) (1 )
1
n n
n
A z z n z z
n
+
(
( = + + +
+
(


Cdigo de Hamming binrio aumentado
Acrescenta-se um bit de paridade a cada palavra de cdigo do cdigo de Hamming
normal d
min
= 4, n = 2
m
, m 2, k = n m + 1.
O polinmio enumerador de pesos
2
2
1
( ) (1 ) (1 ) 2( 1)(1 )
2
n
n n
A z z z n z
n
(
( = + + +
(


Cdigos de Golay
(23,12)
d
min
= 7
(24,12)
d
min
= 8
Peso N de palavras de cdigo
0 1 1
7 253 0
8 506 759
11 1288 0
12 1288 2576
15 506 0
16 253 759
23 1 0
24 0 1
Cdigo de Reed-Solomon
O nmero de palavras de cdigo de peso i dado por
( )
2 1
2
0
( 1) 1 1
i t
i t j
j
i
j
n i
A n
i j


=
| | | |
(
= +
| |

(

\ . \ .


Cdigos para controlo de erros Cdigos cclicos 29
Anexo 7 Frmulas
ARQ
Taxa de transferncia: R
c
=
k
nm

GBN:
1 1
2
1
1
R R
c
d
R R
R R
p p k k
R
t r
n p Np n
p p
k

=
+
+

SR: R
c
=
k
n
(1 p
R
) SW:
1 1
2
1 1
R R
c
d
w
p p k k
D t
n
T k

+ +
R
n
=

r
FEC
Relao entre a distncia mnima e o nmero de erros corrigveis por palavra de cdigo: d
min
2t +1
Relao entre a distncia mnima e o nmero de erros detectveis por palavra de cdigo: d
min
l +1
Limite de Singleton: d Limite de Plotkin:
min
n k +1
1
min
. 2 (2 1)
k k
d n
Limite de Hamming:
0
2
t
n k
i
n
i

=
| |

|
\ .

N de padres de erro detectveis num cdigo de blocos (n, k):


2
n
- 2
k

N de padres de erro corrigveis num cdigo de blocos (n, k): 2
n-k

Probabilidade de i erros numa palavra de n bits: ( , ) (1 ) 1
i n i i
n n
P i n p p p p
i i

| | | |
=
| |
\ . \ .
<<
Probabilidade de erro numa palavra de k bits no codificada: P
e
=1 P(0, k )
Majorante da probabilidade de erro numa palavra codificada: P
enc
P(i, n) =
n
i
|
\

|
.
|
i =t+1
n

p
i
(1 p)
ni
i=t +1
n

n

Probabilidade de erro numa palavra codificada: P
enc
=1
i
p
i
(1 p)
ni
i=0

Probabilidade de erro numa palavra codificada (cdigo perfeito): P


enc
= P(i, n) =
n
i
|
\

|
.
|
i=t +1
n

p
i
(1 p)
ni
i =t +1
n


Probabilidade de erro no detectado: P
end
= A
i
p
i
i =1
n

(1 p)
ni
Significado dos parmetros
m nmero mdio de palavras transmitidas por
palavra aceite, em ARQ.
A
i
distribuio de pesos

i
nmero de coset leaders de peso i.
D intervalo de tempo entre duas palavras
enviadas (round trip delay), em ARQ SW
k tamanho, em bits, da palavra de mensagem.
l nmero de erros detectveis por palavra de
cdigo.
N atraso em smbolos no mtodo Go-Back-N.
n tamanho, em bits, da palavra de cdigo.
p probabilidade de erro de transio num canal
binrio simtrico (BSC)
p
R
probabilidade de retransmisso de palavras
em ARQ
r taxa de transmisso da mensagem, em bits/s
t nmero de erros corrigveis por palavra.
t
d
tempo de propagao do emissor ao receptor,
em ARQ.
T
w
durao de cada palavra em ARQ SW
Cdigos para controlo de erros Cdigos cclicos 30

2
2
.
.
5
5
.
.
C
C

d
d
i
i
g
g
o
o
s
s
c
c
o
o
n
n
v
v
o
o
l
l
u
u
c
c
i
i
o
o
n
n
a
a
i
i
s
s

Mtodos de representao grfica e no grfica
Distncia livre e limite de Heller
Funo de transferncia
Codificadores catastrficos
Ganho de codificao
Cdigos perfurados
Mtodos de descodificao:
algoritmo de Viterbi (mxima verosimilhana)
descodificao sequencial
descodificao com feedback
Cdigos para controlo de erros Cdigos convolucionais 1
Cdigos convolucionais
O processamento no se faz em bloco com palavras de cdigo, como nos cdigos
algbricos (de blocos).
So cdigos em rvore, representveis por diagramas de estados.
Usam-se registos de deslocamento na codificao.
O "hardware" de codificao convolucional mais simples que o "hardware" de
codificao por blocos (por exemplo, no preciso "buffer" de entrada).
A estrutura convolucional adequada a comunicaes espaciais e por satlite:
requer codificadores simples (no "espao");
a elevada "performance" do cdigo obtm-se com mtodos de descodificao
sofisticados (em "Terra").
Um exemplo: o cdigo de Odenwalder (NASA)


Cdigos para controlo de erros Cdigos convolucionais 2
Codificadores convolucionais genricos
Diagrama de blocos genrico de um codificador convolucional (n, k) com comprimento de
restrio N e entrada em srie

1

2
1
2

k

1 2 k

Entrada

N
1 2 k

1
2
n

Sada


1

Esquema genrico de codificador convolucional com entradas em paralelo

C
o
n
v
e
r
s
o
r

S
/
P

C
o
n
v
e
r
s
o
r

P
/
S

Circuito
combinatrio
com registos
de
deslocamento
comprimento de
restrio N
1
2
k


1
2
n



Esquema genrico de codificador convolucional com filtros FIR

FIR
11

FIR
12

FIR
13

FIR
21

FIR
22

FIR
23




Cdigos para controlo de erros Cdigos convolucionais 3
Exemplos de codificadores
convolucionais (n, k, N)
Codificador convolucional (3,2) com comprimento de restrio 3

k = 2
n = 3
N = 3

Outro codificador sistemtico (3,2) com comprimento de restrio 3

k = 2
n = 3
N = 3

Taxa do cdigo:
c
R k n = .
Comprimento de restrio: .
1
max
i
i k
N N

=
Memria do codificador: (
1
(
k
i
i
N
=
=

1) ) ( 1 k N = se N
i
iguais)
Nmero de estados: 2

( 2 2 se N
( 1 k N
=
)
i
iguais)
Comprimento de restrio do cdigo: nmero de deslocamentos de um bit de entrada que
influenciam bits de sada.
Cdigos para controlo de erros Cdigos convolucionais 4
Exemplo de um codificador convolucional
(2, 1, 3)
Entrada Sada
m
j
m
j-1
m
j-2
y
j

y
j

Y


2 bits de sada
1bit de entrada em cada deslocamento
1 2 bits de estado
n
k
N
=

= =


Este codificador gera n = 2 bits,
j
y e
j
y , por cada bit de entrada:
1 2 j j j j j j j
y m m m y m m

= =
2


A sequncia binria de sada Y
1 1 2 2 3 3 4 4
... y y y y y y y y =
Memria do Codificador: 1 N = = 2
Existem 2
k(N-1)
= 4 estados diferentes: 00, 01, 10 e 11.
Sadas e Estados
Supondo que inicialmente o registo est limpo (m
o
m
-1
= 00):

1 1
1 1
0 0
1 1
entrada m sada y y
entrada m sada y y
= =

= =

1
1
0
1
Taxa do Cdigo: 1 2
c
R k n = =
Um bit de entrada influencia nN = 6 bits sucessivos de sada.
Normalmente n e k so pequenos e o comprimento de restrio toma valores
inferiores a 10.
Cdigos para controlo de erros Cdigos convolucionais 5
Codificadores convolucionais
Mtodos de representao grfica:

rvore do cdigo
Trelia ("trellis") do cdigo
Mtodos "condensados"
Diagrama de estados
(
(
(
(

Mtodos de representao no grfica:


vectores de ligao (ou vectores geradores)
polinmios de ligao (ou polinmios geradores)
matriz geradora
resposta impulsional
Mtodos de descodificao:

Mxima verosimilhana (Algoritmo de Viterbi)
Mtodos algortmicos ("software")
Descodificao sequencial (Wozencraft-Fano)
Descodificao com "feedback"
(
(
(
(

O algoritmo de Viterbi requer "hardware" complexo para clculo e armazenamento de


informao.
A descodificao sequencial de complexidade mdia. A "performance" prxima
do mtodo anterior em certos casos.
A descodificao com "feedback" o mtodo mais simples, mas de todos o menos
fivel.
Cdigos para controlo de erros Cdigos convolucionais 6
Exemplos de representaes no grficas

Entrada Sad
m
j
m
j-1
m
j-2
y
j


y
j

Y

g
11
(2)=1
g
11
(1)=1
g
11
(0)=1
g
12
(0) g
12
(2)
g
12
(1)=0
a

2
1
3
n
k
N
=

Vectores de ligao
Ligao superior: g
1
= 1 1 1
Ligao inferior: g
2
= 1 0 1
Resposta impulsional (resposta do codificador a um nico bit "1")
Contedo do Palavra
registo
j
y
j
y
1 0 0 1 1
0 1 0 1 0
0 0 1 1 1

Sequncia de entrada: 1 0 0
Sequncia de sada: 11 10 11 Resposta impulsional do codificador
Seja a sequncia de entrada m = 1 0 1. A sada pode ser determinada pela sobreposio
ou adio linear de "impulsos" de entrada deslocados no tempo (isto , a convoluo
da sequncia de entrada com a resposta impulsional).
Entrada Sada
1 11 10 11
0 00 00 00
1 11 10 11
Soma (md. 2)

11 10 00 10 11

Os cdigos convolucionais so lineares.
Cdigos para controlo de erros Cdigos convolucionais 7
Exemplos de representaes no grficas

Polinmios de ligao
O codificador pode ser representado por n polinmios geradores binrios de grau N-1 ou
menor.
No exemplo apresentado: g
1
(D) = 1 + D + D
2
(polinmio superior)
g
2
(D) = 1 + D
2
(polinmio inferior)
(o termo de ordem mais baixa corresponde ao andar de entrada)
D um operador de atraso unitrio.
A sequncia de sada, Y(D), vem dada por Y(D) = m(D)g
1
(D) entrelaado com m(D)g
2
(D).
Exemplo: Se a sequncia de entrada for m = 101 ento m(D) = 1 + D
2
:
( ) ( )
( ) ( )
2 2 3
1
2 2 4
2
(1 )(1 ) 1
(1 )(1 ) 1
m D g D D D D D D D
m D g D D D D
= + + + = + + +
= + + = +
4
4
4


( ) ( )
( ) ( )
2 3 4
1
2 3
2
1 0
1 0 0 0
m D g D D D D D
m D g D D D D D
= + + + +
= + + + +


( ) ( ) ( ) ( ) ( ) ( )
2 3
1,1 1, 0 0, 0 1, 0 1,1 Y D D D D D = + + + +


Y = 11 10 00 10 11
Cdigos para controlo de erros Cdigos convolucionais 8
Exemplo de funcionamento

Tempo Sada
Codificador
m = 101 Y
y
1
y
2
1
0 0
y
1
t
1
1
y
2
1
0
1 0
y
1
t
2
1
y
2
0
1
0 1
y
1
t
3
0
y
2
0
0
1 0
y
1
t
4
1
y
2
0
0
0 1
y
1
t
5
1
y
2
1
0
0 0
y
1
t
6
0
y
2
0

Sequncia de sada: Y = 11 10 00 10 11
Cdigos para controlo de erros Cdigos convolucionais 9
Codificadores convolucionais:
representaes no grficas
Os vectores ou os polinmios geradores do origem matriz geradora, de
dimenses k n:
11 12 1,
,1 ,2 ,
n
k k k
(
(
=
(
(

g g g
G
g g g

n

ou
11 12 1,
,1 ,2 ,
( ) ( ) ( )
( )
( ) ( ) ( )
n
k k k n
g D g D g D
D
g D g D g D
(
(
=
(
(

G

.



Resumo de representaes da matriz geradora
vectores binrios:
010 111 111
101 011 100
(
=
(

G
vectores em octal: G
2 7 7
5 3 4
(
=
(

polinmios binrios:
2 2
2 2
1 1
( )
1 1
D D D D D
D
D D D
(
+ + + +
= (
( + +

G


Cdigos para controlo de erros Cdigos convolucionais 10
Representaes grficas dos cdigos convolucionais:
a rvore
rvore do cdigo (2, 1, 3) apresentado antes:

m
j
= 0
00
a
a
a
a
00
00
00
11
11
11
10
01
b
c
c
d
b
c
d
d
d
10
11
00
11
01 01
10
10
01
b 11
00
a
c
00
11
10
01
10
01
11
00
01
10
b = 01
a = 00
c = 10
d = 11
Estados
m
j
= 1

H 2
j
ramos possveis para o j-simo bit de mensagem.
O padro de ramos comea a repetir-se em j=3 porque N = 3.
Como h repetio poderemos usar duas outras formas de representao: a
trelia e o diagrama de estados.
Cdigos para controlo de erros Cdigos convolucionais 11
Representaes grficas dos cdigos convolucionais:
a trelia e o diagrama de estados
Trelia

01
11
10
a = 00
b = 01
c = 10
d = 11
a = 00
b = 01
c = 10
d = 11
00
01
10
11
Estado
corrente
Estado
seguinte
Sada
00

Diagrama de estados
00
b
c
d a
01
01 11
11
10
10 00
0
1
Entrada

Cdigos para controlo de erros Cdigos convolucionais 12
Distncia livre de um cdigo
convolucional
Nos cdigos de blocos a capacidade de controlo de erros depende da distncia
mnima do cdigo, determinada a partir dos pesos das palavras de cdigo. Como num
cdigo convolucional os bits no so agrupados em palavras considera-se o peso w(Y)
de toda uma sequncia transmitida Y gerada por uma certa sequncia-mensagem. Por
definio temos ento:
Distncia livre de um cdigo convolucional:
( )
min
000...
f
d w Y Y (

=
Claro que d
f
no vai ser determinado consultando todas as mensagens possveis:
o que se faz considerar mensagens que terminem no mesmo estado inicial (00, no
exemplo seguido) e que tenham os pesos mais baixos (com poucos uns):
Consultando a trelia do cdigo (2, 1, 3) v-se que o estado a atingido se o
estado anterior for a ou b. Eis trs possibilidades (em cada ramo est indicado o
respectivo peso):

a
b
c
d
1
2
1
0
1
2 2
2
1
d
f
= 5 Peso = 6 Peso = 6

O percurso de menor peso que comea e termina em a aa ... acbaa d
f
= 5.:
Cdigos para controlo de erros Cdigos convolucionais 13
Funo de transferncia de cdigos
convolucionais
Uma forma de calcular analiticamente a distncia livre usar a chamada funo
de transferncia do cdigo convolucional. Esta funo fornece ainda outras
indicaes teis.
Tomemos como exemplo o cdigo (2, 1, 3) j apresentado. No seu diagrama de
estados vamos associar a cada ramo um rtulo D
i
, em que o expoente i representa a
distncia de Hamming da palavra desse ramo em relao ao ramo s com zeros.
Eliminemos a anel do n a porque, tendo peso nulo, em nada contribui para as
propriedades de distncia das palavras de cdigo em relao ao percurso s com
zeros. Alm disso, o n a pode ser dividido em dois: um, chamado a, que representa a
entrada do diagrama de estados e outro, chamado e, que representa a sada.
D
2
b c
d
a
D
2
D
D
0
= 1
D
D D
e
b
c
d a
1
e
11 01
11
01
00 10
00 10

A funo de transferncia do percurso acbe D
2
DD
2
= D
5
(o expoente de D
representa, portanto, o peso acumulado do percurso).
Cdigos para controlo de erros Cdigos convolucionais 14
Como calcular a funo de transferncia
Podemos definir equaes de estado e a partir delas calcular a funo de
transferncia do cdigo, T(D):
2
2
b c
c a
d c
e b
X DX DX
X D X X
X DX DX
X D X
= +

= +

= +

d
b
d



5
5 6 7 5
( ) 2 4 2
1 2
f
i i
e
a
d
d
d d
X D
T D D D D D
X D
A D
+

=
= = = + + + + + =

=



h um percurso de peso 5
h 2 percursos de peso 6
h 2
i
percursos de
peso i + 5
Funo de transferncia do codificador
d
f
= 5

Atendeu-se a que, atravs do binmio de Newton,
2 3
1
1
1
x x x
x
= + +
+

A distncia livre deste cdigo 5 porque o percursos de a a e com menor peso tem
peso 5.
A funo de transferncia tambm pode ser calculada recorrendo regra de
Mason (ver Anexo 1). Os interessados podero consultar o livro de Lin & Costello
referido na bibliografia.
Cdigos para controlo de erros Cdigos convolucionais 15
Funo de transferncia
Vamos fazer mais algumas modificaes no diagrama de estados:
1 - Introduzir um factor L em cada ramo de maneira que o expoente de L sirva de "contador"
para indicar o nmero de ramos de um dado percurso desde a a e.
2 - Introduzir um factor W em todos os ramos que resultem de uma transio de estado devido a
um bit de entrada "1" (ramo tracejado
_ _ _
)

D
2
LW
b c
d
a
D
2
L
DLW
LW
DL
DLW DL
e

Assim, temos:
2
2
a
d
b c d
c b
c d
e b
X DLX DLX
X D LWX LWX
X DLWX DLWX
X D LX
= +

= +

= +


Cdigos para controlo de erros Cdigos convolucionais 16

Significa que h um nico percurso de
peso 5, o qual tem comprimento 3 e foi
originado por uma sequncia de
entrada com apenas um bit 1.
6 4 2 6 5 2
5 3
5 3 6 4 2 7 5 2 3 5 3 1
( , , )
1 (1 )
(1 ) (1 ) (1 )
l l l l
D L W D LW
D L W
T D L W
DL L W
D L W D L L W D L L W D L L W
+ + +
+
= =
+
= + + + + + + + +
_
H dois percursos de peso 6, um com
comprimento 4 e outro com comprimento 5.
As sequncias de entrada que lhes deram
origem tm ambas peso 2.

Codificadores convolucionais ptimos
com comprimento de restrio pequeno
(taxas 1/2 e 1/3)
Codificadores de taxa e mxima distncia livre
Comprimento de
restrio, N
Polinmios
geradores
d
f

max
f
d
2 1 3 3 4
3 5 7 5 5
4 15 17 6 6
5 23 35 7 8
6 53 75 8 9
7 133 171 10 10
8 247 371 10 11
9 561 753 12 12
10 1131 1537 12 13

Codificadores de taxa 1/3 e mxima distncia livre
Comprimento
de restrio, N
Polinmios geradores d
f

max
f
d
2 1 3 3 5 6
3 5 7 7 8 8
4 13 15 17 10 10
5 25 33 37 12 12
6 47 53 75 13 13
7 117 127 155 15 15
8 225 331 367 16 17
9 575 623 727 18 18
10 1167 1375 1545 20 20


Limite, ou majorante, de Heller:
1
1
2
min ( 1)
2 1
l
f
l
l
d l N

n
(
+
(

(


Cdigos para controlo de erros Cdigos convolucionais 17
Distncias livres dos melhores
codificadores convolucionais
Distncias livres dos melhores codificadores
Memria, Taxas
1/5 1/4 1/3 1/2 2/3 3/4
1 6 5 3
2 13 10 8 5 3 3
3 16 15 10 6 4 4
4 20 16 12 7 5 4
5 22 18 13 8 6 5
6 25 20 15 10 7 6
7 28 22 16 10 8 6
8 24 18 12 8 7
9 27 20 12 9 8
10 29 22 14 10
Evoluo da distncia livre em funo da taxa de cdigo
e da memria de alguns codificadores representativos
(taxas 1/4, 1/3, 1/2, 2/3 e 3/4).

2
3
4
5
6
7
8
9
0
5
10
15
20
25
30
d
f

Taxa
Memria
1/4
1/2
3/4


Cdigos para controlo de erros Cdigos convolucionais 18
Codificadores recursivos sistemticos
Codificadores sistemticos tm menores distncias livres que codificadores no
sistemticos (para os mesmos parmetros)
a no ser que sejam recursivos (RSC)!!
Como determinar o codificador sistemtico recursivo equivalente a um
codificador no sistemtico e no recursivo? Vejamos com um exemplo:

Entrada Sada

[ ]
2 2
11 12
( ) ( ) ( ) 1 1 D g D g D D D D
(
= = + + +

G

[ ]
2
12 11
2
1
( ) 1 ( ) ( ) 1
1
D
D g D g D
D D
(
+
= =
(
+ +
(

G




Ambos os codificadores tm a mesma distncia livre, d
f
= 5.
Nota: codificador equivalente = codificador que gera o mesmo cdigo
Cdigos para controlo de erros Cdigos convolucionais 19
Codificadores recursivos sistemticos
Outro exemplo (taxa 1/3, N = 4)
Um codificador convolucional caracterizado pela seguinte matriz geradora:
2 3 3 2 3
( ) 1 1 1 G D D D D D D D D
(
= + + + + + + +


Qual o codificador RSC equivalente?
3 2
2 3 2 3
1 1
( ) 1
1 1
D D D D D
G D
D D D D
(
+ + + + +
=
(
+ + + +
(

3




Ambos os codificadores geram o mesmo cdigo tm a mesma distncia livre.
Cdigos para controlo de erros Cdigos convolucionais 20
Codificadores catastrficos
Exemplo de codificador convolucional catastrfico:

00
b
c
d a
10
01
00
01
10
11 11

Se mensagem: 11111 Sequncia transmitida: 011000000.
Percurso correspondente:

01
10
00 00 00 00

Mas se for:
Mensagem: 0 0 0 0
Sequncia transmitida: 00 00 00
Sequncia recebida: 01 10 00 O percurso o mesmo!!
A mensagem descodificada 111, bem diferente da original! Dois erros no
canal provocaram um nmero incontvel de erros de descodificao!!
uma situao catastrfica! A evitar absolutamente!
Cdigos para controlo de erros Cdigos convolucionais 21
Codificadores catastrficos: como
evit-los?
Condio necessria e suficiente:
Para que um codificador de taxa 1/n no seja catastrfico necessrio e
suficiente que o mximo divisor comum dos polinmios geradores seja igual a D
m
,
para um certo m inteiro no-negativo:
[ ]
11 12 1
. . . ( ), ( ), , ( ) , 0
m
n
md c g D g D g D D m =
Os polinmios geradores no devero, portanto, ter factores comuns que no
sejam D
m
. Como m pode ser nulo, basta que os polinmios sejam primos entre si,
[ ]
11 12 1
. . . ( ), ( ), , ( ) 1
n
md c g D g D g D = ,
ou seja, no tenham nenhuns factores comuns para que o codificador 1/n no seja
catastrfico.
Estas condies reflectem-se no diagrama de estados: este no deve conter um
anel de peso zero em estado no-nulo nem conter um percurso de peso zero
saindo de um estado e regressando ao mesmo.
P.: Porque que o codificador anterior catastrfico?
R.: Por causa do factor comum, 1 , que existe nos polinmios geradores
e ou, se quisermos, por causa do anel de peso zero
que existe no estado d do diagrama de estados (anel este obrigatoriamente gerado
por um bit de entrada 1).
D +
2
11
( ) g D D D = +
12
( ) 1 g D D = +
Cdigos para controlo de erros Cdigos convolucionais 22
Ganho de codificao
Para obtermos uma determinada BER num sistema de comunicaes sem
codificao necessitamos de uma determinada relao E
b
/N
o
. Com codificao
adequada necessitaremos de uma menor relao E
b
/N
o
. A diferena, em dB, entre
esses dois valores representa o ganho de codificao do cdigo. O ganho de
codificao mximo (ganho de codificao assimpttico) atinge-se quando a relao
E
b
/N
0
muito elevada.
Decises rgidas: Ganho de codificao 10 og
2
c f
l
R d

Decises brandas no-quantizadas: Ganho de codificao 10log( )
c f
R d
Ganho de codificao assimpttico, G
a
, com decises rgidas
Taxa 1/2 Taxa 1/3
Comprimento
de restrio, N
Distncia
livre
Ganho de
codificao
mximo (dB)
Distncia
livre
Ganho de
codificao
mximo (dB)
3 5 0,97 8 1,25
4 6 1,76 10 2,22
5 7 2,43 12 3,01
6 8 3,01 13 3,36
7 10 3,98 15 3,98
8 10 3,98 16 4,26
9 12 4,77 18 4,77
10 12 4,77 20 5,23
Com decises brandas o ganho de codificao cerca de 3 dB mais elevado.

Cdigos para controlo de erros Cdigos convolucionais 23
Cdigos perfurados
Imaginemos que temos um cdigo de taxa 1/2 e que, em cada dois pares de bits
de sada, eliminamos (isto , no transmitimos) o ltimo bit. Deste modo dois bits de
entrada vo dar origem no a quatro bits de sada, como seria normal, mas apenas a
trs tendo o cdigo resultante cdigo perfurado uma taxa de 2/3.
Os cdigos perfurados so muito usados dada a sua flexibilidade pois:
torna-se possvel no s obter cdigos com diversas taxas de cdigo a partir de um
nico codificador-pai mas tambm fazer a descodificao de todos eles com o
mesmo descodificador;
a descodificao torna-se mais simples relativamente aos cdigos no-perfurados
com a mesma taxa.
possvel alterar a taxa do cdigo durante a transmisso conforme as
caractersticas do canal: enquanto houver pouco rudo usa-se uma taxa elevada
(5/6, por exemplo) mas se o canal se tornar mais ruidoso muda-se para uma taxa
mais baixa (2/3 ou , por exemplo), pois tem uma distncia livre maior.
Em qualquer dessas situaes o descodificador sempre o mesmo, o que uma
vantagem.
Em contrapartida as propriedades de distncia so piores e h necessidade de
sincronismo de trama, pois passa a ser preciso saber onde comea e acaba cada
grupo de bits de sada onde se vai fazer a perfurao.
Cdigos para controlo de erros Cdigos convolucionais 24
Cdigos perfurados
Exemplo com os cdigos perfurados das normas DVB-S e DVB-T
Cdigo-pai: taxa , comprimento de restrio 7, polinmios geradores 171 e 133.

Taxas
do
cdigo
Padro de
perfurao
Sequncia transmitida
(aps converso
paralelo-srie)
Distncia
livre
1/2 y :1
y :1

1 1
y y
(1-2)
10
2/3 y :10
y :11

1 1 2
y y y
(1-2-X-4)
6
3/4 y :101
y :110

1 1 2 3
y y y y
(1-2-X-4-5-X)
5
5/6 y :10101
y :11010

1 1 2 3 4 5
y y y y y y
(1-2-X-4-5-X-X-8-9-X)
4
7/8 y :1000101
y :1111010

1 1 2 3 4 5 6 7
y y y y y y y y
(1-2-X-4-X-6-X-8-9-X-X-12-13-X
3

Se a sequncia de sada do cdigo de taxa for 111011001001 a sequncia de
sada do cdigo perfurado de taxa ser 11010000:
Sada do codificador de taxa : 11 10 11 00 10 01
Puno ou perfurao: 11 X0 1X 00 X0 0X
Sada do codificador de taxa : 1 1 0 1 0 0 0 0
Cdigos para controlo de erros Cdigos convolucionais 25
Cdigos perfurados
fcil de obter a trelia de um cdigo perfurado. Para isso basta dispor da
trelia do cdigo-pai e atender ao padro de perfurao, como se mostra no exemplo
seguinte:
P.: Partindo do cdigo de taxa gerado por
[ ]
111 101 = G qual a trelia do
cdigo perfurado de taxa 2/3 no qual o terceiro bit em quatro puncionado?
R.: Comea-se pela trelia do cdigo-pai, esquerda na figura seguinte, e atende-se
ao padro de perfurao:

01
11
10
00
01
10
11
00 000
01
11
10
00
01
10
11
00
100
110
110
111
001
000
111
001
101
011
100
010
011
101
010
Cdigo-pai Cdigo perfurado

P.: Como fazer a descodificao de uma sequncia perfurada?
R.: Reinserem-se bits fictcios na sequncia recebida nas posies de onde foram
retirados. Exemplo:
Padro de perfurao: 1101 (o 3 bit em quatro perfurado)
Sequncia perfurada: 110110110100
Converso: 11X0 11X0 11X0 10X0
Depois calculam-se as mtricas do modo habitual, sendo as mtricas relativas
aos bits perfurados sempre nulas.
Cdigos para controlo de erros Cdigos convolucionais 26
Distncias euclidianas e distncias de
Hamming
Desmodulao branda: o descodificador recebe valores reais.
Desmodulao rgida: o descodificador recebe valores binrios.
Seja desmodulao branda, recebendo-se a sequncia de reais z
l

{0,6 0,4 0,1 0,2 0,2 0,3 0,2 0,3}.
Qual a sua distncia euclidiana quadrtica ao percurso da figura seguinte?

11
01
01
11

Os bits 0 e 1 da figura devero ser convertidos em y
l
= 1 (fazendo 0 -1 e 1 +1). Assim, o
primeiro ramo, 11, corresponde ao ponto de coordenadas (+1, +1); o segundo ramo corresponde
ao ponto de coordenadas (-1, +1)
A distncia euclidiana de cada ramo : (se n = 2:
( ) 2
1
(
n
i
lj lj
j
z y
=

)
2 2
( ) ( )
1 2 1 2
i i
l l l l
z y z y
( (
+

)
Exemplo de distncia euclidiana: do par (0,1; 0,2) ao ponto (-1, +1) (segundo ramo)

(

2 2
0,1 1) (0, 2 1) 1, 45 + + =
Mtrica acumulada: 2,12 + 1,45 + 1,93 + 3,13 = 8,63

2,12
1,45
1,93
3,13
0,6 -0,4 -0,1 0,2 0,2
0,3
-0,2 -0,3
8,63

Cdigos para controlo de erros Cdigos convolucionais 27
Descodificador de mxima
verosimilhana
(algoritmo de Viterbi)
1. Suponhamos que recebemos a sequncia Z = Y + E. Na trelia ou na rvore o percurso de Z
diverge do percurso de Y pode ou no ser um percurso vlido.
2. Se no for um percurso vlido um descodificador de mxima verosimilhana tenta encontrar
o percurso vlido que tenha a menor distncia de Hamming de Z.
3. Mas h 2
n
percursos possveis para uma sequncia-mensagem arbitrria de n bits!
4. o algoritmo de Viterbi limita-se a comparao a 2
k(N-1)
percursos sobreviventes (que um
nmero independente do tamanho da mensagem, n).
Isto torna vivel a descodificao de mxima verosimilhana, baseada em
mtricas e percursos sobreviventes:

O algoritmo de Viterbi atribui uma mtrica a cada ramo de cada percurso sobrevivente:
A mtrica igual distncia de Hamming do ramo correspondente de Z se se tratar
de desmodulao rgida (supe-se
0 1
1 2 P P = = );
A mtrica igual distncia euclidiana, se se tratar de desmodulao branda.
A mtrica de um percurso igual soma das mtricas dos ramos constituintes.
O descodificador deve calcular 2 mtricas por cada n e armazenar 2
k(N-1)
percursos
sobreviventes, cada um com n ramos.
Sempre que dois percursos convergem num n, sobrevive aquele que tiver menor mtrica.
Em caso de empate escolhe-se um sorte.
Z descodificado (estimado) como o percurso sobrevivente com menor mtrica.
Cdigos para controlo de erros Cdigos convolucionais 28
O algoritmo de Viterbi
Mensagem: 1 0 1 1 1 0 11 0 0
Sequncia codificada: 11 10 00 01 10 01 00 01 01 11
Sequncia recebida: 11 00 00 00 10 01 00 01 01 11
a = 00
b = 01
c = 10
d = 11
0
2
0
2
0 2
1
1
a) b)
mtrica
acumulada
2
1
4
1
00 Sequncia recebida
l = 0 1
11
0 1
11
2


1
0
2
2
0
1
1
1
mtrica
acumulada
2
3
2
2
1
2
d) Os sobreviventes em l = 3 c)
00 sequncia recebida
5
2
4
1
5
2
00
0 1
11
2 3
00 00
0 1
11
2 3


e) f) Os sobreviventes em l = 4
2
2
1
2
0
2
2
0
1
1
1
1
2
4
2
3
4
2
2
3
2
2
2
2
00 00 00
0 1
11
2 3 4
00 00 00
0 1
11
2 3 4

Cdigos para controlo de erros Cdigos convolucionais 29
O algoritmo de Viterbi (cont.)
l = 0 1
11
2
3
3
00 00 00
3
10 01
2 3 4 5 6
11
4
4
2
00 00 00
4
10 01 00 01
g) Os sobreviventes em l = 6
h) Os sobreviventes em l = 8
0 1 2 3 4 5 6 7 8

O percurso de mxima verosimilhana (percurso ML)
11 00 00 00 10 01 00 01
l = 0 1 2 3 4 5 6 7 8 9 10
01 11
5
4
5
2
Sequncia
recebida
Percurso ML

Mensagem enviada: 1 0 1 1 1 0 11 0 0
Sequncia estimada: 1110000110010001 0111
Mensagem estimada: 1 0 1 1 1 0 1 1 0 0
Portou-se bem, o algoritmo: corrigiu os dois erros que sabamos existirem na
sequncia recebida
Cdigos para controlo de erros Cdigos convolucionais 30
Outro exemplo de descodificao (Viterbi)

0
2
t
1
a=00
b=01
t
2
Mtrica do percurso

a
=2

b
=0
(a)
0
2
t
1
a=00
b=01
t
2
Mtrica do percurso

a
=3

b
=3

c
=2

d
=0
c=10
d=11
(b)
1
t
3
1
2
0

0
2
t 1
a=00
b=01
t 2
c=10
(c)
1
t 3
1
2
0
t 4
1
0
2
0
1 1
1
2
0
t1 t2
(d)
t3
2
0
t4
0
2
1
1
Mtrica do percurso

a
=3

b
=3

c
=0

d
=2 d=11
a=00
b=01
c=10
d=11

0
t 1
a=00
b=01
t 2
c=10
d=11
(e)
t 3
1
0
2
t 4
1
0
1
1
1
0
2
t 5
0
1
1
2
0
t1
a=00
b=01
t2
c=10
d=11
(f)
t3
1
0
2
t4
0
1
0
t5
0
1
2
Mtrica do percurso

a
=1

b
=1

c
=3

d
=2

0
t
1
a=00
b=01
t
2
c=10
d=11
(h)
t
3
0
t
4
0
1
t
5
2
t
6
1
1
0 0
0
Mtrica do percurso

a
=2

b
=2

c
=2

d
=1
1
0
t
1
a=00
b=01
t
2
c=10
d=11
(g)
t
3
1
0
t
4
0
1
0
t
5
1
2
2
t
6
1
1
1
1
2
0
0
2
0

Seleco de percursos sobreviventes. (a) Sobreviventes em t
2
. (b) Sobreviventes em t
3.
(c)
Comparaes de mtricas em t
4
. (d) Sobreviventes em t
4.
(e) Comparaes de mtricas em t
5
. (f)
Sobreviventes em t
5
. (g) Comparaes de mtricas em t
6
. (h) Sobreviventes em t
6
.
Cdigos para controlo de erros Cdigos convolucionais 31
Exemplo de descodificao com decises
brandas
Codificador (2, 1, 3) habitual
Mensagem: 10100
Sequncia codificada: 11 10 00 10 11
Sequncia recebida: {-0,6; 0,8; 0,3; -0,6; 0,1; 0,1; 0,7; 0,1; 0,6; 0,40}
O percurso ML aquele cuja distncia euclidiana quadrtica sequncia
recebida a menor.
Exemplo de distncia euclidiana quadrtica:
1 ramo:
2 2
(1 0, 6) (1 0,8) 2, 6 + + =
O percurso ML tem uma mtrica total de 7,5:

7,5
7,9
9,5
8,7
2,6
0,65
2,42
1,3
0,52
1,62
4,1
0,52
0,9
2,12
2,92
1 0 1 0 0

Cdigos para controlo de erros Cdigos convolucionais 32
Descodificao sequencial
Mesmo cdigo, mesma sequncia recebida, mesma trelia de cdigo e mesmas mtricas:
Procedimento:
Em cada n toma-se a direco do ramo com menor mtrica. Em caso de igualdade escolhe-se
um ramo sorte. Se neste caso a mtrica aumentar muito ento preciso voltar atrs ao n em
questo e optar por outro ramo.

a
0

b
1

c
2

d
2

0
Percurso
sobrevivente


C
0
1
1
1
2
2
2
3
3
1
1
2
2
2
2
2
3
3
2
4

Ramos abandonados no exemplo acima: A, B e C.
Qual o critrio para "voltar atrs e tentar de novo"? o valor esperado da
mtrica corrente em cada n.
Se p for a probabilidade de erro de transmisso/bit a mtrica corrente
esperada no n j do percurso correcto jnp (nmero esperado de erros acumulados
nos bits de Z, nesse n).
O descodificador sequencial abandona um percurso se a mtrica corrente
ultrapassar um limiar acima de jnp.

B
A
C
Sobrevivente
jnp+
j
M

t
r
i
c
a

c
o
r
r
e
n
t
e

jnp
0 1 2 3 4 5 6 7 8 9 10 11 12

1
2
3
4

1
16
2
p =
=

Cdigos para controlo de erros Cdigos convolucionais 33
Exemplo de descodificao sequencial
Mensagem: 1 1 0 1 1
Sequncia transmitida: 11 01 01 00 01
Mensagem estimada: 11 00 01 10 01

00
11
01
a
d
10
b
c
a
00
00
00
00
11
00
01
10
00
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
11
11
10
01
10
01
00
11
01
10
11
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
c
a
d
c
b
c
a
d
b
a
d
b
c
a
a
c
b
d
a
c
b
d
d
b
c
a
0
1
Ramo de palavra
de cdigo
3
3
2
3
3
2
2
2
2
3
1
2
1
1
2
3
2
3
2
2
1
2
1
1
0
0

Mensagem descodificada: 1 1 0 1 1
Cdigos para controlo de erros Cdigos convolucionais 34
Exemplo de descodificao com "feedback"
O descodificador calcula 2
L
mtricas de percursos e decide que o bit do primeiro ramo 0 se o
percurso de distncia mnima estiver situado na parte superior da rvore e 1 se esse percurso
estiver na parte inferior.


Passo 1
Passo 2
00
11
01
a
d
10
b
c
a
00
00
00
00
11
00
01
10
00
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
11
11
10
01
10
01
00
11
01
10
11
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
c
a
d
c
b
c
a
d
b
a
d
b
c
a
a
c
b
d
a
c
b
d
d
b
c
a
0
1
Ramo de
palavra de
cdigo
A
B
(1)
(2)
(2)
(2)
(1)
(1)
(1)
(1)
(1)
(0)
(2)
(0)
(0)
(0)
t
1
t
2
t
3
t
4
t
5
11 00 01 01 00
Sequncia
Recebida

"look-ahead windows"
A
B

`
)

"Look-ahead length" (L) = 3
( ) - mtrica do ramo

Mtrica da janela A 3 3 6 4
(de cima para baixo) 2 2 1 3

`
)


O percurso mnimo (de mtrica 1) est na
parte inferior da rvore Decidimos pelo
bit "1" e passamos janela B.
Cdigos para controlo de erros Cdigos convolucionais 35
Anexo 1
Regra de Mason para simplificao de grficos de fluxo
A simplificao de grficos de fluxo pode fazer-se aplicando a regra de Mason,
resumida nas equivalncias seguintes:

Paralelo
Srie
B A
1 2
k k +
B A
1
k
2
k
B A
1 2
k k
B A
1
k
2
k
B A
1 2
3
1
k k
k

3
k
1
k
2
k
B A
B A
1
k
2
k
3
k
4
k
1
k
2
k
3
k
2 4
k k
B A
1 2 3
2 4
1
k k k
k k
B A
Anel
Feedback

Estas regras permitem calcular com facilidade a funo de transferncia e a
distncia livre de cdigos convolucionais. Experimente!


Cdigos para controlo de erros Cdigos convolucionais 36

2
2
.
.
6
6
.
.
C
C

d
d
i
i
g
g
o
o
s
s
c
c
o
o
n
n
c
c
a
a
t
t
e
e
n
n
a
a
d
d
o
o
s
s
e
e

e
e
n
n
t
t
r
r
e
e
l
l
a
a

a
a
d
d
o
o
s
s

Cdigos concatenados
Entrelaamento
entrelaadores de blocos
entrelaadores convolucionais
Exemplos de cdigos concatenados e entrelaados

Entrelaamento
A maior parte dos cdigos de blocos e cdigos convolucionais so projectados
para combater erros aleatrios, independentes uns dos outros.
H casos em que os erros ocorrem em rajadas, situao em que os cdigos
anteriores so ineficazes.
preciso usar uma tcnica adicional para o combate desses erros:
o entrelaamento (interleaving).
O entrelaamento da mensagem codificada antes da transmisso e o
desentrelaamento aps recepo fazem com que os erros agrupados fiquem
espalhados no tempo sero tratados pelo descodificador como se fossem erros
aleatrios j podemos usar os cdigos correctores de erros aleatrios.
O entrelaador "mistura" os smbolos de cdigo numa extenso de vrias
palavras de cdigo (nos cdigos de blocos) ou numa extenso de vrios
comprimentos de restrio (nos cdigos convolucionais).
H dois tipos de entrelaadores:
entrelaadores de blocos
entrelaadores convolucionais.
Cdigos para controlo de erros Cdigos concatenados e entrelaados 2
Entrelaamento

A
1
A
3
A
2
A
4
A
5
A
6
B
1
B
2
B
3
B
4
B
5
B
6
C
1
C
2
C
3
C
4
C
5
C
6
D
1
D
2
D
3
D
4
D
5
D
6
E
1
E
2
E
3
E
4
E
5
E
6
F
1

A
1
B
1
C
1
D
1
E
1
F
1
A
2
B
2
C
2
D
2
E
2
F
2
A
3
B
3
C
3
D
3
E
3
F
3
A
4
B
4
C
4
D
4
E
4
F
4
A
5
B
5
C
5
D
5
E
5
F
5
A
6
Rajada de erros
A
1
A
3
A
2
A
4
A
5
A
6
B
1
B
2
B
3
B
4
B
5
B
6
C
1
C
2
C
3
C
4
C
5
C
6
D
1
D
2
D
3
D
4
D
5
D
6
E
1
E
2
E
3
E
4
E
5
E
6
F
1

Antes do entrelaamento
Aps entrelaamento
Aps desentrelaamento
Os erros passaram a ocorrer isoladamente

Cdigos para controlo de erros Cdigos concatenados e entrelaados 3
Entrelaadores de blocos

Um entrelaador de blocos aceita blocos de smbolos codificados do
codificador, permuta-os e entrega-os, rearranjados, ao modulador.

Habitualmente a permutao faz-se da seguinte maneira:
Emissor
1. Enchem-se as colunas de uma matriz de M linhas por N colunas (MN) com a
sequncia codificada.
2. Depois da matriz estar completamente cheia os smbolos so entregues ao
modulador linha a linha e transmitidos pelo canal.
Receptor
3. O desentrelaador realiza a operao inversa: os smbolos vindos do
desmodulador enchem uma matriz linha a linha e so entregues ao descodificador
coluna a coluna.
Cdigos para controlo de erros Cdigos concatenados e entrelaados 4
Exemplo de entrelaamento de blocos
1 5 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
(d)
1 5 9 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
(c)
1 5 9 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
(b)
(a)
M = 4
linhas
N = 6 colunas
sequncia de sada do entrelaador: 1, 5, 9, 13, 17, 21, 2, 6, ...
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
1 5 9 13 17 21
Entrelaador
de blocos
MN
Situao 1:
Rajada de erros
com cinco
smbolos
Situao 3:
Sequncia de erros
peridicos espaados
de N = 6 smbolos
9
Situao 2:
Rajada de erros
com nove
smbolos

Cdigos para controlo de erros Cdigos concatenados e entrelaados 5
Caractersticas importantes
dos entrelaadores de blocos
Qualquer rajada de menos de N erros contguos no canal d origem a erros
isolados sada do desentrelaador, separados uns dos outros por, pelo menos, M
smbolos.
Qualquer rajada de bN erros, em que b > 1, d origem a rajadas de sada no
desentrelaador de no mais de erros. Cada rajada de sada est separada das
outras rajadas por no menos de
b


M b smbolos.


x

maior inteiro igual ou inferior a x.
x

menor inteiro igual ou superior a x.
Uma sequncia peridica de erros simples espaados de N smbolos resulta numa
nica rajada de erros de comprimento M na sada do desentrelaador.
O atraso total introduzido pelo conjunto entrelaador/desentrelaador
aproximadamente igual durao de 2MN smbolos.
Mais precisamente, apenas M(N - 1) + 1 posies de memria precisam de ser preenchidas
antes da transmisso poder comear (logo que o primeiro elemento da ltima coluna da matriz
MN esteja preenchido). Um nmero correspondente precisa de ser preenchido no receptor
antes da descodificao poder comear. Assim, o atraso total mnimo (2MN - 2M + 2)
duraes de smbolos, no incluindo qualquer atraso de propagao no canal.
Os requisitos de memria so de MN smbolos em cada local (entrelaador e
desentrelaador). Contudo, visto ser preciso que a matriz MN esteja (quase)
preenchida antes de poder ser lida, normalmente usa-se uma memria de 2MN
smbolos em cada local para permitir o esvaziamento de uma matriz MN
enquanto a outra est a ser preenchida, e vice-versa.
Cdigos para controlo de erros Cdigos concatenados e entrelaados 6
Exemplo de desentrelaamento de blocos
Entrelaador de blocos do exemplo: M = 4 e N = 6.
Vamos verificar o que se passa aps desentrelaamento:
Situao 1: rajada de erro com 5 smbolos
bN = 5 b = 0,83 erros isolados ( ) separados de M = 4 pelo menos: 0, 83 1 =

1 5 9
13 17 21
2 6 10
14 18 22
3 7 11
15 19 23
4 8
16 20 24
12

Situao 2: rajada de erro com 9 smbolos
bN = 9 b = 1,5 rajadas de sada de, no mximo, smbolos
separadas de no menos de smbolos.
1, 5 2 =

1, 5 4 1 3 M = =

11 1 5 9
13 17 21
2 6 10
14 18 22
3 7 4 8
16 20 24
12
23 19 15

Situao 3: sequncia peridica de erros isolados espaados de N = 6 smbolos
Origina uma nica rajada de M = 4 erros na sada do desentrelaador.
1 5
13 17 21
2 6
14 18 22
3 7
15 19 23
4 8
16 20 24
9 10 11 12

Atraso total mnimo entrelaador-desentrelaador
2MN - 2M + 2 = 42 intervalos de smbolo.
Requisitos de memria
Tamanho das matrizes: M N preciso guardar MN = 24 smbolos em cada
um dos lados do canal. Normalmente guarda-se o dobro: 2MN = 48 smbolos.
Cdigos para controlo de erros Cdigos concatenados e entrelaados 7
Entrelaadores de blocos
Com cdigos correctores de erros simples o nmero de colunas N deve ultrapassar
o comprimento esperado da rajada de erros, d
b
.
Com cdigos correctores de t erros o valor N apenas precisa de ultrapassar o
comprimento esperado da rajada dividido por t.
O nmero de linhas M depende do cdigo usado:
M deve ser maior ou igual que o comprimento do bloco (cdigos de blocos).
M deve ser maior ou igual que o comprimento de restrio (cdigos
convolucionais).
b
d
N
t

M n
Portanto:
uma rajada de erros de comprimento N pode causar, no mximo, um erro
simples em qualquer palavra de um cdigo de blocos ou em qualquer
comprimento de restrio de um cdigo convolucional.
Cdigos para controlo de erros Cdigos concatenados e entrelaados 8
Entrelaadores convolucionais
Nos entrelaadores convolucionais os smbolos do cdigo so deslocados
sequencialmente para dentro de um banco de N registos de deslocamento (ver figura).
Cada registo de deslocamento sucessivo tem mais J smbolos de capacidade que o
precedente.
O registo de deslocamento de ordem zero no tem capacidade de armazenamento
(o smbolo transmitido imediatamente).
Com cada novo smbolo o comutador muda para outro registo.
Aps o registo de ordem N - 1 o comutador regressa ao registo de ordem zero e
tudo comea de novo.
O desentrelaador realiza a operao inversa e os comutadores de entrada e sada
(no entrelaador e no desentrelaador) devem estar sincronizados.
O desempenho de um entrelaador convolucional muito semelhante ao de um
entrelaador de blocos mas tem uma vantagem importante:
atraso total (entrelaador/desentrelaador):
M(N - 1) smbolos, em que M = N J.
memria requerida:
M(N - 1)/2 em ambos os extremos do canal.
h uma reduo para cerca de metade no atraso e nas exigncias de
memria relativamente aos entrelaadores de blocos.
Cdigos para controlo de erros Cdigos concatenados e entrelaados 9
Entrelaamento convolucional

Exemplo com J = 1:

Cdigos para controlo de erros Cdigos concatenados e entrelaados 10
Cdigos concatenados
Um cdigo concatenado usa dois nveis de codificao, um cdigo interior (ou
interno) e um cdigo exterior (ou externo), para atingir o nvel de "performance"
desejado.
o cdigo interior ("inner code"), aquele que faz interface com o
modulador/desmodulador e o canal, geralmente configurado para corrigir a
maior parte dos erros do canal.
o cdigo exterior ("outer code") geralmente um cdigo com uma taxa maior (
menor redundncia) e reduz a probabilidade de erro at ao nvel especificado.
A razo principal para se usar um cdigo concatenado atingir uma baixa taxa
de erros com uma complexidade de implementao global menor que a que seria
requerida por uma nica operao de codificao.
Normalmente os codificadores concatenados esto associados a entrelaadores,
como na figura seguinte, para que haja espalhamento de eventuais erros agrupados
que surjam na sada do descodificador interior.
Diagrama de blocos de um sistema de codificao concatenada

Modulador
Canal
Desmodulador
Interferncia
Codificador
exterior
Entrelaador
Dados de
entrada
Dados
descodificados
Codificador
interior
Descodificador
exterior
Descodificador
interior
Desentrelaador

Cdigos para controlo de erros Cdigos concatenados e entrelaados 11
Cdigos concatenados: exemplos
Um dos sistemas de concatenao mais usados usa um cdigo interior
convolucional, com descodificao de Viterbi, e um cdigo exterior Reed-Solomon.
Porqu? Porque os erros que eventualmente surjam sada do descodificador de
Viterbi ocorrem em rajadas. Estas so depois corrigidas pelo cdigo RS
(adequado a rajadas de erro, como sabido)
Exemplos de entrelaamento associado a concatenao de cdigos:
transmisses de televiso digital
esquema CIRC (cross-interleave Reed-Solomon code) usado na gravao e
reproduo de discos compactos (CD e CD-ROM)
O sistema usa dois cdigos Reed-Solomon: um cdigo exterior (28,24) e um
cdigo interior (32,28).
existem trs nveis de entrelaamento e desentrelaamento.
as formas de onda (msica, etc.) so amostradas taxa de 44100 amostras/s,
sendo cada amostra quantificada em um de 2
16
nveis ( 16 bits/amostra).
Codificador e descodificador CIRC

Entrada do
codificador
Entrelaador

Descodificador
Codificador
Codificador
C
2

Entrelaador
D*
Entrelaador
D
Descodificador
C
2

Desentrelaador
D*
Descodificador
C
1

Desentrelaador
D
Codificador
C
1

Desentrelaador

Sada do
descodificador

Cdigos para controlo de erros Cdigos concatenados e entrelaados 12
Cdigos concatenados:
a codificao CIRC
Specifications for the CD Cross-Interleave Reed-Solomon Code
Maximum correctable burst length ~ 4000 bits (2.5-mm track length on the disc)
Maximum interpolatable burst length ~ 12,000 bits (8 mm)
Sample interpolation rate One sample every 10 hours at P
B
= 10
-4

1000 samples/min at P
B
= 10
-3

Undetected error samples (clicks) Less than one every 750 hours at P
B
= 10
-3

Negligible at P
B
10
-4

New discs are characterized by P
B
= 10
-4


Cdigos para controlo de erros Cdigos concatenados e entrelaados 13
Cdigos concatenados:
as normas DVB de televiso digital
DVB-S (satlite)

Modulador
QPSK
Codificador
interior
(convolucional)
Entrelaador
convolucional
Codificador
exterior
RS (204, 188)
MUX
MPEG-2

DVB-C (cabo)

Entrelaador
convolucional
Codificador
RS (204, 188)
Modulador
QAM
Conversor
byte para
m smbolos
Codificador
diferencial
8 8 8 m m

DVB-T (difuso terrestre)
MUX
MPEG-2
Codificador
interior
(convolucional)
Codificador
exterior
RS (204, 188)
Entrelaador
convolucional
Entrelaador
convolucional
Modulador
OFDM

Cdigos para controlo de erros Cdigos concatenados e entrelaados 14

Cdigos para controlo de erros Cdigos concatenados e entrelaados 15
O entrelaamento na norma DVB-T

Cdigos para controlo de erros Cdigos concatenados e entrelaados 16
Outros exemplos de aplicao de
codificao para controlo de erros
Norma V.34 (modems)

Sistema GSM (telemveis de 2 gerao)

In IEEE Spectrum, Setembro de 1998.
Cdigos para controlo de erros Cdigos concatenados e entrelaados 17
Resumo do Captulo 2
Neste captulo foi apresentada a codificao com controlo de erros das duas famlias de
cdigos: os cdigos de blocos (e cclicos) e os cdigos convolucionais.
Foram igualmente abordadas as tcnicas de transmisso codificada que requerem um caminho
de retorno do receptor para o emissor, para comunicao de erros detectados. Essas tcnicas so
designadas genericamente por ARQ. Os principais mtodos ARQ "Stop and Wait", "Go-back-N"
e "Selective Repeat" foram descritos e comparados atravs das taxas de transferncia que
atingem.
A codificao de blocos foi apresentada recorrendo representao matricial habitual, com a
matriz geradora a ser utilizada na codificao e a matriz de verificao de paridade a servir para o
clculo da sndrome, na descodificao. Viu-se como esta ltima matriz pode servir tambm para
calcular a distncia mnima do cdigo.
De permeio foram apresentados os conceitos de codificao mais importantes, como a
distncia de Hamming entre palavras de cdigo, a distncia mnima, a matriz-padro e os limites de
Singleton, Hamming e Plotkin e as probabilidades de erro no detectado e no corrigido. Foram
tambm referidas algumas modificaes que se podem fazer nos cdigos clssicos, tendo sido
apresentados os cdigos aumentados e encurtados.
Seguidamente foram apresentados os cdigos cclicos e feita a equivalncia entre a sua
representao polinomial e a representao matricial dos cdigos de blocos. A terminar vrios
exemplos de cdigos cclicos muito usados foram apresentados.
A segunda famlia de cdigos a dos cdigos convolucionais foi abordada em seguida.
Comeando pelas diversas representaes dos codificadores rvores, trelia, diagrama de
estados, vectores de ligao, polinmios de ligao, matriz geradora e resposta impulsional
passou-se aos conceitos de distncia livre e ganho de codificao, tendo a funo de transferncia
dos cdigos sido abordada como uma maneira analtica de calcular a distncia livre. Finalmente
foram apresentadas as tcnicas de descodificao sequencial, de Viterbi e com feedback.
Para terminar o captulo foram apresentados cdigos concatenados e descritas as tcnicas de
entrelaamento, quer de blocos quer convolucionais. O assunto foi encerrado com exemplos muito
actuais de utilizao de cdigos concatenados e entrelaados: comunicaes espaciais e por satlite,
televiso digital e armazenamento da informao em discos compactos (CDs e CD-ROMs).


Cdigos para controlo de erros Resumo 1

You might also like