RT001 - Teoria Da Informacao e Codificacao Parte 3 - 2024
RT001 - Teoria Da Informacao e Codificacao Parte 3 - 2024
RT001 - Teoria Da Informacao e Codificacao Parte 3 - 2024
RT001
4.1. INTRODUÇÃO
• Além dos Códigos de Blocos Lineares, os Códigos Convolucionais compõem outra grande família de códigos
corretores de erros.
• Considere o bloco de codificação apresentado na Figura 1, que representa um codificador convolucional. A
mensagem m a ser codificada é representada pela sequência m = m1, m2, ... , mi, ... , onde cada mi representa um
bit e i é o índice correspondente ao tempo.
• Suponha que mi assuma os valores zero ou um de forma equiprovável e que a presença de um ou outro seja
estatisticamente independente, ou seja, o bit presente não depende de seu predecessor nem influencia seu sucessor.
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
4.1. INTRODUÇÃO
• O codificador transforma cada sequência m em uma única sequência código c = G(m). A sequência U pode ser
segmentada em uma sequência de palavras ramos: c = c1, c2, ... , ci , ... Cada palavra ramo ci é um símbolo código
binário, frequentemente chamado de símbolo do canal, bits do canal ou bits códigos. Ao contrário dos bits da
mensagem de entrada, os bits dos símbolos códigos não são independentes.
• Isto significa que embora uma sequência m defina uma única sequência c, uma característica chave dos códigos
convolucionais é que um elemento mi de uma sequência de entrada m não é suficiente para definir seu símbolo
código associado ci em U, uma vez que a codificação de cada elemento mi não é apenas função do próprio mi, mas
é também do elemento mi-1 que o precedeu.
• Um codificador convolucional genérico, mostrado na Figura a seguir, é constituído de um registrador de
deslocamento de kK estágios e somadores módulo-2, onde K determina a extensão de influência, ou profundidade
do código. A profundidade influência de um código convolucional é definida como sendo o máximo número de
bits codificados que podem ser afetados por um único bit de entrada.
• A cada unidade de tempo, k bits são deslocados para os primeiros k estágios do registrador; todos os bits no
registrador são deslocados k bits para a direita e, as saídas dos n somadores são sequencialmente amostradas para a
obtenção do símbolo código ou bits códigos. Uma vez que n bits códigos são obtidos na saída para cada grupo de
k bits de mensagem, a taxa do código é k/n bits de mensagem por bits códigos, onde k < n.
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
4.1. INTRODUÇÃO
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
• Para descrever um código convolucional é necessário caracterizar a função de codificação G(m) de tal forma que,
dada uma sequência de entrada m, seja possível determinar a saída codificada c.
• Considere o codificador convolucional onde a cada instante de tempo, um bit de entrada ocupa a posição mais a
esquerda do registrador de deslocamento (k = 1). Como o codificador possui dois somadores módulo-2, para cada
bit que entra no codificador, dois bits códigos são gerados na saída pela amostragem dos resultados dos dois
somadores. Logo este codificador gera um código de taxa k/n = 1/2, com profundidade K = 3.
• Pode-se determinar a resposta ao impulso de um codificador convolucional, fazendo um único "1" atravessá-lo
desde o primeiro estágio do registrador de deslocamento até o último.
• Para o codificador da Figura, a resposta ao impulso pode ser obtida de acordo com a Tabela abaixo.
1 1 0 0 11
2 0 1 0 10
3 0 0 1 11
1 0 0
CONTEÚDO DOS
DESLOCAMENTO SAÍDA
REGISTRADORES
1 1 0 0 11
11
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
0 1 0
CONTEÚDO DOS
DESLOCAMENTO SAÍDA
REGISTRADORES
1 1 0 0 11
2 0 1 0 10
10 11
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
0 0 1
CONTEÚDO DOS
DESLOCAMENTO SAÍDA
REGISTRADORES
1 1 0 0 11
11 10 11 2 0 1 0 10
3 0 0 1 11
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
• Um codificador convolucional pertence a uma classe de dispositivos conhecidos como máquinas de estado finito,
que é o nome genérico para máquinas que tem memória dos sinais passados.
• O termo finito refere-se ao fato de que existe apenas um número de estados único e finito que a máquina pode
gerar.
• Em um sentido amplo, um estado consiste de uma pequena quantidade de informação que, junto com a
informação presente na entrada da máquina, é capaz de determinar a saída.
• Os estados fornecem algum conhecimento de eventos passados e o restrito conjunto de possíveis saídas no futuro.
• Um estado futuro fica restringido por um estado passado. Para um codificador convolucional com taxa 1/n, o
estado atual dado pelo tempo ti é representado pelo conteúdo dos (K – 1) estágios mais a direita, conforme
mostrado na Figura a seguir. O estado representado pelo tempo ti + 1 é o estado futuro.
• O conhecimento do estado e da próxima entrada é necessário e suficiente para determinar a próxima saída.
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
4.2.4. DIAGRAMA DE
ESTADOS
• A Figura apresenta o diagrama de estados completo.
Tabela
Conteúdos dos
Entrada mi Estado em ti Estado em ti + 1 Saída em ti c1 c2
registradores
0 000 00 00 00
1 100 00 10 11
0 010 10 01 10
1 110 10 11 01
0 011 11 01 01
1 111 11 11 10
0 001 01 00 11
1 101 01 10 00
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
• No diagrama de treliça tem-se um histórico de entradas, transições e saídas. A Figura a seguir apresenta o diagrama de treliça
para o codificador apresentado anteriormente. Neste diagrama, os estados são representados pelos níveis horizontais e as
entradas e saídas são representadas pela mesma convenção utilizada no diagrama de estados, ou seja, mi/u1u2, que são colocados
sobre cada braço da treliça, que por sua vez, representa uma transição.
• A mensagem m = 1101 estabelece, no diagrama de treliça, a trajetória mostrada na Figura a seguir, resultando, como era de se
esperar, nas saídas 11 10 00 01. Note que para esvaziar os registradores do codificador, mais dois zeros na entrada são
necessários, resultando em uma saída complementar igual a 01 11. Assim, a sequência de saída completa para a mensagem m
= 1101 torna-se 11 10 00 01 01 11. Este resultado é rigorosamente igual aos resultados apresentados anteriormente.
• O algoritmo de Viterbi é um algoritmo de máxima verossimilhança com baixa carga computacional em função da
utilização da estrutura dos diagramas de treliça dos códigos convolucionais.
• A vantagem da decodificação de Viterbi, comparado com a decodificação por força bruta, é que a complexidade
de um decodificador não é função do número de símbolos da sequência código, mas função de uma medida de
similaridade ou distância entre o sinal recebido em um tempo ti e todos os braços da treliça que entram em cada
estado no tempo ti.
• Quando dois braços entram no mesmo estado em um tempo ti, o que possuir melhor métrica ou maior semelhança
com o sinal recebido é escolhido e chamado de caminho sobrevivente.
• Existem, basicamente, duas distâncias que podem ser utilizadas no algoritmo de Viterbi para a medida de
similaridade entre a sequência recebida pelo decodificador e as sequências possíveis sobre a treliça:
• A distância de Hamming é utilizada em um processo de decisão chamado de decisão abrupta (hard decision)
• A distância Euclidiana é utilizada em um processo de decisão chamado de decisão suave (soft decision)
• Neste curso é abordado a decisão abrupta pela simplicidade e baixa carga computacional.
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
• Passo 2: A distância de Hamming do próximo par de bits da sequência código (10) é comparada com as
distâncias de Hamming das transições possíveis a partir dos estados alcançados após o passo anterior. As
distâncias de Hamming encontradas são somadas àquelas obtidas nas transições anteriores. Veja Figura.
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
• Passo 3: O mesmo procedimento apresentado no Passo 2 é repetido para o próximo par da sequência código
(10). Note que neste terceiro passo alguns dos estados são alcançados por dois caminhos diferentes. O
caminho sobrevivente deve ser aquele que apresenta a menor distância de Hamming acumulada. Na Figura, os
caminhos sobreviventes estão representados por uma linha mais espessa.
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
01
0/00 (2)
1/11 (2)
0/11 (3)
1/00
(4)
0/10
(3)
1/01
(3)
0/01
1/10 (2)
(4)
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
0/10 0/10
(3) (5)
1/01 1/01
(3) (1)
0/01 0/01
(4) (4)
4 CODIFICAÇÃO DE CANAL: CÓDIGOS CONVOLUCIONAIS
• Após a análise do último par de bits recebidos, o caminho sobrevivente aponta uma distância de Hamming
acumulada igual a 1. Este resultado mostra que a sequência decodificada com maior probabilidade de ter sido a
sequência transmitida é a sequência 11 10 00 01 01 11, correspondente a mensagem m = 101100. Neste caso a
sequência recebida apresenta um erro em relação à sequência decodificada, correspondente à distância de
Hamming acumulada igual a 1.
Obrigado!