34
Codificação Convolucional

Codificação Convolucional - IFSC São José · • Com a matriz geradora (espaços vazios iguais a zero): 𝑮= ... • Há então t ramos saindo de cada estado, cada um correspondendo

Embed Size (px)

Citation preview

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

Codificação Convolucional

• 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 2

Codificaçã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 + 𝑢𝑙−3

Codificaçã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:

𝑽 = [𝑣01 𝑣0

2 , 𝑣11 𝑣1

2 , 𝑣21 𝑣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

𝑽(1) e 𝑽(2)

• 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 11 1 0 1 1 1 1 11 1 0 1 1 1 1 11 1 0 1 1 1 1 11 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) = 𝑢01 , 𝑢1

1 , 𝑢21 , …

𝑼(2) = 𝑢02 , 𝑢1

2 , 𝑢22 , …

𝑼 = [𝑢01 𝑢0

2 , 𝑢11 𝑢1

2 , 𝑢21 𝑢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) = 𝑣01 , 𝑣1

1 , 𝑣21 , …

𝑽(2) = 𝑣02 , 𝑣1

2 , 𝑣22 , …

𝑽(3) = 𝑣03 , 𝑣1

3 , 𝑣23 , …

𝑽 = [𝑣01 𝑣0

2 𝑣03 , 𝑣1

1 𝑣12 𝑣1

3 , 𝑣21 𝑣2

2 𝑣23 , … ]

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ências geradoras para cada

sequência de entrada

• Equações da codificação:

𝑽(1) = 𝑼(1) ∗ 𝒈11 + 𝑼 2 ∗ 𝒈2

1

𝑽(2) = 𝑼(1) ∗ 𝒈12 + 𝑼 2 ∗ 𝒈2

2

𝑽(3) = 𝑼(1) ∗ 𝒈13 + 𝑼 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) ∗ 𝒈11 + 𝑼 2 ∗ 𝒈2

1

𝑽(2) = 𝑼(1) ∗ 𝒈12 + 𝑼 2 ∗ 𝒈2

2

𝑽(3) = 𝑼(1) ∗ 𝒈13 + 𝑼 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 10 1 1 1 0 0

1 0 1 1 1 10 1 1 1 0 0

1 0 1 1 1 10 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.

Codificação Convolucional – Generalização

• Para um codificador genérico (n,k,m):

𝑽 = 𝑼𝑮

𝑈 = 𝑈0, 𝑈1, … = 𝑢01 𝑢0

2 …𝑢0𝑘 , 𝑢1

1 𝑢12 …𝑢1

𝑘 , …

𝑉 = 𝑉0, 𝑉1, … = 𝑣01 𝑣0

2 …𝑣0𝑘 , 𝑣1

1 𝑣12 …𝑣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.

Codificação Convolucional – Generalização

• 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) é:

𝑢𝑙−11 𝑢𝑙−2

1 …𝑢𝑙−𝐾11 ⋮ 𝑢𝑙−1

2 𝑢𝑙−22 …𝑢𝑙−𝐾2

2 ⋮ ⋯ ⋮ 𝑢𝑙−1𝑘𝑢𝑙−2

𝑘 …𝑢𝑙−𝐾𝑘𝑘

e há 2𝐾 estados possíveis.

• Para um código (𝑛, 1,𝑚), 𝐾 = 𝐾𝑖 = 𝑚, e o estado do codificador é:

[𝑢𝑙−1 𝑢𝑙−2…𝑢𝑙−𝑚]

Codificação Convolucional – Diagrama de estado

• 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 + 𝑏121 + …+ 𝑏𝐾−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

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 de entrada (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/110

Diagrama 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 com um impulso no diagrama de estado.

Estudo: • 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.

Codificação Convolucional – Decodificação

• 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 é: 𝒁 = [11 01 01 10 01]

Codificação Convolucional – Decodificação

𝑆0 = 00

𝑆1 = 10

𝑆2 = 01

𝑆3 = 11

0 1 2 3 4 5 ... t 6

• 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 ... t 6

𝑆0 = 00

𝑆1 = 10

𝑆2 = 01

𝑆3 = 11

00 - 2

Bit de saída do

codificador

Métrica

Codificaçã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 ... t 6

𝑆0 = 00

𝑆1 = 10

𝑆2 = 01

𝑆3 = 11

3 00 - 1

3

2

0

Métrica total do caminho (Cumulativa):

00 - 2

Codificação Convolucional – Decodificação • Tempo 𝑡 = 3: • 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 ... t 6

𝑆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 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 ... t 6

𝑆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 ... t 6

𝑆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

10 - 2

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 ... t 6

𝑆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 ... t 6

𝑆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

00 - 1

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 ... t 6

𝑆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