48
TÉCNICAS DE CODIFICAÇÃO DE SINAIS CÓDIGOS CÍCLICOS Evelio M. G. Fernández - 2010

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

  • Upload
    livi

  • View
    26

  • Download
    0

Embed Size (px)

DESCRIPTION

TÉCNICAS DE CODIFICAÇÃO DE SINAIS. CÓDIGOS CÍCLICOS Evelio M. G. Fernández - 2010. Códigos Cíclicos: Definição. Um código de bloco linear é um código cíclico se cada deslocamento cíclico das palavras-código é também uma palavra-código. Vantagens: Descrição algébrica elegante - PowerPoint PPT Presentation

Citation preview

Page 1: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

CÓDIGOS CÍCLICOS

Evelio M. G. Fernández - 2010

Page 2: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Códigos Cíclicos: Definição

• Um código de bloco linear é um código cíclico se cada deslocamento cíclico das palavras-código é também uma palavra-código. Vantagens:

– Descrição algébrica elegante

• c(x) = m(x)g(x), g(x) polinômio gerador• c(x)h(x) = 0 mod (xn 1) h(x) polinômio de verificação de paridade• c(β1) = 0, ..., c(βt) = 0, onde βi GF(pm)

– Codificação e cálculo de síndromes utilizando registradores de deslocamento

– Correção de surtos de erros– Correção de erros aleatórios através da solução de equações de

polinômios

Page 3: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

C: (n, k), C: SubEsp Vn

Se Cvvvv n 110 ,,, : código cíclico, então deslocamentos

cíclicos de v também pertencem a C, isto é:

C

vvvvv

vvvvv

vvvvv

nn

nnn

nn

01221

31012

22101

,,,,

,,,,,

,,,,,

Representação Polinomial:

110 ,,, nvvvv ↔ 11

2210

n

n xvxvxvvxv

onde: x = variável auxiliar

vi GF(q); q primo.

Deslocamentos Cíclicos de n-uplas e Polinômios

Page 4: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

x·v(x): deslocamento cíclico no tempo ou rotação à direita sujeita à condição,

01ou 1 nn xx

Cxvxvxvxvv

xxvxvxvxvx

nnn

nn

11

22

101

1

11

210

multiplicação módulo 1nx

Cíclico Código :2

13

31

2012

12

13

31

201

12

Cxv

xvxvxvxvv

xvxvxvxvxv

xxvxvx

nnnn

nn

nnn

Cxxvxxxvxv n 1mod,,, 2

Isto é, para i o polinômio Cxxvx ni 1mod .

Deslocamentos Cíclicos de n-uplas e Polinômios

Page 5: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Corpos Finitos

• Um corpo finito com q elementos é chamado de GF(q) (Galois Field)

• GF(p) = inteiros com aritmética módulo um número primo, p

• GF(pm) = polinômios sobre GF(p) com aritmética módulo um polinômio primo de grau m (extension field)

• Todo corpo finito é o espaço vetorial de m-uplas sobre o corpo GF(p) de inteiros com aritmética módulo um número primo p. Portanto, GF(q) = GF(pm)

Page 6: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Corpos Finitos

• Teorema: A característica, λ, de um corpo finito é um número primo

• Teorema: Seja a um elemento diferente de zero em GF(q). Então, a(q1) = 1

• Teorema: Seja a um elemento diferente de zero em GF(q). Seja n a ordem de a. Então, n divide q1

• Resultado: Se a ordem de a for q1, então a é um elemento primitivo de GF(q)

Page 7: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Aritmética de Corpos Finitos

• Polinômios com uma variável X e coeficientes em um corpo F (denotados por F[x]), são expressões da forma

• O grau de f(X) é a maior potência de X (com coeficiente de X ≠ 0)

• Polinômio mônico: O coeficiente da maior potência de X é 1 Todos os polinômios diferentes de zero sobre GF(2) são mônicos

• Para qualquer dividendo f(X) F[x] e divisor diferente de zero, g(X) F[x] existirão um par de polinômios únicos q(X), cociente e r(X), resto, tal que

nn XfXfXffXf 2

210

XgXrXrXgXqXf degdegonde,

Page 8: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Definição:

Seja p(X) um polinômio de grau m sobre GF(2). Se p(X) não for divisível por nenhum polinômio sobre GF(2) de grau m – 1 ou menos, então p(X) é irredutível sobre GF(2).

Resultado:

Qualquer polinômio irredutível sobre GF(2) de grau m divide

112 m

X

Aritmética de Corpos Finitos

Page 9: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Definição:

Seja p(X) um polinômio irredutível de grau m sobre GF(2);

então, p(X) divide Xn + 1 para n = 2m – 1. Se este valor de n

for o menor inteiro positivo para o qual p(X) divide xn + 1,

então p(X) é um polinômio primitivo de grau m sobre GF(2)

Aritmética de Corpos Finitos

Page 10: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

+ 0 1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 7

1 1 2 3 4 5 6 7 0

2 2 3 4 5 6 7 0 1

3 3 4 5 6 7 0 1 2

4 4 5 6 7 0 1 2 3

5 5 6 7 0 1 2 3 4

6 6 7 0 1 2 3 4 5

7 7 0 1 2 3 4 5 6

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6 7

2 0 2 4 6 0 2 4 6

3 0 3 6 1 0 3 6 1

4 0 4 0 4 0 4 0 4

5 0 5 2 7 4 1 6 3

6 0 6 4 2 0 6 4 2

7 0 7 6 5 4 3 2 1

Soma Módulo-8 Produto Módulo-8

Page 11: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

000 001 010 011 100 101 110 111

000 000 001 010 011 100 101 110 111

001 001 000 011 010 101 100 111 110

010 010 011 000 001 110 111 100 101

011 011 010 001 000 111 110 101 100

100 100 101 110 111 000 001 010 011

101 101 100 111 110 001 000 011 010

110 110 111 100 101 010 011 000 001

111 111 110 101 100 011 010 001 000

Soma Módulo-2 (Bit-a-Bit)

Page 12: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

001 010 011 100 101 110 111

001 001 010 011 100 101 110 111

010 010 100 110 011 001 111 101

011 011 110 101 111 100 001 010

100 100 011 111 110 010 101 001

101 101 001 100 010 111 011 110

110 110 111 001 101 011 010 100

111 111 101 010 001 110 100 011

Operação de “Multiplicação” das 3-uplas

Page 13: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

0000

1001

010

1011

100

1101

110

1111

2

2

2

2

Representação

Page 14: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Definição:

Um elemento de GF(2m) de ordem 2m – 1 é um elemento primitivo. se é um elemento primitivo em GF(2m), então as potências distintas de geram todos os elementos (diferentes de zero) de GF(2m).

Definição:

Um polinômio irredutível, p(x), de grau m sobre GF(2) é um polinômio primitivo se tiver como raiz um elemento primitivo de GF(2m)

Construção de GF(2m)

Page 15: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Teorema:

Seja f(X) um polinômio com coeficientes em GF(2). Seja um elemento de GF(2m). Se é uma raiz de f(X), então para qualquer l ≥ 0 ,

é também uma raiz de f(X)

O elemento é chamado de conjugado de . l2

l2

Propriedades de GF(2m)

Page 16: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Teorema:

Os 2m – 1 elementos diferentes de zero de GF(2m) compõem

todas as raízes de

O elemento 0 de GF(2m) é a raiz de X. Portanto,

Corolário:

Os elementos de GF(2m) compõem todas as raízes de

β pode ser uma raiz de um polinômio sobre GF(2) de grau

menor que 2m

112 m

X

Propriedades de GF(2m)

XXm

2

Page 17: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Definição:

Seja um elemento de GF(2m). O polinômio minimal, (X), de é o polinômio de menor grau com coeficientes em GF(2) tal que () = 0.

Teorema:

Sejam (X) o polinômio minimal de um elemento em GF(2m) e e o menor inteiro tal que . Então:

e2

1

0

2e

i

i

XX

Propriedades de GF(2m)

Page 18: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Polinômio Gerador

Seja C um código cíclico (n, k) sobre GF(q)

• Existe um polinômio mônico g(x), chamado de polinômio gerador, tal que uma n-upla c(x) é uma palavra-código se e somente se g(x) for um divisor de c(x).

• O polinômio gerador é único.• O grau do polinômio gerador é n k.• g(x) é o polinômio código de menor grau entre todos os

polinômios código.• O polinômio gerador é um divisor de xn 1.

Page 19: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

knkn xgxgxgxg

2211

),(:1mod)()()( knCxxgxaxc n

onde:

Grau [c(x)] n – 1.

Grau [g(x)] = n – k.

Grau [a(x)] k – 1.

a(x): polinômio em x associado à mensagem a ser codificada em c(x).

Seja 11

2210)(

kk xaxaxaaxa

C

kk

CC

xgxaxxgaxgaxgxa

)()()()()( 1110

Portanto:

a(x)g(x) = combinação linear de palavras código que resulta em uma outra

palavra código de C.

Polinômio Gerador

Page 20: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Matriz Geradora não Sistemática

• Código cíclico C: (n, k) gerado por g(x) de grau r = n k

r

r

r

r

k

k

gggggg

gggggg

xgxxgx

xxgxg

G

10

10

10

10

1

2

00000000

00000000

Page 21: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

mensagemdebitsk

k

paridadedechequedebitskn

kn mmmbbbv 110110 ,,,,,,,

Seja m(x): polinômio-mensagem,

1110)(

kk xmxmmxm

v(x): polinômio código de código sistemático.

)(

11

110

)(

1110)(

xmx

kk

knkn

xb

knkn

kn

xmxmxmxbxbbxv

Se v(x) = a(x)g(x)

)(

)()(

)(

)(

xg

xbxa

xg

xmx kn

Código Cíclico Sistemático

Page 22: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

1. ?)( knxxm

2. Resto da divisão ?)()(

)(xb

xg

xmx kn

3. )()()( xvxmxxb kn

EXEMPLO:

31)( xxm , 31)( xxxg , código cíclico C: (7, 4).

Palavra código correspondente à m(x)?

a(x) tal que a(x)g(x) = v(x)?

Procedimento para Codificação Sistemática

Page 23: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

)()(1 xgxhxn

ou: 01mod)()( nxxgxh

g(x): polinômio gerador de C: (n, k)

h(x): polinômio de verificação de paridade de C: (n, k)

Grau [g(x)] = n – k

Grau [h(x)] = k

Teorema 4.7 (Lin & Costelo, pág. 94):

Seja C: (n, k) um código cíclico q-ário com polinômio gerador g(x), em

GF(q). O código dual de C é também cíclico e é gerado pelo polinômio

1)( xhxxh kk , onde )(xhk é o polinômio recíproco do polinômio de

verificação de paridade do código C.

Polinômio de Verificação de Paridade

Page 24: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Codificador de um Código Cíclico (n, k)

b0 b1 b2 bn-k-1bn-k-2

xmx kn

Page 25: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Codificador do Código Cíclico (7, 4)

Page 26: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Circuito de Cálculo das Síndromes

s0 s1sn-k-1

r(x)

Page 27: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Cálculo de Síndromes Código (7, 4)

Page 28: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

• Um código cíclico (n, k) é capaz de detectar qualquer surto de erros de comprimento n k ou menor, incluindo surtos do tipo end-around.

• A fração de surtos não detectáveis de comprimento n k +1 é 2 (n k 1)

• Para l > n k +1, a fração de surtos não detectáveis de comprimento l é 2 (n k)

Capacidade de Detecção de Erros

Page 29: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Decodificação de Códigos Cíclicos

Page 30: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

• Passo 1: Calcular a síndrome de r(x) e armazenar r(x) no registrador

• Passo 2: Determinar padrão de erro. A saída do detector é 1 se e somente se a síndrome no registrador corresponde a um padrão de erro corrigível contendo um erro na posição xn 1

• Passo 3: O buffer e o registrador de síndrome são deslocados uma posição à direita. A saída do detector faz a correção do primeiro símbolo (se en 1 = 1) e também é realimentada no registrador de síndrome. Nova síndrome corresponde à r(x) deslocado

• Passo 4: Detectar se xn 2 (agora na última posição) é um símbolo errado. Repetir passos 2 e 3. O segundo símbolo é corrigido da mesma forma que o anterior.

• Passo 5: Decodificar o vetor recebido símbolo a símbolo da forma descrita anteriormente

Decodificação de Códigos Cíclicos

Page 31: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Decodificador de Meggitt para o Código Cíclico (7, 4)

Page 32: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Processo de Correção de Erros

Page 33: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Códigos Cíclicos Binários vistos a partir de GF(2m)

• Teorema: Seja g(x) o polinômio gerador de um código cíclico binário de comprimento n = 2m 1 com zeros 1,..., r em GF(2m). O polinômio c(x) sobre GF(2) é um polinômio código se e somente se

c(1) = c(2) = ··· = c(r) = 0

onde c(i) é avaliado em GF(2m)

Page 34: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

BCH bound

Se um código cíclico linear é construído de forma que:

• Cada palavra-código tem n bits; é um elemento de ordem n em GF(2m);

• O polinômio gerador do código, g(x), inclui, entre suas raízes, ( - 1) potências consecutivas de .

Então,

• É garantido que o código tem distância mínima igual a ou maior.

Page 35: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Construção de Códigos BCH

• Para cada raiz r incluída em g(x), existe um polinômio minimal f(r)(x) que tem r como raiz [i.e., f(r)(r) = 0] e com coeficientes em GF(2).

• O polinômio gerador, com coeficientes binários, que contém todas as raízes necessárias pode ser obtido como sendo o mínimo comum múltiplo (LCM) de todos os polinômios minimais correspondentes às raízes utilizadas:

g(x) = LCM{f(b+1)(x), f(b+2)(x), ..., f(b+-1)(x)}

Page 36: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Tipos de Códigos BCH

• Se é um elemento primitivo de GF(2m), o código BCH resultante é chamado de código BCH primitivo e as suas palavras-código têm comprimento 2m – 1 bits.

• Se não é um elemento primitivo de GF(2m), o código BCH resultante é chamado de código BCH não primitivo e as suas palavras-código têm comprimento igual à ordem de .

• Se b = 0, a primeira das ( - 1) potências de será 1 = , código BCH no sentido estrito.

• Se b 0, código BCH no sentido amplo.

Page 37: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Códigos BCH Binários Primitivos

Para qualquer m 3 e t 2m 1, existe um código BCH com os seguinte parâmetros:

n = 2m 1, n k mt,dmin 2t + 1

O polinômio gerador do código, g(x), é o polinômio de menor grau sobre GF(2) contendo

como raízes, onde α é um elemento primitivo de GF(2m)

t232 ,,,,

Page 38: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Elementos de GF(24)

Page 39: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Decodificação de Códigos BCH

1. Computar as síndromes S = (S1, S2, ..., S2t) a partir de r(x)

2. Determinar σ(x) a partir de S1, S2, ..., S2t

3. Determinar as localizações dos erros, 1, 2, ..., υ

encontrando as raízes de σ(x) e corrigir os erros em r(x)

Page 40: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Códigos BCH Primitivos sobre GF(q)

Seja α um elemento primitivo em GF(qm ).

O polinômio gerador, g(x), de um código BCH q-ário primitivo corretor de t erros é o polinômio de menor grau sobre GF(q) contendo

como raízes. Seja i(x) o polinômio minimal de αi, 1 i 2t. Então,

g(x) = LCM{1(x), 2(x), ..., 2t(x)}

t232 ,,,,

Page 41: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Códigos de Reed-Solomon

Um código de Reed-Solomon (ou código RS) é um código BCH primitivo (não binário) de comprimento n = q – 1 sobre GF(q). O polinômio gerador desse código tem a forma

onde é um elemento primitivo de GF(q), d é a distância mínima do código e gi GF(q)

tt

t

t

xxgxgxggxxxxg

21212

2210

22

Page 42: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Desempenho de Códigos RS sobre GF(26) comn = 31, considerando modulação 32-FSK

Page 43: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Desempenho de Códigos RS sobre GF(26) comn = 31, considerando modulação 32-FSK

Page 44: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Desempenho de Códigos RS com R = 7/8

Page 45: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Desempenho de Códigos RS com n = 64

Page 46: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Desempenho de Códigos RS com n = 31 e Modulação BPSK

Page 47: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Decodificador de Códigos BCH q-ários

Page 48: TÉCNICAS DE CODIFICAÇÃO DE SINAIS

Desempenho de Códigos de Reed-Solomon