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

Upload: internet

Post on 17-Apr-2015

140 views

Category:

Documents


6 download

TRANSCRIPT

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