Escolar Documentos
Profissional Documentos
Cultura Documentos
Codigos Convolucionais
Codigos Convolucionais
thiagoduartedepaula@gmail.com
Introdução
A teoria teve inicio em 1940 quando os computadores eram máquinas muito caras e
ape-
nas instituições de grande porte como o governo ou as universidades tinham
condições de
manté-los. O Laboratório Bell de Tecnologia possuía tal tecnologia e Richard W.
Ham-
ming trabalhava com estas máquinas em 1947, porém, para ele o acesso estava
restrito
apenas aos fins de semana. Na época, os programas eram gravados em cartões
perfurados
cuja leitura pelo computador permitia detectar erros de digitação. Caso um erro
fosse
detectado, a leitura era interrompida e o computador passava automaticamente a ler
o
programa seguinte.
Hamming desenvolveu um código capaz de detectar até dois erros e corrigir
um
erro, se ele for o único.
Durante os três anos desde a elaboração destes códigos até a publicação de
seu tra-
balho, Hamming publicou diversos memorandos internos do Laboratório Bell conforme
sua pesquisa evoluía. Nestes artigos se questionava sobre a possibilidade de criar
códigos
mais eficientes que aquele proposto inicialmente. A questão foi respondida
indiretamente
em outubro de 1948, por C. E. Shannon num artigo intitulado "A Mathematical Theory
of
Communication", publicado no "The Bell System Technical Journal". O artigo de Shan-
non deu inicio a dois novos campos de pesquisa em matemática: a teoria de códigos
(em
conjunto com o trabalho de Hamming) e a Teoria da Informação.
Nos anos seguintes:
• John McReynolds Wozencraft - Descreveu o primeiro algoritmo de uso prático
de decodificação para os códigos convolucionais. Decodificação rápida porém
sub-ótima. (1961).
• Massey -propusera um menos eficiente mas simples de implementar, método cha-
mado decodificador de limiar(1963).
• Viterbi - Descobriu outra forma de decodificar, levando seu nome:
decodificador
de Viterbi(1967). Decodificador assintoticamente ótimo (próximo ao limite de
Shannon) e provado efetivamente por George David Forney, em 1973, a máxima
verossimilhança para decodificação.
Aplicações
Inicialmente utilizou-se para aplicações espaciais durante o período da guerra
fria, onde
podemos citar:
• The Pioneer 9 (1968) - Missão de orbita Solar: primeira missão espacial a
utilizar
corretor de erro convolucional. Os parâmetros utilizados foram:
A(2,1,20) = 2 Output / 1 Input / 20 Memory
• Voyage Mission (79-81) - Missão de exploração de Júpter e Saturno. Os
parâme-
tros utilizados foram:
A(2,1,6) = 2 Output / 1 Input / 6 Memory
A(3,1,6) = 3 Output / 1 Input / 6 Memory
Outra aplicação que foi bastante difundida na Europa, Ásia, Austrália,
Améri-
cas, que utilizava os códigos convolucionais foram as redes GSM 2a geração da
telefonias
celulares.
Especificações GSM
Freq. de transmissão 890-915 MHz e 1.850-1910 Mhz
Freq. de recepção 935-960MHz e 1.930-1990 Mhz
Modulação GMSK
Sep. da portadora 200 kHz
Voz/portadora 8
Nas redes Wimax que é uma tecnologia wireless desenvolvida para oferecer
acesso
banda larga a distâncias típicas de 6 a 9 Km. Esse padrão é similar ao padrão Wi-
Fi,
porém agrega conhecimentos e recursos mais recentes, visando a um melhor desempenho
de comunicação, permitindo velocidades maiores que 1 Gbit/s.
Código Convolucional
Introdução
Definição
(n, k, m)
Núm. Reg. de Memória
Número de entradas
Número de saídas
L = k(m − 1)
(1)
Saída do decodificador:
Para a codificação polinomial, a convolução no tempo pode ser representada como
multi-
plicação no domínio da transformada (Transformada D (delay)). O resultado
codificação
convolucional se resume na multiplicação:
Y [D] = X[D].G[D]
(2)
Onde:
(1) (2) (n)
G1 (D) G1 (D) ... G1 (D)
(1) (2) (n)
G2 (D) G2 (D) ... G2 (D)
G[D] =
(3)
: : ... :
(1) (2) (n)
Gk (D) Gk (D) ... Gk (D)
A = [a0 a1 a2 ...al ]
finito, então a transformada e dada por:
X[D] = X.D0 = [1 ∗ D0 + 0 ∗ D1 + 1 ∗ D2 + 1 ∗ D3 ] =
X[D] = [1 + D2 + D3 ]
(1) (2)
G[D] = [G1 [D] G1 [D]]
ou seja:
G[D] = [1 ∗ D0 + 0 ∗ D1 + 1 ∗ D2 1 ∗ D0 + 1 ∗ D1 + 1 ∗
D2 ]
G[D] = [1 + D2 1 + D + D2 ]
Y[D] = X[D]G[D]
= [1 + D2 + D3 ][1 + D2 1 + D + D2 ]
= [(1 + D2 ) + (D2 + D4 ) + (D3 + D5 )...
...(1 + D + D2 ) + (D2 + D3 + D4 ) + (D3 + D4 + D5 )]
= [1 + D3 + D4 + D5 1 + D + D5 ]
= [y (1) (D) y (2) (D)]
por dedução Y = [11 01 00 10 ...]
Maquina de estados
Outra forma de compreender a codificação e decodificação dos códigos convolucionais
é
pela maquina de estado. O numero de estados é dado por:
N S = 2L
N S = 2(K(m−1))
Por exemplo, para um código convolucional: A(2,1,3)
N S = 22 = 4
S = [00 01 10 11]
0/00
0/11
00 1/11
1/01
01 10
0/01
1/10
1/10 11
1/01
11
00
01
11
0 10
00 X = [1 0 1 1]
1 11
01 Y = [11 01 00 10]
00
11
10
10
01
Diagrama de treliça
Diagramas de treliça são desorganizados, mas geralmente preferidos em relação ao
di-
grama em árvore e as maquinas de estado porque representam um seqüenciamento de
eventos em tempo linear. O eixo x representa tempo discreto e os possíveis estados
são
mostrados no eixo dos y.
O diagrama de treliça é desenhado alinhando todos os estados possíveis (2L )
no
eixo vertical. Então, conecta-se cada estado para o próximo pelas palavras de
código
permitidos para esse estado. Há apenas dois escolhas possíveis em cada estado.
Estes são
determinadas pela chegada de um bit 0 ou 1. As setas mostram o bit de entrada e os
bits
de saída são mostrados entre parênteses. As setas que vai para cima representar o
bit 0
e indo para baixo representam o 1 bit. O diagrama de treliça é único para cada
código.
Cada período repete as possíveis transições.
image/trellis2.jpg