Vous êtes sur la page 1sur 7

9 Codificao de Canal: Cdigos de Bloco Lineares

Em captulos anteriores estudmos com alguma profundidade dois dos problemas mais
importantes associados ao desenho de sistemas de comunicaes: o problema da codificao
de fonte, e o problema da transmisso de informao atravs de canais ruidosos. O primeiro
destes problemas aborda a questo da representao eficiente dos smbolos (ou de sequncias
de smbolos) gerados pela fonte, recorrendo a cdigos univocamente descodificveis cujo
comprimento mdio seja o menor possvel. Para o caso de fontes discretas sem memria,
verificmos que o comprimento mdio mnimo daqueles cdigos determinado pela entropia
da fonte, a que corresponde uma representao sem redundncia. O problema da transmisso
digital atravs de canais ruidosos foi abordado pela via da definio de tcnicas de
modulao e do desenho dos respectivos receptores tendo como objectivo a minimizao da
probabilidade de erro de transmisso. Verificmos tambm a existncia de um compromisso
fundamental entre a probabilidade de erro (desempenho do sistema de transmisso) e a
largura de banda de transmisso. Este compromisso traduz-se numa medida da capacidade
do canal, isto , o valor mximo da taxa de transmisso de informao que garante, pelo uso
do cdigo adequado, uma probabilidade de erro arbitrariamente pequena.
Consideremos a sequncia de bits
b0

b1

b2

b3

b4

b5

b6

b7

b5

b6

b7

(9.1)

com base na qual formamos a palavra binria


b0

b1

b2

b3

b4

(9.2)

onde o bit p, designado por bit de paridade, 1


p = b 0 b1

 b

1 , se n de 1' s = mpar
=
0 , se n de 1' s = par

(9.3)

Suponhamos que a sequncia (9.2) a palavra de cdigo transmitida quando a fonte gera o
bloco de 8 bits em (9.1). Tendo em conta (9.3), podemos verificar que todas as palavras de
cdigo tm um n par de 1s, isto , tm paridade par. Isto quer dizer que qualquer palavra
binria de 9 bits com paridade mpar no faz parte deste cdigo. Assim, se a transmisso de
uma palavra de cdigo envolver um n mpar de bits errados, ento a paridade da palavra
recebida mpar, e os erros de transmisso so detectados. Este efeito resultou da incluso
do bit de paridade p, o qual, sendo determinado pelos bits b 0 , , b 7 , no introduz
informao adicional. A incluso nos smbolos transmitidos detes tipo de redundncia
controlada a chave para a construo de cdigos de canal capazes de detectar e/ou corrigir
eventuais erros de transmisso.
Basicamente, existem dois tipos de tcnicas de controlo dos erros de transmisso. Uma,
baseada em cdigos correctores de erro, designada na literatura por controlo de erro sem
retroaco (FEC)2. A outra estratgia exige a retransmisso dos blocos de dados onde tenham

O smbolo designa o operador adio mod 2, o qual, como sabido, equivalente ao operador ou
exclusivo.
2
FEC Forward Error Control.
1

9-1

sido detectados erro de transmisso atravs de pedidos destinados ao emissor e gerados


automaticamente pelo receptor (ARQ)3. Ao contrrio das tcnicas do tipo FEC, os mtodos
ARQ, embora recorrendo a cdigos menos complexos, envolvem normalmente uma
utilizao menos eficiente do canal de transmisso.
Os tipos de cdigos de canal normalmente usados podem agrupar-se em duas grandes
categorias: os cdigos de bloco e os cdigos convolucionais. Ao contrrio dos primeiros,
estes ltimos so realizados recorrendo a codificadores com memria. Na seco seguinte,
iremos introduzir os cdigos de bloco lineares.

9.1

Cdigos de Bloco Lineares

Seja {m 0 , m1 , , m k 1 } um bloco arbitrrio de k bits gerados pela fonte. Tipicamente, o


codificador de bloco usa estes k bits para gerar uma palavra de cdigo com n > k bits,
acrescentando n-k bits de controlo. A palavra de cdigo assim construda constituda pelos
smbolos binrios

b , i = 0,1, , n k 1
xi = i
m i , i = n k , n k + 1,

, n 1

(9.4)

e tem a estrutura ilustrada na Figura 9.1. Este um cdigo (n, k ) e tem uma taxa de
codificao definida por
R=

k
.
n

b0

(9.5)

b1

b n k 1

m0

m1

m k 1

Figura 9.1: Palavra de cdigo (n, k )

No caso de um cdigo de bloco linear, os bits de paridade b 0 , b1 , , b n k 1 dependem


linearmente (numa aritmtica binria mod 2) dos bits da mensagem m 0 , m1 , , m k 1 . Ou
seja, definindo os vectores linha
b = [b 0
e

m = [m 0

 b
m  m

b1

n k 1

k 1

(9.6)

],

(9.7)

podemos escrever
b = mP ,

(9.8)

ARQ Automatic ReQuest for retransmission.

9-2

onde P uma matriz binria (k n k ) que determina o cdigo. Portanto, sendo


x = [b m ] ,

(9.9)

de (9.8) resulta
x = m[P I k ] ,

(9.10)

onde I k a matriz identidade de dimenso (k k ) . Definindo a matriz geradora do cdigo


G = [P I k ] ,

(9.11)

de dimenso (k n ) , usando (9.10) temos


x = mG .

(9.12)

fcil verificar que o cdigo formado pelas palavras x, geradas pela matriz G a partir das
2 k mensagens m, um cdigo linear. Com efeito, sendo x i = m i G e x j = m j G palavras do

cdigo, ento x i x j = m i G m j G = m i m j G ; como m i m j necessariamente


uma mensagem, x i x j uma palavra do cdigo.
Definindo a matriz de verificao de paridade

H = I nk

PT ,

(9.13)

de dimenso (n k n ) , e usando (9.11), verifica-se que4

HG T = I n k

P T
PT = PT PT = 0 .
Ik

(9.14)

Assim sendo, de (9.12) vem


xT = G TmT ,
o que, tendo em conta (9.14), conduz a
Hx T = 0 xH T = 0 .

(9.15)

Esta uma condio necessria e suficiente para que x seja uma palavra do cdigo (n, k )
gerado pela matriz G. No entanto, a verificao de (9.15) sada do canal ruidoso no
significa necessariamente que no tenham ocorrido erros de transmisso. Com efeito, se for
transmitida a palavra de cdigo x, ento a palavra y recebida , em geral,
y=x+e,
4

(9.16)

Mais uma vez se chama a ateno para o facto de estarmos a usar aritmtica binria mod 2.

9-3

onde
e = [e 0

ei

1 , se houver erro no bit i


e n 1 ] , e i =
,
0 , caso contrrio
(9.17)

o vector de erro. Se usarmos (9.16) em (9.15), obtemos


= 0 , se e for palavra do cdigo
yH T = xH T + eH T = eH T
0 , caso contrrio
o que significa que sendo o vector de erro uma palavra do cdigo, a palavra y, recebida com
erros de transmisso, cumpre o teste de verificao de paridade (9.15), e os erros de
transmisso no so detectados.

9.1.1 Descodificao pelo Sindroma


Para proceder descodificao, isto , deteco e/ou correco de erros de
transmisso, o descodificador comea por calcular o sindroma da palavra recebida y, isto , o
vector binrio
s = yH T

(9.18)

de dimenso n k . Tendo em conta (9.16) e (9.15), verificamos que o sindroma s depende


do padro de erros, ou seja,
s = eH T .

(9.19)

Por outro lado, todos os padres de erro que diferem entre si de uma palavra de cdigo tm o
mesmo sindroma. Com efeito, dado um vector e que verifique (9.19), ento todos os vectores
de erro
e i = e x i , i = 0,1,

 ,2

1,

(9.20)

onde os x i , i = 0,1, ,2 k 1 , so todas as palavras do cdigo, verificam tambm (9.19).


Assim, define-se o coset do padro de erros e como sendo o conjunto dos vectores de erro
definido em (9.20) que tm o mesmo sindroma (9.19). Uma vez que um cdigo de bloco
linear (n, k ) tem 2 k palavras admissveis, num total de 2 n palavras binrias de
comprimento n, conclui-se que existem 2 n k cosets, isto , 2 n k sindromas distintos.
O sindroma contm alguma informao sobre o correspondente padro de erros, embora
geralmente insuficiente para o identificar sem ambiguidade. Se assim fosse, qualquer padro
de erros poderia ser corrigido. De qualquer modo, o conhecimento do sindroma s reduz o
espao de busca de uma 2 n dimenso para 2 k . Uma vez calculado s, o descodificador deve
escolher o elemento do respectivo coset que optimize um determinado critrio. Por exemplo,
a respectiva probabilidade de ocorrncia. Para valores relativamente baixos da probabilidade

9-4

de ocorrncia de erros de transmisso, o padro de erros mais provvel corresponde quele


que tem menos 1's, isto , aquele cujo peso
n 1

w (e ) = e i

(9.21)

i=0

mnimo.

Algoritmo de descodificao de mxima verosimilhana


Dada a palavra recebida y:
1.

2.
3.

Calcular o sindroma s = yH
a)
s = 0 y uma palavra do cdigo yo = y
b)
s 0 executar passo 2.
k
Calcular o coset de y, {ei = y xi , i = 0,1,,2 1}, escolher o padro eo de
menor peso, e executar o passo 3.
Construir a palavra corrigida yo = y eo.

Comentrio: sendo e 0 = y x o , com x o H T = 0 , tem-se


y o = y eo
= y y xo = xo ,

(9.22)

isto , a sada do descodificador a palavra de cdigo que difere da palavra recebida num
nmero mnimo de posies (correspondentes s posies dos 1's em eo). Ainda por outras
palavras, a palavra de cdigo para a qual y xo tem peso mnimo.

9.1.2 Distncia de Hamming


Def. 9.1- Distncia de Hamming. Sejam xi e xj duas palavras binrias de
comprimento n. A distncia de Hamming entre xi e xj,

d xi , x j = w xi x j ,

(9.23)

onde w o peso definido em (9.21), mede o nmero de bits distintos em xi e xj.


Usando esta definio em (9.22), obtemos
d(y o , y ) = d(x o , y ) = w (e o ) .
Portanto, o critrio de mxima verosimilhana usado para desenhar o descodificador
equivalente a minimizar a distncia de Hamming entre a palavra recebida e cada palavra
admissvel do cdigo.
Def. 9.2- Distncia mnima do cdigo. A distncia mnima do cdigo dada por
9-5

d min = min d x i , x j , i, j = 0,1,


i, j

 ,2

1,

(9.24)

ou seja, o valor mnimo da distncia de Hamming entre todos os pares de palavras do


cdigo.
Consideremos ento um padro de erros e t com peso t correspondendo, portanto, a t bits
errados. Sejam x i e x j duas palavras do cdigo tais que d x i , x j = d min . Naturalmente, x i e t

est mais prximo de x i do que de x j , e x j e t est mais prximo de x j do que de x i se e s


se

d min 2t + 1 .

(9.25)

Como se mostra na Figura 9.2, qualquer padro de erro com peso inferior a t conduz a uma
palavra recebida que cai num dos crculos de raio t. Verificando-se (9.25), a palavra recebida s
pode resultar da transmisso da palavra de cdigo que est no centro daquele crculo. Portanto,
(9.25) constitui uma condio necessria e suficiente para que o cdigo tenha capacidade de
corrigir padres de erro com peso no superior a t.

xm
xj et

xi et
xj

xk

xi

2t + 1
Figura 9.2: Distncia mnima e capacidade correctora do cdigo
Seguindo a mesma linha de raciocnio, podemos concluir que o cdigo capaz de detectar
todos os padres de erro com peso no superior a t0 se e s se
d min t 0 + 1 .

9.2

(9.26)

Cdigos de Hamming
Os cdigos de Hamming constituem uma famlia de cdigos lineares (n, k ) que verificam
para m 3 : n = 2 m 1
k = n m.

(9.27)

No caso em que m = 3 obtm-se um cdigo (7,4 ) . Os cdigos de Hamming so desenhados por


forma a garantir que, independentemente do valor de m, d min = 3 . Portanto, e tendo em conta as
9-6

condies (9.25) e (9.26), estes cdigos tm capacidade para corrigir at um bit errado por bloco
(t = 1) e de detectar at dois bits errados por bloco (t 0 = 2) .
Uma vez que as matrizes geradora G e de verificao de paridade H so directamente
relacionveis, indiferente definir o cdigo pela especificao de G ou de H. Por outro lado,
qualquer que seja a palavra x do cdigo, verifica-se

xH T = x I n k

PT

=0.

(9.28)

De acordo com a Def. 9.2, eq. (9.24), d min pode ser interpretada como o valor mnimo dos pesos
de todas as palavras do cdigo, excepto w (x = 0 ) = 0 5. luz da condio (9.28), conclumos que
d min coincide com o nmero mnimo de colunas de H cuja soma mod 2 d um vector nulo. Para
que tal se verifique, dada a estrutura da matriz H, basta impor que qualquer coluna de P T tenha
dois ou mais 1's. Por exemplo, para um cdigo de Hamming (7,4 )
1 0 0 1 0 1 1
H = 0 1 0 1 1 1 0 .
0 0 1 0 1 1 1

(9.29)

A estrutura dos cdigos de Hamming pode ainda ser explorada para levar prtica um mtodo de
descodificao bastante eficiente. Com efeito, e como se ilustra a seguir,
1 0 0 1 0 1 1
0 1 0 1 1 1 0

0 0 1 0 1 1 1
1 2 4 3 6 7 5
as colunas de H codificam em bnrio natural os dgitos de 1 a 7. Podemos assim construir a
seguinte tabela

dgito
coluna de H

1
1

2
2

3
4

4
3

5
7

6
5

7
6

Tabela 9.1: Colunas de H onde esto codificados os dgitos de 1 a 7


Suponhamos que a palavra transmitida foi x = [0 1 1 1 0 0 1] , onde o bloco da direita
corresponde mensagem m = [1 0 0 1], e que y = [0 1 1 1 1 0 1] a palavra recebida.
O vector de erro e = [0 0 0 0 1 0 0] e o sindroma resultante o vector s = [0 1 1]
(seja qual for o padro de erro singular com 1 no bit i, o sindroma sempre a coluna i da matriz
H). O contedo deste vector constitui o cdigo binrio natural para o dgito 6. Se consultarmos a
Tabela 9.1, verificamos que este dgito identifica a coluna 5 da matriz H. Daqui se conclui que
basta trocar o 5 bit de y para recuperar x e identificar a mensagem m.
5

Faz-se notar que a palavra x = 0 sempre uma palavra admissvel de qualquer cdigo de bloco linear.

9-7