códigos de controle de erro teoria da informação...

16
Códigos de Controle de Erro Teoria da Informação 01/2007 Juliana Fernandes Camapum Engenharia 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: –p c (c) a probabilidade de uma palavra-código ser transmitida –p v (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 c i 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. c i será a palavra que minimiza d(c i ,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

Upload: others

Post on 17-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 2: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

=

+++=

+=+++=

=

+

++

Page 3: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

=

=

=+

++

Page 4: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 5: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 6: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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.

Page 7: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 8: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 9: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 10: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 11: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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.

Page 12: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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.

Page 13: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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.

Page 14: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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

Page 15: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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.

Page 16: Códigos de Controle de Erro Teoria da Informação 01/2007leobravo/Gerais/TurboCodes-LDPC-07-4x… · 7 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de

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