2013/01/24

A Correcção de Erros Digital



É bastante comum apregoar-se que o "digital" tem muito mais qualidade que o "analógico", mas por outro lado um sinal analógico pode representar uma infinidade de estados possíveis enquanto que os sinais digitais apenas podem representar estados bem definidos. Como é que isso pode ser, e... serão os dados digitais assim tão bons?

Este post sobre a Nasa enviar uma imagem para um satélite em órbita usando lasers relembrou-me que este é um assunto que há muito eu já tinha planeado abordar aqui... e portanto cá cai.


Hoje em dia será praticamente impossível considerar-se a ideia de guardar o que quer que seja em formato analógico. Muitos serão aqueles que ainda se recordam dos tempos das cassetes, discos LP, vídeos em VHS, e tantos outros sistemas... que a cada cópia (e pelo próprio uso), iam degradando a sua qualidade.

O problema é que quando utilizamos sinais analógicos, qualquer interferência ou variação irá afectar o sinal final. Quando se introduzem estas interferências ou "ruído", é depois praticamente impossível distinguir o que é o sinal "bom" e o que é o sinal indesejável. (Claro que se desenvolveram técnicas para minimizar isso, com filtros, etc. mas... sendo analógico, era inevitável a perda de sinal.)


No entanto, ao codificarmos a informação em formato digital, usando apenas dois estados: os famosos "0" e "1") ficamos com dados que mesmo quando sujeitos a ruído e interferências, são muito mais fáceis de reconstruir e detectar.

Poderemos dar como exemplo tentarem comunicar aos berros com alguém que esteja bastante longe. O mais certo será que essa pessoa não consiga compreender a maior parte das palavras que disserem: no entanto, continuará a ser capaz de saber se estão a "fazer barulho" ou em "silêncio". Pelo que, se tivessem um código combinado sobre sequências de barulho-silêncio, poderiam comunicar a essa distância sem problemas. No fundo, o tipo de coisa que o código morse permitiu com os seus impulsos curtos e longos.


Mas, o problema é que mesmo quando falamos de dados digitais, estamos na verdade a falar de dados que vivem num mundo analógico. Os "0" e "1" que fazem funcionar os computadores são estados lógicos que na prática são voltagens analógicas, 0V para "0", e 3 ou 5V para "1". E também os dados guardados nos discos magnéticos, memórias flash, e outros, são representações analógicas de estados digitais... e igualmente falíveis.

Por isso, é raro o dispositivo de armazenamento de dados digital que não tenha um sistema de correcção de dados. Alguns de vocês já terão testado (ao limite) a estranha capacidade dos CDs e DVDs resistirem a riscos. Isso acontece porque os dados que lá estão não são apenas os dados que vocês lá colocaram, mas também uma boa dose de dados de correcção de erros que permite reconstruir a informação caso alguns dos preciosos bits e bytes lá contidos fiquem corrompidos.


Sistemas de correcção como o Reed-Solomon, que são o passo seguinte a sistemas de verificação como o famoso CRC. É que ao contrário dos sistemas de "checksum" que permitem apenas detectar que os dados foram corrompidos, os sistemas de correcção de erros permitem reconstruir os dados originais desde que os estragos não sejam em quantidade catastrófica. É por isso que os CDs continuam a funcionar mesmo se tiverem alguns riscos; e que os discos magnéticos podem gerir com relativa confiança os milhares de milhões de bits que armazenam, sem recear que um único bit corrompido possa deitar tudo por terra.

... Portanto, não se preocupem (demasiado) com a segurança dos vossos dados, pois nos bastidores de praticamente todos os equipamentos estão muitos destes sistemas de correcção de dados, para garantir que tudo funciona como é esperado.

2 comentários:

  1. Muito interessante o artigo, já agora interessante seria sabermos se o disco ótico ou magnético necessitou recorrer aos dados de correção e se o fez em que percentagem.

    Sabes se isso é possível, entretanto depois de detetar uma zona danificada, o controlador tenta afastar os dados desta zona?

    ResponderEliminar
    Respostas
    1. Há programas de diagnóstico que te dão essas informações. E o SMART nos discos rígidos usa precisamente esses (e outros) dados para dar indicação de falhas que possam estar para acontecer.

      Quanto à forma como lidam com essas falhas, por exemplo, evitando colocar dados nessa zona, isso dependerá do que os fabricantes programarem no controlador.

      Eliminar