Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Codificação Convolucional
U V
Demux Codificador Mux
Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
• 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
V(1)
U V
= Atraso (Z-1)
V(2) = Somador
módulo 2
Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
𝑽(1) = 𝑼 ∗ 𝒈(1)
𝑽(2) = 𝑼 ∗ 𝒈 2
• Cada elemento:
𝑚
• Para o exemplo:
• 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
Convolução entre A e B:
Convolução entre A e B:
length(A) = M
𝒈(1) = [1,0,1,1] Inverte A e multiplica
length(B) = N 𝒈(2) = [1,1,1,1] ponto a ponto com B,
deslocando A de −∞ até
+∞
length(A*B) = M + N - 1 𝑽(1) = 𝑼 ∗ 𝒈(1)
𝑽(2) = 𝑼 ∗ 𝒈 2
𝑽(1) = 1,0,0,0,0,0,0,1
𝑽(2) = 1,1,0,1,1,1,0,1 Notar que 𝑽 é o
entrelaçamento de
𝑽 = [1 1,0 1, 0 0, 0 1, 0 1, 0 1, 0 0, 1 1] 𝑽(1) e 𝑽(2)
Codificação Convolucional
Exemplo 1 (n,k,m) = (2,1,3)
• Equação da codificação na forma matricial:
𝑽 = 𝑼𝑮
• Se 𝑼 tem comprimento finito 𝐿, a matriz 𝑮 tem 𝐿 linhas e 2(𝑚 + 𝐿) colunas, e 𝑽 tem comprimento
2 𝑚+𝐿
• Para o exemplo:
11 01 11 11
11 01 11 11
𝑽 = 𝑼𝑮 = 1,0,1,1,1 11 01 11 11 = [1 1,0 1,0 0,0 1,0 1, 0 1,0 0,1 1]
11 01 11 11
11 01 11 11
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
• 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 ,…
1 2 1 2 1 2
𝑼 = [𝑢0 𝑢0 , 𝑢1 𝑢1 , 𝑢2 𝑢2 ,…]
V(1)
U(1)
U V(2) V
U(2)
V(3)
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
• 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
,…
1 2 3 1 2 3 1 2 3
𝑽 = [𝑣0 𝑣0 𝑣0 , 𝑣1 𝑣1 𝑣1 , 𝑣2 𝑣2 𝑣2 ,…]
Codificação Convolucional
Exemplo 2 (n,k,m) = (3,2,1)
• Respostas ao impulso:
𝑽(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)
• Equação da codificação na forma matricial:
𝑽 = 𝑼𝑮
𝑔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 0 1 1 1 1
0 1 1 1 0 0
𝑽 = 𝑼𝑮 = 1 1, 0 1, 1 0 1 0 1 1 1 1 = [1 1 0, 0 0 0, 0 0 1, 1 1 1]
0 1 1 1 0 0
1 0 1 1 1 1
0 1 1 1 0 0
Codificação Convolucional – Generalização
𝑚 = max 𝐾𝑖
1≤𝑖≤𝑘
𝑽 = 𝑼𝑮
𝑈 = 𝑈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:
• Um codificador convolucional gera 𝑛 bits para cada 𝑘 bits de informação, sendo 𝑅 = 𝑘 𝑛 chamado de taxa
do código.
Codificação Convolucional – Diagrama de estado
• Para um código (𝑛, 𝑘, 𝑚), com 𝑘 > 1, cada shift-register tem 𝐾𝑖 bits com
informações de tempos anteriores.
• A memória total do codificador é:
𝑘
𝐾= 𝐾𝑖
𝑖=1
1 1 1 2 2 2
𝑢𝑙−1 𝑢𝑙−2 … 𝑢𝑙−𝐾1 ⋮ 𝑢𝑙−1 𝑢𝑙−2 … 𝑢𝑙−𝐾2 ⋮ ⋯ ⋮ 𝑢𝑙−1 𝑘 𝑢𝑙−2 𝑘 … 𝑢𝑙−𝐾𝑘 𝑘
e há 2𝐾 estados possíveis.
𝑆0
0/111
𝑆2 𝑆1
1/001
𝑆3
[c] Sinal de [e] 2𝐾 = 2𝐾1 = 2𝑚 = 22
entrada (k bits) [d] Sinal de estados diferentes:
saída (n bits) 𝑆0 𝑖 = 0 0 ;
𝑆1 (i = [1 0]);
1/110 𝑆2 (𝑖 = [0 1]);
𝑆3 (𝑖 = [1 1]).
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.
0/000
𝑆0 V(1)
0/111
𝑆2 𝑆1 U V(2)
1/001
𝑆3 V(3)
1/110
Codificação Convolucional – Diagrama de estado (n,k,m)=(2,1,3)
Codificador: Estudo:
V(1) • Número de bits de entrada:
𝑘=1
• Número de bits de saída:
U
𝑛=2
• Memória total do codificador:
V(2) 𝐾=𝑚=3
• Estados possíveis 2𝐾 = 8:
000 100
• Estados:
bo b1 b2 i Estado 001 101
0 0 0 0 𝑆0 010 110
0 0 1 4 𝑆4 011 111
0 1 0 2 𝑆2 • Número de ramos saindo de cada
0 1 1 6 𝑆6 estado:
1 0 0 1 𝑆1 2𝑘 = 21 , ou 1 ou 0
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)
1/10
𝑆1 𝑆3
1/00
0/10
𝑆4 𝑆6
0/00
Codificação Convolucional – Diagrama de treliça
Outros
caminhos
𝑆1 representam
sinal de
entrada igual a
𝑆0 000 000 000 000 000 1
0 1 2 3 4 5 ... t
Codificação Convolucional – Decodificação
𝑆2
𝑆1
𝑆0 00 00 00 00 00
0 1 2 3 4 5 ... t
• A sequencia de entrada é:
𝑼= 11011
• 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
• Estado inicial:
𝑆3 = 11
𝑆2 = 01
𝑆1 = 10
𝑆0 = 00
0 1 2 3 4 5 6 ... t
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
𝑆3 = 11
Bit de saída
𝑆2 = 01 do
codificador
𝑆1 = 10
Métrica
𝑆0 = 00 00 - 2
0 1 2 3 4 5 6 ... t
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 Métrica total do caminho
(Cumulativa):
𝑆3 = 11 0
𝑆2 = 01 2
𝑆1 = 10 3
𝑆0 = 00 00 - 2 00 - 1 3
0 1 2 3 4 5 6 ... t
Codificação Convolucional – Decodificação
• Tempo 𝑡 = 3:
• Símbolos recebidos (azul): 𝒁 = [11 01 01 10 01] Caminho superior
• Transições possíveis dos estados atuais:
– 00 → 00 Saída: 00 Métrica: 1
– 00 → 10 Saída: 11 Métrica: 1 Caminho inferior
– 10 → 01 Saída: 10 Métrica: 2
– 10 → 11 Saída: 01 Métrica: 0
– 01 → 00 Saída: 11 Métrica: 1 Métrica total do caminho
– 01 → 10 Saída: 00 Métrica: 1 (Cumulativa):
– 11 → 01 Saída: 01 Métrica: 0
– 11 → 11 Saída: 10 Métrica: 2
10 - 2 2
𝑆3 = 11 3
0
𝑆2 = 01 5
Números
sublinhados
3 indicam as
𝑆1 = 10 4 menores
métricas
até o
estado
𝑆0 = 00 00 - 2 00 - 1 00 - 1 3
4
0 1 2 3 4 5 6 ... t
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 Métrica total do caminho
– 01 → 10 Saída: 00 Métrica: 1 (Cumulativa):
– 11 → 01 Saída: 01 Métrica: 0
– 11 → 11 Saída: 10 Métrica: 2
10 - 2
𝑆3 = 11 Como só existe um
caminho entre
2
𝑡 = 0 e 𝑡 = 1, o
decodificador pode
decidir pela
transição 00 → 10.
𝑆2 = 01 Assim, o primeiro Caminhos que não 0
bit é decodificado foram eliminados
(o bit que
codificado gera 11) são chamados de
caminhos 3
𝑆1 = 10
sobreviventes
𝑆0 = 00 3
0 1 2 3 4 5 6 ... t
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 Métrica total do caminho
– 01 → 10 Saída: 00 Métrica: 1 (Cumulativa):
– 11 → 01 Saída: 01 Métrica: 2
– 11 → 11 Saída: 10 Métrica: 0
10 - 2 10 - 0 2
𝑆3 = 11 5
4
𝑆2 = 01 3
1
𝑆1 = 10 4
1
𝑆0 = 00 00 - 1
4
0 1 2 3 4 5 6 ... t
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 Métrica total do caminho
– 01 → 10 Saída: 00 Métrica: 1 (Cumulativa):
– 11 → 01 Saída: 01 Métrica: 2
– 11 → 11 Saída: 10 Métrica: 0
10 - 2 10 - 0 2
𝑆3 = 11
Notar que o
segundo bit
não pode ser 3
𝑆2 = 01
decodificado,
pois ainda
existem 2 1
𝑆1 = 10
caminhos
entre 𝑡 = 1 e
𝑡=2 1
𝑆0 = 00
0 1 2 3 4 5 6 ... t
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 Métrica total do caminho
– 01 → 10 Saída: 00 Métrica: 1 (Cumulativa):
– 11 → 01 Saída: 01 Métrica: 0
– 11 → 11 Saída: 10 Métrica: 2
10 - 2 10 - 0 10 - 2 4
𝑆3 = 11 1
2
𝑆2 = 01 3
4
𝑆1 = 10 2
4
𝑆0 = 00 00 - 1
2
0 1 2 3 4 5 6 ... t
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 Métrica total do caminho
– 01 → 10 Saída: 00 Métrica: 1 (Cumulativa):
– 11 → 01 Saída: 01 Métrica: 0
– 11 → 11 Saída: 10 Métrica: 2
10 - 2 10 - 0 1
𝑆3 = 11
2
𝑆2 = 01
Agora sim, o
2
𝑆1 = 10 segundo bit
pôde ser
decodificado
2
𝑆0 = 00 00 - 1
0 1 2 3 4 5 6 ... t