Codificação
Convolucional
Codificação Convolucional
• Palavra-código 𝑽 é dada pela convolução da sequência
de entrada 𝑼 com as respostas ao impulso do codificador
• Codificação (n,k,m)
– n = número de linhas multiplexadas na saída
– k = número de linhas demultiplexadas na entrada
– m = número de valores anteriores da entrada utilizados no
codificador
Demux Codificador Mux
U V
• Definições:
–
𝑼 = 𝑢
0, 𝑢
1, 𝑢
2, … = Sequência de informação
–
𝑽
(1)= 𝑣
0(1), 𝑣
1(1), 𝑣
2(1), … = Sequencia de saída 1
–
𝑽
(2)= 𝑣
0(2), 𝑣
1(2), 𝑣
2(2), … = Sequencia de saída 2
U V(2) V V(1) = Atraso (Z-1) = Somador módulo 2Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
• Sequencia de saída do codificador 𝑽
(1)
e 𝑽
(2)
:
convolução de 𝑼 com as respostas ao impulso do
codificador 𝒈
(1)
e 𝒈
(2)
• Para se obter as respostas ao impulso de um
codificador convolucional, faz-se 𝑼 = [1, 0,0,0, … ] e
colhe-se a saída
– Como o codificador tem 𝑚 estágios, a resposta ao impulso
consiste de 𝑚 + 1 amostras
𝒈
(1)= 𝑔
0(1), 𝑔
1(1), 𝑔
2(1), … , 𝑔
𝑚(1)= [1,0,1,1]
𝒈
(2)= 𝑔
0(2), 𝑔
1(2), 𝑔
2(2), … , 𝑔
𝑚(2)= [1,1,1,1]
Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
• Equações da codificação:
𝑽
(1)= 𝑼 ∗ 𝒈
(1)𝑽
(2)= 𝑼 ∗ 𝒈
2• Cada elemento:
𝑣
𝑙(𝑗)= 𝑢
𝑙−𝑖𝑔
𝑖(𝑗) 𝑚 𝑖=0= 𝑢
𝑙𝑔
0(𝑗)+ 𝑢
𝑙−1𝑔
1(𝑗)+ … + 𝑢
𝑙−𝑚𝑔
𝑚(𝑗)• Para o exemplo:
𝑣
𝑙(1)= 𝑢
𝑙+ 𝑢
𝑙−2+ 𝑢
𝑙−3𝑣
𝑙(2)= 𝑢
𝑙+ 𝑢
𝑙−1+ 𝑢
𝑙−2+ 𝑢
𝑙−3Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
• Multiplexação:
– Depois da codificação as duas sequências de saída são
multiplexadas, formando a palavra código:
𝑽 = [𝑣
0 1𝑣
0 2, 𝑣
1 1𝑣
1 2, 𝑣
2 1𝑣
2 2, … ]
Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
• Exemplo 1a:
𝑼 = 1,0,1,1,1
𝒈
(1)= [1,0,1,1]
𝒈
(2)= [1,1,1,1]
𝑽
(1)= 𝑼 ∗ 𝒈
(1)𝑽
(2)= 𝑼 ∗ 𝒈
2𝑽
(1)= 1,0,0,0,0,0,0,1
𝑽
(2)= 1,1,0,1,1,1,0,1
𝑽 = [1 1,0 1, 0 0, 0 1, 0 1, 0 1, 0 0, 1 1]
Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
Convolução entre A e B: length(A) = M length(B) = N length(A*B) = M + N - 1 Convolução entre A e B: Inverte A e multiplica ponto a ponto com B, deslocando A de −∞ até+ ∞
Notar que 𝑽 é o entrelaçamento de
• Equação da codificação na forma matricial:
𝑽 = 𝑼𝑮 • Com a matriz geradora (espaços vazios iguais a zero):
𝑮 =
𝑔0(1)𝑔0(2) 𝑔1(1)𝑔1(2) 𝑔2(1)𝑔2(2) ⋯ 𝑔𝑚(1)𝑔𝑚(2)
𝑔0(1)𝑔0(2) 𝑔1(1)𝑔1(2) ⋯ 𝑔𝑚−1(1)𝑔𝑚−1(2) 𝑔𝑚(1)𝑔𝑚(2)
𝑔0(1)𝑔0(2) ⋯ 𝑔𝑚−2(1)𝑔𝑚−2(2) 𝑔𝑚−1(1)𝑔𝑚−1(2) 𝑔𝑚(1)𝑔𝑚(2)
⋱ ⋱
• Se 𝑼 tem comprimento finito 𝐿, a matriz 𝑮 tem 𝐿 linhas e 2(𝑚 + 𝐿) colunas, e 𝑽 tem comprimento 2 𝑚 + 𝐿 • Para o exemplo: 𝑽 = 𝑼𝑮 = 1,0,1,1,1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 = [1 1,0 1,0 0,0 1,0 1, 0 1,0 0,1 1]
Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
• Têm-se agora duas sequencias de informação, demultiplexadas da sequencia de informação de entrada: 𝑼(1) = 𝑢0 1 , 𝑢1 1 , 𝑢2 1 , … 𝑼(2) = 𝑢0 2 , 𝑢1 2 , 𝑢2 2 , … 𝑼 = [𝑢0 1 𝑢0 2 , 𝑢1 1 𝑢1 2 , 𝑢2 1 𝑢2 2 , … ]
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
V(1) U V U(1) U(2) V(2) V(3)• E também, três sequencias de saída, multiplexadas na
sequencia de saída:
𝑽
(1)= 𝑣
0 1, 𝑣
1 1, 𝑣
2 1, …
𝑽
(2)= 𝑣
0 2, 𝑣
1 2, 𝑣
2 2, …
𝑽
(3)= 𝑣
0 3, 𝑣
1 3, 𝑣
2 3, …
𝑽 = [𝑣
0 1𝑣
0 2𝑣
0 3, 𝑣
1 1𝑣
1 2𝑣
1 3, 𝑣
2 1𝑣
2 2𝑣
2 3, … ]
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
• Respostas ao impulso:
𝒈
1
(1)
= [1,1]
𝒈
1
(2)
= [0,1]
𝒈
1
(3)
= 1,1
𝒈
2
(1)
= [0,1]
𝒈
2
(2)
= [1,0]
𝒈
2
(3)
= [1,0]
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
Assim, a forma genérica para a resposta ao impulso de um codificador convolucional é: 𝑔<𝑒𝑛𝑡𝑟𝑎𝑑𝑎><𝑠𝑎𝑖𝑑𝑎> E o número de elementos do vetor é igual à 𝑚 + 1 Três sequênciasgeradoras para cada sequência de
• Equações da codificação: 𝑽(1) = 𝑼(1) ∗ 𝒈1 1 + 𝑼 2 ∗ 𝒈2 1 𝑽(2) = 𝑼(1) ∗ 𝒈1 2 + 𝑼 2 ∗ 𝒈2 2 𝑽(3) = 𝑼(1) ∗ 𝒈1 3 + 𝑼 2 ∗ 𝒈2 3 • Para o exemplo: 𝑣𝑙(1) = 𝑢𝑙(1) + 𝑢𝑙−1(1) + 𝑢𝑙−1(2) 𝑣𝑙(2) = 𝑢𝑙−1(1) + 𝑢𝑙(2) 𝑣𝑙(3) = 𝑢𝑙(1) + 𝑢𝑙−1(1) + 𝑢𝑙(2) • Organizado de outra forma:
𝑣𝑙(1) = 𝑢𝑙(1) + 𝑢𝑙−1(1) + 𝑢𝑙−1(2) 𝑣𝑙(2) = 𝑢𝑙(2) + 𝑢𝑙−1(1)
𝑣𝑙(3) = 𝑢𝑙(1) + 𝑢𝑙(2) + 𝑢𝑙−1(1)
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
Os elementos estão organizados pelos superíndices. Desta forma é
possível ver diretamente a contribuição de cada resposta ao
impulso. Por exemplo, tendo: 𝒈1(1) = [1,1]
𝒈2(1) = [0,1]
A saída 1 terá todos os valores da entrada 1 e somente o valor
𝑙 − 1 da entrada 2.
Agora os elementos estão organizados pela ordem dos subíndices. Assim fica mais visível a
contribuição temporal de cada entrada para cada saída. Por
exemplo, a saída (3) tem contribuição no instante 𝑙 das duas
entrradas, e no instante 𝑙 − 1 de somente a entrada 1.
• Exemplo 2a: 𝑼(1) = [1, 0, 1] 𝑼(2) = [1, 1, 0] 𝑽(1) = 𝑼(1) ∗ 𝒈1 1 + 𝑼 2 ∗ 𝒈2 1 𝑽(2) = 𝑼(1) ∗ 𝒈1 2 + 𝑼 2 ∗ 𝒈2 2 𝑽(3) = 𝑼(1) ∗ 𝒈1 3 + 𝑼 2 ∗ 𝒈2 3 𝑽(1) = 1, 0, 0, 1 𝑽(2) = 1, 0, 0, 1 𝑽(3) = 0, 0, 1, 1 𝑽 = [1 1 0, 0 0 0, 0 0 1, 1 1 1]
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
𝒈2(1) = [0,1] 𝒈2(2) = [1,0] 𝒈2(3) = [1,0] 𝒈1(1) = [1,1] 𝒈1(2) = [0,1] 𝒈1(3) = 1,1• Equação da codificação na forma matricial:
𝑽 = 𝑼𝑮
• Com a matriz geradora (espaços vazios iguais a zero):
𝑮 = 𝑔1,0(1)𝑔 1,0(2)𝑔1,0(3) 𝑔1,1(1)𝑔1,1(2)𝑔1,1(3) … 𝑔1,𝑚(1)𝑔1,𝑚(2)𝑔1,𝑚(3) 𝑔2,0(1)𝑔 2,0(2)𝑔2,0(3) 𝑔2,1(1)𝑔2,1(2)𝑔2,1(3) … 𝑔2,𝑚(1)𝑔2,𝑚(2)𝑔2,𝑚(3) 𝑔1,0(1)𝑔 1,0(2)𝑔1,0(3) … 𝑔1,𝑚−1(1)𝑔1,𝑚−1(2)𝑔1,𝑚−1(3) 𝑔1,𝑚(1)𝑔1,𝑚(2)𝑔1,𝑚(3) 𝑔2,0(1)𝑔2,0(2)𝑔2,0(3) … 𝑔2,𝑚−1(1)𝑔2,𝑚−1(2)𝑔2,𝑚−1(3) 𝑔2,𝑚(1)𝑔2,𝑚(2)𝑔2,𝑚(3) ⋱ ⋱ • Para o exemplo: 𝑽 = 𝑼𝑮 = 1 1, 0 1, 1 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 0 = [1 1 0, 0 0 0, 0 0 1, 1 1 1]
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
Para um codificador genérico, com 𝑘 shift-registers distintos
(não há restrições para que o número de atrasos 𝑚 seja
igual para todas as entradas), define-se a ordem da
memória do codificador como:
𝑚 = max
1 ≤ 𝑖 ≤ 𝑘
𝐾
𝑖Onde 𝐾
𝑖é o número de atrasos do shift-register associado à
entrada 𝑖.
Ou seja, 𝑚 é igual ao maior comprimento dentre todos os 𝑘
shift-registers.
• Para um codificador genérico (n,k,m): 𝑽 = 𝑼𝑮 𝑈 = 𝑈0, 𝑈1, … = 𝑢0 1 𝑢 0 2 … 𝑢0 𝑘 , 𝑢1 1 𝑢1 2 … 𝑢1 𝑘 , … 𝑉 = 𝑉0, 𝑉1, … = 𝑣0 1 𝑣0 2 … 𝑣0 𝑘 , 𝑣1 1 𝑣1 2 … 𝑣1 𝑘 , … • A matriz geradora: 𝐺 = 𝐺0 𝐺1 𝐺2 … 𝐺𝑚 𝐺0 𝐺1 … 𝐺𝑚−1 𝐺𝑚 𝐺0 … 𝐺𝑚−2 𝐺𝑚−1 𝐺𝑚 ⋱ ⋱ • Onde: 𝐺𝑙 = 𝑔1,𝑙(1) 𝑔 1,𝑙(2) … 𝑔1,𝑙𝑛 𝑔2,𝑙(1) 𝑔 2,𝑙(2) … 𝑔2,𝑙𝑛 ⋮ ⋮ ⋱ ⋮ 𝑔𝑘,𝑙(1) 𝑔 𝑘,𝑙(2) … 𝑔𝑘,𝑙𝑛
• Um codificador convolucional gera 𝑛 bits para cada 𝑘 bits de informação, sendo 𝑅 = 𝑘 chamado de taxa 𝑛
do código.
• Para um código (𝑛, 𝑘, 𝑚), com 𝑘 > 1, cada shift-register tem 𝐾𝑖 bits com informações de tempos anteriores.
• A memória total do codificador é:
𝐾 = 𝐾𝑖
𝑘
𝑖=1
• Estado do codificador: conteúdo dos seus shift-registers
• O estado do codificador no tempo 𝑙 (quando 𝑢𝑙(1), 𝑢𝑙(2), … , 𝑢𝑙(𝑘) estão na entrada do codificador) é:
𝑢𝑙−1 1 𝑢𝑙−2 1 … 𝑢𝑙−𝐾1 1 ⋮ 𝑢𝑙−1 2 𝑢𝑙−2 2 … 𝑢𝑙−𝐾2 2 ⋮ ⋯ ⋮ 𝑢𝑙−1𝑘𝑢𝑙−2𝑘 … 𝑢𝑙−𝐾𝑘𝑘 e há 2𝐾 estados possíveis.
• Para um código (𝑛, 1, 𝑚), 𝐾 = 𝐾𝑖 = 𝑚, e o estado do codificador é: [𝑢𝑙−1 𝑢𝑙−2… 𝑢𝑙−𝑚]
• Cada bloco de 𝑘 entradas causam uma transição de um estado atual para
um outro [a].
• Há então 2
𝑘ramos saindo de cada estado, cada um correspondendo a
cada bloco de entrada diferente [b].
• Para um código (𝑛, 1, 𝑚) há somente dois ramos deixando cada estado.
• Cada ramo é rotulado com:
– As 𝑘 entradas causadoras da transição (𝑢𝑙(1)𝑢𝑙(2)… 𝑢𝑙(𝑘)) [c]; e
– As 𝑛 saídas correspondentes (𝑣𝑙(1) 𝑣𝑙(2)… 𝑣𝑙(𝑛)) [d].
• Os estados são rotulados com 𝑆
0, 𝑆
1, … , 𝑆
2𝐾−1, onde por convenção, 𝑆
𝑖representa o estado cuja representação binária 𝑏
0, 𝑏
1, … , 𝑏
𝐾−1é
equivalente ao inteiro 𝑖 = 𝑏
02
0+ 𝑏
12
1+ … + 𝑏
𝐾−12
𝐾−1[e].
• Exemplo:
– Estado do codificador: 11010
– Representação decimal: 𝑖 = 1. 20 + 1. 21 + 0. 22 + 1. 23 + 0. 24 = 11 – Estado: 𝑆11
Codificação Convolucional – Diagrama de estado
(n,k,m)=(3,1,2)
𝑆0 𝑆2 𝑆1 𝑆3 0/000 0/111 1/001 1/110 [e] 2𝐾 = 2𝐾1 = 2𝑚 = 22 estados diferentes: 𝑆0 𝑖 = 0 0 ; 𝑆1 (i = [1 0]); 𝑆2 (𝑖 = [0 1]); 𝑆3 (𝑖 = [1 1]). [a] Transição de um estado (𝑆2) para outro (𝑆0) [b] 2𝑘 = 21 ramos saindo de cada estado [c] Sinal deentrada (k bits) [d] Sinal de saída (n bits)
Codificador:
U V(2) V(1) V(3) 𝑆0 𝑆2 𝑆1 𝑆3 0/000 0/111 1/001 1/110Diagrama de estado:
Codificação Convolucional – Diagrama de estado
(n,k,m)=(3,1,2)
Para encontrar o diagrama do codificador a partir do diagrama de estados, entrar comEstudo:
• Número de bits de entrada: 𝑘 = 1
• Número de bits de saída: 𝑛 = 2
• Memória total do codificador: 𝐾 = 𝑚 = 3
• Estados possíveis 2𝐾 = 8:
• Número de ramos saindo de cada estado: 2𝑘 = 21, ou 1 ou 0
Codificador:
U V(1) V(2)Codificação Convolucional – Diagrama de estado
(n,k,m)=(2,1,3)
000 100 001 101 010 110 011 111 • Estados: bo b1 b2 i Estado 0 0 0 0 𝑆0 0 0 1 4 𝑆4 0 1 0 2 𝑆2 0 1 1 6 𝑆6 1 0 0 1 𝑆1 1 0 1 5 𝑆5 1 1 0 3 𝑆3 1 1 1 7 𝑆7
Codificação Convolucional – Diagrama de estado
(n,k,m)=(3,1,2)
𝑆0 𝑆2 𝑆1 𝑆4 𝑆5 𝑆7 𝑆3 𝑆6 1/10 0/00 1/10 0/10 0/00 1/00 1/00 0/10• O diagrama de estados pode ser expandido no tempo
para representar cada unidade temporal em um
diagrama separado:
Codificação Convolucional – Diagrama de treliça
110 110 110 𝑆0 𝑆1 𝑆2 𝑆3 0 1 2 3 4 5 ... t 000 000 000 000 000 Caminhos tracejados representam sinal de entrada igual a 0 Outros caminhos representam sinal de entrada igual a 1
• É feito com o algoritmo de Viterbi.
– Computa métricas para dois caminhos entrando em um
determinado estado
– Baseado nas métricas, o algoritmo elimina um dos dois
caminhos
– Assim, é encontrado ao longo da treliça, o caminho mais
provável em que o codificador seguiu
– A métrica utilizada no algoritmo de Viterbi é a distância entre
dois códigos (distância de Hamming)
– A soma de todas as distâncias de hamming ao longo do
percurso até o tempo 𝑡 é chamada de Métrica do caminho de
hamming cumulativa, ou somente, Distância cumulativa.
• Exemplo: dada a treliça do codificador abaixo:
Codificação Convolucional – Decodificação
10 10 10 𝑆0 𝑆1 𝑆2 𝑆3 0 1 2 3 4 5 ... t 00 00 00 00 00 • A sequencia de entrada é: 𝑼 = 1 1 0 1 1 • Que resulta na palavra codificada:
𝑽 = [11 01 01 00 01] • No exemplo, a sequencia de chegada é:
Codificação Convolucional – Decodificação
𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 0 1 2 3 4 5 6 ... t• Estado inicial:
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 1:
• Símbolos recebidos (azul): 𝒁 = [
11
01 01
10
01]
• Transições possíveis do estado atual:
–
00 → 00
Saída: 00
Métrica:
2
–
00 → 10
Saída: 11
Métrica:
0
0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 00 - 2 Bit de saída do codificador MétricaCodificação Convolucional – Decodificação
• Tempo 𝑡 = 2:
• Símbolos recebidos (azul): 𝒁 = [11 01 01 10 01] • Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1 – 00 → 10 Saída: 11 Métrica: 1 – 10 → 01 Saída: 10 Métrica: 2 – 10 → 11 Saída: 01 Métrica: 0 0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 3 00 - 1 3 2 0
Métrica total do caminho (Cumulativa):
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 3:
• Símbolos recebidos (azul): 𝒁 = [11 01 0110 01] • Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1 – 00 → 10 Saída: 11 Métrica: 1 – 10 → 01 Saída: 10 Métrica: 2 – 10 → 11 Saída: 01 Métrica: 0 – 01 → 00 Saída: 11 Métrica: 1 – 01 → 10 Saída: 00 Métrica: 1 – 11 → 01 Saída: 01 Métrica: 0 – 11 → 11 Saída: 10 Métrica: 2 0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 3 4 00 - 1 3 4 0 5 2 3
Métrica total do caminho (Cumulativa): 00 - 2 00 - 1 10 - 2 Caminho superior Caminho inferior Números sublinhados indicam as menores métricas até o estado
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 3:
• Símbolos recebidos (azul): 𝒁 = [11 01 0110 01] • Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1 – 00 → 10 Saída: 11 Métrica: 1 – 10 → 01 Saída: 10 Métrica: 2 – 10 → 11 Saída: 01 Métrica: 0 – 01 → 00 Saída: 11 Métrica: 1 – 01 → 10 Saída: 00 Métrica: 1 – 11 → 01 Saída: 01 Métrica: 0 – 11 → 11 Saída: 10 Métrica: 2 0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 3 3 0 2
Métrica total do caminho (Cumulativa):
10 - 2
Caminhos que não foram eliminados são chamados de caminhos sobreviventes Como só existe um caminho entre 𝑡 = 0 e 𝑡 = 1, o decodificador pode decidir pela transição 00 → 10. Assim, o primeiro bit é decodificado (o bit que codificado gera 11)
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 4:
• Símbolos recebidos (azul): 𝒁 = [11 01 01 10 01] • Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1 – 00 → 10 Saída: 11 Métrica: 1 – 10 → 01 Saída: 10 Métrica: 0 – 10 → 11 Saída: 01 Métrica: 2 – 01 → 00 Saída: 11 Métrica: 1 – 01 → 10 Saída: 00 Métrica: 1 – 11 → 01 Saída: 01 Métrica: 2 – 11 → 11 Saída: 10 Métrica: 0 0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 1 4 1 4 4 3 2 5
Métrica total do caminho (Cumulativa):
10 - 0
00 - 1
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 4:
• Símbolos recebidos (azul): 𝒁 = [11 01 01 10 01] • Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1 – 00 → 10 Saída: 11 Métrica: 1 – 10 → 01 Saída: 10 Métrica: 0 – 10 → 11 Saída: 01 Métrica: 2 – 01 → 00 Saída: 11 Métrica: 1 – 01 → 10 Saída: 00 Métrica: 1 – 11 → 01 Saída: 01 Métrica: 2 – 11 → 11 Saída: 10 Métrica: 0 0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 1 1 3 2
Métrica total do caminho (Cumulativa):
10 - 0
10 - 2
Notar que o segundo bit não pode ser decodificado, pois ainda existem 2 caminhos entre 𝑡 = 1 e 𝑡 = 2
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 5:
• Símbolos recebidos (azul): 𝒁 = [11 01 01 10 01] • Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1 – 00 → 10 Saída: 11 Métrica: 1 – 10 → 01 Saída: 10 Métrica: 2 – 10 → 11 Saída: 01 Métrica: 0 – 01 → 00 Saída: 11 Métrica: 1 – 01 → 10 Saída: 00 Métrica: 1 – 11 → 01 Saída: 01 Métrica: 0 – 11 → 11 Saída: 10 Métrica: 2 0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 4 2 4 2 2 3 4 1
Métrica total do caminho (Cumulativa):
10 - 2
10 - 2 10 - 0
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 5:
• Símbolos recebidos (azul): 𝒁 = [11 01 01 10 01] • Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1 – 00 → 10 Saída: 11 Métrica: 1 – 10 → 01 Saída: 10 Métrica: 2 – 10 → 11 Saída: 01 Métrica: 0 – 01 → 00 Saída: 11 Métrica: 1 – 01 → 10 Saída: 00 Métrica: 1 – 11 → 01 Saída: 01 Métrica: 0 – 11 → 11 Saída: 10 Métrica: 2 0 1 2 3 4 5 6 ... t 𝑆0 = 00 𝑆1 = 10 𝑆2 = 01 𝑆3 = 11 2 2 2 1
Métrica total do caminho (Cumulativa): 10 - 2 10 - 0 00 - 1 Agora sim, o segundo bit pôde ser decodificado