códigos de controle de erro teoria da informação …leobravo/tt 081/turbocodes-ldpc-07-1x1… ·...

62
Códigos de Controle de Erro Teoria da Informação 01/2007 Juliana Fernandes Camapum Engenharia de Redes de Comunicação

Upload: vandang

Post on 10-Oct-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

1

Códigos de Controle de Erro

Teoria da Informação01/2007

Juliana Fernandes CamapumEngenharia de Redes de Comunicação

Page 2: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

2

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

Page 3: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

3

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.

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

4

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 5: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

5

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)

Page 6: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

6

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

++++=

++=

++=

=

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

7

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

++=

++==

=

Page 8: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

8

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 9: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

9

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( +=+++=

Page 10: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

10

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

+++=

+=

++=

=

Page 11: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

11

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

Page 12: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

12

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 13: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

13

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

Page 14: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

14

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)

Page 15: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

15

Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 15

Códigos Convolucionais Recursivos

y(0)

y(1)

Page 16: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

16

Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 16

Page 17: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

17

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)

Page 18: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

18

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)

Page 19: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

19

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

Page 20: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

20

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 21: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

21

Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 21

Algoritmo de Viterbi (cont.)

Page 22: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

22

Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle de Erro - 22

Algoritmo de Viterbi (cont.)

Page 23: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

23

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

Page 24: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

24

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 25: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

25

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

Page 26: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

26

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

Page 27: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

27

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

Page 28: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

28

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 29: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

29

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

Page 30: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

30

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

Page 31: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

31

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

Page 32: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

32

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 33: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

33

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

Page 34: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

34

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

Page 35: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

35

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

Page 36: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

36

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 37: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

37

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

Page 38: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

38

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

Page 39: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

39

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

Page 40: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

40

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 41: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

41

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

Page 42: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

42

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

Page 43: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

43

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.

Page 44: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

44

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 45: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

45

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:

Page 46: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

46

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

Page 47: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

47

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.

Page 48: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

48

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 49: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

49

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

Page 50: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

50

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.

Page 51: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

51

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.

Page 52: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

52

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 53: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

53

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.

Page 54: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

54

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

Page 55: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

55

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

Page 56: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

56

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 57: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

57

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−=

Page 58: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

58

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.

Page 59: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

59

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

Page 60: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

60

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 61: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

61

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

Page 62: Códigos de Controle de Erro Teoria da Informação …leobravo/TT 081/TurboCodes-LDPC-07-1x1… · 2 Juliana Fernandes Camapum - 01/2007 Teoria da Informação – Códigos de Controle

62

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