Vous êtes sur la page 1sur 4

Cdigos Corretores de Erros

LUCAS MONTEIRO CHAVES1 KARINA DUTRA DE CARVALHO1 VANESSA GODOY KINOSHITA1 UFLA Universidade Federal de Lavras DEX Departamento de Cincias Exatas Cx. Postal 37 CEP 37.200-000 Lavras (MG) lucas@ufla.br dutra@comp.ufla.br vakino@comp.ufla.br Resumo: Os cdigos corretores de erros se tornam cada vez mais uma ferramenta fundamental na teoria da informao. A necessidade de se garantir a integridade de uma grande quantidade de informao transmitida pelos mais variveis meios exige o uso de sofisticados sistemas de cdigos corretores de erros. Nesse artigo so descritos alguns aspectos bsicos da teoria desses cdigos. Palavras Chaves: cdigos corretores de erros, taxa de informao, teoria da informao, cdigo de Golay, cdigo de Reed-Muller. praticamente todo sistema de envio de informaes possui algum tipo de cdigo corretor de erros. Como exemplos tpicos, a telefonia digital, a transmisso de dados via satlite, a comunicao interna em computadores, armazenamento tico de dados e armazenamento de dados em fitas ou disquetes magnticos. Segundo [Hefez (1994), p.5] todo sistema de envio de mensagem pode ser esquematizado da forma especificada na Figura 1:
1

1.

Introduo

Teoria da informao como visto em [Jacobs (1992), p.155] trata dos aspectos quantitativos de armazenamento e transmisso das mensagens. Tem como um de seus objetivos principais garantir a integridade dos dados enviados atravs de algum tipo de canal. Na manipulao das mensagens, dois obstculos so encontrados: a) falta de capacidade no armazenamento ou transmisso das mensagens enviadas; b) rudo na transmisso, ou seja, introduo aleatria de erros nas mensagens enviadas. Ao contrrio das teorias matemticas que surgiram nas universidades e geralmente aps um longo perodo de tempo migraram para as aplicaes prticas em tecnologia e indstrias, a teoria de cdigos corretores de erros surgiu nos laboratrios de empresas de telefonia e posteriormente se transformou em uma teoria matemtica completa com aplicaes em vrias reas como, por exemplo, geometria algbrica. Um cdigo corretor de erros visa recuperar informaes que no processo de emisso tenham sofrido algum tipo de rudo. Pode-se afirmar que hoje

Fonte

Usurio

Codificador da fonte

Decodificador da fonte

Codificador de canal

Canal

Decodificador de canal

Figura 1: Esquema de transmisso.

O canal pode ser, por exemplo, circuito integrado digital, disco de armazenamento, cabo, canal de microondas, canal de radiofreqncia, etc.

2. Aplicaes dos cdigos corretores de erros Com o aumento da confiabilidade nas comunicaes digitais e a emergncia do computador digital como ferramenta essencial na sociedade tecnolgica, os cdigos corretores de erros vm conquistando uma posio prominente. Para ilustrar a praticidade e importncia do uso de cdigos corretores de erros temos: a) uso do bit de paridade como um mecanismo detetor de erro - um dos esquemas mais simples e conhecidos na comunicao computacional; b) armazenamento em discos esto sendo muito utilizados devido ao aumento da densidade. Quanto maior a densidade, a probabilidade de ocorrncia de erros tambm aumenta; c) transmisso de informao pelas naves espaciais: - em 1972 a espaonave Mariner transmitiu figuras de Marte para a Terra com 64 tonalidades de cinza. Atividade solar e outras condies atmosfricas podem introduzir erros em sinais fracos vindos do espao. O cdigo utilizado foi o de Reed-Muller; - em 1979 a espaonave Voyager comeou a enviar imagens com 4096 tonalidades de cores. O cdigo utilizado foi o de Golay; d) udio digital o aumento da popularidade do udio digital deve-se ao desenvolvimento dos cdigos corretores de erros que facilita o processo de digitalizao. Ao inicializar a leitura do CD, o sistema corrige os erros produzidos por marcas de dedos, arranhes e outras imperfeies, para logo em seguida transformar em sinais sonoros. O cdigo utilizado o de Reed- Solomon. 3. Conceitos Fundamentais O ponto de partida um conjunto finito A chamado de alfabeto. Seja n um nmero natural, um cdigo corretor de erros um subconjunto prprio qualquer de An. Uma classe particular de cdigos so os cdigos lineares. Neste trabalho consideraremos apenas este tipo de cdigo. Por exemplo, seja A={0,1} e vamos considerar An (alfabeto binrio).

Um cdigo corretor de erros sobre A3 poderia ser: (000), (010), (100), (110). A quantidade de palavras do cdigo, ou seja, a cardinalidade do cdigo menor ou igual a cardinalidade do conjunto An (#An). No exemplo acima, a cardinalidade 4. Durante a transmisso dessas palavras por um canal fsico, a informao freqentemente distorcida pelos rudos. Para manejar essa indesejvel mas inevitvel situao, alguma forma de redundncia deve ser incorporada mensagem original. Com essa redundncia, mesmo se alguns erros so introduzidos (em um nvel tolervel), a informao original pode ser recuperada, ou pelo menos a presena desses erros pode ser detectada. Consideraremos nos prximos exemplos o cdigo C = {(00), (01), (10), (11)}. Introduzindo redundncia nas palavras do cdigo, transformaremos as palavras de 2 bits para 5 bits: 00 - 00000 01 - 01011 10 - 10110 11 - 11101 Observa-se que os dois primeiros bits da informao com redundncia correspondem mensagem original. Define-se k como sendo o tamanho da palavra original e n o tamanho da palavra com redundncia, no exemplo acima k = 2 e n = 5. Define-se taxa de informao R como sendo

R=

k n

ou seja, a relao entre a informao original pela informao enviada. Para a introduo da redundncia, utiliza-se uma matriz k x n, cujas linhas so base vetoriais para o cdigo C. Essa matriz denominada matriz geradora [Vanstone & Oorschot (1989), p.51]. Atravs de operaes elementares nas linhas e colunas (permutao de duas linhas, multiplicao de uma linha por um escalar no nulo, adio de um mltiplo escalar de uma linha a outra, permutao de duas colunas e multiplicao de uma coluna por um escalar no nulo) , pode-se colocar a matriz geradora G na forma padro: G = [Id A] onde Id representa a matriz identidade k e A uma matriz k x (n - k). Assim, a informao original

estar nas primeiras k posies da palavra com redundncia. Seguindo o exemplo dado, temos a seguinte matriz geradora G: G=
1

0 1 1 0 0 1 0 1 1
1 0

d = min {d(u, v) | u, v C e u v }. Por exemplo, num cdigo C' com palavras (00000), (01011), (10110), (11101), a menor distncia 3. A distncia de um cdigo importante para determinar o nmero de erros que esse cdigo detecta, assim como o nmero de erros que ele corrige. Seja C um cdigo com distncia mnima d. Ento C pode detectar at d - 1 erros e corrigir at erros , onde

A=

1 0 1 1

A partir da matriz geradora G, podemos construir uma matriz de teste de paridade H utilizada para decodificao das palavras. Com a matriz H, pode-se determinar se uma palavra pertence ou no ao cdigo. H = [At Id] No exemplo, H=
1 1 0

d 1 =

Por exemplo, no cdigo C de distncia 3 visto acima, pode-se detectar 2 erros e corrigir 1. 4. Decodificao Para se decodificar uma palavra recebida r, uma estratgia deve ser adotada. Quando o decodificador recebe essa palavra, ele deve tomar uma deciso que pode ser: a) nenhum erro ocorreu e r aceita como uma palavra do cdigo. b) erros ocorreram, mas r corrigida para uma palavra do cdigo. c) erros ocorreram ultrapassando o limite de correo do cdigo, consequentemente r no pode ser recuperada. Em geral, o decodificador nem sempre tomar a deciso certa, por exemplo, se muitos erros tiverem ocorridos durante a transmisso mudando uma palavra para outra do cdigo, a informao est irremediavelmente perdida. Assumindo que o canal introduz erros aleatoriamente, o objetivo do decodificador tomar a deciso com maior probabilidade de ser correta. Como exemplo de um algoritmo de decodificao temos o algoritmo do vizinho mais prximo. Quando uma palavra r recebida, calcula-se a probabilidade de r ser c, para toda palavra c pertencente a C, onde C um cdigo . A palavra r ser decodificada para aquela que tiver a maior probabilidade. Ex.: Considerando o cdigo C = { (00000), (10110), (01011), (11101)} e supondo que a probabilidade de ocorrncia de erro seja p = 0,1 e que a palavra recebida seja r = (11111), calculamos todas as probabilidades: P(r, (00000)) = (0,1)5 = 0,00001 P(r, (10110)) = (0,1)2 . (0,9)3 = 0,00729

0 1 0 0 1 0 1 0 1 0 0 1

Para saber se a palavra pertence ao cdigo, basta multiplicar a palavra recebida r pela matriz teste de paridade. Se o resultado for o vetor nulo, H H.rt = 0 a palavra pertence ao cdigo. Qualquer outro vetor no nulo como resultado significa que a palavra recebida contm erro. Suponhamos que a palavra recebida seja r1 = (10110) , H H.rt = 0 isto , r1 uma palavra do nosso cdigo. Seja a palavra r2 = (01010) , H.rt = (001) ento a palavra contm erro(s). O conceito fundamental para se trabalhar as palavras do cdigo a distncia de Hamming [Vanstone & Oorschot (1989), p.7]. Dado dois elementos u e v do cdigo, a distncia de Hamming definida por d(u,v) = #{i | ui vi, 1 i n}. Por exemplo, d(100, 101) = 1 e d(000, 111) = 3. A distncia do cdigo C a distncia mnima entre todas as palavras do cdigo.

P(r, (01011)) = (0,1)2 . (0,9)3 = 0,00729 P(r, (11101)) = (0,1)1 . (0,9)4 = 0,06561 Logo a palavra recebida r corrigida para a palavra do cdigo c = (11101). Note que so necessrios M clculos, onde M representa a cardinalidade de C. Em um cdigo grande (situaes comuns), o clculo fica invivel, comprometendo a decodificao, pois a complexidade do algoritmo linear. Algumas classes particulares de cdigos admitem um tratamento mais simples. Este o caso dos cdigos de Hamming [Vanstone & Oorschot (1989), p.65], que so capazes de corrigir um erro com um algoritmo bem simples, como se segue: Seja H a matriz de paridade do cdigo e r a palavra recebida. (1) Calcule Hrt. (2) Se Hrt = 0, ento r aceita como sendo a palavra transmitida. (3) Se Hrt = st 0, ento comparamos st com as colunas de H. (4) Se h uma coluna i tal que st = hi, ento o erro e est na n-tupla com na posio i e 0's nas outras posies; corrigimos r para c = r - e. (5) Seno, mais de um erro ocorreu. Em outros cdigos mais complexos, a decodificao mais precisa e eficiente. 5. Cdigos Especiais Dois dos cdigos especiais so o de Golay (fotos coloridas) e o de Reed-Muller (fotos branco - preto) [Vanstone & Oorschot (1989), p.115]. O de Golay possui palavras de tamanho 24 (12 da informao original e 12 de redundncia) e distncia mnima 8. Assim, podemos corrigir 3 erros. O de Reed-Muller possui palavras de tamanho 2r (r+1 de informao original) e distncia mnima 2r-1. Assim, podemos corrigir 2r erros. 6. Concluso Os cdigos corretores de erros constituem hoje uma rea de pesquisa ativa, tanto pelos aspectos matemticos como pelos aspectos computacionais. Muitas questes ainda se encontram em aberto, por exemplo, encontrar o melhor cdigo dado uma taxa de informao.

7. Referncia bibliogrfica Vanstone, S. A. & Oorschot, P. An introduction to error correcting codes with applications. Klumer Academic Publishers, 1989. Jacobs, K. Discrete Stochastics. Birkhuser Verlag Basel , 1992. Hefez, A. Introduo teoria dos cdigos. UNICAMP, 1994.

Vous aimerez peut-être aussi