UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf ·...

13
1 UNIVERSIDADE ESTADUAL DE CAMPINAS INSTITUTO DE MATEMÁTICA, ESTATÍSTICA E COMPUTAÇÃO CIENTÍFICA. CÓDIGOS BCH Disciplina MA673 Elementos de Álgebra Turma: A Professor responsável: Fernando Eduardo Torres Orihuela Alunos: Natália De Nadai RA: 034964 Bruno Cézar da Silva RA:143204 Campinas, 07 julho de 2015

Transcript of UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf ·...

Page 1: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

1

UNIVERSIDADE ESTADUAL DE CAMPINAS

INSTITUTO DE MATEMÁTICA, ESTATÍSTICA E COMPUTAÇÃO CIENTÍFICA.

CÓDIGOS BCH Disciplina MA673 – Elementos de Álgebra Turma: A Professor responsável: Fernando Eduardo Torres Orihuela Alunos: Natália De Nadai RA: 034964 Bruno Cézar da Silva RA:143204

Campinas, 07 julho de 2015

Page 2: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

2

ÍNDICE

1. INTRODUÇÃO...................................................................................................3

2. PARTE HISTÓRIA.............................................................................................4

3. DEFINIÇÕES.....................................................................................................5

3.1. CÓDIGOS CÍCLICOS..........................................................................5

3.2. COMO GERAR CÓDIGOS CÍCLICOS................................................5

3.3.POLINÔMIOS USADOS EM CÓDIGOS CÍCLICOS.............................6

3.4.CORPOS FINITOS...............................................................................6

4.CÓDIGOS BCH..................................................................................................7

4.1.CONSTRUÇÃO DE CÓDIGOS BCH....................................................8

4.2.TIPOS DE CÓDIGOS BCH...................................................................9

4.3.CÓDIGO BCH PRIMITIVO....................................................................9

4.4.DECODIFICAÇÃO DE CÓDIGOS BCH................................................9

4.5.CÓDIGOS BCH PRIMITIVOS SOBRE GF(q).....................................10

5. CONCLUSÃO..................................................................................................11

6. BIBLIOGRAFIA................................................................................................12

Page 3: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

3

1.INTRODUÇÃO

Nesse trabalho será aborado um breve conhecimento histórico sobre os

códigos BCH, além de discutir códigos cíclicos , como gerá-los e os polinômios

utilizados.

Terá uma breve discussão sobre os corpos finitos, pois são as classes

cíclicas de correção de erros (constituídas à partir de corpos finitos) que geram

os códigos BCH.

A utilização dos códigos controladores de erros provém da necessidade

de armazenar e/ou transmitir grandes volumes de dados, muitos dos quais são

sensíveis a erros. Os códigos controladores de erros são largamente utilizados

em sistemas de comunicações via satélite, em redes locais de computadores,

em discos a laser, em sistemas de tele-supervisão e controle e em automação

bancária.

Portanto, onde se deseja uma alta confiabilidade na transmissão e/ou

armazenamento de dados, faz-se necessária a implementação de sistemas

codificadores e decodificadores para códigos controladores de erro.

Page 4: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

4

2.PARTE HISTÓRICA

A primeira aplicação bem sucedida de codificação ocorreu nas comunicações

espaciais. Só assim tem sido possível, por exemplo, a recepção de imagens e

outras informações.

Hoje em dia é muito fácil encontrar sistema de comunicação para controle de

erros para qualquer sistema de comunicação moderno, como por exemplo as

televisões digitais.

A técnica de controle de erros mais amplamente usada talvez seja a que detecta

erros por várias “verificações cíclicas” (CRC).

Os códigos BCH formam uma classe cíclica de correção de erros que são

construídos à partir de corpos finitos. Esse códigos foram inventados em 1959

por Alexis Hocquenghem, Raj Chandra Bose e Ray-Chaudhurj. Sendo BCH a

abreviação dos nomes desses inventores.

Durante a concepção de um código, existe um controle preciso sobre o número

de erros, essa é a característica chave do código BCH, pois é possível projetar

códigos BCH binários que podem corrigir múltiplos erros de bits, além da

facilidade com que podem ser decodificados.

Page 5: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

5

3.DEFINIÇÕES

3.1) Códigos Cíclicos

Os códigos cíclicos são os códigos de blocos lineares mais úteis e populares.

• Os códigos cíclicos são "manuseáveis" algebricamente, com polinómios, sem

necessidade de recorrer a matrizes e vectores.

• Num código cíclico um deslocamento de uma palavra de código conduz a uma

outra palavra de código.

• Mas, só n-1 palavras de código são geradas por deslocamento cíclico.

Para gerar por deslocamento todo o conjunto de 2k palavras de código

temos de considerar várias palavras.

3.2) Como gerar códigos cíclicos?

Vamos ver duas maneiras de calcular as palavras de código a partir da

mensagem, uma para códigos sistemáticos.

Page 6: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

6

3.3) Polinômios usados em códigos cíclicos.

3.4) Corpos finitos.

É um corpo em que o conjunto dos elementos é finito, algumas de suas muitas

aplicações são na teoria dos códigos, teoria dos números e teoria matemática

dos jogos.

O corpo Fp = (Zp, ⊕p, ⊗p) dos inteiros módulo p (p primo) é, evidentemente, o

exemplo mais familiar de corpo finito. Muitas das suas propriedades

generalizam-se aos corpos finitos arbitrários. Os corpos Fp representam um

papel muito importante na teoria dos corpos pois, como vimos, todo o corpo de

característica p contém uma cópia isomorfa de Fp (como seu subcorpo primo) e

pode então ser visto como uma extensão de Fp. Esta observação,

conjuntamente com o fato óbvio de que todo o corpo finito tem característica

finita (prima), é fundamental para a classificação dos corpos finitos.

Exemplos mais comuns:

Todo anel , para p primo, é um corpo, logo é um corpo finito.

Existe um (único, significando que todos são isomorfos) corpo finito com 4

elementos. Seja K este corpo. É fácil ver que o grupo aditivo (K, +) não pode

ser isomorfo a (porque, qualquer que seja a operação de

Page 7: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

7

multiplicação temos que , e

um corpo não pode ter divisores de zero). Então temos que (K, +) deve ser

isomorfo ao grupo de Klein de ordem 4. Sem perda de generalidade,

podemos definir K = { }, e, como a equação só pode ter

2 raízes (0 e 1), e a equação tem 1 como raiz dupla, temos

que . Com isso, completa-se a tabela multiplicativa do corpo de

ordem 4. Note-se que e são as raízes do polinômio (irredutível em

) .

4.CÓDIGOS BCH

B-Bose C-Chaudhuri H-Hocquenghem

É um dos mais importantes códigos cíclicos e é uma generalização dos códigos

de Hamming, permitindo correções de erros múltiplos.

Para um dado comprimento de bloco, n, podem definir-se códigos com uma

gama alargada de taxas e capacidades de correção de erros:

Page 8: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

8

4.1) Construção de Códigos BCH.

Para cada raiz βr incluída em g(x), existe um polinômio mínimal 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 9: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

9

4.2) 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.

4.3) Códigos BCH 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

α, α2 ,α3,...,α 2t

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

4.4) Decodificação de Códigos BCH.

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

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

Determinar as localizações dos erros, β1, β2, ..., βv encontrando as raízes de σ(x)

e corrigir os erros em r(x).

Page 10: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

10

4.5) 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 α, α2 ,α3,...,α 2t 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)}

Page 11: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

11

5. CONCLUSÃO

Por se tratar de um código relativamente simples, suas aplicações são diversas

e sua função principal é no armazenamento e transmissão de dados, portanto, ,

faz-se necessária a implementação de sistemas codificadores e decodificadores

para códigos controladores de erro.

Além disso podemos ver no Anexo que existem vários outros tipos de códigos,

porém nesse trabalho foi analisado somente o caso dos códigos BCH.

Page 12: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

12

6.BIBLIOGRAFIA

[1] http://arquivoescolar.org/bitstream/arquivo-e/132/4/cap2.pdf

[2] http://www.eletrica.ufpr.br/evelio/TE812/bch.pdf

[3] http://www2.fc.unesp.br/revistacqd/v2e2/v2e2_art6.pdf

[4] http://www.professores.uff.br/jcolombo/artigos/codigosCiclicosBCH.pdf

[5] http://www.mat.uc.pt/~picado/algebraII/0405/Apontamentos/aula22.pdf

Page 13: UNIVERSIDADE ESTADUAL DE CAMPINAS - ime.unicamp.brftorres/ENSINO/MONOGRAFIAS/brunat2_EA_2015.pdf · Os códigos controladores de erros são largamente utilizados em sistemas de comunicações

13

ANEXO Características dos Códigos mais conhecido