Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03...

28
Décima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0 , a 1 , ..., a n-1 } de uma fonte discreta de |A| = n símbolos e suponha que esta fonte emita uma seqüência de símbolos (s 0 , s 1 , ..., s t ,...) com cada s t A. Se a probabilidade condiconal p(s t | s t-1 , s t-2 , ..., s 0 ) depende somente dos j símbolos prévios tal que p(s t | s t-1 , s t-2 , ..., s 0 ) = p(s t | s t-1 , s t-2 , ..., s t-j ), então A é chamado de Processo de Markov de j-ésima ordem. A seqüência de j símbolos S t = (s t-1 , s t-2 , ..., s t-j ) é chamada de estado do Processo de Markov no tempo t. Um Processo de Markov de j-ésima ordem tem N=|A| j possíveis estados, vamos numerar estes estados de 0 a N-1 e seja π n (t) a probabilidade de estar no estado n no tempo t. A distribuição de probabilidade do sistema pode ser representada pelo vetor: Π Π Π Π = Π ) ( ) ( ) ( ) ( 1 2 1 0 t t t t N N t Para cada estado no tempo t, existem |A| possíveis próximos estados no tempo t + 1, dependendo de que símbolo a i é emitido pela fonte em seguida. Se chamarmos de p i|k a probabilidade condicional de ir para o estado i dado que se está no estado k, a distribuição de probabilidade no tempo t + 1 é governada pela matriz: = Π 1 | 1 1 | 1 0 | 1 1 | 1 1 | 1 0 | 1 1 | 0 1 | 0 0 | 0 | N N N N N N A p p p p p p p p p P E é dada por Π t+1 = P A|Π Π t . Exemplo Seja A uma fonte binária markoviana de 1 a ordem 1 tal que: P 0|0 = 0,3; P 1|0 = 0,7; P 0|1 = 0,4; P 0|0 = 0,6. 1 Ser de primeira ordem significa que o próximo símbolo depende somente de um único símbolo anterior.

Transcript of Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03...

Page 1: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Décima Primeira Aula 30/09/03

Processos de Markov e Fontes com Memória

Seja o alfabeto A = {a0, a1, ..., an-1} de uma fonte discreta de |A| = n símbolos e suponha que esta fonte emita uma seqüência de símbolos (s0, s1, ..., st,...) com cada st∈ A.

Se a probabilidade condiconal p(st | st-1, st-2, ..., s0) depende somente dos j símbolos prévios tal que p(st | st-1, st-2, ..., s0) = p(st | st-1, st-2, ..., st-j), então A é chamado de Processo de Markov de j-ésima ordem.

A seqüência de j símbolos St = (st-1, st-2, ..., st-j) é chamada de estado do Processo de Markov no tempo t. Um Processo de Markov de j-ésima ordem tem N=|A|j possíveis estados, vamos numerar estes estados de 0 a N-1 e seja πn(t) a probabilidade de estar no estado n no tempo t. A distribuição de probabilidade do sistema pode ser representada pelo vetor:

ΠΠ

ΠΠ

)()(

)()(

1

2

1

0

tt

tt

N

N

t

Para cada estado no tempo t, existem |A| possíveis próximos

estados no tempo t + 1, dependendo de que símbolo ai é emitido pela fonte em seguida. Se chamarmos de pi|k a probabilidade condicional de ir para o estado i dado que se está no estado k, a distribuição de probabilidade no tempo t + 1 é governada pela matriz:

=

−−−−

Π

1|11|10|1

1|11|10|1

1|01|00|0

|

NNNN

N

N

A

ppp

pppppp

P

E é dada por Πt+1= PA|Π Πt.

Exemplo Seja A uma fonte binária markoviana de 1a ordem1 tal que: P0|0 = 0,3; P1|0 = 0,7; P0|1 = 0,4; P0|0 = 0,6.

1 Ser de primeira ordem significa que o próximo símbolo depende somente de um único símbolo anterior.

Page 2: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Qual a equação para o próximo estado de probabilidade e as

probabilidades de estado no tempo t = 2 dado que em t = 0, π0 = 1 e π1 = 0?

Πt+1=

6,07,04,03,0

Πt

logo, Π1=

6,07,04,03,0

Π0 =

01

6,07,04,03,0

=

7,03,0

e logo, Π2=

6,07,04,03,0

Π1 =

7,03,0

6,07,04,03,0

=

63,037,0

Exemplo 2

Seja A o um processo binário markoviano de 2a ordem2. P0|0,0 = 0,2; P0|0,1 = 0,4; P0|1,0 = 0,0; P0|1,1 = 0,5. P1|0,0 = 0,8; P1|0,1 = 0,6; P1|1,0 = 0,0; P1|1,1 = 0,5. Todos os estados são igualmente prováveis, t = 0. Qual a

probabilidade em t = 1?3 S0 = (0,0) S1 = (0,1) S2 = (1,0) S3 = (1,1)

tt Π⋅

=Π +

5,0100006,08,05,0000

004,02,0

1

Observe que todas as colunas de PA|Π somam 1. Uma vez que todos

os estados são equiprováveis em Π0 temos que.

2 Observe que agora levamos em conta os dois últimos estados. 3 Para entender a máquina de estados ao lado saiba que o número dentro das esferas mostra os dois últimos estados, o próximo estado é colocado à esquerda da esfera e o número da direita descartado. Os números nas setas indicam Próximo Estado/Probabilidade. Repare também que é impossível passar, por exemplo, do estado 11 para o 00, na matriz colocamos um 0 nessas possibilidades (pois a probabilidade é zero).

Page 3: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

25,025,025,025,0

0

Logo, podemos calcular Π1 da seguinte forma:

=

=Π⋅

375,035,0

125,015,0

25,025,025,025,0

5,0100006,08,05,0000

004,02,0

5,0100006,08,05,0000

004,02,0

01

Distribuição de Equilíbrio e Taxa de Entropia O processo Markoviano é chamado de ergódigo se, de qualquer

estado inicial, podemos ir para qualquer outro estado em algum número de passos e se, para t suficientemente grande, Πt se aproxima de uma distribuição de equilíbrio que é independente da distribuição de probabilidade inicial Π0.

Na distribuição de equilíbrio temos Πt+1 = Πt. Os processos de Markov que modelam fontes de informação são sempre ergódigos.

Exemplo4

π0 = 0,2π0 + 0,4π1 π1 = 0,5π3 π2 = 0,8π0 + 0,6π1 π3 = π2 + 0,5π3 π0 + π1 + π2 + π3 = 1 Assim, temos que π1 - 0,5π3 = 0 0,8π0 + 0,6π1 - π2 = 0 π2 - 0,5π3 = 0 π0 + π1 + π2 + π3 = 1 Resolvendo as equações temos5

π0 = 91 , π1 = π2 =

92 , π3 =

94

Π E =

19

29

29

49

4 Estas equações saíram da matriz apresentada anteriormente. 5 A probabilidade do estado de equilíbrio está representado por PIZÃOE e me diz a probabilidade de eu me encontrar naquele estado.

Page 4: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Décima Segunda Aula 02/10/03

Taxa de Entropia Para t grande, a probabilidade de estar no estado Sn é dada pelas

suas probabilidades de equilíbrio πn, a taxa de entropia é dada por:

R H A S

R pp

n nn

N

n i ni ni

N

n

N

=

=

=

=

=

∑∑

π

π

( | )

log||

0

1

20

1

0

1 1

Exemplo

Para calcular R do exemplo anterior.

740,0)2log5,02(941log

92)667,1log6,05,2log4,0(

92)25,1log8,05log2,0(

91

222222 =⋅+++++=R

9183,0)(

1log)()(1

02 == ∑

=a apapAH

Canais com Restrição

Um canal de comunicação pode ser modulado como canal livre de

ruído (Canal de Banda Básica Equivalente) cascateado com canal sem restrição ruidoso.

Esta é apenas uma maneira de simplificar o canal para facilitar os cálculos. Considerando o ruído somente no “segundo bloco” facilita bastante.

Restrições: Efeitos da modulação, distorção canal, demodulação, detecção de clock e processos de detecção.

Page 5: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Aqui nós estamos colocando um conjunto de parâmetros como

sendo a restrição do canal (ht). O tipo mais comum de modelo de canal restrito é o canal LT1 (Linear

Time Invariant). Esse canal é especificado por um conjunto de parâmetros ht, que é chamado de resposta impulsional do canal. O número de parâmetros pode ser finito (FIR) ou pode ter um número infinito de termos contáveis (IIR).

A seqüência de saída do canal está relacionada com a seqüência de entrada pela soma convolucional

x h at k t kk

= −=−∞

Se o canal é um canal FIR com hk = 0 para k < 0 ou k > K, para

algum inteiro K, o canal pode ser modelado usando-se um processo de Markov.

Bloco decisão com sinal ruído rt = xt + ηt Se B = A então a decisão é estrita. Se B≠ A, |B| > |A| então a

decisão é ampla.

Exemplo Seja A uma fonte binária sem memória, com símbolos equiprováveis

A = {-1, +1} Seja o canal FIR com {h0 = 1, h1 = 0, h2 = -1}6

6 Os dois valores dentro das esferas representam at-1 e at-2. O número precendente à barra indicando cada seta representa at. O número posterior da barra é xt que é obtido através da fórmula de xt. Ele é a saída do canal que depende, neste caso, dos dois últimos símbolos emitidos e o símbolo que acaba de ser emitido. Este xt ainda vai sofrer o ruído para depois entrar no bloco de decisão conforme mostra a última figura antes desta nota. O valor entre parênteses representa a probabilidade, que no caso do exemplo, é equiprovável, apontando sempre o valor 0,5 (para +1 e –1, cuja soma das probabilidades deve ser obviamente 1)

Page 6: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

tt Π

=Π +

5,005,005,005,00

05,005,005,005,0

1

∑ ∑

= ∈

=

=⋅⋅⋅=

Π=

=⋅⋅+⋅=

=

=⋅⋅=+=⋅⋅=

=⋅+⋅=−

Π=

3

022

2

3

0

142log)5,02(25,0)|(

1log)|(

5,1225,0215,0)(

1log)()(

25,05,025,02)2(5,05,025,04)0(

25,05,025,05,025,0)2(

)|()(

i Xx iii

Xx

iiitt

SXPSXPR

xPxPxH

PPP

SxPxP

7

Códigos de Translação de Dados As restrições sobre um sinal transmitido são expressas como

seqüências proibidas de símbolo de entrada. DTC são códigos que mapeiam a seqüência original de símbolos de

uma fonte de informação em uma nova seqüência de símbolos tal que certas seqüências codificadas são proibidas e não ocorrem.

7 Como todos os símbolos neste exemplo são equiprováveis (0,5), o próximo estado também é equiprovável (0,25), independente de qual o símbolo inicial, pois a fonte é sem memória.

Page 7: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Non-Return to zero inverted code

Exemplo

Defina o estado codificador como o vetor St = [s0, st], s0 = βt+1 e s1 = βt-2 = s0(t-1)

βt = ct ⊕ s1

ct é o bit emitido pela fonte de informação no tempo t e ⊕ é a porta

XOR.

St=1=[0 0]t

Page 8: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Décima Terceira Aula 07/10/03

Códigos de Translação de Dados Restrições impostas pelo canal ao código transmitido podem ser

expressas em termos de seqüências. Por exemplo, no caso do diagrama de estados:

Para uma longa seqüência de -1 ou +1 ou de símbolos alternados, a saída do canal será somente de zeros. Neste caso, métodos de recuperação de tempo na recepção podem falhar (acabam perdendo a sincronia)

CTDs são códigos que mapeiam a seqüência original de símbolos de uma fonte de informação em uma nova seqüência, tal que certas seqüências de código são proibidas e não ocorrem.

O exame do diagrama de estado do exemplo anterior mostra que a

saída do canal é não-nula somente se o bit de entrada difere do bit mais à

Page 9: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

direita. Uma vez que os bits do estado são, simplesmente, bits passados, nós podemos simplificar o símbolo pela codificação da seqüência de bits de informação usando o código conhecido como non-return to zero – inverted (NRZI). Exemplo

Defina o estado do codificador pelo vetor St = [s0, s1]T, s0 = βt-1 e s1 = βt-2, onde a saída do codificador é βt = ct ⊕ s1. O símbolo de saída at é +1 se ct difere do valor βt-2 e -1 caso contrário.

Assuma que iniciemos o codificador com St=-1=[0 0]T então a saída do canal xt será +2 ou -2 se ct = 1 e 0 caso contrário. O detector de símbolos pode decodificar o sinal recebido como ct = 0 se a entrada for |rt| < 1 e ct = 1 se |rt| > 1.

“O diagrama de estados leva a transições indesejadas, o CTD elimina essas transições”.

Page 10: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Décima Quarta Aula 14/10/03

Códigos de Detecção e correção de erros

O codificador CCE mapeia um bloco m de k símbolos em uma seqüência codificada c de n símbolos, n > k.

Convenção

m m m m mk= −( , , , . . . , )0 1 2 1 mk-1 é transmitido primeiro. O bloco m é chamado de palavra-mensagem e c é chamado

palavra-código. O código CCE adiciona r = n - k bits de redundância ao bloco.

A taxa de entropia é nkR = (taxa de código)

Considere um CBS com probabilidade cruzada p. Vamos analisar a questão da probabilidade de erros.

[ ]

Pp p

p pc p p p p

R p p

V c/

log ( ) log ( )

log , ( )

=−

= + + − −

= − + ⋅ −

11

1 1 1

0 5 12 2

0 2

A probabilidade de termos t erros é

P t p nnt p pt n t( ; ; ) ( )=

− −1 Função massa de probabilidade binomial

t erros com probabilidade p em n símbolos (tipicamente n bits)

Page 11: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

σσ

σ

σ 3:3)1(

)1()1()(])[(

)(

)(1)(

)1();;()(

3

0

222

0

1

0

1

0

+=−−=

−=−

−=−=

=−

=

<−=≥

==<

∑ ∑

=

=

=

=

ttsigmaerrodefaixapnp

pnpppjn

tjttE

nppipjn

jt

tPtP

ppin

npiPtP

t

n

j

jnjt

n

j

jnj

t

i

t

i

ini

A taxa de erros de fluxo do canal é definida como o número médio

de erros em um bloco, dividido pelo número de bits do bloco. Para CBS a taxa de erro de fluxo é p.

Um código pode ser caracterizado pela capacidade de detecção e

de correção. Exemplo

Código de repetição G m cGG

( )( )( )0 0001 111

Devemos escolher se o código ira corrigir erros, detectar erros, e sua

quantidade.

Palavra Recebida

Capacidade de detectare corrigir 1 erro

Capacidade de detectar e 2 erros e não corrigir

000 Nenhum erro 0 Nenhum erro 0 001 1 erro 0 Houve erro 010 1 erro 0 Houve erro 011 1 erro 1 Houve erro 100 1 erro 0 Houve erro 101 1 erro 1 Houve erro 110 1 erro 1 Houve erro 111 Nenhum erro 1 Nenhum erro 1

Princípio da Decodificação pela Máxima Semelhança Seja V a palavra recebida e sejam c1 e c2 duas palavras-códigos

válidas. A notação d V cH ( , )1 designa a distância Hamming entre V e c1 . Se c1 tiver sido transmitida, então o número de erros que ocorreram na transmissão é t d V cH1 1= ( , ) . Se a palavra tiver sido c2 , então o número de erros é

Page 12: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

t d V cH2 2= ( , ) . O princípio da decodificação pela máxima semelhança nos diz que devemos pegar a palavra-código válida com menor distância Hamming.

“Distância Hamming entre duas palavras códigos é a quantidade de bits em que as duas palavras diferem”.

Distância Hamming de Código | | , | |

( )( ; ) ( )

M C

G m cI M C H M

k n

i i

= =

=

2 2

(mapeamento um para um)

Para cada par de palavras códigos c c C i ji j, ,∈ ≠ , calculamos a

distância Hamming d c cH i j( , ) . Existirá pelo menos um par de palavras-códigos para o qual esta distância é a menor. Chamamos de Distância Hamming Mínima do código e designamos por dmin.

Existe uma relação muito grande entre a Distância Hamming de

Código e a quantidade de erros que podem ser corrigidos. Um código pode detectar até t erros se e somente se

d tmin ≥ +1

Um código pode corrigir até t erros se e somente se

d tmin ≥ +2 1 Um código pode corrigir até tC erros se e somente se detectar até tD

erros se e somente se

d td t t

min C

min C D

> +≥ + +

2 11

Exemplo O Código de Detecção r = 3 tem dmín = 4 r=3 significa que temos um bit de informação e três repetidos.

Mapeia-se 0 em 0000 e 1 em 1111. Como só temos duas palavras códigos elas podem diferir somente

em quatro bits...

Page 13: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Como 4=1+2+1 este código pode corrigir erros de 1 bit e detectar erros de 2 bits.

Como 4<2⋅2+1 este código não pode corrigir erros de 2 bits. Como 4=3+1, este código pode detectar erros de até 3 bits.

Transmissão Corrige erros de 1 bite detecta erros de 2

Detecta erros de 3 bits Não corrige

0000 Interpreta como 0 Interpreta como 0 0001 Corrige para 0 Pede retransmissão 0010 Corrige para 0 Pede retransmissão 0011 Pede retransmissão Pede retransmissão 0100 Corrige para 0 Pede retransmissão 0101 Pede retransmissão Pede retransmissão 0110 Pede retransmissão Pede retransmissão 0111 Corrige para 1 Pede retransmissão 1000 Corrige para 0 Pede retransmissão 1001 Pede retransmissão Pede retransmissão 1010 Pede retransmissão Pede retransmissão 1011 Corrige para 1 Pede retransmissão 1100 Pede retransmissão Pede retransmissão 1101 Corrige para 1 Pede retransmissão 1110 Corrige para 1 Pede retransmissão 1111 Interpreta como 1 Interpreta como 1

Page 14: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Décima Quinta Aula 16/10/2003

A distância mínima do código é limitada superiormente pela relação

d rmin ≤ +1 (Limite Singleton)

Exemplo Suponha uma transmissão de palavras-códigos de 7 bits sobre um

CBS com probabilidade cruzada p=0,05 e queremos que a probabilidade de erro em um bloco na recepção seja menor que 10-3. Qual é a taxa de código máxima possível e como esta taxa relaciona-se com a capacidade do canal e com a taxa limite de entropia (R0)?

71210936,13

0038,02

10)1(7

minmin4

7

1

37

≥⇒+≥⇒⋅=⇒=

=⇒=

<−

=

+=

−−∑

dtdPt

Ptpara

ppj

P

cUc

Uc

tj

jjU

c

Conclusão: É possível atingir esta taxa de erros com blocos de 7

bits. Não é viável! Supondo, como estratégia de controle de erros, a possibilidade de retransmissão quando erros forem detectados, podemos, com um código de repetição de 7 bits, detectar quantos erros e corrigir quanto erros?

Lembrando que dmin>2tc+1 e dmin=tc+td+1, assim devemos escolher

qualquer estratégia que caia nestes padrões. Sendo um código de repetição de 7 bits, dmin=7. Escolhamos, por exemplo, tc=1 e tD=5 assim poderemos detectar 5 erros e corrigir 1 erro.

Taxa de erro do código

Pj

p pUj j

j=

− = ⋅− −

=∑

71 1 05 107 9

6

7

( ) ,

Probabilidade de Retransmissão

Pj

p pRXj j

j t

t

c

D

= − =−

= +∑

71 0 04447

1( ) ,

Page 15: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

RP

bits uso do canal

C bits uso do canal

R bits uso do canal

RX=−

=

=

=

17

0 1365

0 7136

0 47810

, /

, /

, /

Corpos Binários e Espaços Vetoriais Binários Um corpo é definido como um conjunto de elementos A e duas

operações aritméticas adição (+) e multiplicação (⋅) tal que as seguintes propriedades são válidas:*

1) Adição e multiplicação são fechadas (Resultados Pertencem ao corpo) 2) Propriedade associativa da adição e da multiplicação a+b+c=(a+b)+c=a+(b+c) a⋅b⋅c=(a⋅b) ⋅c=a⋅ (b⋅c) 3) Elemento identidade Identidade aditiva: a+0=0+a=a Identidade multiplicativa: a⋅1=1⋅a=a 4) Inverso aditivo ∀ ∃a, b tal que a+b=0 (b é representado como -a) 5) Inverso multiplicativo ∀ ≠ ∃a 0, b tal que a⋅b=1 (b é representado como a-1) 6) Adição Comutativa a+b=b+a 7) Distributiva da adição em relação à multiplicação a⋅(b+c)=a⋅b+a⋅c (a+b)⋅c=a⋅c+b⋅c Exemplo

A={0,1} + ⋅0 10 0 11 1 0

0 10 0 01 0 1

A={0,1,2} + ⋅0 1 20 0 1 21 1 2 02 2 0 1

0 1 20 0 0 01 0 1 22 0 2 1

* É interessante ressaltar que as operações são chamadas de adição e multiplicação, seus símbolos e todo o resto definido é uma mera convenção. Poderíamos mudar esses símbolos e esses nomes pois não são deles que dependem o conceito de corpo.

Page 16: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

A={0,1,2,3} + ⋅0 1 2 30 0 1 2 31 1 2 3 02 2 3 0 13 3 0 1 2

0 1 2 30 0 0 0 01 0 1 2 32 0 2 0 23 0 3 2 1

Observa-se neste último exemplo um fato curioso: a propriedade 5

não foi respeitada, não existe o inverso multiplicativo de 2. Portanto o terceiro exemplo não define um corpo. Mais tarde iremos ver que os corpos devem ter número de símbolos primos.

Definimos An como o conjunto de elementos a a a a an= −{ , , , . . . , }0 1 2 1 ,

com cada a Ai ∈ = { , }0 1 definimos duas operações:

1) Adição vetorial: a b An, ∈ [ ]a b a b a b a bn n+ = + + +− −( ), ( ), . . . , ( )0 0 1 1 1 1 2) Multiplicação escalar a An∈ eb A∈ b a a b ba ba ban⋅ = ⋅ = −( , , . . . , )0 1 1

Espaço vetorial é uma estrutura composta por um conjunto de

vetores An, um conjunto de escalares A e as duas operações aritméticas definidas acima.

Propriedades:

1) Adição é fechada 2) Adição é comutativa 3) Adição é associativa 4) An contém vetor 0 tal que para qualquer elemento de An, a a+ =0 5) Inverso Aditivo: ∀ ∈ ∃ ∈ + =a A b A tal que a bn n, 0

6) ∀ ∈ ∈ ∃ ∈escalar a A e vetor b A ab An n, 7) Multiplicação escalar é associativa 8) Multiplicação escalar é distributiva com respeito à adição vetorial 9) Multiplicação escalar é distributiva com respeito à adição escalar 10) Se 1∈A é a identidade multiplicativa escalar ⇒∀ ∈ =a A a an ,1

Page 17: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Se todas essas propriedades forem atendidas teremos um espaço vetorial. No nosso caso, iremos trabalhar sempre com um espaço vetorial binário.

Exemplo

Código 2D 9/16 (Lê-se “Bidimensional nove por dezesseis”) m m m m

c c c cc c c c m c m c m c m m m c m m m

i= ∈

==

( , ... , ) { , }

( , , ... , )( , , , , , , , , , , , , , , , )

0 8

0 1 15

0 1 2 0 4 1 6 2 8 3 4 5 12 6 7 8

0 1

m é a palavra mensagem e c é a palavra código.* m m m cm m m cm m m cc c c c

c m mc m m mc m m m

8 7 6 12

5 4 3 8

2 1 0 2

6 4 1 0

0 0 8

6 2 5 8

12 6 7 8

= + += + += + +

. . .

Qual a capacidade de correção e detecção de erros? dmin=4 tD=2 tC=1

G =

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 01 0 1 0 1 1 0 0 0 0 0 0 0 0 0 01 0 1 0 0 0 1 1 0 0 0 0 0 0 0 01 1 0 0 0 0 0 0 1 1 0 0 0 0 0 01 0 0 0 1 0 0 0 1 0 1 0 0 0 0 01 0 0 0 0 0 1 0 1 0 0 1 0 0 0 01 1 0 0 0 0 0 0 0 0 0 0 1 1 0 01 0 0 0 1 0 0 0 0 0 0 0 1 0 1 01 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1

Esta é a matriz geradora do nosso código. Se pegarmos o nosso

vetor mensagem e multiplicar pela matriz geradora teremos o nosso código. Como gerar essa matriz a partir do código dado no início (que foi definido)?

Cada coluna da matriz geradora representa um elemento do código e cada linha da matriz representa um elemento da mensagem. Repare como a

* Estas palavras códigos escritas acima e abaixo da referência desta nota foram simplesmente definidas. Qualquer outra combinação e escolha poderiam ser feitas.

Page 18: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

primeira coluna é completa de 1s, o que significa que o elemento do código c0 possui todos os elementos da mensagem e assim por diante.

Page 19: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Décima Sexta Aula 21/10/2003

Código 2D 9/16 (Bidimensional nove por dezesseis) m m m m

c c c cc c c c m c m c m c m m m c m m m

i= ∈

==

( , ... , ) { , }

( , , ... , )( , , , , , , , , , , , , , , , )

0 8

0 1 15

0 1 2 0 4 1 6 2 8 3 4 5 12 6 7 8

0 1

O código C, ao invés de transmitir somente os elementos da

mensagem, transmite sete bits de paridade, que foram escolhidos de modo que:

m m m cm m m cm m m cc c c c

c m mc m m mc m m m

8 7 6 12

5 4 3 8

2 1 0 2

6 4 1 0

0 0 8

6 2 5 8

12 6 7 8

= + += + += + +

. . .

Vetor recebido: v c e e e c e

v v v v sv v v v sv v v v sv v v vs s s s

= + = +( , , . . . , )0 1 15

15 14 13 12 6

11 10 9 8 5

7 6 5 4 4

3 2 1 0

3 2 1 0

Podemos gerar bits de paridade (si) que são elementos de um vetor

de nome síndrome, que é o vetor que irá ajudar a detectar e/ou corrigir os erros. Por exemplo, se temos todos os bits de síndrome iguais a zero, temos que em princípio foi transmitido tudo certo (Dizemos em princípio que pode ter ocorrido um número maior de erros do que podem ser detectados).

Se s0 for igual a 0 mas alguma das síndromes de linha ou de coluna

for igual a 1 eu consigo detectar que houveram 2 ou mais erros, mas não consigo dizer onde.

Page 20: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Se s0 for igual a 1 e houver uma síndrome de linha e uma de coluna igual a 1 eu consigo detectar, localizar o erro e corrigir.

Um ponto interessante a se tratar é que s0 não é a soma dos s de

linha e coluna, s0 é a soma dos “vs”. A última coluna e a última linha não recebem bits de paridade pois

um elemento adicional apenas nos daria a informação de que o erro está num bit de paridade (o que não é muito interessante)

G =

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 01 0 1 0 1 1 0 0 0 0 0 0 0 0 0 01 0 1 0 0 0 1 1 0 0 0 0 0 0 0 01 1 0 0 0 0 0 0 1 1 0 0 0 0 0 01 0 0 0 1 0 0 0 1 0 1 0 0 0 0 01 0 0 0 0 0 1 0 1 0 0 1 0 0 0 01 1 0 0 0 0 0 0 0 0 0 0 1 1 0 01 0 0 0 1 0 0 0 0 0 0 0 1 0 1 01 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1

c mG=

G é a matriz geradora do código. De forma similar, podemos definir o vetor síndrome

s s s s= ( , , . . . , )0 1 6 , que pode ser computado de uma equação da forma s vH T= , onde HT é uma matriz de 16 linhas e 7 colunas. Observaremos que HT está intimamente relacionada com G.

Considerando o CBS do exemplo passado (p=0,05), podemos calcular a probabilidade de um erro de bloco não detectado como:

Pj

p p

PP

RP

Uj j

j

U

RX

RX

=

==

=−

=

=∑

161

0 04290 1463

9 116

0 4802

16

3

16

( )

,,

( ),

Códigos Lineares de Bloco Característica importante: superposição. Suponha que o conjunto de

palavras-código legais seja C. Para um código linear de bloco, se

c c C c c C1 2 1 2, ( )∈ ⇒ + ∈ .

Page 21: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Um código linear de bloco (n, k) codifica vetores-mensagem de k bits

em vetores-código de n bits. A taxa de código é R=k/n. (k bits de informação sobre n do bloco todo) Se nosso conjunto de mensagens legais é o conjunto de todos os possíveis vetores de k bits, então nosso código terá |C|=2k vetores-códigos legais distintos.

Sempre é possível definir as palavras-códigos usando uma matriz G de k linhas e n colunas. Suponha que temos vetores de n elementos g g gk0 1 1, , . . . , − , representando as linhas desta matriz G:

c mG m

gg

gk

= =

0

1

1

. . .

As k linhas precisam ser linearmente independentes e são

chamadas vetores-base do espaço vetorial C. A dimensão de um espaço vetorial é definida como o número de

vetores-base necessários para descrevê-lo.

Peso Hamming, Distância Hamming e Cubo Hamming O peso Hamming é o número de elementos não-nulos do vetor.

Representado por w cH ( ) .

Exemplo 1 c w cH= ⇒ =( ) ( )1001101 4 Temos, então, que d c c w c cH H( , ) ( )1 2 1 2= + . (Lembrando que essa

soma é a XOR) A distância Hamming mínima de um código linear de blocos é igual

ao peso mínimo dos vetores-códigos não-nulos. Uma condição necessária para um vetor-base é, portanto,

w g dH i min( ) ≥ Vetores recebidos: v c e= + V é o conjunto de 2n vetores binários de n bits. V é um espaço vetorial n-dimensional.

Exemplo 2 Código de repetição de 3 bits K=1 (Temos apenas 1 bit de informação mais dois de repetição. As

palavras código válidas são 000 e 111).

Page 22: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

A dimensão g da minha matriz depende de k e n. Se k = 1 temos uma linha e se n = 3 temos três colunas.

g0 = ( )111 É fácil comprovar a geração das duas palavras códigos através da

fórmula c mG= .

Cubo de Hamming

O cubo nos ajuda a ver as dimensões no espaço vetorial de corpos

finitos. Neste caso, as duas palavras-código válidas são 000 e 111, a distância Hamming mínima para partir de 000 até 111 é igual a 3. Podemos ver isso visualmente.

A Esfera Hamming e os limites dos requisitos de redundância O conjunto dos erros não detectáveis é simplesmente o conjunto de

todos os erros que são vetores-códigos legais. (Um exemplo é, no caso discutido anteriormente, se transmitido 000 e recebido 111, nunca este erro será detectável pois 111 é um vetor-código legal).

Definimos esfera Hamming de raio t como o conjunto de todos os possíveis vetores v que estão a uma distância Hamming menor ou igual de uma palavra-código.

O volume da esfera Hamming é definida como o número de vetores v contidos nele.

Gilbert de Limite )]2,([logHamming de Limite )],([log

2),(2

),(

2

2

0

→≤→≥=−

=

∑=

tnrtnrkn

tn

tnjn

seja

nk

t

j

ϑϑ

ϑ

ϑ

O código que satisfaz o limite de Hamming com a igualdade é dito

ser perfeito.

Page 23: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

O raio t também é a quantidade de bits que eu quero corrigir.

Um exemplo um tanto pessoal: Vendo o cubo de Hamming. Se eu pegar uma esfera de centro 000

de raio do tamanho de uma aresta esta irá englobar 100, 001 e 010 e o seu volume será 4 pois quatro vetores estão contidos nesta esfera. Isso pode ser visto facilmente através do desenho, e pode ser calculado utilizando-se a fórmula

nj

n tj

t = = =

+

= + =

=∑ ϑ ϑ( , ) ( , )

031

30

31

1 3 4

Os elementos englobados pela esfera de centro 000 são aqueles

que podem ser corrigidos para ter este valor. De forma análoga podemos fazer outra esfera com centro em 111 englobando os outros elementos, assim podemos visualizar quais elementos serão interpretados com quais valores.

Neste caso eu posso corrigir um erro ou detectar até dois erros.

Decodificação de Códigos Lineares A tarefa do decodificador é produzir o vetor código c mais provável

dado v e as propriedades estatísticas dos vetores de erros do canal. Para um CBS com probabilidade cruzada p, o número de erros

esperado em um bloco é np. Se o CCE é projetado para corrigir t erros e se np<t, então número

esperado de erros cairá no interior da esfera Hamming da palavra-código para a qual d v cH ( , ) é mínima.

Page 24: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Neste caso, o decodificador é chamado de “distância mínima”, pois este sempre irá tentar corrigir um erro tomando a menor distância, por exemplo, no cubo de Hamming, estando este erro dentro da esfera ou não.

Decodificadores CCE podem ser classificados em duas categorias. Um decodificador completo seleciona aquele c que produz d v cH ( , ) mínima. Um decodificador de distância limitada faz a mesma coisa se existe um c tal que d v c tH ( , ) ≤ (isto é, que estejam dentro da esfera Hamming) e declara falha de decodificação caso contrário.

A estratégia mais simples e mais cara é procurar em uma tabela de decodificação que contém todos os possíveis v (Decodificador de vetor-padrão).

Exemplo

Código de Repetição (6,2) (Seis bits de repetição para dois de informação)

c m m m m m md m ct

min

c

==

=

[ ])

0 1 0 1 0 1

031

(Se mudarmos teremos 3 alteracoes em

Abaixo temos todos os possíveis códigos que podem ser

transmitidos e corrigidos. São erros que possuem distância 1 dos vetores válidos.

Se chegar algum dos códigos embaixo do original entre colchetes, é

interpretado como sendo o original. Se chegar qualquer outro código não listado é pedido retransmissão.

Esta tabela é chamada de coset. A primeira coluna tem seus

elementos chamados de líderes de coset. Observe que se somarmos (Soma XOR) qualquer elemento pelo seu respectivo líder de coset obtemos o elemento entre colchetes. (Ex.: 100010+001000=101010)

Page 25: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Décima Sétima Aula 23/10/03

Decodificadores de Síndrome

Um código sistemático é um para o qual a matriz geradora é da forma

[ ]kkrk IPG ××= Onde xkP × representa a geração dos bits de paridade e kkI × é a

matriz identidade. Portanto, um código sistemático é da forma )......( 110

paridade de bits

110 −−= kr mmmcccc

Seja a matriz verificadora de paridade [ ]krT

rr PIH ×× −= onde kr

TP × é a matriz transposta de krP × . O sinal negativo não faz diferença no corpo binário, mas o conceito pede.

Para calcular e definir o vetor síndrome vamos considerar que:

[ ] 0)( =−=

== ×××

××× rkrk

rk

rrkkrk

TT PPmP

IIPmGHmHc

Definimos o vetor síndrome )...( 110 −= rssss como THvs = onde v é o vetor recebido. Lembrando-se que )( ecv += temos que:

TTTTT HeHeHeHcHecs =+=+=+= 0)(

Assim, não são necessários 2k vetores padrão (o conteúdo da tabela

coset). Podemos representar os erros através de 2k-1 de síndromes não nulas. O vetor síndrome mostra os erros de uma forma mais econômica. A ocorrência de uma síndrome indica que houve um erro, as síndromes nulas são descartadas pois assume-se que, assim, não houve erro.

Exemplo

Considerando ainda o código de repetição (6,2). Sabe-se que estes dois números entre parêntesis são os vetores base (n,k). Imaginemos dois casos em que os vetores recebidos foram:

111011101110

2

1

==

vv

Sabemos que THvs = assim, para encontrarmos os vetores

síndrome precisamos encontrar o valor de HT. Como conhecemos o código de

Page 26: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

repetição (6,2) podemos afirmar que cGm =⋅ . Por exemplo, 10 ⋅ G = 101010. Assim deduzimos que G é igual a:

=

101010010101

G

De acordo com a definição temos que:

[ ]kkrk IPG ××= assim:

=

101010010101

G

logo

= ×× 10

01 e

10100101

rrrk IP

Também temos pela definição que: [ ]kr

Trr PIH ×× −=

logo

=

101000010100100010010001

H

conseqüentemente

=

101001011000010000100001

TH

Agora basta aplicar THvs = para os dois vetores de entrada que teremos )0001(111 =⇒⋅= sHvs T e )0001(222 =⇒⋅= sHvs T .

O vetor síndrome indica que houve um erro e aponta para este,

assim somos capazes de corrigi-lo. A síndrome foi a mesma pois ambos os vetores de entrada estão no mesmo coset. Com a síndrome não precisamos mais guardar aquela tabela enorme do vetor padrão (a tabela coset), basta manter uma associação entre o decodificador de síndrome s e e (onde e é o líder do coset onde ocorreu o erro. É o valor que deve ser somado a v para termos c .

Códigos Hamming

Os códigos Hamming são uma família de códigos de correção de erros simples. São códigos perfeitos, isto é, sua redundância atende ao limite

Page 27: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

Hamming com a igualdade (isto é, knrtnr −== sendo )],,([log2 ϑ ). Um código Hamming existe para qualquer 3≥r . O comprimento de bloco de código Hamming é dado por

3,12 ≥−= rn r .

Logo, a taxa de um código Hamming é nkR = , assim:

1212−−−

= r

r rR

Os primeiros (n, k) parâmetros de código Hamming são para r=3,4 e

5, respectivamente (7,4), (15,11) e (31,26). Para construir um código Hamming de comprimento 2r – 1

começamos com a matriz verificadora de paridade H para o código sistemático. A matriz tem r linhas e n colunas. As primeiras r colunas são especificadas como a matriz identidade r x r. Para as restantes k colunas, simplesmente escolhemos as colunas tal que consistam de todos os vetores binários não-nulos de comprimento r. A ordem, por enquanto, não importa.

Exemplo

Vamos construir o Código de Hamming Sistemático (7,4). Primeiro passo, a matriz verificadora de paridade H.

=

111010011010101011001

H

Lembrando que [ ]kr

Trr PIH ×× −= e [ ]kkrk IPG ××= temos que:

=

1000111010011000101010001011

G

Tendo a matriz geradora o código está criado, basta fazermos

c mG= . Para todos os códigos Hamming dmín=3. os códigos podem ser

decodificados usando uma tabela síndrome como esta:

e s 1000000 1000100000 010

Page 28: Décima Primeira Aula 30/09/03 - FTleobravo/TT 081/apostila2.pdfDécima Primeira Aula 30/09/03 Processos de Markov e Fontes com Memória Seja o alfabeto A = {a 0, a ... Décima Terceira

0010000 0010001000 1100000100 1010000010 0110000001 111

Exemplo

Recebemos )0101101(=v , qual a mensagem enviada? Aplicando THvs = temos:

]110[

111110101011100010001

]0101101[ =

=s

Observando na tabela temos que e =[0001000] logo

]0100101[=+= evc . Como c mG= encontramos ]0101[=m .

Material elaborado por Eduardo Wolsky e digitado por Rafael Oliveira em 03/07/2003