quinta-feira, 18 de outubro de 2012

Técnicas de compressão de dados

Hoje em dia, a cada vez mais se torna importante buscar informação ou aceder a "coisas" rapidamente e com a melhor qualidade de sempre. No dia a dia ouvesse falar de ficheiros Mp3, DivX, Rmvb e entre muitos outros. Estes exemplos de ficheiros comprimidos que dependendo dos parâmetros e técnicas de compressão utilizadas apresentam melhor ou pior relação espaço/qualidade. Esta compressão de dados permite:
            Reduzir o espaço ocupado pelos ficheiros em disco;
            Reduzir o tempo de transferência de ficheiros;
Existem três técnicas de compressão de dados, que são as seguintes:


1. Compressão com perdas:
A compressão com perdas tira partido da redundante e da irrelevância. Na descompressão não é possivel recuperar o que foi eliminado durante a comprenssão. Esta compressão com perdas é usada para ficheiros multimédia, por exemplo, vídeo (MPEG), música (Mp3) e imagem (JPEG). No caso particular dos ficheros Mp3 é possível obter um ficheiro com a mesma qualidade que o ficheiro original com apenas 1/10 do tamanho.
Quando falamos de comprenssão de vídeo, eliminar a redundância é a palavra-chave. Sabendo que um vídeo é composto por imagens seguidas mantendo a informação que não mudou de uma para a outra codificando apenas apenas os pixéis relativos à mudança (macrobloco).
Esta comprenssão é uma das técnicas mais utlizadas para comprimir ficheiros multimédia.

2.
Compressão sem perdas:
A compressão sem perdas tira partido apenas da redundância (informação a mais da qual se pode prescindir sem que existem perdas). Este processo é utilizado para compressão de texto e em aplicações onde a informação seja muito importante. Os ficheiros associados a este tipo de compressão são o zip, rar, arj entre outros. Neste processo aplicasse algoritmo sem perdas que irá analisar o texto e verificar as redundâncias. O significado de redundância é a frequência com que uma determinada palavra por símbolos que irá permitir ocupar um espaço menor em disco. O processo pode ser invertido através de correspondência entre símbolos e palavras na descompressão.



Ele é usado quando é importante que a informação original e a descompactada sejam idênticas, exemplos:

Imagens fixas:
- GIF - graphic Interchange Format
- PNG - Portable Network Graphics
- JPEG 2000 - inclui métodos de compressão com e sem perda de dados
- TIFF
- RLE 

Vídeo/animação: 
- Huffyuv
- SheerVideo
- MSU Lossless Video Codec
- Animation codec
- H.264/MPEG-4 AVC 

Arquivos:
- ZIP
- 7z
- ARJ
- ACE
- RAR


3. Natureza dos dados:
Este processo de compressão pode ser realizado com conhecimentos ou não da natureza dos dados a comprimir. Esta chama-se compressão por entropia quando esta não tem em conta a natureza dos dados a compimir. Por outro lado, quando é tido em conta a natureza dos dados a comprimir designa-se compressão atendendo à fonte. Esta diferença é evidente quando tentamos comprimir por exemplo um ficheiro de música dente quando tentamos comprimir por exemplo um ficheiro de música no formato Wav em ficheiro Zip. Não resultará deste processo qualquer compressão, já que este algoritmo não tem em conta o tipo dados que compressão, já que este algoritmo não tem em conta o tipo de dados que está a comprimir aplicando sempre a mesma técnica independentemente do tipo de ficheiro.

segunda-feira, 15 de outubro de 2012

Técnicas de deteção e correcção de erros em transmissões digitais


Em qualquer meio que comunicamos podem ocorrer situações em que a transmissão da mensagem pode não ser a correcta. Ruídos e interface são os que ocorrem normalmente, e para que estes erros se corrigem existem códigos de detecção de erros.

1. Detecção de erros:
Existem três codigos de detecção de erros frequentemente utilizados que são: Verificação de paridade, checksum e CRC.

1.1 Verificação de paridade:
Esta técnica é a mais utilizado para detectar erros. Diz-se que a sequencia é um bit de pariade quando a sequência tiver um numero par de 1´s, mas se tiver um numero ímpar de 1´s a menssagem está incorrecta.
Exemplos:
11001100- A menssagem está correcta.
10101011- A menssagem está incorrecta.

1.2. Checksums:
Esta técnica serve mais para detectar erros na internet. Esta verificação é ao nível de transporte de menssagens e baiseia-se na soma do conteúdo do segmento que é colocado numa posição da trama UDP, no lado do emissor. No recptor há lugar novamente á soma do segmento. Se da soma de checksums resultarem apenas de 1´s, podemos inferir que não houve erro na transmissão, caso contrário, existiu erro na transmissão. Esses erros são assinalados nas posições que da soma de checksums resultem zeros. Os erros podem ocorrer no segmento ou no própio código detector de erros.

1.3. CRC- Cyclic Redundancy Check:
Esta técnica é mais eficiente que as anteriores. Ela também e chamada por detecção polinomial. Este método consiste em adicionar um conjunto de bits à menssagem original a transmitir.
O que vimos anteriormente diz respeito ao emissor. Mas como é que o recptor verifica se houve erros na trasmissão? Para isso e necessário que no receptor esta menssagem, agora já com CRC, seja novamente dividida por uma chave da codificação. SE o resto dor zero, diz-se que não houve erro e o contrário se o resto for diferente de zero.

2. Correcção de erros
Pedido automático de repetição (ARQ - Automatic repeat request)
Utiliza a repetição como método de correcção de erros em tramas. O receptor informa o emissor de que não ocorreram erros na transmissão no trama, enviando um aviso de recepção (ACK). Se depois de um tempo o emissor não tiver recebido essa ACK, significa que o bloco possuía erros. Então o bloco é enviado de novo até que exceda um certo número de repetições de envio, ou até que a ACK seja recebida.
Auto-correctores (ECC - error-correcting code)
É um código no qual cada sinal de dados está em conformidade com regras específicas de construção. Os desvios dessas regras podem ser detectados e corrigidos. Esta técnica é normalmente usada em armazenamento de dados no computador (por exemplo: memória flash) e em transmissões de dados.
Ele faz uso de um aumento significativo da informação de controle para corrigir o erro. Por isso eles são usados somente em situações específicas em que não haja outra alternativa, por exemplo numa transmissão "Simplex" (unidirecional). Se houver erro este mecanismo irá recorrer a um ou mais esquemas de detecção referidos anteriormente para saber exatamente em que bit(que varia entre 1 ou 0) está o erro para inverter esse bit.
Alguns códigos podem detectar e corrigir um certo número de bits de erros. Se apenas corrigirem um erro, são chamados códigos de correcção de erro único, ou SEC - single error correcting, e os que conseguem detectar dois erros são chamados de detecção de erro duplo, ou DED - double error detecting.

terça-feira, 9 de outubro de 2012

Ligações síncronas e assíncronas


1. Numa ligação assíncrona, cada bloco de dados inclui um bloco de informação de controlo (chamado flag), para que se saiba exactamente onde começa e acaba o bloco de dados e qual a sua posição na sequência de informação transmitida.
2. Numa ligação síncrona, cada bloco de informação é transmitido e recebido num instante de tempo bem definido e conhecido pelo transmissor e receptor, ou seja, estes têm que estar sincronizados. Para se manter esta sincronia, é transmitido periodicamente um bloco de informação que ajuda a manter o emissor e receptor sincronizados.

Técnicas de codificação


Como já foi referido anteriormente, é fundamental que a menssagem chegue sem erros. Para que isso não aconteça, existem diferentes tipos de codificações, são as seguintes:

1. NRZ:
O codigo de linha Non Return Zero indica que o sinal não necessita  obrigatoriamente de ir a zero entre transições de bit, isto significa que tem o Duty Cycle de 100%. Nesta codificação existem três tipos:
   1.1. NRZ Unipolar- Esta tecnica de codificação é a maís simples. Os limites da onda estão sempre entre 0 e 1 e tomam o valor de 1 quando o bit é 1 e quando o bit a codificar é 0 toma o valor de 0. Esta tecnica é utilizado para gravação digital em suportos magnécticos.
   1.2 NRZ Polar- Esta tecnica de codoficação apresenta as mesmas vantagens e desvantagens do NRZ Unipolar. Os limites da onda nesta codificação e -1 e 1. O valor 1 quando o bit a codificar é 1 e o valor -1 quando o bot a codificar é 0.
   1.3. NRZ Bipolar- Esta tecnica de codificação resolve o problema relativo à componente DC mas sofre igualmente a perda de sincronismo com facilidade. Os limites da onda nese tipo de codificação entre -1, 0, 1. Toma o valor 0 quando o bit a codificar é 0 e toma o valor 1 e -1 alternadamente quando o bir a codificar é 1.

NRZ Unipolar:

NRZ Polar:
NRZ Bipolar:
2. RZ:
O código de linha do tipo Return Zero indica que, cada transição ,metade do bit sinal vai a zero. Por causa disto, diz-se que o Duty Cycle de 50% e utiliza o dobro da largura de banda em relação aos códigos NRZ.
Existem três tipos de codificações RZ:
2.1.RZ Unipolar- Esta tecnica de codificação apresenta as mesmas vantagens e desvantagens do NRZ unipolar. Os limites da onda estão sempre entre 1 e 0 e tomam o valor 1 quando o bit a codificar é 1 e 0 quando o bit a codificar é 0. No entanto, como já referi, os valores só têm metade do tempo bit.
2.2. NR Polar- Esta tecnica de codificação apresenta as mesmas vantagens e desvantagens do NRZ polar. Os limites da onda neste tipo de codificação estão sempre entre -1 e 1. A onda toma valor 1 quando o bit a codificação é 1 e toma valor -1 quado o bit a codificar é 1 e toma valor -1 quando o bir a codificar é 0. No entanto maís uma vez, tem metade do valor.
2.3. NR Bipolar- Esta tecnica de codificação apresenta as mesmas vantagens e desvantagens do NRZ Bipolar. Os limites da onda neste tipo de codificação estão entre -1, 0 e 1. Toma o valor 0 quando o bit a codificar é 0 e toma o valor 1 e -1 alternadamente quando o bit a codificar é 1. Contudo, só permanecem metade do valor.
NR Polar:
NR Unipolar:
NR Bipolar:
3. Manchester: Este codigo de linha, à semelhança do RZ, tambem apresenta um Duty Cycle de 50%. Mas necessita do dobro da largura de banda. No entanto, exibe vantagens em relação aos anteriores, tais como, nunca apresenta componente nula. Existe 2 tipos de codificação Manchester:
 
3.1. Manchester Normal: Esta tecnica de codificação é semelhante á RZ, tambem apresenta metade do valor em bit. Os valores limites de onda neste tipo de codificação estão entre 1 e -1. Assim, a transições entre 0 a 1 e 1 a 0 ocupam a largura de um bit desde o meio bir anterior até o meio bit seguinte.
 
3.2. Manchester Diferencial: Esta tecnica de codificação também é semelhante ao RZ. Os limites da onda neste tipo de codificação estão entre -1 e 1, à semelhança do anterior. A difença aqui reside apenas, nas transições entre bits serem codificadas de forma diferença do anterior. As transições 0 a 1 e 1 a 1 ocupam a largura de um bit desde o meio bit anterior, até ao meio bit seguinte. As restantes transições, 0 a 0 e 1 a 0, ocupam apenas meio bit.
Manchester normal e Diferencial:




segunda-feira, 8 de outubro de 2012

GRANDEZAS E MEDIDAS



1. O Decibel é a dB mede a perda ou ganho da potência de uma onda.
Os decibéis podem ser números negativos, estes representam uma perda na potência da onda ao propagarem-se, ou números positivos, estes representam um ganho na potência se o sinal for amplificado.

2. A Largura de banda é a quantidade de informação que pode ser transferida de um ponto na rede para outro ponto num determinado período.

3. O throughput refere-se à largura de banda realmente medida, numa determinada hora do dia, usando rotas específicas de Internet, e durante a transmissão de um conjunto específico de dados na rede.
O throughput é muito menor que a largura de banda digital máxima possível do meio que está a ser usado.

4. Bit rate é o número de bits transferido por unidade de tempo (segundo); está directamente relacionado com a largura de banda do meio de transmissão.



quarta-feira, 3 de outubro de 2012

Modulação em amplitude, frequência e fase


1- Modulação em Amplitude- Modulação em Amplitude ou simplesmente AM (do inglês Amplitude Modulation - Modulação de Amplitude), é a forma de
modulação em que a amplitude de um sinal senoidal, chamado portadora, varia em função do sinal de interesse, que é o sinal modulador.

2- Modulação em frequência- A onda portadora varia a sua frequência. Uma frequência maior designa-se pelo bit 1 e outra frequência menor designa-se pelo bit 0.

3- Modulação em fase- O onda portadora senoidal muda de fase para designar a mudança de um bit 0 para bit 1 e vice-versa. 


segunda-feira, 1 de outubro de 2012

Técnicas de conversão analógico- digital e vice-versa


Ao convertemos sinal analógico em digital e vice-versa damos o nome de modulação.

1. Modulação é o processo em que algumas das características de um sinal é modificado pela acção de outro sinal. O processo de modulação é sempre necessário quando o sinal a ser transmitido não possui as características compatíveis com as do meio de transmissão a ser utilizado.

1.1. Modulação analógica
As técnicas de modulação para sinais analógicos mais utilizados são: AM, FM e PM

1.2. Modulação digital
As técnicas de modulação para sinais digitais mais utilizadas atualmente são: FSK, PSK e ASK.~

2. Demodulação é o inverso do processo de modulação, ou seja é a extracção do sinal modulado da informação transmitida na sua forma original, subtraindo as imperfeições que foram introduzidas no decorrer do trajecto da origem até o destino.


Transmissão de sinais analógicos e digitais


Os sinais usados na transmissão de informação podem ser divididos em duas grandes categorias: analógicos e digitais.

1. O sinal analógico é um tipo de sinal contínuo que varia em função do tempo. Um velocímetro analógico de ponteiros, um termômetro analógico de mercúrio, uma balança analógica de molas, são exemplos de sinais lidos de forma direta sem passar por qualquer decodificação complexa, pois as variáveis são observadas diretamente.


2. O sinal digital é um sinal com valores discretos (descontínuos) no tempo e amplitude. Isso significa que um sinal digital só é definido para determinados instantes de tempo, e o conjunto de valores que podem assumir é finito.



Direcção do fluxo de dados: sistemas simplex; half-duplex e full-duplex


Quanto ao sentidos em que a informação pode ser transmitida através de um canal entre emissores e receptores, as transmissões de dados podem ser de 3 tipos:

1. Simplex - Neste caso, as transmissões podem ser feitas apenas num só sentido, de um dispositivo emissor para um ou mais dispositivos receptores; é o que se passa, por exemplo, numa emissão de rádio ou televisão; em redes de computadores, normalmente, as transmissões não são desse tipo.


2. Half - Duplex - Nesta caso, uma transmissão pode ser feita nos dois sentidos, mas alternadamente, isto é, ora num sentido ora no outro, e não nos dois sentidos ao mesmo tempo; este tipo de transmissão é bem exemplificado pelas comunicações entre computadores (quando um transmite o outro escuta e reciprocamente); ocorre em muitas situações na comunicação entre computadores.


3. Full - Duplex - Neste caso, as transmissões podem ser feitas nos dois sentidos em simultâneo, ou seja, um dispositivo pode transmitir informação ao mesmo tempo que pode também recebe-la; um exemplo típico destas transmissões são as comunicações telefónicas; também são possíveis entre computadores, desde que o meio de transmissão utilizado contenha pelo menos dois canais, um para cada sentido do fluxo dos dados.


Componentes de um Sistema de Comunicação


1. Mensagem
É a informação a ser transmitida.
Pode ser constituída de texto, números, figuras, áudio e vídeo – ou qualquer combinação destes.

2. Transmissor

É o dispositivo que envia a mensagem de dados.
Pode ser um computador, uma estação de trabalho, um telefone, uma câmera de vídeo e assim por diante.

3. Receptor

É o dispositivo que recebe a mensagem.
Pode ser um computador, uma estação de trabalho, um telefone, uma câmera de vídeo e assim por diante.

4. Meio (Canal)

É o caminho físico por onde viaja uma mensagem originada e dirigida ao receptor.

5. Protocolo

É um conjunto de regras que governam a comunicação de dados.
Representa um acordo entre os dispositivos que se comunicam.
Pode ser constituída de texto, números, figuras, áudio e vídeo – ou qualquer combinação destes.