Vous êtes sur la page 1sur 12

Cdigos Cclicos: Definio

TCNICAS DE CODIFICAO DE SINAIS

Um cdigo de bloco linear um cdigo cclico se cada


deslocamento cclico das palavras-cdigo tambm uma
palavra-cdigo. Vantagens:
Descrio algbrica elegante
c(x) = m(x)g(x), g(x) polinmio gerador
c(x)h(x) = 0 mod (xn 1) h(x) polinmio de verificao de
paridade
c(1) = 0, ..., c(t) = 0, onde i GF(pm)

CDIGOS CCLICOS

Codificao e clculo de sndromes utilizando registradores de


deslocamento
Correo de surtos de erros
Correo de erros aleatrios atravs da soluo de equaes de
polinmios

Evelio M. G. Fernndez - 2010

Deslocamentos Cclicos de n-uplas e Polinmios

Deslocamentos Cclicos de n-uplas e Polinmios


xv(x): deslocamento cclico no tempo ou rotao direita sujeita condio,

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


Se v = (v0 , v1 , K , vn 1 ) C : cdigo cclico, ento deslocamentos
cclicos de v tambm pertencem a C, isto :

x n = 1 ou x n 1 = 0
x v(x ) = v0 x + v1 x 2 + L + vn 1 {
x n 1 x
=1

= vn 1 + v0 x + v1 x 2 + L + vn 2 x n 1 = v1 (x ) C

(vn 1 , v0 , v1 , v2 ,K , vn 2 )
(vn 2 , vn 1 , v0 , v1 ,K, vn3 )

multiplicao mdulo x n 1

(v1 , v2 K vn2 ,K, vn1 , v0 )


M

x v(x ) = xv1 (x )
2

= vn 1 x + v0 x 2 + v1 x 3 + L + vn 3 x n 1 + vn 2 {
xn
=1

Representao Polinomial:

v = (v0 , v1 ,K , vn 1 ) v( x ) = v0 + v1 x + v2 x + L + vn 1 x
2

onde: x = varivel auxiliar


vi GF(q); q primo.

n 1

= vn 2 + vn 1 x + v0 x 2 + v1 x 3 + L + vn 3 x n 1
= v2 (x ) C : Cdigo Cclico

{v(x ), xv(x ), x v(x ),K}mod x


2

1 C

Isto , para i o polinmio x i v(x ) mod x n 1C .

Corpos Finitos

Corpos Finitos

Um corpo finito com q elementos chamado de GF(q)


(Galois Field)

Teorema: A caracterstica, , de um corpo finito um


nmero primo

GF(p) = inteiros com aritmtica mdulo um nmero primo,


p

Teorema: Seja a um elemento diferente de zero em GF(q).


Ento, a(q1) = 1

GF(pm) = polinmios sobre GF(p) com aritmtica mdulo


um polinmio primo de grau m (extension field)

Teorema: Seja a um elemento diferente de zero em GF(q).


Seja n a ordem de a. Ento, n divide q1

Todo corpo finito o espao vetorial de m-uplas sobre o


corpo GF(p) de inteiros com aritmtica mdulo um nmero
primo p. Portanto, GF(q) = GF(pm)

Resultado: Se a ordem de a for q1, ento a um elemento


primitivo de GF(q)

Aritmtica de Corpos Finitos

Aritmtica de Corpos Finitos

Polinmios com uma varivel X e coeficientes em um


corpo F (denotados por F[x]), so expresses da forma
f ( X ) = f 0 + f1 X + f 2 X 2 + L + f n X n

O grau de f(X) a maior potncia de X (com coeficiente de


X 0)
Polinmio mnico: O coeficiente da maior potncia de X
1 Todos os polinmios diferentes de zero sobre GF(2)
so mnicos
Para qualquer dividendo f(X) F[x] e divisor diferente de
zero, g(X) F[x] existiro um par de polinmios nicos
q(X), cociente e r(X), resto, tal que

Definio:
Seja p(X) um polinmio de grau m sobre GF(2). Se p(X) no
for divisvel por nenhum polinmio sobre GF(2) de grau
m 1 ou menos, ento p(X) irredutvel sobre GF(2).
Resultado:
Qualquer polinmio irredutvel sobre GF(2) de grau m divide

X2

+1

f ( X ) = q( X )g ( X ) + r ( X ), onde deg r ( X ) < deg g ( X )

Aritmtica de Corpos Finitos


Definio:
Seja p(X) um polinmio irredutvel de grau m sobre GF(2);
ento, 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,
ento p(X) um polinmio primitivo de grau m sobre GF(2)

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
100
101
110

010
101
100
111

001
110
111
100

000
111
110
101

111
000
001
010

110
001
000
011

101
010
011
000

+
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
4
7
2
5

4
0
4
0
0
0
4
0
4

5
0
5
2
3
4
1
6
3

6
0
6
4
6
0
6
4
2

7
0
7
6
1
4
3
2
1

Operao de Multiplicao das 3-uplas

Soma Mdulo-2 (Bit-a-Bit)

011
100
101
110

Produto Mdulo-8

Soma Mdulo-8

100
011
010
001

111 111 110 101 100 011 010 001 000

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

Construo de GF(2m)

Representao
Definio:

111 2 + + 1
110 2 +
101 2 + 1
100 2
011 + 1
010
001 1
000 0

Um elemento de GF(2m) de ordem 2m 1 um elemento


primitivo.
se um elemento primitivo em GF(2m), ento as
potncias distintas de geram todos os elementos (diferentes
de zero) de GF(2m).
Definio:
Um polinmio irredutvel, p(x), de grau m sobre GF(2) um
polinmio primitivo se tiver como raiz um elemento
primitivo de GF(2m)

Propriedades de GF(2m)
Teorema:

Teorema:
Seja f(X) um polinmio com coeficientes em GF(2). Seja
um elemento de GF(2m). Se uma raiz de f(X), ento para
qualquer l 0 ,
l

2 tambm uma raiz de f(X)


O elemento

Propriedades de GF(2m)

chamado de conjugado de .

Os 2m 1 elementos diferentes de zero de GF(2m) compem


todas as razes de X 2

+1

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


Corolrio:
m

Os elementos de GF(2m) compem todas as razes de X 2 + X


pode ser uma raiz de um polinmio sobre GF(2) de grau
menor que 2m

Propriedades de GF(2m)

Polinmio Gerador

Definio:
Seja um elemento de GF(2m). O polinmio minimal, (X),
de o polinmio de menor grau com coeficientes em GF(2)
tal que () = 0.
Teorema:
Sejam (X) o polinmio minimal de um
elemento em
e
GF(2m) e e o menor inteiro tal que 2 = . Ento:
e 1

(X ) = X + 2
i =0

Polinmio Gerador

Seja C um cdigo cclico (n, k) sobre GF(q)


Existe um polinmio mnico g(x), chamado de polinmio
gerador, tal que uma n-upla c(x) uma palavra-cdigo se e
somente se g(x) for um divisor de c(x).
O polinmio gerador nico.
O grau do polinmio gerador n k.
g(x) o polinmio cdigo de menor grau entre todos os
polinmios cdigo.
O polinmio gerador um divisor de xn 1.

Matriz Geradora no Sistemtica

g ( x ) = 1 + g1 x + g 2 x 2 + L + g n k x n k

c( x ) = a ( x) g ( x ) mod x n 1C : ( n, k )

Cdigo cclico C: (n, k) gerado por g(x) de grau r = n k

onde:
Grau [c(x)] n 1.
Grau [g(x)] = n k.
Grau [a(x)] k 1.
a(x): polinmio em x associado mensagem a ser codificada em c(x).
Seja a ( x) = a0 + a1 x + a2 x 2 + L + ak 1 x k 1
a ( x ) g ( x ) = a0 {
g ( x) + a1 xg ( x) + L + ak 1 x k 1 g ( x)
123
1
424
3
C

g (x ) g 0
xg ( x ) 0
= M
M
G=
x k 2 g ( x ) 0
k 1

x g ( x ) 0

g1 L g r 0 0 0 0
g 0 g1 L g r 0 0 0
M O O L O O M
0 0 g 0 g1 L g r 0

0 0 0 g 0 g1 L g r

Portanto:
a(x)g(x) = combinao linear de palavras cdigo que resulta em uma outra
palavra cdigo de C.

Cdigo Cclico Sistemtico

Procedimento para Codificao Sistemtica

v = b0 , b1 ,K, bn k 1 , m0 , m1 ,K, mk 1
1
4
4
2
4
4
3
1
4
4
2
4
4
3
n k bits de cheque

k
bits
de
mensagem

de paridade

1. m( x) x n k = ?
2. Resto da diviso

Seja m(x): polinmio-mensagem,

3. b( x) + x n k m( x) = v( x)

m( x) = m0 + m1 x + L + mk 1 x k 1

v(x): polinmio cdigo de cdigo sistemtico.

EXEMPLO:

v( x) = b0 + b1 x + L + bn k 1 x n k 1 + m0 x n k + m1 x n k +1 + L mk 1 x k 1
1444424444
3 1444442444443
b( x)

m( x) = 1 + x 3 , g ( x) = 1 + x + x 3 , cdigo cclico C: (7, 4).

x n k m ( x )

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

x n k m( x )
= b( x ) ?
g ( x)

Palavra cdigo correspondente m(x)?

x n k m( x )
b( x )
= a ( x)
g ( x)
g ( x)

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

Polinmio de Verificao de Paridade

Codificador de um Cdigo Cclico (n, k)

x 1 = h( x ) g ( x)
n

ou:

h( x) g ( x) mod x n 1 = 0

g(x): polinmio gerador de C: (n, k)


h(x): polinmio de verificao de paridade de C: (n, k)
Grau [g(x)] = n k
Grau [h(x)] = k
Teorema 4.7 (Lin & Costelo, pg. 94):
Seja C: (n, k) um cdigo cclico q-rio com polinmio gerador g(x), em
GF(q). O cdigo dual de C tambm cclico e gerado pelo polinmio

( ),

hk ( x) = x h x
k

b0

b1

b2

bn-k-2

bn-k-1

x n k m( x )

onde hk (x) o polinmio recproco do polinmio de

verificao de paridade do cdigo C.

Codificador do Cdigo Cclico (7, 4)

Circuito de Clculo das Sndromes

r(x)
s0

Clculo de Sndromes Cdigo (7, 4)

s1

sn-k-1

Capacidade de Deteco de Erros


Um cdigo cclico (n, k) capaz de detectar qualquer surto
de erros de comprimento n k ou menor, incluindo surtos do
tipo end-around.
A frao de surtos no detectveis de comprimento n k +1
2 (n k 1)
Para l > n k +1, a frao de surtos no detectveis de
comprimento l 2 (n k)

Decodificao de Cdigos Cclicos

Decodificao de Cdigos Cclicos


Passo 1: Calcular a sndrome de r(x) e armazenar r(x) no registrador
Passo 2: Determinar padro de erro. A sada do detector 1 se e
somente se a sndrome no registrador corresponde a um padro de erro
corrigvel contendo um erro na posio xn 1
Passo 3: O buffer e o registrador de sndrome so deslocados uma
posio direita. A sada do detector faz a correo do primeiro
smbolo (se en 1 = 1) e tambm realimentada no registrador de
sndrome. Nova sndrome corresponde r(x) deslocado
Passo 4: Detectar se xn 2 (agora na ltima posio) um smbolo
errado. Repetir passos 2 e 3. O segundo smbolo corrigido da mesma
forma que o anterior.
Passo 5: Decodificar o vetor recebido smbolo a smbolo da forma
descrita anteriormente

Decodificador de Meggitt para o Cdigo Cclico (7, 4)

Processo de
Correo de Erros

BCH bound

Cdigos Cclicos Binrios vistos a partir de GF(2m)


Teorema: Seja g(x) o polinmio gerador de um cdigo
cclico binrio de comprimento n = 2m 1 com zeros 1,..., r
em GF(2m). O polinmio c(x) sobre GF(2) um polinmio
cdigo se e somente se
c(1) = c(2) = = c(r) = 0
onde c(i) avaliado em GF(2m)

Se um cdigo cclico linear construdo de forma que:


Cada palavra-cdigo tem n bits;
um elemento de ordem n em GF(2m);
O polinmio gerador do cdigo, g(x), inclui, entre suas
razes, ( - 1) potncias consecutivas de .

Ento,
garantido que o cdigo tem distncia mnima igual a ou
maior.

Construo de Cdigos BCH


Para cada raiz includa em g(x), existe um polinmio
minimal f(r)(x) que tem r como raiz [i.e., f(r)(r) = 0] e com
coeficientes em GF(2).
r

O polinmio gerador, com coeficientes binrios, que


contm todas as razes necessrias pode ser obtido como
sendo o mnimo comum mltiplo (LCM) de todos os
polinmios minimais correspondentes s razes utilizadas:

Tipos de Cdigos BCH


Se um elemento primitivo de GF(2m), o cdigo BCH
resultante chamado de cdigo BCH primitivo e as suas
palavras-cdigo tm comprimento 2m 1 bits.
Se no um elemento primitivo de GF(2m), o cdigo
BCH resultante chamado de cdigo BCH no primitivo
e as suas palavras-cdigo tm comprimento igual ordem
de .
Se b = 0, a primeira das ( - 1) potncias de ser 1 = ,
cdigo BCH no sentido estrito.
Se b 0, cdigo BCH no sentido amplo.

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

Cdigos BCH Binrios Primitivos

Elementos de GF(24)

Para qualquer m 3 e t 2m 1, existe um cdigo BCH


com os seguinte parmetros:
n = 2m 1 ,
n k mt,
dmin 2t + 1
O polinmio gerador do cdigo, g(x), o polinmio de
menor grau sobre GF(2) contendo

, 2 , 3 ,L , 2t

como razes, onde um elemento primitivo de GF(2m)

Decodificao de Cdigos BCH


1. Computar as sndromes S = (S1, S2, ..., S2t) a partir
de r(x)
2. Determinar (x) a partir de S1, S2, ..., S2t
3. Determinar as localizaes dos erros, 1, 2, ...,
encontrando as razes de (x) e corrigir os erros
em r(x)

Cdigos BCH Primitivos sobre GF(q)


Seja um elemento primitivo em GF(qm ).
O polinmio gerador, g(x), de um cdigo BCH qrio primitivo corretor de t erros o polinmio de
menor grau sobre GF(q) contendo , 2 , 3 ,L , 2t
como razes. Seja i(x) o polinmio minimal de i,
1 i 2t. Ento,
g(x) = LCM{1(x), 2(x), ..., 2t(x)}

10

Cdigos de Reed-Solomon
Um cdigo de Reed-Solomon (ou cdigo RS)
um cdigo BCH primitivo (no binrio) de
comprimento n = q 1 sobre GF(q). O polinmio
gerador desse cdigo tem a forma

)(

) (

Desempenho de Cdigos
RS sobre GF(26) com
n = 31, considerando
modulao 32-FSK

g (x ) = x x 2 L x 2t
= g 0 + g1 x + g 2 x 2 + L + g 2t 1 x 2t 1 + x 2t
onde um elemento primitivo de GF(q), d a
distncia mnima do cdigo e gi GF(q)

Desempenho de Cdigos
RS sobre GF(26) com
n = 31, considerando
modulao 32-FSK

Desempenho de Cdigos RS com R = 7/8

11

Desempenho de Cdigos RS com n = 64

Decodificador de Cdigos BCH q-rios

Desempenho de Cdigos RS com n = 31 e Modulao BPSK

Desempenho de Cdigos de Reed-Solomon

12