Códigos convolucionais Luis Henrique Assumpção Lolis 29 de novembro de 2013 Luis Henrique Assumpção Lolis Códigos convolucionais 1
Conteúdo 1 Introdução e definição 2 Diagrama de árvores, de treliça e máquina de estados 3 Decodificação de códigos convolucionais Luis Henrique Assumpção Lolis Códigos convolucionais 2
Sumário 1 Introdução e definição 2 Diagrama de árvores, de treliça e máquina de estados 3 Decodificação de códigos convolucionais Luis Henrique Assumpção Lolis Códigos convolucionais 3
Introdução e definição Código com memória. Operação de convolução: Como em filtros digitais. Um código com memória M: M registros de deslocamento. Com n somadores módulo-2: n filtros digitais módulo-2. O total da fonte na entrada sendo de L bits. O numero de entradas sendo k Então a saída é de n(l + M) bits. Grandes distâncias mínimas são computadas em diferentes saídas de n(l + M) bits sem que necessariamente se aumente k ou n, mas sim M. Representação em diagrama de árvore / treliça / estados. Noção do código em feed-forward e feedback. Luis Henrique Assumpção Lolis Códigos convolucionais 4
Taxa do código: r = k L n(l + M) bits/simbolo L >> M r k n bits/símbolo Comprimento de restrição: Número de deslocamentos que um bit influi na saída. Luis Henrique Assumpção Lolis Códigos convolucionais 5
Feed-forward não sistemático. Comprimento = 3, r=1/2. Luis Henrique Assumpção Lolis Códigos convolucionais 6
Comprimento = 2, r = 2/3, k = 2, n = 3,. Não sistemático. Melhor para convolucionais. Luis Henrique Assumpção Lolis Códigos convolucionais 7
Sequências geradoras Podem ser comparados à resposta ao impulso de sistemas discretos. Convolução em módulo-2 Existem diferentes caminhos no código convolucional, diferentes respostas ao impulso. Esses caminhos são chamados de sequências geradoras. Um sistema de memória m, contém uma resposta ao impulso de até m + 1 unidades de tempo. Luis Henrique Assumpção Lolis Códigos convolucionais 8
Nesse código são 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 Assumpção Lolis Códigos convolucionais 9
A operação de convolução c (j) l = m i=0 u l i g (j) i = u l g (j) 0 + u l 1 g (j) 1 +... + u l m g m (j) Para um dado l da entrada (l pode ser visto como o passo do tempo de amostragem da entrada), as saídas são definidas como: c (1) l c (0) l = m l + m l 2 + m l 3 = m l + m l 1 + m l 2 + m l 3 Para cada amostra na entrada, tem duas na saída, sendo assim a frequência de amostragem do sistema dobra. Luis Henrique Assumpção Lolis Códigos convolucionais 10
Exercício Dado o código convolucional abaixo, determinar a taxa do código, o grau de memória comprimento de restrição-1, as sequências geradoras. Codificar a sequência u = (001101) Um código com comprimento de restrição v, recebe a notação (n, k, v) Luis Henrique Assumpção Lolis Códigos convolucionais 11
Cálculo matricial do código convolucional A matriz geradora depende do tamanho da sequência da entrada a tratar. Pode-se obter a matriz geradora a partir das sequências geradoras. Luis Henrique Assumpção Lolis Códigos convolucionais 12
Cálculo polinomial do código convolucional Os códigos convolucionais tratados por polinômios geradores: g (0) = (1111), g (0) (D) = 1 + D + D 2 + D 3 Considerando um código 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 é a multiplexação de c (1) (D) e c (2) (D): C(D) = [ c (0) (D), c (1) (D) ] C(D) = c (0) (D 2 ) + Dc (1) (D 2 ) Matriz geradora polinomial: Luis Henrique Assumpção Lolis Códigos convolucionais 13
Sumário 1 Introdução e definição 2 Diagrama de árvores, de treliça e máquina de estados 3 Decodificação de códigos convolucionais Luis Henrique Assumpção Lolis Códigos convolucionais 14
Diagrama de árvores Essas representações gráficas dos códigos convolucionais ajudam na decodificação. Elas mostram os caminhos pelos quais os dados percorreram, e qual o caminho mais provável quando existe um erro. Luis Henrique Assumpção Lolis Códigos convolucionais 15
Árvore do código Referente ao código do slide 6 Luis Henrique Assumpção Lolis Códigos convolucionais 16
Diagrama em treliça A treliça ilustra o fato que o sistema é uma máquina de estados finita. Mostra que quando uma entrada repete m + 1 vezes ou mais, a saída não muda de valor. A transição quando a entrada é 0 é uma linha sólida. A transição quando a entrada é 1 é uma linha pontilhada. Os estados são indicados em a, b, c e d. Para uma palavra de L entradas, o código tem L + K estágios, onde K é o comprimento de restrição. Luis Henrique Assumpção Lolis Códigos convolucionais 17
Diagrama em treliça Luis Henrique Assumpção Lolis Códigos convolucionais 18
Máquina de estados Dependendo do estado de partida e da entrada (0 ou 1) a transição leva a um outro estado (descrito entre a, b, c, d), sendo as combinações binárias (00,10,01,11) respectivamente. O estado são os K 1 bits contidos nos registros de deslocamento, sendo que o bit que chega é o que define a transição de estado. Estado Descrição binária a 00 b c 10 01 d 11 Luis Henrique Assumpção Lolis Códigos convolucionais 19
Máquina de estados - 2 Luis Henrique Assumpção Lolis Códigos convolucionais 20
Exercício Faça a representação em treliça e em máquina de estados para o código do slide 9 Desenhe o caminho percorrido em treliça do código do slide 9 quando a sequência de entrada é m = (101011) partindo do estado (00). Luis Henrique Assumpção Lolis Códigos convolucionais 21
Luis Henrique Assumpção Lolis Códigos convolucionais 22
Luis Henrique Assumpção Lolis Códigos convolucionais 23
Luis Henrique Assumpção Lolis Códigos convolucionais 24
Sumário 1 Introdução e definição 2 Diagrama de árvores, de treliça e máquina de estados 3 Decodificação de códigos convolucionais Luis Henrique Assumpção Lolis Códigos convolucionais 25
Decodificação de códigos convolucionais Essencialmente dois algorítmos Viterbi - Máxima verosimilhança BCJR - Máxima probabilidade à posteriori O foco é Viterbi. Luis Henrique Assumpção Lolis Códigos convolucionais 26
Base teórica estatística para decodificação Correspondência biunívoca entre m e c r c Quando c estimado ĉ é tal que ĉ = c, a mensagem estimada ˆm é tal que ˆm = m. A regra para encontrar ĉ que miniminiza a probabilidade de erro. Luis Henrique Assumpção Lolis Códigos convolucionais 27
Revisando a probabilidade condicional A probabilidade condicional entre a sequência r e a sequencia c: N p(r c) = p(r i c i) Probabilidade logarítmica: log p(r c) = i=1 N log p(r i c i) i=1 Para o canal binário simétrico: { p, seri c p(r c) = i 1 p, ser i = c i Considerando que p(r) e (c) se difiram em d posições. d é a distância de Hamming entre os dois vetores. Então a função de densidade logarítmica fica: log p(r c) = d log p + (N d) log(1 p) = d log ( p 1 p ) + N log(1 p) O mais próximo c de r é o mais provável. Decodificar então significa primeiramente definir o c mais provável. Luis Henrique Assumpção Lolis Códigos convolucionais 28
Decodificador Viterbi No esquema en treliça nem todas as transições são possíveis. Cada transição tem um valor definido na saída. Tendo em vista o caminho percorrido ao longo das transições pelo sinal recebido. O caminho possível (ou seja ĉ) que contem a menor distância do r recebido é o mais provável. Aplicando Viterbi: 1 Partindo do estado 0, compara-se a saída de cada possível transição e os bits recebidos. 2 Soma-se a distância de Hamming entre os bits recebidos e as possíveis saídas de cada transição. 3 Vai aplicando essa operação passo a passo até haver dois caminhos que convergem no mesmo ponto. O caminho sobrevivente é aquele que teve a menor distância de Hamming acumulada. 4 Vai-se repetindo a operação até terminar os dados recebidos. Vários caminhos possíveis podem sobrar. Sobra aquele que tenha a menor distância de Hamming acumulada. Luis Henrique Assumpção Lolis Códigos convolucionais 29
Exemplo Decodificando r = (0100010000) quando na verdade c = (0000000000). O código de referencia é ilustrado no slide 6, cujas as transições são ilustradas no diagrama em treliça do slide 16 Separando as possíveis transições partindo de cada estado. Luis Henrique Assumpção Lolis Códigos convolucionais 30
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Calculando as distâncias de Hamming das transições Luis Henrique Assumpção Lolis Códigos convolucionais 31
Distância livre e ganho de codificação Para corrigir t erros: a distância livre d livre > 2t Usando o código em treliça se observa o peso das transições (11) > D 2 L, (01)(10) > DL, (00) > L, L o número de entradas do código. Para nós L = 1. O digrama de estados modificado considera o sinal saindo e voltando para o estado a, definindo a 0 e a 1. Usando a treliça ou diagrama de estados, se definem as transições em função de L e D. Para o código do slide?? Luis Henrique Assumpção Lolis Códigos convolucionais 32
O sistema de equações que liga cada entrada e saída dos nós b = D 2 La 0 + Lc c = DLb + DLc d = DLb + DLd a 1 = D 2 Lc A função de transferência da distância é: D 5 L 3 T (D, L) = 1 DL(1 + L) Em expansão binomial: T (D, L) = D 5 L 3 i=0 (DL(1 + L)) i T (D, 1) = D 5 + 2D 6 + 4D 7 +... A potência do primeiro termo é a distância livre, d livre = 5 Luis Henrique Assumpção Lolis Códigos convolucionais 33
Ganho assintótico do ganho Uma vez conhecida a distância mínima calcula-se o ganho assintótico do código para o canal binário gaussiano; Canal binário AWGN. r a taxa do código. G a = 10 log 10 (d free r) db Luis Henrique Assumpção Lolis Códigos convolucionais 34