C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C...

42
odigos convolucionais Luis Henrique Assump¸ ao Lolis 29 de novembro de 2013 Luis Henrique Assump¸ ao Lolis odigos convolucionais 1

Transcript of C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C...

Page 1: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Codigos convolucionais

Luis Henrique Assumpcao Lolis

29 de novembro de 2013

Luis Henrique Assumpcao Lolis Codigos convolucionais 1

Page 2: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Conteudo

1 Introducao e definicao

2 Diagrama de arvores, de trelica e maquina de estados

3 Decodificacao de codigos convolucionais

Luis Henrique Assumpcao Lolis Codigos convolucionais 2

Page 3: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Sumario

1 Introducao e definicao

2 Diagrama de arvores, de trelica e maquina de estados

3 Decodificacao de codigos convolucionais

Luis Henrique Assumpcao Lolis Codigos convolucionais 3

Page 4: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Introducao e definicao

Codigo com memoria.

Operacao de convolucao: Como em filtros digitais.

Um codigo com memoria M : M registros de deslocamento.

Com n somadores modulo-2: n filtros digitais modulo-2.

O total da fonte na entrada sendo de L bits.

O numero de entradas sendo k

Entao a saıda e de n(L+M) bits.

Grandes distancias mınimas sao computadas em diferentessaıdas de n(L+M) bits sem que necessariamente se aumentek ou n, mas sim M .

Representacao em diagrama de arvore / trelica / estados.

Nocao do codigo em feed-forward e feedback.

Luis Henrique Assumpcao Lolis Codigos convolucionais 4

Page 5: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Taxa do codigo:

r =k · L

n(L+M)bits/simbolo

L >> M ⇒ r ' k

nbits/sımbolo

Comprimento de restricao: Numero de deslocamentos que umbit influi na saıda.

Luis Henrique Assumpcao Lolis Codigos convolucionais 5

Page 6: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Comprimento = 3, r=1/2.

Feed-forward nao sistematico.

Luis Henrique Assumpcao Lolis Codigos convolucionais 6

Page 7: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Comprimento = 2, r = 2/3, k = 2, n = 3, .

Nao sistematico. Melhor para convolucionais.Luis Henrique Assumpcao Lolis Codigos convolucionais 7

Page 8: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Sequencias geradoras

Podem ser comparados a resposta ao impulso de sistemasdiscretos.

Convolucao em modulo-2

Existem diferentes caminhos no codigo convolucional,diferentes respostas ao impulso. Esses caminhos saochamados de sequencias geradoras.

Um sistema de memoria m, contem uma resposta ao impulsode ate m+ 1 unidades de tempo.

Luis Henrique Assumpcao Lolis Codigos convolucionais 8

Page 9: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Nesse codigo sao duas sequencias geradoras.

g(0) = (g(0)0 , g

(0)1 , . . . , g

(0)m )

g(1) = (g(1)0 , g

(1)1 , . . . , g

(1)m )

Comprimento = 4, r=1/2.

g(0) = (1011) = 1 + 0z−1 + 1z−2 + 1z−3

g(1) = (1111) = 1 + 1z−1 + 1z−2 + 1z−3

Luis Henrique Assumpcao Lolis Codigos convolucionais 9

Page 10: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

A operacao de convolucao

c(j)l =

m∑i=0

ul−ig(j)i = ulg

(j)0 + ul−1g

(j)1 + . . .+ ul−mg(j)m

Para um dado l da entrada (l pode ser visto como o passo do tempo deamostragem da entrada), as saıdas sao definidas como:

c(0)l = ml +ml−2 +ml−3

c(1)l = ml +ml−1 +ml−2 +ml−3

Para cada amostra na entrada, tem duas na saıda, sendo assim afrequencia de amostragem do sistema dobra.

Luis Henrique Assumpcao Lolis Codigos convolucionais 10

Page 11: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Exercıcio

Dado o codigo convolucional abaixo, determinar a taxa do codigo, o graude memoria comprimento de restricao-1, as sequencias geradoras.Codificar a sequencia u = (001101)Um codigo com comprimento de restricao v, recebe a notacao (n, k, v)

Luis Henrique Assumpcao Lolis Codigos convolucionais 11

Page 12: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculo matricial do codigo convolucional

A matriz geradora depende do tamanho da sequencia da entrada a tratar.

Pode-se obter a matriz geradora a partir das sequencias geradoras.

Luis Henrique Assumpcao Lolis Codigos convolucionais 12

Page 13: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculo polinomial do codigo convolucional

Os codigos convolucionais tratados por polinomios geradores:

g(0) = (1111), g(0)(D) = 1 +D +D2 +D3

Considerando um codigo r = 1/2 com g(0) e g(1):

c(0)(D) = m(D)g(0)(D)c(1)(D) = m(D)g(1)(D)

E o resultado final e a multiplexacao de c(1)(D) e c(2)(D):

C(D) =[c(0)(D), c(1)(D)

]C(D) = c(0)(D2) +Dc(1)(D2)

Matriz geradora polinomial:

Luis Henrique Assumpcao Lolis Codigos convolucionais 13

Page 14: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Sumario

1 Introducao e definicao

2 Diagrama de arvores, de trelica e maquina de estados

3 Decodificacao de codigos convolucionais

Luis Henrique Assumpcao Lolis Codigos convolucionais 14

Page 15: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Diagrama de arvores

Essas representacoes graficas dos codigos convolucionais ajudam nadecodificacao. Elas mostram os caminhos pelos quais os dadospercorreram, e qual o caminho mais provavel quando existe um erro.

Luis Henrique Assumpcao Lolis Codigos convolucionais 15

Page 16: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Arvore do codigo

Referente ao codigo do slide 6

Luis Henrique Assumpcao Lolis Codigos convolucionais 16

Page 17: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Diagrama em trelica

A trelica ilustra o fato que o sistema e uma maquina de estados finita.Mostra que quando uma entrada repete m+ 1 vezes ou mais, a saıda naomuda de valor.

A transicao quando a entrada e ”0”e uma linha solida. A transicaoquando a entrada e ”1”e uma linha pontilhada. Os estados sao indicadosem a, b, c e d.

Para uma palavra de L entradas, o codigo tem L+K estagios, onde K eo comprimento de restricao.

Luis Henrique Assumpcao Lolis Codigos convolucionais 17

Page 18: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Diagrama em trelica

Luis Henrique Assumpcao Lolis Codigos convolucionais 18

Page 19: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Maquina de estados

Dependendo do estado de partida e da entrada (0 ou 1) a transicao leva aum outro estado (descrito entre a, b, c, d), sendo as combinacoes binarias(00,10,01,11) respectivamente.O estado sao os K − 1 bits contidos nos registros de deslocamento, sendoque o bit que chega e o que define a transicao de estado.

Estado Descricao binariaa 00b 10c 01d 11

Luis Henrique Assumpcao Lolis Codigos convolucionais 19

Page 20: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Maquina de estados - 2

Luis Henrique Assumpcao Lolis Codigos convolucionais 20

Page 21: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Exercıcio

Faca a representacao em trelica e em maquina de estados para o codigodo slide 9

Desenhe o caminho percorrido em trelica do codigo do slide 9 quando asequencia de entrada e m = (101011) partindo do estado (00).

Luis Henrique Assumpcao Lolis Codigos convolucionais 21

Page 22: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Luis Henrique Assumpcao Lolis Codigos convolucionais 22

Page 23: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Luis Henrique Assumpcao Lolis Codigos convolucionais 23

Page 24: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Luis Henrique Assumpcao Lolis Codigos convolucionais 24

Page 25: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Sumario

1 Introducao e definicao

2 Diagrama de arvores, de trelica e maquina de estados

3 Decodificacao de codigos convolucionais

Luis Henrique Assumpcao Lolis Codigos convolucionais 25

Page 26: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Decodificacao de codigos convolucionais

Essencialmente dois algorıtmos

Viterbi - Maxima verosimilhanca

BCJR - Maxima probabilidade a posteriori

O foco e Viterbi.

Luis Henrique Assumpcao Lolis Codigos convolucionais 26

Page 27: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Base teorica estatıstica para decodificacao

Correspondencia biunıvoca entre m e c

r 6= c

Quando c estimado c e tal que c = c, a mensagem estimada m e tal quem = m.

A regra para encontrar c que miniminiza a probabilidade de erro.

Luis Henrique Assumpcao Lolis Codigos convolucionais 27

Page 28: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Revisando a probabilidade condicional

A probabilidade condicional entre a sequencia r e a sequencia c:

p(r|c) =N∏i=1

p(ri|ci)

Probabilidade logarıtmica:

log p(r|c) =N∑i=1

log p(ri|ci)

Para o canal binario simetrico:

p(r|c) ={

p, seri 6= ci1− p, seri = ci

Considerando que p(r) e (c) se difiram em d posicoes. d e a distancia deHamming entre os dois vetores. Entao a funcao de densidade logarıtmicafica:

log p(r|c) = d log p+ (N − d) log(1− p)

= d log

(p

1− p

)+N log(1− p)

O mais proximo c de r e o mais provavel. Decodificar entao significaprimeiramente definir o c mais provavel.

Luis Henrique Assumpcao Lolis Codigos convolucionais 28

Page 29: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Decodificador Viterbi

No esquema en trelica nem todas as transicoes sao possıveis. Cadatransicao tem um valor definido na saıda.

Tendo em vista o caminho percorrido ao longo das transicoes pelo sinalrecebido. O caminho possıvel (ou seja c) que contem a menor distanciado r recebido e o mais provavel.

Aplicando Viterbi:

1 Partindo do estado 0, compara-se a saıda de cada possıveltransicao e os bits recebidos.

2 Soma-se a distancia de Hamming entre os bits recebidos e aspossıveis saıdas de cada transicao.

3 Vai aplicando essa operacao passo a passo ate haver doiscaminhos que convergem no mesmo ponto. O caminhosobrevivente e aquele que teve a menor distancia de Hammingacumulada.

4 Vai-se repetindo a operacao ate terminar os dados recebidos.Varios caminhos possıveis podem sobrar. Sobra aquele quetenha a menor distancia de Hamming acumulada.

Luis Henrique Assumpcao Lolis Codigos convolucionais 29

Page 30: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Exemplo

Decodificando r = (0100010000) quando na verdade c = (0000000000).O codigo de referencia e ilustrado no slide 6 , cujas as transicoes saoilustradas no diagrama em trelica do slide 16

Separando as possıveis transicoes partindo de cada estado.

Luis Henrique Assumpcao Lolis Codigos convolucionais 30

Page 31: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 32: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 33: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 34: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 35: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 36: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 37: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 38: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 39: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Calculando as distancias de Hamming das transicoes

Luis Henrique Assumpcao Lolis Codigos convolucionais 31

Page 40: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Distancia livre e ganho de codificacao

Para corrigir t erros: a distancia livre dlivre > 2tUsando o codigo em trelica se observa o peso das transicoes(11)− > D2L, (01)(10)− > DL, (00)− > L, L o numero de entradas docodigo. Para nos L = 1.O digrama de estados modificado considera o sinal saindo e voltando parao estado a, definindo a0 e a1. Usando a trelica ou diagrama de estados,se definem as transicoes em funcao de L e D. Para o codigo do slide ??

Luis Henrique Assumpcao Lolis Codigos convolucionais 32

Page 41: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

O sistema de equacoes que liga cada entrada e saıda dos nos

b = D2La0 + Lcc = DLb+DLcd = DLb+DLda1 = D2Lc

A funcao de transferencia da distancia e:

T (D,L) =D5L3

1−DL(1 + L)

Em expansao binomial:

T (D,L) = D5L3∞∑i=0

(DL(1 + L))i

T (D, 1) = D5 + 2D6 + 4D7 + . . .

A potencia do primeiro termo e a distancia livre, dlivre = 5

Luis Henrique Assumpcao Lolis Codigos convolucionais 33

Page 42: C odigos convolucionais - Professor Dr. Luis Henrique ... · Luis Henrique Assump˘c~ao Lolis C odigos convolucionais 29. Exemplo Decodi cando r = (0100010000) quando na verdade c

Ganho assintotico do ganho

Uma vez conhecida a distancia mınima calcula-se o ganho assintotico docodigo para o canal binario gaussiano;

Canal binario AWGN.

Ga = 10 log10 (dfreer) dB

r a taxa do codigo.

Luis Henrique Assumpcao Lolis Codigos convolucionais 34