# Codificação

Em processamento digital de sinais, Codificação é a modificação de chave de um sinal para torná-lo mais apropriado para uma aplicação específica, como por exemplo transmissão ou armazenamento de dados.
Neste contexto, existem três tipos de codificação:
* Codificação de canal: Códigos detectores ou corretores de erros.
* Codificação de fonte: Criptografia e compressão de dados.
* Códigos de linha: Especificam a forma do sinal elétrico que será usado para representar os símbolos de informação. No caso binário, especifica o sinal elétrico dos bits $0$ e $1$.

## Técnicas de codificação

No que diz respeito às principais técnicas de codificação, podemos dividí-las em 3:
* Non Return to Zero (NRZ): Existem dois níveis de tensão ou corrente, para representar os dois símbolos digitais ($0$ e $1$). É a forma mais simples de codificação e consiste em associar um nível de tensão a cada bit: um bit $1$ será codificado sob a forma de uma tensão elevada e um bit $0$ sob a forma de uma tensão baixa ou nula.
* Return to Zero (RZ): Na codificação RZ o nível de tensão ou corrente retorna sempre ao nível zero após uma transição provocada pelos dados a transmitir (a meio da transmissão do bit). Geralmente um bit 1 é representado por um nível elevado, mas a meio da transmissão do bit o nível retorna a zero.
* Diferenciais: Neste tipo de codificação, os $0$ e $1$ são representados através de uma alteração do estado da tensão ou corrente. Assim, o valor $1$ é representado pela passagem de uma tensão ou corrente baixa/nula para uma tensão ou corrente elevada. O valor $0$ é o contrário, ou seja, passa-se de uma tensão ou corrente elevada para outra baixa/nula.

## Codificação perceptual
### Sensibilidade do ouvido

Sinal $A$ seria ouvido, sinal $B$ não seria
* Área de sensibilidade do ouvido humano
Amplitude relativa de sinal para o mínimo (dB) X Frequency (kHz)
    $[0...100]\times ~[0.01...20]$
    $B=0.05$
    $A=0.2$

### Mascaramento de frequências

Para uma sinal de áudio que consiste de sinais com múltiplas frequências, a sensibilidade do ouvido humano varia com a amplitude relatividade dos sinais
Exemplo:
Sinal $B$ tem amplitude maior que $A$, o que causa uma distorção na curva de sensibilidade
Sinal $A$ seria ouvido sozinho, mas próximo do sinal $B$, não é ouvido
* Área de sensibilidade do ouvido humano
Amplitude relativa de sinal para o mínimo (dB) X Frequency (kHz)
    $[0...100]\times [0.01...20]$
    $B=0.2$
    $A=0.5$
A largura da curva

### Mascaramento Temporal

Quando o ouvido escuta um som alto, ele leva um tempo curto (dezena de ms) para conseguir escutar um som mais baixo
* Mascaramento Temporal
* Amplitude relativa de sinal para o mínimo (dB) X Frequency (kHz)
    $[0...100]\times [0.01...20]$
    $B=0.2$
    $A=0.5$

### Mascaramento

* Mascaramento de Frequências X Mascaramento Temporal.

## Tipos de Codificação

* Codificação de sabrina
* Codificação Espírita
* Codificação jurídica
* Codificação binária decimal
* Codificação de Huffman
* Codificação de Shannon-Fano
* Codificação estatística
* Codificação run-length
* Codificação de condutas
* Codificação cowboy
* Codificação por cento
* Codificação de Golomb
* Codificação aritmética
* Codificação para transmissão serial
* Codificação de Gödel
* Codificação por convenção
* Codificação de Church