CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

36
CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007

Transcript of CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Page 1: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

CÓDIGOS CORRETORES DE ERROS

CÓDIGOS CONVOLUCIONAIS

Evelio M. G. Fernández - 2007

Page 2: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Códigos de Bloco: (n, k)

n dígitos codificados = função dos k dígitos (informação) da entrada

no instante atual.

Código Convolucional: (n, k, m)

n dígitos codificados = função dos k dígitos de entrada e de K dígitos

de informação guardados em uma memória (conjunto de SR’s: shift

register).

Estrutura e Codificação de Códigos Convolucionais

Page 3: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

+

+v 1

v 2

u1

v=( v 1v 2)

u1: seqüência de entrada, k = 1.

v = (v1v2): seqüência codificada, n = 2.

m: ordem do codificador, m = 3

Memória: 1 SR de 3 estágios (3 FFD)

Taxa: R = 1/2

Codificador Convolucional C1: (2, 1, 3)

Page 4: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

2121

11

22

12

20

10

2121

11

21

11

20

10

2122

12

21

11

20

10

mmmmmm

mmmm

mm

gggggggggggggggg

gggggggg

G

ou

m

m

m

GGGGGGGG

GGGG

G210

210

210

onde: 21iii ggG

Equação de codificação:

Guv

Equação de Codificação em forma de Matrizes

Page 5: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

+

+

+v 1

v 2

v 3

u

u1

u2

v

u = (u1u2): seqüência de entrada, k = 2.

v = (v1v2v3): seqüência codificada, n = 3.

Memória: 1 SR de um estágio, v1 = v2 = 1 (1FFD) em paralelo com a entrada.

Ordem do codificador:

1max2,1

i

ivm , vi = tamanho do i-ésimo SR, i = 1, 2, , k

Taxa: R = 2/3

Codificador Convolucional C2: (3, 2, 1)

Page 6: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

3,2

2,2

1,2

31,1

21,1

11,1

30,2

20,2

10,2

3,1

2,1

1,1

31,1

21,1

11,1

30,1

20,1

10,1

3,2

2,2

1,2

31,2

21,2

11,2

30,2

20,2

10,2

3,1

2,1

1,1

31,1

21,1

11,1

30,1

20,1

10,1

mmmmmm

mmmmmm

mmm

mmm

ggggggggg

ggggggggg

ggggggggg

ggggggggg

G

Equação de codificação:

Guv

Equação de Codificação em forma de Matrizes

Page 7: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Em geral, para codificadores convolucionais (n, k, v)

Seqüência de informação: ,,,, 2121

11

20

10

21ll uuuuuuuuu

Seqüência codificada: ,,,, 32131

21

11

30

20

10

321lll vvvvvvvvvvvvv

Seqüência geradora da saída j relativa à entrada i: jim

ji

ji

j

igggg ,,, 10

Equação de codificação: Guv

ml

ml

GGGG

GGGG

G 10

10

onde:

nklklkl

nlll

nlll

l

ggg

ggg

ggg

G

21

222

12

121

11

Matriz Geradora para Codificadores Convolucionais

Page 8: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Constraint Length

• O constraint length v de um codificador convolucional é definido como

• Um codificador convolucional com taxa R = k/n e constraint length v é chamado de codificador (n, k, v)

• Um código convolucional (n, k, v) é o conjunto de todas as seqüências de saída (palavras-código) produzidas por um codificador (n, k, v) é o espaço das linhas da matriz G

ki

ivv1

Page 9: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

+

+v 1

v 2

u1

v=( v 1v 2)

n = 2, k = 1, v= 3, m = 3

Seqüências geradoras Polinômios geradores

g1 = (1011) 321 1)( DDDg

g2 = (1111) 322 1)( DDDDg

Mensagem:

u = (10111) 4321)( DDDDu

Código C1: (2, 1, 3): Análise do Domínio da Transformada

Page 10: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Codificador Sistemático Feedforward, R = 2/3

Page 11: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Realizações Equivalentes de um Codificador com R = 1/3

Page 12: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Realizações Equivalentes de um Codificador com R = 2/3

Page 13: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

+

+v 1

v 2

u1

v=( v 1v 2)

3232 11 DDDDDDG

Codificador Convolucional (2, 1, 3)

Page 14: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Inversor do Codificador Convolucional (2, 1, 3)

Page 15: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

+

+

+v 1

v 2

v 3

u

u1

u2

v

11

11D

DDDDG

Codificador Convolucional (3, 2, 2)

Page 16: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Inversor do Codificador Convolucional (3, 2, 2)

Page 17: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Codificador convolucional circuito seqüencial (máquina de estados finita).

operação descrita por diagramas de estados (treliça, árvore, etc)

EXEMPLO

+

v 1

v 2

u

v=( v 1v 2)

Código (2, 1, 1)

Propriedades Estruturais de Códigos Convolucionais

Page 18: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Diagrama de Estados

0 1

1/11

0/01

1/10 0/00

# de estados = 2v = 2

Diagrama treliça

0/00

1/10

0

1

0

1

Propriedades Estruturais de Códigos Convolucionais

Page 19: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

uuvvdd HCvv

free

,,min,

onde:

vv , : seqüências codificadas correspondentes à uu e .

vvdH , : distância de Hamming entre duas seqüências quaisquer em C.

Para código linear,

)(),0(0 vwvdv HH

onde )(vwH : peso de Hamming de v.

Portanto:

0,);(min)( uGuvCwCd Hfree

código linear

Distância Livre, dfree

Page 20: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

lji

ljilji ZYXAZYXT

,,,,),,(

onde:

i = peso de Hamming de um caminho (seqüência codificada); i = wH(v).

j = peso de Hamming de um caminho de entrada (seqüência u); j = wH(u).

l = comprimento dos caminhos (entrada ou saída) em arcos (diagrama de

estados) ou em ramos (diagrama treliça).

Ai,j,l = número de caminhos com pesos i e j e comprimento igual a l.

Função Distribuição de Pesos

Page 21: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Codificador (2, 1, 1)

+

v 1

v 2

u

v=( v 1v 2)

Diagrama de Estados:

0 1

1/11

0/01

1/10 0/00

Diagrama de Estados Aumentado:

0 1XZX 2YZ

0

XYZ

EstadoInicial

EstadoFinal

Diagrama de Estados Aumentado

Page 22: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Treliça do Código Convolucional (2, 1, 3)

Page 23: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Seqüência Codificada

Page 24: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Decodificação Seqüencial

Page 25: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Decodificação Seqüencial

Page 26: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Decodificação Seqüencial

Page 27: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Decodificação Seqüencial

Page 28: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Desempenho de Esquemas de Codificação Padrões

Page 29: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Treliça de um Código Convolucional (3, 1, 2) com h = 5

Page 30: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Algoritmo de Viterbi

A cada unidade de tempo:

• Somar 2k métricas de ramo às métricas dos caminhos previamente armazenados

• Comparar as métricas de todos os 2k caminhos que chegam a cada estado

• Selecionar o caminho com a maior métrica (sobrevivente)

• Armazenar o caminho sobrevivente e sua métrica

Page 31: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Algoritmo de Viterbi

• Passo 1: , calcular a métrica parcial para o único caminho entrando a cada estado. Armazenar o caminho (sobrevivente) e sua métrica para cada estado.

• Passo 2: , calcular a métrica parcial para todos os 2k caminhos que entram num estado somando a métrica de ramo que entra no estado com a métrica do sobrevivente no instante anterior. Para cada estado, comparar as métricas de todos os 2k caminhos que entram nele, selecionar o de maior métrica, armazenar este caminho e sua métrica e eliminar todos os outros caminhos.

• Passo 3: Se , repetir passo 2. Caso contrário: FIM.

mt

1tt

mht

Page 32: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Algoritmo de Viterbi para um DMC

Page 33: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Algoritmo de Viterbi para um BSC

Page 34: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Desempenho de Códigos Convolucionais

Page 35: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Desempenho de Códigos Convolucionais

Page 36: CÓDIGOS CORRETORES DE ERROS CÓDIGOS CONVOLUCIONAIS Evelio M. G. Fernández - 2007.

Melhores Códigos Convolucionais Conhecidos de Taxa 1/2 e 1/3