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.
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
+
+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)
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
+
+
+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)
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
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
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
+
+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
Codificador Sistemático Feedforward, R = 2/3
Realizações Equivalentes de um Codificador com R = 1/3
Realizações Equivalentes de um Codificador com R = 2/3
+
+v 1
v 2
u1
v=( v 1v 2)
3232 11 DDDDDDG
Codificador Convolucional (2, 1, 3)
Inversor do Codificador Convolucional (2, 1, 3)
+
+
+v 1
v 2
v 3
u
u1
u2
v
11
11D
DDDDG
Codificador Convolucional (3, 2, 2)
Inversor do Codificador Convolucional (3, 2, 2)
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
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
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
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
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
Treliça do Código Convolucional (2, 1, 3)
Seqüência Codificada
Decodificação Seqüencial
Decodificação Seqüencial
Decodificação Seqüencial
Decodificação Seqüencial
Desempenho de Esquemas de Codificação Padrões
Treliça de um Código Convolucional (3, 1, 2) com h = 5
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
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
Algoritmo de Viterbi para um DMC
Algoritmo de Viterbi para um BSC
Desempenho de Códigos Convolucionais
Desempenho de Códigos Convolucionais
Melhores Códigos Convolucionais Conhecidos de Taxa 1/2 e 1/3