códigos de controle de erro teoria da informação...
TRANSCRIPT
1
Códigos de Controle de Erro
Teoria da Informação01/2007
Juliana Fernandes CamapumEngenharia de Redes de Comunicação
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 2
Códigos de Controle de Erro
• São códigos que devido a sua forma, permitem que na recepção do sinal transmitido, possamos identificar erros nas mensagens e dessa forma ou peçamos para que o código seja retransmitido (ARQ-Automatic Request for Retransmission) ou mesmo possamos corrigir o símbolo recebido, baseado em possíveis probabilidades de erro dos símbolos
• A identificação ou correção de erros é feita através de adição de bits redundantes ou bits de checagem
• Esta adição aumenta a complexidade no sistema de decodificação, além de tornar a transmissão mais lenta
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 3
Decodificação• Sejam:
– pc(c) a probabilidade de uma palavra-código ser transmitida– pv(v) a probabilidade de uma palavra-código v ser recebida
• Dado que uma palavra v foi recebida, a probabilidade da palavra c ter sido transmitida é p(c/v)– A menor probabilidade de erro é dada pela escolha da palavra ci
tal que p(c/v) é máxima. Este decodificador que maximiza esta probabilidade é chamado de MAP (Maximum A Posteriori)
– Quando todas as palavras código são igualmente prováveis equivale a maximizar p(v/c), ou seja, a máxima verossimilhança e são chamados de decodificadores maximum likelihood. ci será a palavra que minimiza d(ci,v). Assim, se calcula a distância entre a palavra-código recebida e todas as palavras-código possíveis de serem geradas. Decodificação por força bruta. O algoritmo mais usado é o Algoritmo de Viterbi.
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 4
Código convolucional• Opera em cada bit entrante e gera a palavra código a
partir deste bit• taxa R=1/n, consiste de uma máquina de estados com:
– M- memórias (shift-register)– n somadores módulo 2– multiplexador que serializa as n saídas dos somadores
• Mensagem L é codificada em n(L+M)bits –> R=L/n(L+M)• Como L >> M ->R ≅ 1/n• Parâmetro importante: comprimento de restrição K
normalmente é igual a M+1. representa o máximo número de bits em uma saída que pode ser influenciada por qualquer bit de entrada
2
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 5
Código convolucional
K=3 R=1/2 M=2[ ]22
2)1(
2)0(
11)(
)(
DDDDGxDxy
xDxDxyDxGy
+++=
+=
++=
=
xy(0)
y(1)
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 6
Código convolucional
K=4 R=1/2 M=3[ ]332
3)1(
32)0(
11)(
)(
DDDDDGxDxDxy
xDxDxyDxGy
++++=
++=
++=
=
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 7
Código convolucional
• Código convolucional recursivo e sistemáticox y(0)
• Código convolucional sistemático
y(1)
++
+=
+++
==
=
2
2
2
2)1()0(
111)(
1)1(
)(
DDDDG
DDDxyxy
DxGy
[ ]3
3)1()0(
11)(
)(
DDDGxDxDxyxy
DxGy
++=
++==
=
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 8
Código convolucional recursivo e sistemáticoDiagrama de Estados
• Cada estado é rotulado. Cada transição tem um rótulo da forma x/y(0)y(1), onde x representa o bit de entrada e y(0) e y(1)
representam os dois bits de saída. Neste caso, nós sempre temos
( ) ( )tt
ttt
t
SS
xySSxS
yyx
SxDyDyxDxyxy
0
10
0
11
)1(11
1t0
)1()0(
2)1()1(2)1(
)0(
tambémsendo
))((S:Estado
/ :Transição
=
+++=
+=+++=
=
+
++
3
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 9
Código convolucional recursivo e sistemáticoRepresentação Treliça
• Cada seção da treliça se parece com a seção abaixo:
Os nós representam os estados, e as transições são rotuladas como x/y(1)
sendo y(0) = x etSxDyDyxDxy 0
2)1()1(2)1( +=+++=
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 10
Código convolucionalR = 1/2, K = 3
[ ]22
2)1(
2)0(
11)(
)(
DDDDGDuuc
DuDuucDGuc
iii
iiii
ii
+++=
+=
++=
=
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 11
Código convolucionalR = 1/2, K = 3
• Diagrama de estadost
iiii
ttiiiii
SuDuucSSuDuDuuc
12)1(
102)0(
+=+=
++=++=
21
t0
11
11
1t0
)1()0(
))((S
tambémsendo
))((S:Estado
/ :Transição
0
DuDuS
SSDuuS
cc
iit
ttii
tii
=
=
=+
++
0
1
0
10
1
0
1
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 12
Código convolucionalR = 1/2, K = 3 - TRELIÇA
)1()0( :Transição ii cc
tiiii
ttiiiii
SuDuucSSuDuDuuc
12)1(
102)0(
+=+=
++=++=2
1t0
11
11
1t0
))((S
tambémsendo
))((S:Estado
0
DuDuS
SSDuuS
iit
ttii
t
=
=
=+
++
4
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 13
Código convolucionalR = 1/2, K = 3
• Considere a seguinte mensagem de entrada u = [10011]
c[ ]22
2)1(
2)0(
11)(
)(
DDDDGDuuc
DuDuucDGuc
iii
iiii
ii
+++=
+=
++=
=
c
c c
c
u
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 14
Código convolucionalR = 2/3, K = 4
xXX
Y
y y y y
(2) (2) (2)
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 15
Códigos Convolucionais Recursivos
y(0)
y(1)
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 16
5
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 17
Codificador ConvolucionalCircuito para matriz geradora G(D)
y(0)
y(1)
y(2)
x(0)
x(1)
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 18
Código convolucional recursivo sistemático
+++++
=′′′
2
2
2
2
110
1101
)(
DDDD
DD
DG
y(0) y(1) y(2)
222 )2()1()0()2(
)1()1(
)0()0(
)()1( DyDDxDDxy
xy
xy
+++++=
=
=
y(0)
y(1)
y(2)
x(0)
x(1)
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 19
Decodificação do Código ConvolucionalAlgoritmo de Viterbi
L
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 20
Algoritmo de Viterbi (cont.)B = L+M ; M = K-1
6
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 21
Algoritmo de Viterbi (cont.)
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 22
Algoritmo de Viterbi (cont.)
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 23
Algoritmo de Viterbi (cont.) B = L+M ; M = K-1
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 24
Exemplo 1: Considere o codificador convolucional da figura abaixo com R=1/2, K=3, M=2(4 estados).
Decodifique a palavra recebida v= 01 00 01 00 00 , considerando que o estado inicial é 00.
21
210
−
−−
+=++=
ii
iii
uucuuuc
O tamanho da palavra-código é nB=n(L+M)=2(L+2)=10. Assim, a mensagem tem comprimento L = 3. Ao final dos 3 bits de mensagem iremos inserir 00 tal que a memória irá terminar no estado 00 no instante 5T.
7
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 25
Alg. ViterbiExemplo 1: v = 01 00 01 00 00 e c=00 00 00 00 00
00
11
00
11
10
01
1T 2T
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 26
Alg. Viterbi (cont.)Exemplo 1: v = 01 00 01 00 00 e c=00 00 00 00 00
00
11
00
11
10
01
00
11 11
00
01
10
1001
00
11
00
11
01
00
11
01
01
1T 2T 3T
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 27
Alg. Viterbi (cont.)Exemplo 1: v = 01 00 01 00 00 e c=00 00 00 00 00
00
11
00
11
01
00
11
01
01
00
11 11
00
01
10
1001
00
11
00
01
00
11
01
1001
00
00
1T 2T 3T 4T
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 28
Alg. Viterbi (cont.)Exemplo 1: v = 01 00 01 00 00 e c=00 00 00 00 00
00
11
00
01
00
11
01
1001
00
00 00
1111
00
01
10
10
01
00 00 00 00 00
11
01
11
01
10
00
00
10
01
1T 2T 3T 4T 5T
8
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 29
Exemplo 2: Solução Alg. Viterbi
0000
1111
10
01
00
11v=00 01 10 00 00 00
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 30
Exemplo 2: Solução Alg. Viterbi (cont.)
00 00
11
10
01
10
11
00
11
10
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 31
Exemplo 2: Solução Alg. Viterbi (cont.)
00 00
11
10
01
10
11
00
11
10
00
10
10
00
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 32
Exemplo 2: Solução Alg. Viterbi (cont.)
00 00
11
10
01
10
11
00
11
10
00
10
10
00
00
10
01
00
9
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 33
Exemplo 2: Solução Alg. Viterbi (cont.)
00 00
11
10
01
10
11
00
11
10
00
10
10
00
00
10
01
00
00
2
3
2
2
11
10
01
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 34
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00 00...
11 01
11
00
0000
11
11 11
10
01
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 35
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00... (cont.)
11 01 10
00 00
11
10
01
11
00
01
10
3
3
2
0
11
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 36
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00... (cont.)
11 01 10 00
00 00 00
11 11
10
01
11
00
01
10
3
3
2
0
00
01
10
10
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 37
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00... (cont.)
11 01 10 00 00
00 00 00 00
11 11
10
01
11
00
01
10
2
1
1
00
01
10
3
00
01
10
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 38
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00... (cont.)
11 01 10 00 00 00
00 00 00 00 00
11 11
10
01
11
00
01
10
3
1
200
01
10
00
01
10
2
10
01
002
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 39
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00... (cont.)
11 01 10 00 00 00 00
00 00 00 00 00 00
11 11
10
01
11
00
01
10
3
2
00
01
10
00
01
102
10
01
002
2 10
01
00
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 40
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00 ... (cont.)
a seqüência transmitida foi c= 00 00 00 00 00 00 00 00 ... e u = 0 0 0 0 0 0 0 0 ...e a seqüência recebida corrigida foi c’=11 10 11 00 00 00 00 00 ... e u’ = 1 0 0 0 0 0 0 0...Assim, a seqüência foi recebida com um bit de erro.
11 01 10 00 00 00 00 00
00
11
00 00 00 00 00 00
11
10
01
11
00
01
10
2
00
01
10
00
01
103
10
01
00
3
310
01
00
10
01
003
3
3
11
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 41
Exemplo 3: Solução Alg. Viterbi parav = 11 01 10 00 00 00 00 00 ... (cont.)
11 01 10 00 00 00 00 00
00
11
00 00 00 00 00 00
11
10
01
11
00
01
10
3
00
01
10
00
01
103
10
01
00
3
310
01
00
10
01
00
00
10
01
00
00
4
4
3
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 42
Códigos Turbo• Codificador Turbo
– consiste de dois ou mais (geralmente idênticos, taxa R=1/2) codificadores sistemáticos recursivos (RSC) concatenadosem paralelo e um pseudo-aleatório “embaralhador” de bits (interleaver).
– Interleaver: permuta os bits de entrada tal que os doiscodificadores operam no mesmo conjunto de bits de entrada, porém em seqüências de entrada diferentes.
O nó “=” pode ser visto como um código de repetição que envia sua entrada por três caminhos. O nó π representa a permutação.
ur
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 43
Códigos Turbo• Inventados em 1993• Usam decodificação estatística• Podem ter um tamanho de bloco de 65536• Para R = 1/2, cada codificador convolucional é perfurado• Os bits de entrada são agrupados em seqüências de comprimento
finito cujo comprimento N, é igual ao tamanho do interleaver. • Como ambos os codificadores são sistemáticos e operam no
mesmo conjunto de bits de entrada, é necessário transmitir os bits de entrada apenas uma vez. Assim, a taxa de código R resultanteé de 1/3.
• Notação: Um (h0, h1, N) código Turbo significa que• h0, h1 : polinômios cheque de paridade dos dois codificadores.• N: comprimento do interleaver.
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 44
Exemplo:• Seja um código Turbo com a seguinte estrutura RSC
Estrutura do codificador RSC:
vr
ur
tamanho do Interleaver N = 16 com permutação
P16={15, 10, 1, 12, 2, 0, 13, 9, 5, 3, 8, 11, 7, 4, 14, 6}
que implica em u’0=u15, u’1=u10, e assim por diante.
12
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 45
Se a seqüência de entrada é
u={u0, …, u15} = {1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0},
então a entrada permutada do segundo codificador é:
u’={u’0, …, u’15} = {0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0}.
As seqüências de paridade sem perfuração são
v(1)={v(1)0,…,v(1)
15}={0,1,0,1,1,0,0,1,0,1,1,1,0,1,1,0}
v(2)={v(2)0,…,v(2)
15}={0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1}
Sem perfuração, a palavra-código resultante é
u0, v(1)0, v(2)
0, u1, v(1)1, v(2)
1, …, u15, v(1)15, v(2)
15
Taxa = 1/3.
Peso de Hamming da palavra-código resultante:
d=w(u)+w(v(1))+w(v(2)=4+9+6=19
Exemplo:
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 46
Exemplo:• Se a perfuração começa de v(1)
0, a seqüência da palavra-códigoperfurada se torna
• u0, v(2)0, u1, v(1)
1, u2, v(2)2, …, u15, v(1)
15
• Taxa = ½• Peso de Hamming da palavra-código resultante:• d= 4+6+2=12
• Se a perfuração começa de v(2)0, a palavra-código se torna
• u0, v(1)0, u1, v(2)
1, u2, v(1)2, …, u15, v(2)
15
• Taxa = ½• Peso de Hamming da palavra-código resultante:• d= 4+3+4=11
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 47
O Codificador Turbo UMTS
Atualmente, códigos turbo são usados em muitoas aplicações comerciais,incluindo a terceira geração de sistemas celulares UMTS e cdma2000.Third Generation Partnership Project(3GPP). Multiplexing and Channel Coding(FDD), March 2005. TS 25.212 Version 6.4.0.
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 48
Decodificação Iterativa de Códigos Turbo• os descobridores dos códigos Turbo propuseram um novo decodificador
iterativo baseado no algoritmo maximum a posteriori (MAP).• Um decodificador MAP calcula a probabilidade a posteriori P(ur=u|y)
condicionada a seqüência recebida y.
Diagramade Blocos de um decodificador Turbo iterativo
• Cada decodificador MAP corresponde a um dos codificadores. Os interleavers são idênticos aos do codificador Turbo e são usados parareordenar as seqüências tal que cada decodificador esteja sincronizado.
• Cada iteração do decodificador iterativo é executada em duas fases. As probabilidades a posteriori de uma fase são usadas como informação a priori da fase seguinte.
13
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 49
Decodificação Iterativa de Códigos Turbo• O primeiro decodificador MAP envia a informação para o segundo. O último
então realimenta a informação para o primeiro decodificador. Isto se parececom o princípio por trás das motores turbo. Assim, esta classe de codificadores é chamada de Códigos Turbo.
• O processo de decodificação iterativacontinua até que o desempenho desejado sejaalcançado.
• Para um código Turbo (37, 21, 65536), o desempenhocom decodificação iterativacontinua aumentando até18 iterações
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 50
Decodificação Passo a Passo
Passo 0as saídas do canal w e v1 são alimentadas em um nó que é usado
para decodificar o codificador conv. superior.Ao receber as saídas w e v1, o decodificador superior irá gerar as
probabilidades do bit w ser 1.
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 51
Decodificação Passo a Passo
Passo 1As saídas do decodificador superior são enviadas para o nó “=”, onde são
combinadas com as saídas do canal para w, e são tratadas como estimativas melhoradas para as probabilidades do bit w ser 1. Estas probabilidades são enviadas para o decodificador inferior, que também recebe as saídas do canal para v2. Este decodificador também irá gerar saídas para a probabilidade de que cada entrada seja 1.
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 52
Decodificação Passo a Passo
Passo 2
As saídas do decodificador inferior são enviadas através do nó “=”, onde são novamente combinadas com as saídas do canal para w, e são passadas como entradas do decodificador superior, onde sãonovamente combinadas com as saídas do canal para v2 .
Este processo é então repetido por algumas iterações: alternando entre os dois decodificadores.
14
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 53
Decodificação Passo a Passo
Obtendo as saídas:Nós combinamos as saídas do canal e as últimas saídas de cada decodificador.
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 54
Desempenho Código Turbo• Taxa R=1/2• Interleaver de tamanho 65536• Decodificador iterativo baseado no algoritmo BCJR (Bahl, Cocke, Jelinek e Raviv)
com 18 iterações
• Desempenho cai bastante abaixo de um valor crítico de Eb/No
• É difícil atingir taxa de erro abaixo de10-5
• Para taxa de erro igual a 10-5 ele está a menos de 0,5dB do limite teórico de Shannon
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 55
Códigos LDPC• Low-Density Parity-Check• Desvantagens dos códigos turbo:
– presença de palavras-código de baixo peso – não consegue com facilidade taxas de erro menores do que 10-5 a 10-6
– complexidade computacional do algoritmo de decodificação• LDPC
– Não possuem palavras-código de baixo peso– são obtidas taxas de erro tão pequenas quanto se queira– algoritmos iterativos de decodificação de baixa complexidade
• Características da codificação LDPC– matriz de checagem de paridade esparsa– posições dos 1´s são aleatórias– existem desde a década de 60, mas somente agora existe poder
computacional para implementar seus algoritmos de decodificação
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 56
Construção de códigos LDPC• caracterizado por três números (n,tc,tr) relacionados à
matriz de checagem de paridade H:– n é o comprimento do código;– tc é o peso (número de 1´s) de cada coluna H;– tr é o peso de cada linha H;– tr > tc, sempre.
• Matriz H gerada colocando-se 1´s aleatoriamente com as restrições de regularidade, isto é– cada coluna possui um número pequeno de 1´s, tc– cada linha possui um número pequeno de 1´s, tr
• Supondo que a densidade de 1´s em H é ρ, então para um código (n,k), H é (n-k) x n
15
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 57
Construção de códigos LDPC• Notar que para isto acontecer, as linhas de H precisam ser
linearmente independentes– Às vezes, as restrições de regularidade precisam ser ligeiramente
violadas para que isto aconteça• A matriz H não é sistemática mas, podemos ter uma matriz G
sistemática da forma abaixo:• c = [p | m], sendo p bits de paridade e m mensagem• sendo H1 matriz (n-k) x (n-k) e H2 matriz k x (n-k)
[ ] 0022
=+⇒=
= 21
11T mHpHHH
mpHH
H LML
• Se a matriz G é sistemática G = [P | Ik] e p = mP, temos
110 −=⇒=+ HHPHPH 221
• Ou seja, [ ]kIHHG 2 M11−=
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 58
Construção de códigos LDPC
• Notar que como H é (n-k)xn e H1é (n-k)x(n-k), então existe H1 não singular se as linhas de H são LI
• Usualmente, também se restringe o produto interno de duas linhas de H a ter no máximo o valor 1, pois estes códigos LDPC costumam apresentar melhor desempenho.
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 59
Exemplo – Código (10,3,5)=(n, tc,tr)
H
H1T H2
T
H1-1 H2H1
-1
H2H1-1 Ik Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 60
Inversão de Matriz• A inversa de uma matriz pode ser determinada resolvendo o sistema Ax=I, onde I
é a matriz identidade
• Método Eliminação Gaussiana– consiste em reduzir o sistema a uma forma equivalente, tal que a matriz se
escreva como uma matriz triangular– eliminar progressivamente as variáveis ate chegar a uma equação de uma
variável.
16
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 61
Decodificação Probabilística de Códigos LDPC• Como os tamanhos de blocos vão de 103 a 106, a análise algébrica
não é factível– Usa-se análise estatística
• Um código LDPC pose ser representado por um grafo bipartido: lado esquerdo n nós e lado direito (n-k) nós
• O nó j da esquerda está conectado ao nó i da direita se o elemento (i,j) de H é 1
Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 62
Decodificação Probabilística de Códigos LDPC
• O algoritmo funciona estimando a partir da palavra recebida r=c+e, um vetor ĉ tal que ĉAT=0– Se Pj
x é a probabilidade do bit j ser igual a x, então estima-se o bit j de ĉ como 1 se Pj
1 > Pj0 e vice-versa.
• O algoritmo então estima, iterativamente, para cada bit j, os valores de Pj
0 e Pj1, obtendo ĉ
– Se ĉAT=0 então a decodificação está terminada– Caso contrário, o algoritmo faz mais uma iteração– Após um número máximo de iterações (100 a 200), uma falha de
decodificação é decretada
• Os codificadores LDPC são mais simples de implementar do que os códigos turbo
• Entretanto, o seu desempenho não se aproxima tanto do limite de Shannon como dos códigos turbo