Ex. 4.1
As palavras código são
c0 = [0 0 0 0 0 0 0], c1 = [0 0 0 1 1 0 1], c2 = [0 0 1 1 0 1 0], c3 = [0 0 1 0 1 1 1],
c4 = [0 1 1 0 1 0 0], c5 = [0 1 1 1 0 0 1], c6 = [0 1 0 1 1 1 0], c7 = [0 1 0 0 0 1 1],
c8 = [1 1 0 1 0 0 0], c9 = [1 1 0 0 1 0 1], c10 = [1 1 1 0 0 1 0], c11 = [1 1 1 1 1 1],
c12 = [1 0 1 1 1 0 0], c13 = [1 0 1 0 0 0 1], c14 = [1 0 0 0 1 1 0], c15 = [1 0 0 1 0 1 1],
podemos ver que as palavras c0 e c11 quando deslocadas ciclicamente resultam nelas mesmas.
As palavras c1, c2, c4, c7, c8, c13 e c14 são todas versões deslocadas ciclicamente possíveis de uma
mesma palavra.
O mesmo vale para as palavras c3, c5, c6, c9, c10, c12 e c15 .
Ex 4.3
O anel é construído pelos polinômios
S11 S2x S3x1 S4x2 S5x 2 1 S6x2 x S7x2 x1 S8x3 S9x31 S10x 3 x S11x 3 x1 S12x 3 x2 S13x3x21 S14x 3 x2x S15x 3 x2x1 S0x410 As tabelas são
+ S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S0 S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S1 S1 S0 S3 S2 S5 S4 S7 S6 S9 S8 S11 S10 S13 S12 S15 S14 S2 S2 S3 S0 S1 S6 S7 S4 S5 S10 S11 S8 S9 S14 S15 S12 S13 S3 S3 S2 S1 S0 S7 S6 S5 S4 S11 S10 S9 S8 S15 S14 S13 S12 S4 S4 S5 S6 S7 S0 S1 S2 S3 S12 S13 S14 S15 S8 S9 S10 S11 S5 S5 S4 S7 S6 S1 S0 S3 S2 S13 S12 S15 S14 S9 S8 S11 S10 S6 S6 S7 S4 S5 S2 S3 S0 S1 S14 S15 S12 S13 S10 S11 S8 S9 S7 S7 S6 S5 S4 S3 S2 S1 S0 S15 S14 S13 S12 S11 S10 S9 S8 S8 S8 S9 S10 S11 S12 S13 S14 S15 S0 S1 S2 S3 S4 S5 S6 S7 S9 S9 S8 S11 S10 S13 S12 S15 S14 S1 S0 S3 S2 S5 S4 S7 S6 S10 S10 S11 S8 S9 S14 S15 S12 S13 S2 S3 S0 S1 S6 S7 S4 S5 S11 S11 S10 S9 S8 S15 S14 S13 S12 S3 S2 S1 S0 S7 S6 S5 S4 S12 S12 S13 S14 S15 S8 S9 S10 S11 S4 S5 S6 S7 S0 S1 S2 S3 S13 S13 S12 S15 S14 S9 S8 S11 S10 S5 S4 S7 S6 S1 S0 S3 S2 S14 S14 S15 S12 S13 S10 S11 S8 S9 S6 S7 S4 S5 S2 S3 S0 S1 S15 S15 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0
Para calcularmos a tabela de multiplicação vemos que 1 g x=g x xx=x2 x x1=x2x xx2 =x3 x x21= x3x x x2x= x3x2 x x2 x1= x3 x21 xx3=x4=x411 x x31=x4x= x41 x1 x x3 x =x4 x2 =x41 x21 ; x x3x1= x4x2x= x41 x2x1 x x3x2=x4x3=x41 x31 x x3 x21= x4 x3 x= x41 x3 x1 x x3x2x = x4x3x2=x41 x3x21 x x3x2x1=x4x3x2x= x41 x3x2x1
x1× x1=x21 ; x2=x3x2; x21=x3x2x1 ; x2 x=x3 x ; x2x1= x31 ; x3 =x41 x31 ; x31= x41 x3x ; x3x= x41x3x2x1 ; x3 x1= x41x3 x2; x3x2=x41x21 ; x3x21= x41 x2x ; x3 x2 x= x41 x1 ; x3x2x1= x410 ; x2 × x2=x411 ; x2 1= x41x21 ; x2 x= x41 x31 ; x2x1= x41 x3x21 ; x3 =x41 x x ; x31= x41 x x2 x ; x3x= x41 xx3x ; x3 x1= x41 x x3 x2; x3 x2 =x41 x1 x1 ; x3x21= x41 x 1 x2x1 ; x3 x2 x= x41 x1x3 x 1 ; x3x2x1= x41 x1 x3x2x1 ; x21× x21= x410 ; x2 x= x41 x3 x2 x1 ; x2 x1= x41 x3 x ; x3=x41 x x3x ; x31= x41 x x3 x2 x1 ; x3 x= x41 x0 ; x3x1= x41 x x21 ; x3 x2 =x41 x1 x3 x2 x1 ; x3 x21= x41 x 1 x3 x ; x3x2x= x41 x1x21 ; x3 x2 x1= x41 x10 ; x2 x× x2x= x41 x1 ; x2 x1= x41 x3 x ; x3 =x41 x 1 x1 ; x31= x41 x1x21 ; x3 x= x41 x1 x3 x2 x1 ; x3 x1= x41 x1 x31 ; x3x2=x41 xx3x ; x3 x21= x41 x x3 x2; x3 x2 x= x41 x x2 x ; x3x2x1= x41 x 0 ; x2 x1× x2 x1= x41 x2; x3=x41 x 1 x3x1 ; x31= x41 x1x3 x2; x3x= x41 x1 x21 ; x3x1= x41 x1 x ; x3 x2 =x41 xx2x ; x3x21= x41 x x3x21 ; x3x2x= x41 x x3; x3 x2 x1= x41 x x3 x2 x 1 ; x3× x3 =x6 =x41 x2x2; x31= x41 x2x3x2; x3x= x41 x21 x21 ; x3x1= x41 x21 x3x21 ; x3x2=x41 x2x x2x ; x3x21= x41 x2x x3x2x ; x3x2x= x41 x2x1 x2x1 ; x3x2x1= x41 x2x1x3x2x1 ;
x31× x31= x41 x2x21 ; x3 x= x41 x21 x3 x2 x1 ; x3 x1= x41 x21 x2 x1 ; x3x2=x41 x2x x3x ; x3 x21= x41 x2 x x 1 ; x3 x2 x= x41 x2 x1 x31 ; x3x2x1= x41 x2x10 ; x3 x× x3x= x41 x20 ; x3 x1= x41 x2 x3 x ; x3 x2 =x41 x2 x1x3 x2 x 1 ; x3x21= x41 x21x21 ; x3 x2 x= x41 x2 x x3x ; x3 x2 x1= x41 x2 x0 ; x3x1× x3 x1= x41 x21 ; x3x2=x41 x2x1x 1 ; x3x21= x41 x2x1 x3; x3 x2 x= x41 x2 x x2; x3x2x1= x41 x2x x3x2x1 ; x3x2× x3 x2 =x41 x21 x21 ; x3x21= x41 x21x31 ; x3 x2 x= x41 x2 x3 x2; x3 x2 x1= x41 x20 ; x3x21× x3 x21= x41 x21x2; x3x2x= x41 x2x ; x3x2x1= x41 x2x3x2x 1 ; x3x2x × x3x2x= x41 x211 ; x3 x2 x1= x41 x2 x3 x2 x 1 ; x3 x2 x1× x3 x2 x1= x41 x210 ; . S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S0 S1 S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S2 S0 S2 S4 S6 S8 S10 S12 S14 S1 S3 S5 S7 S9 S11 S13 S15 S3 S0 S3 S6 S5 S12 S15 S10 S9 S9 S10 S15 S12 S5 S6 S3 S0 S4 S0 S4 S8 S12 S1 S5 S9 S13 S2 S6 S10 S12 S3 S7 S11 S15 S5 S0 S5 S10 S15 S5 S0 S15 S10 S10 S15 S0 S5 S15 S10 S5 S0 S6 S0 S6 S12 S10 S9 S15 S3 S10 S3 S5 S15 S9 S10 S12 S6 S0 S7 S0 S7 S14 S9 S13 S10 S10 S4 S11 S12 S5 S2 S6 S13 S8 S15 S8 S0 S8 S1 S9 S2 S10 S3 S11 S4 S12 S5 S13 S6 S14 S7 S15 S9 S0 S9 S3 S10 S6 S15 S5 S12 S12 S5 S15 S7 S10 S3 S9 S0 S10 S0 S10 S5 S15 S10 S0 S15 S5 S5 S15 S0 S10 S15 S5 S10 S0 S11 S0 S11 S7 S12 S12 S5 S9 S2 S13 S7 S10 S1 S3 S8 S4 S15 S12 S0 S12 S9 S5 S3 S15 S10 S6 S6 S10 S15 S3 S5 S9 S12 S0 S13 S0 S13 S11 S6 S7 S10 S12 S13 S14 S3 S5 S8 S9 S4 S2 S15 S14 S0 S14 S13 S3 S11 S5 S6 S8 S7 S9 S10 S4 S12 S2 S1 S15 S15 S0 S15 S15 S0 S15 S0 S0 S15 S15 S0 S0 S15 S0 S15 S15 S0
Ex. 4.4
pela definição de ideal i) se b∈I e r ∈R ⇒br ∈I ii) I forma um grupo em adição Pelo enunciado, temos que
se ab=0 ⇒b ∈I
Para provar (i) verificamos que
abr =ab r=0⇒ br ∈I
Para provar (ii) vemos que
ab1=0
ab2=0
}
⇒b1,b2∈Ia b1b2=ab1ab2=0 ⇒ b1b2∈I
Ex. 4.7
Achar as raízes de p(x) equivale a x2 = 1.
Em ℤ15 , isto equivale a
x2=15 n1 ; x∈ℕ , x15, n∈ℤ
Podemos verificar que isso é válido para x = 1, 4, 11 ou 14. Temos que
p x = x1 x−1
Já vimos na Seção 2.3 que os elementos não nulos de um campo formam um grupo na
multiplicação. Desta forma, em um campo ab=0 ⇔ a=0 ou b=0 , ou seja x = 1 ou x = -1. No grupo deste exemplo temos casos onde ab=0, sem que a ou b sejam também 0. Isto decorre do fato que nem todos os elementos do campo têm um elemento inverso.
Ex. 4.8
1x2x3xx2=x5x3x2x= x41 x x3x2 Ou seja, em R4, 1x2x3xx2=x3x2 .
A convolução circular é dada por [1, 0, 1, 1]∗[0, 1, 1]=
[1×01×11×1, 0×01×11×1, 1×00×11×1, 1×01×10×1]=[0, 0, 1, 1] Ou seja, equivale à multiplicação polinomial a0 +a1x +a2x2 +a3x3, se o vetor é dado por [ a0, a1, a2, a3]
Ex. 4.9 a) h x =x 15 −1 g x = x151 x4x1=x 11 x8x7x5x3x2x1
b) G=
[
1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1]
H=[
1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1]
c) A linha i é obtida pelo resto da divisão de de xn-k+i=x4+i por g(x). Sendo assim i=0 x4=x4x1x 1⇒ b0x= x1 i=1 x5=x4x1 xx2x ⇒ b1x =x 2 x i=2 x6=x4x1 x2x3x2⇒b1x =x3x2 i=3 x7=x4x1 x31 x3x1 ⇒b1x =x 3 x 1 i=4 x8 =x4 x1 x4 x1x21⇒ b 1x =x 21 i=5 x9 =x4 x 1 x5 x2 x x3 x ⇒ b1x =x3 x i=6 x10 =x4 x 1 x6 x3 x21 x21 ⇒b 1x= x 21 i=7 x11=x4x1 x7x4x3x x3x2x ⇒ b1x=x3x2x i=8 x12=x4x1 x8x5x4x21x3x2x1 ⇒b1x = x 3 x2x1 i=9 x13=x4x1 x9x6x5x3x1x3x21 ⇒b1x = x3 x21 i=10 x14 =x4 x 1 x10 x7 x6 x4 x2 x1x31 ⇒b1x = x31 Gsist=
[
1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1]
Hsist=
[
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1]
d) c x = x4 x1 x3 x2 x= x7 x6 x5 x4 x e) c x= x4x3x2x Rg x[
x 4 x3x2x ]
x4x3x2x =x7x6x5 x7 x6 x5 =x4 x1 x3 x2 x11 c x= x7 x6 x51 f) m x=c x g x= x13x11x10x9x5x4x3x1 x4 x1 =1x 3 x4x7x9 g)vamos eliminar os bits de paridade
c ' x =c x −Rg x
[
xn−km x ]
=m x xn−k=x4x5x9x10x11x13 agora basta deslocar a sequênciam x=c ' x xk−n=c ' x x−4=1 xx5x6x7x9 h) s x =r x h x mod xn−1= x14 x10 x5 x3 x11 x8 x7 x5 x3 x2 x1 mod x151 =x25x22x19x18x10x7x4x3mod x151=0 Ex. 4.11 a) c(x) é de grau 5, portanto n≥6 . g(x) deve dividir xn -1 Para n=6, x6−1=x61= x 1 x2 x1 x31 g(x) deve dividir c(x) c x =x5x41= x3x1 x2x 1
Portanto para o maior grau de g(x) temos
g x= x2
x1
Para n=7, x7
−1=x71= x 1 x3x1 x3x21 Portanto para o maior grau de g(x) temos
b)
Podemos ver que
c x x1=x151 Portanto
g(x) = c(x)
Ex. 4.12
Para ser um polinômio gerador válido g(x) deve dividir xn -1. Mas, se g0=0⇒ g x= x g1g2xgn−kx
n−k−1
, e x deveria dividir xn -1, o que não acontece.
Ex. 4.13
x9x8x7x5x4x 1 x12x11x9x7x3x2x1=x211 , portanto g(x) gera um código binário cíclico (21,12).
h x =x12x11x9x7x3x2x1 s x =r x h x mod x211= x16x41 x12x11x9x7x3x2x1 mod x211 =x28x27x25x23x19x18x15x13x12x9x6x4x3x21 mod x211 =x19x18x15x13x12x9x7x31 Ex. 4.14 a) g(x) é de ordem n-k =10, portanto g*x =x10g 1/ x =x101 x−2x−4x−6x−7x−10=x10x8x6x4x31 b)
para que g(x) seja gerador de um código cíclico (n, k), temos que g x h x= xn −1 . Consequentemente g 1 / x h1/ x =x−n−1⇒ xn−kg 1/ x xkh 1/ x =xn x−n1=xn1 . Ou seja, g*(x) é gerador de um código cíclico (n,k) c e d) c* x =cn−1cn −2x ⋯c0xn−1=xn−1c 1/ x Mas c x=m x g x ⇒c*x =xn−1m1/ x g 1 / x=xn −kg 1/ x xk −1m1/ x =g*x m*x
Ou seja, se c(x) é uma palavra válida de C, formada pela mensagem m(x), c*(x) é uma palavra válida de C* com mensagem m*(x). Como o peso de c(x) é o mesmo de c*(x), e que o conjunto de
mensagens m(x) e m*(x) é o mesmo, podemos concluir que os dois códigos têm a mesma distribuição de peso.
Da mesma forma, como a fatoração em g*(x) e m*(x) é única para polinômios de graus n-k e k, podemos conclui que, se a palavra c*(x) é uma palavra válida ela foi gerada por g*(x), e,
Ex. 4.15 a)
c x=m x g x =m x f x x1=b x x1=b0xb1xbn−2xn−2x1 =b0b0b1xb1b2x2bn−3bn−2xn−2bn−2xn−1
,
ou seja, para um código binário
c0=b0
ci=
{
1, se bi≠bi−10, se bi=bi−1 , 0in−1
cn−2=bn−2
portanto, se tivermos um número de transições de bits par 2k , então bn-2 = b0, e o peso da palavra
será w = 2k + 2b0, que é par.
Se tivermos um número de transições de bits ímpar 2k+1 , então bn−2≠b0 , e o peso da palavra será w = 2k + 2, que é par.
b)
Para código binário temos que
xn1= x1 xn−1xn−21 Mas, para código binário e n par
xn1=
xn /21
2=x12
xn / 2−1xn /2−21
2, ou seja, x1
∣
xn−1xn −21 Já para n ímpar (e n-1= 2k par)xn−1 xn−21= x2 k x2 k −11= x1x2 k −1 x2 k −3 x2 k−5 x
1
, ou sejax+1 aparece uma única vez como fator de xn + 1. Portanto, se x + 1 não é fator de g(x), então xn−1
xn−21= f x g x Agora, c x = xn−1
xn−21=m x g x representa a palavra tudo um, e pode ser obtida com a mensagem m(x) = f(x).
c) ?????? Ex. 4.16
Já vimos (Ex. 4.15a) que o código formado por g x= x1 g x não tem nenhuma palavra de peso ímpar.
Se x +1 não é fator de g(x), então g(x) terá metade das palavras de peso par e metade das palavras de peso ímpar.
Sabemos também que, se C é um código (n,k) o código C formado por g x é um código (n,k-1), contendo metade das palavras de C.
Agora, C pode ser gerado por c x=m x x1g x , e portanto todas as palavras do código novo são também palavras do código antigo.
Como o código novo tem apenas palavras com peso par, concluí-se que C é composto pelas palavras de peso par de C, o que pode ser expresso em equação por
A z= 1
Ex. 4.17 g x =g0g1x1g2x2gn−kxn −k g ' x=g x =g0g1x g2x 2 gn−k x n−k
temos também que para que g(x) seja um código cíclico com palavras de tamanho n:
xn−1=g x h x ⇒ xn−1=xn −1=g xh x
ou seja g x
divide xn −1 , e gera portanto um código (λn, λk)..
A matriz de verificação de paridade do código original é
H=
[
hk hk −1 hk−2 ⋯ h0 hk hk−1 hk−2 ⋯ h0 hk hk−1 hk −2 ⋯ h0 ⋱ ⋱ hk hk−1 hk −2 ⋯ h0]
, e tem no mínimo dmin colunas
linearmente dependentes, por exemplo as colunas i0,i1, , idmin−1
e do código novo é, por exemplo para λ=2, H '=
[
hk 0 hk−1 0 hk−2 ⋯ h0 hk 0 hk−1 0 hk −2 ⋯ h0 hk 0 hk−1 0 hk−2 ⋯ h0 hk 0 hk −1 0 hk−2 ⋯ h0 hk 0 hk−1 0 hk −2 ⋯ h0 ⋱ ⋱ hk 0 hk−1 0 hk− 2 ⋯ h0 hk 0 hk−1 0 hk−2 ⋯ h0]
.Para valores maiores λ de teremos a mesma forma, mas com λ-1 0's entre os coeficientes não nulos. Podemos ver que agora as colunas i0, i1,, idmin−1 também são l.d, assim como as colunas
i0k , i1k ,, idmin−1k , para 0k . Ex. 4.20 ?????? Ex. 4.21 ?????? Ex. 4.22 em GF(2) ci x =c x xi mod xn1=c x ⇒c x xi=xn1q x ci x= xn1 q xc x⇒ c x = xn1 q x c x xi ⇒c x xi1=q x xn1
queremos provar que
i≥l , n=lm
Ex. 4.30 Ex. 4.31 Ex. 4.33 Ex. 4.34 Ex. 4.35 Ex. 4.36 Ex. 4.37 Ex. 4.38