• Nenhum resultado encontrado

Códigos cíclicos - Parte 1

N/A
N/A
Protected

Academic year: 2021

Share "Códigos cíclicos - Parte 1"

Copied!
39
0
0

Texto

(1)

odigos c´ıclicos - Parte 1

Luis Henrique Assump¸

ao Lolis

(2)

Conte´

udo

1

Introdu¸

ao

2

Polinˆ

omio gerador e verificador de paridade

3

Matrizes geradoras e de verifica¸

ao de paridade

(3)

Sum´

ario

1

Introdu¸

ao

2

Polinˆ

omio gerador e verificador de paridade

3

Matrizes geradoras e de verifica¸

ao de paridade

(4)

Introdu¸c˜

ao

´

E uma subclasse de c´

odigos de bloco lineares

Satisfaz as seguintes rela¸

oes:

1 Propriedade da linearidade: a soma de duas palavras-c´odigo

quaisquer tamb´em uma palavra c´odigo.

2 Propriedade c´ıclica: qualquer deslocamento c´ıclico de uma

palavra c´odigo tamb´em ´e uma palavra c´odigo. c(1)= (c

n−1, c0, . . . , cn−2)

c(i)= (c

n−i, cn−i+1, . . . , cn−1, c0, c1, . . . , cn−i−1)

Para desenvolver as propriedades alg´

ebricas do c´

odigo c´ıclico,

consideramos cada componente de uma palavra c´

odigo

c(X) = c

0

+ c

1

X + c

2

X

2

+ . . . + c

n−1

X

n−1

(5)

A correspondˆ

encia entre a palavra chave e o polinˆ

omio ´

e de

um pra um.

Agora analisando o polinˆ

omio de X deslocado de i, c

(i)

(X):

c

(i)

(X) = c

n−i

+ c

n−i+1

X + . . . + c

n−1

X

i−1

+ c

0

X

i

+

c

1

X

i+1

+ . . . + c

n−i−1

X

n−1

Multiplicando c(X) por X

i

, temos:

X

i

c(X) =

c

0

X

i

+ c

1

X

i+1

+ . . . + c

n−i−1

X

n−1

+ c

n−i

+ . . . + c

n−i

X

n+i−1

Agora encontramos c

(i)

(X) dentro de X

i

c(X)

cn−1X(n+i−1) = cn−1X(i−1)(Xn+ 1 + 1):

cn−1X(n+i−1) = cn−1X(i−1)(Xn+ 1) + cn−1X(i−1)

cn−iXn= cn−i(Xn+ 1 + 1) = cn−i(Xn+ 1) + cn−i

Separando dessa maneira todos os coeficientes de X

i

c(X):

X

i

c(X) = c

n−i

+ c

n−i+1

X + . . . + c

n−1

X

i−1

+ c

0

X

i

+

(6)

X

i

c(X) = q(X)(X

n

+ 1) + c

(i)

(X),

q(X) = c

n−i

+ c

n−i+1

X + . . . + c

n−1

X

i−1

(7)

g(X) = 1 + X + X3

Mensagem Palavra c´odigo Polinˆomio do c´odigo (0 0 0 0) 0 0 0 0 0 0 0 0 = 0 · g(X) (1 0 0 0) 1 1 0 1 0 0 0 1 + X + X3= 1 · g(X) (0 1 0 0) 0 1 1 0 1 0 0 X + X2+ X4= X · g(X) (1 1 0 0) 1 0 1 1 1 0 0 1 + X2+ X3+ X4= (1 + X) · g(X) (0 0 1 0) 0 0 1 1 0 1 0 X2+ X3+ X5= X2· g(X) (1 0 1 0) 1 1 1 0 0 1 0 1 + X + X2+ X5= (1 + X2) · g(X) (0 1 1 0) 0 1 0 1 1 1 0 X + X3+ X4+ X5= (X + X2) · g(X) (1 1 1 0) 1 0 0 0 1 1 0 1 + X4+ X5= (1 + X + X2) · g(X) (0 0 0 1) 0 0 0 1 1 0 1 X3+ X4+ X6= X3· g(X) (1 0 0 1) 1 1 0 0 1 0 1 1 + X + X4+ X6= (1 + X3) · g(X) (0 1 0 1) 0 1 1 1 0 0 1 X + X2+ X3+ X6= (X + X3) · g(X) (1 1 0 1) 1 0 1 0 0 0 1 1 + X2+ X6= (1 + X + X3) · g(X) (0 0 1 1) 0 0 1 0 1 1 1 X2+ X4+ X5+ X6= (X2+ X3) · g(X) (1 0 1 1) 1 1 1 1 1 1 1 1 + X + X2+ X3+ X4+ X5+ X6 = (1 + X2+ X3) · g(X) (0 1 1 1) 0 1 0 0 0 1 1 X + X5+ X6 = (X + X2+ X3) · g(X) 3 5 6 2 3

(8)

Sum´

ario

1 Introdu¸c˜ao

2 Polinˆomio gerador e verificador de paridade

3 Matrizes geradoras e de verifica¸c˜ao de paridade

(9)

Polinˆ

omio gerador

g(X) ´e um polinˆomio de grau n − k e fator de Xn+ 1: g(X) = 1 + n−k−1 X i=1 giXi+ Xn−k giigual a 0 ou 1.

O c´odigo ´e calculado da seguinte maneira: c(X) = a(X)g(X) a(X) ´e um polinˆomio em X de grau k − 1

Para o c´odigo (7,4) podemos ter os seguintes polinˆomios geradores:

Fatorando Xn+ 1.

X7+ 1 = (1 + X)(1 + X + X3)(1 + X2+ X3)

Tanto (1 + X + X3) quanto (1 + X2+ X3) s˜ao polinˆomios

(10)

Colocando o c´

odigo c´ıclico na forma sistem´

atica

Agora definimos que a mensagem vai ser codificado num c´odigo sistem´atico c´ıclico.

(b0, b1, . . . , bn−k−1 | {z } n−k bits de paridade , m0, m1, . . . , mk−1 | {z } k bits da mensagem ) m(X) = m0+ m1+ . . . + mk−1Xk−1 b(X) = b0+ b1+ . . . + bn−k−1Xn−k−1 c(X) = b(X) + Xn−km(X) a(X)g(X) = b(X) + Xn−km(X) Xn−km(X) g(X) = a(X) + b(X) g(X)

(11)

Procedimento de codifica¸c˜

ao

1 Multiplicar m(X) por Xn−k

2 Dividir Xn−km(X) pelo polinˆomio gerador g(X), obter o resto b(X)

(12)

Polinˆ

omio verifica¸c˜

ao de paridade

1 O polinˆomio h(X) de tamanho k ´e definido da seguinte forma: h(X) = 1 +

k−1

X

i=1

hiXi+ Xk

2 E equivalente a matriz H de verifica¸´ ao de paridade, de tal maneira que:

g(X)h(X)mod(Xn+ 1) = 0 g(X)h(X) = (Xn+ 1)

(13)

Exerc´ıcio

Calcular a palavra c´odigo para o c´odigo c´ıclico (7, 4), com g(X) = 1 + X + X3 e a mensagem a ser codificada m = (1001).

1 O polinˆomio da mensagem ´e m(X) = 1 + X3

2 Multiplicar m(X) por Xn−k= X3 ⇒ X3m(X) = X3+ X6. 3 Dividir X3m(X) por g(X): X3 +X (quociente) X3+ X + 1| X6 X3 X6 +X4 +X3 X4 X4 +X2 +X X2 +X (resto) 4 b(X) = X + X2 5 c(X) = b(X) + Xn−km(X) = X + X2+ X3+ X6. Portanto c = (0111001)

(14)

Exerc´ıcio

Calcular a palavra c´odigo para o c´odigo c´ıclico (7, 4), com g(X) = 1 + X + X3 e a mensagem a ser codificada m = (1001).

1 O polinˆomio da mensagem ´e m(X) = 1 + X3

2 Multiplicar m(X) por Xn−k= X3 ⇒ X3m(X) = X3+ X6. 3 Dividir X3m(X) por g(X): X3 +X (quociente) X3+ X + 1| X6 X3 X6 +X4 +X3 X4 X4 +X2 +X X2 +X (resto) 4 b(X) = X + X2 5 c(X) = b(X) + Xn−km(X) = X + X2+ X3+ X6. Portanto c = (0111001)

(15)

Exerc´ıcio

Calcular a palavra c´odigo para o c´odigo c´ıclico (7, 4), com g(X) = 1 + X + X3 e a mensagem a ser codificada m = (1001).

1 O polinˆomio da mensagem ´e m(X) = 1 + X3

2 Multiplicar m(X) por Xn−k = X3 ⇒ X3m(X) = X3+ X6. 3 Dividir X3m(X) por g(X): X3 +X (quociente) X3+ X + 1| X6 X3 X6 +X4 +X3 X4 X4 +X2 +X X2 +X (resto) 4 b(X) = X + X2 5 c(X) = b(X) + Xn−km(X) = X + X2+ X3+ X6. Portanto c = (0111001)

(16)

Exerc´ıcio

Calcular a palavra c´odigo para o c´odigo c´ıclico (7, 4), com g(X) = 1 + X + X3 e a mensagem a ser codificada m = (1001).

1 O polinˆomio da mensagem ´e m(X) = 1 + X3

2 Multiplicar m(X) por Xn−k = X3 ⇒ X3m(X) = X3+ X6. 3 Dividir X3m(X) por g(X): X3 +X (quociente) X3+ X + 1| X6 X3 X6 +X4 +X3 X4 X4 +X2 +X X2 +X (resto) 4 b(X) = X + X2 5 c(X) = b(X) + Xn−km(X) = X + X2+ X3+ X6. Portanto c = (0111001)

(17)

Exerc´ıcio

Calcular a palavra c´odigo para o c´odigo c´ıclico (7, 4), com g(X) = 1 + X + X3 e a mensagem a ser codificada m = (1001).

1 O polinˆomio da mensagem ´e m(X) = 1 + X3

2 Multiplicar m(X) por Xn−k = X3 ⇒ X3m(X) = X3+ X6. 3 Dividir X3m(X) por g(X): X3 +X (quociente) X3+ X + 1| X6 X3 X6 +X4 +X3 X4 X4 +X2 +X X2 +X (resto) 4 b(X) = X + X2 5 c(X) = b(X) + Xn−km(X) = X + X2+ X3+ X6. Portanto c = (0111001)

(18)

Exerc´ıcio

Calcular a palavra c´odigo para o c´odigo c´ıclico (7, 4), com g(X) = 1 + X + X3 e a mensagem a ser codificada m = (1001).

1 O polinˆomio da mensagem ´e m(X) = 1 + X3

2 Multiplicar m(X) por Xn−k = X3 ⇒ X3m(X) = X3+ X6. 3 Dividir X3m(X) por g(X): X3 +X (quociente) X3+ X + 1| X6 X3 X6 +X4 +X3 X4 X4 +X2 +X X2 +X (resto) 4 b(X) = X + X2 5 c(X) = b(X) + Xn−km(X) = X + X2+ X3+ X6. Portanto c = (0111001)

(19)

Exerc´ıcio

Calcular a palavra c´odigo para o c´odigo c´ıclico (7, 4), com g(X) = 1 + X + X3 e a mensagem a ser codificada m = (1001).

1 O polinˆomio da mensagem ´e m(X) = 1 + X3

2 Multiplicar m(X) por Xn−k = X3 ⇒ X3m(X) = X3+ X6. 3 Dividir X3m(X) por g(X): X3 +X (quociente) X3+ X + 1| X6 X3 X6 +X4 +X3 X4 X4 +X2 +X X2 +X (resto) 4 b(X) = X + X2 5 c(X) = b(X) + Xn−km(X) = X + X2+ X3+ X6. Portanto c = (0111001)

(20)

Sum´

ario

1 Introdu¸c˜ao

2 Polinˆomio gerador e verificador de paridade

3 Matrizes geradoras e de verifica¸c˜ao de paridade

(21)

Matrizes geradoras

Para se construir a matriz geradora G, pega-se g(X) e se desloca nas diferentes linhas at´e formar uma matriz k × n:

G =           g0 g1 g2 · · · gn−k 0 0 0 · · 0 0 g0 g1 g2 · · · gn−k 0 0 · · 0 0 0 g0 g1 g2 · · · gn−k 0 · · 0 · · · · · · 0 0 · · · 0 g0 g1 g2 · · · gn−k          

(22)

Para g(X) = 1 + X + X3: G =     1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1    

Por´em g(X) n˜ao est´a na forma sistem´atica:

Fazendo combina¸c˜oes lineares para obter a matriz identidade k × k `a direita de G:

Para retirar o ”1”da terceira linha, quarta coluna: a soma da primeira linha com a terceira linha se torna a terceira linha. Para os ”1’s”da quarta linha, quarta e quinta colunas: se soma da primeira, com a segunda e quarta colunas se torna a quarta coluna. G0=     1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1    

(23)

Para g(X) = 1 + X + X3: G =     1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1    

Por´em g(X) n˜ao est´a na forma sistem´atica:

Fazendo combina¸c˜oes lineares para obter a matriz identidade k × k `a direita de G:

Para retirar o ”1”da terceira linha, quarta coluna: a soma da primeira linha com a terceira linha se torna a terceira linha. Para os ”1’s”da quarta linha, quarta e quinta colunas: se soma da primeira, com a segunda e quarta colunas se torna a quarta coluna. G0=     1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0    

(24)

Matriz verificadora de paridade

Pode-se obter H a partir de G da maneira cl´assica. Mas tamb´em pode se obter H a partir de g(X). g(X)h(X) = (Xn+ 1). Logo h(X) = (Xn+ 1)/g(X) h(X) = h0+ h1X + . . . + hkXk: h0= hk= 1 Multiplicando c(X) por h(X): c(X)h(X) = a(X)g(X)h(X) = a(X)(Xn+ 1) = a(X)Xn+ a(X)

O polinˆomio h(X) ´e de ordem k − 1, as potˆencias Xk, Xk+1, ..., Xn−1 n˜ao aparecem no polinˆomio na equa¸c˜ao acima:

j+k

X

i=j

(25)

A matriz H se constr´oi a partir dos coeficientes do polinˆomio rec´ıproco de h(X): Xkh(X−1) , hk+ hk−1X + hk−2X2+ . . . + h0Xk H =       hk hk−1 hk−2 · · · h0 0 0 0 · · 0 0 hk hk−1 hk−2 · · · h0 0 0 · · 0 0 0 hk hk−1 hk−2 · · · h0 0 · · 0 · · · · · · 0 0 · · · 0 hk hk−1 hk−2 · · · h0      

(26)

Sum´

ario

1 Introdu¸c˜ao

2 Polinˆomio gerador e verificador de paridade

3 Matrizes geradoras e de verifica¸c˜ao de paridade

(27)

Codificador para c´

odigos c´ıclicos

1 Multiplicar m(X) por Xn−k

2 Dividir Xn−km(X) pelo polinˆomio gerador g(X), obter o resto

b(X)

(28)

Codificador para c´

odigos c´ıclicos

1 A porta encontra-se fechada e a chave de sa´ıda direciona os bits da

mensagem para o canal. Ao mesmo tempo os bits da mensagem se combinam com a sa´ıda dos registradores, passam pela porta e entram nos registradores. O sinal se propaga nos registradores, at´e que se abre a porta.

2 Abre-se a porta, abrindo a realimenta¸ao. A chave de sa´ıda se

direciona para propagar os bits de paridade na sa´ıda.

3 Nos ciclos seguintes o conte´udo do registrador de deslocamento ´e

(29)

Codificador para c´

odigos c´ıclicos

1 A porta encontra-se fechada e a chave de sa´ıda direciona os bits da

mensagem para o canal. Ao mesmo tempo os bits da mensagem se combinam com a sa´ıda dos registradores, passam pela porta e entram nos registradores. O sinal se propaga nos registradores, at´e que se abre a porta.

2 Abre-se a porta, abrindo a realimenta¸ao. A chave de sa´ıda se

direciona para propagar os bits de paridade na sa´ıda.

3 Nos ciclos seguintes o conte´udo do registrador de deslocamento ´e

(30)

Codificador para c´

odigos c´ıclicos

1 A porta encontra-se fechada e a chave de sa´ıda direciona os bits da

mensagem para o canal. Ao mesmo tempo os bits da mensagem se combinam com a sa´ıda dos registradores, passam pela porta e entram nos registradores. O sinal se propaga nos registradores, at´e que se abre a porta.

(31)

Exerc´ıcio

Desenhe o circuito do codificador para g(X) = 1 + X + X3.

Codificando a sequˆencia m = (1011) Identifique o conte´udo dos registros em cada etapa e o valor codificado no final.

Agora calcule a palavra c´odigo usando o m´etodo da divis˜ao polinomial. Entrada Valor 000 1 110 1 101 0 100 1 100

(32)

Exerc´ıcio

Desenhe o circuito do codificador para g(X) = 1 + X + X3.

Codificando a sequˆencia m = (1011) Identifique o conte´udo dos registros em cada etapa e o valor codificado no final.

Agora calcule a palavra c´odigo usando o m´etodo da divis˜ao polinomial. Entrada Valor 000 1 110 1 101 0 100 1 100

(33)

Exerc´ıcio

Desenhe o circuito do codificador para g(X) = 1 + X + X3.

Codificando a sequˆencia m = (1011) Identifique o conte´udo dos registros em cada etapa e o valor codificado no final.

Agora calcule a palavra c´odigo usando o m´etodo da divis˜ao polinomial. Entrada Valor 000 1 110 1 101 0 100 1 100

(34)

Exerc´ıcio

Desenhe o circuito do codificador para g(X) = 1 + X + X3.

Codificando a sequˆencia m = (1011) Identifique o conte´udo dos registros em cada etapa e o valor codificado no final.

Agora calcule a palavra c´odigo usando o m´etodo da divis˜ao polinomial. Entrada Valor 000 1 110 1 101 0 100 1 100

(35)

Exerc´ıcio

Desenhe o circuito do codificador para g(X) = 1 + X + X3.

Codificando a sequˆencia m = (1011) Identifique o conte´udo dos registros em cada etapa e o valor codificado no final.

Agora calcule a palavra c´odigo usando o m´etodo da divis˜ao polinomial. Entrada Valor 000 1 110 1 101 0 100 1 100

(36)

Exerc´ıcio

Desenhe o circuito do codificador para g(X) = 1 + X + X3.

Codificando a sequˆencia m = (1011) Identifique o conte´udo dos registros em cada etapa e o valor codificado no final.

Agora calcule a palavra c´odigo usando o m´etodo da divis˜ao polinomial. Entrada Valor 000 1 110 1 101 0 100 1 100

(37)

Agora fazendo a divis˜

ao de polinˆ

omio

X3 +1X2 +X +1 X3 +X +1| X6 +X5 +X3 X6 +X4 +X3 X5 +X4 X5 +X3 +X2 +X4 +X3 +X2 +X4 +X2 +1 +X3 +x +X3 +X +1 1

(38)
(39)

Referências

Documentos relacionados

PERÍODO SEGUNDA TERÇA QUARTA QUINTA

Horário Segunda Terça Quarta Quinta

8h25 – 9h15 Apoio ao tema Apoio ao tema Apoio ao tema Apoio ao tema Apoio ao tema 9h15 – 10h05 Artes Esporte Atividade Robótica Científica Iniciação 10h05 – 10h45

HORÁRIO SEGUNDA TERÇA QUARTA QUINTA SEXTA

Turno Segunda Segunda Segunda Segunda Terça Terça Terça Terça Quarta Quarta Quarta Quarta Quinta Quinta Quinta Quinta Sexta Sexta Sexta Sexta Sábado Sábado

Segunda Quarta Quinta Sexta Sábado3.

horário segunda terça quarta quinta

Toda essa entrada foi conseqüência da implantação em 1994 pelo Ministério da Saúde, do Programa de Saúde da Família-PSF, que possuía como estratégia para a reorganização