lunedì 20 febbraio 2012

4. Compressione

E l'arte di minimizzare le risorse per i dati audio.
Gli obbedivi sono: ridurre la memoria occupata e i costi di trasmissione.
Attualmente l'audio compresso fornisce una buona qualità in confronto all'audio non compresso.
Se l'obbiettivo include la qualità del segnale, occorre individuare qual'è il numero minimo di bit per rappresentare il segnale in modo che la riproduzione sia trasparente (anche orecchie sensibili non riescano a distinguere dall'originale).

Motivazioni per la compressione

Il successo dei CD(metà anni 80) porta alla luce i vantaggi dell'audio digitale:
- alta fedeltà del segnale rappresentato;
- l'estesa gamma dinamica offerta;
- la robustezza rispetto a eventuali danneggiamenti del supporto;
Svantaggi:
- alti tassi di trasferimento dati che sono richiesti.

CD-Audio
Tasso di campionamento:  44.100 hz
Quantizzazione: PCM lineare a 16 bit
Tasso di trasferimento dati (bit-rate): 705,6 Kbps MONO e 1,411 Mbps STEREO

L'audio digitale non compresso occupa:
- molto spazio sull'hardisk per la memorizzazione;
- una banda ampia sul canale di trasmissione;

Esempio: brano di 1 min con Qualità CD
Parametri:
Tasso di campionamento: 44.100 c/s
Quantizzazione: 16 bit (2 Byte)
Canali = 2 (Stereo)
Tempo = 1 minuto(60 secondi);

Memoria che risulta occupata è di circa 10 Megabyte:
44.100 c/s x 2 canali x 2 byte/campione x 60 = 10.584.000 byte
10 Mb equivalgono a 80 Megabit (circa 80.000 Kb), il tempo di scaricamento con un modem a 56,6 Kbps è di oltre 20 minuti:
80.000 kb/ 56,6 kbps = 1413.4276/60 sec= 23 min e 33 sec

Nonostante l'accesso e il trasferimento dei dati da CD e DVD e dalla rete siano sempre più veloci non è ancora pensabile attualmente poter trasferire immagini, video, testo  e audio di alta qualità sincronizzati tutti insieme.
L'obiettivo è la riduzione del bit-rate senza compromettere la qualità della riproduzione
A partire dagli anni 80 è stata prodotta una mole di lavoro intorno a schemi di compressione che potessero soddisfare le esigenze presenti, in vari tipi di applicazioni:
Bassa qualità: telefonia;
Alta qualità: colonne sonore videogiochi su CD-ROM, memorie flash per riproduttori portatili, audio su internet, Web radio e Web Tv.

Durante la fase di compressione(Codifica - Encoding), i dati audio digitali vengono prelevati da un file e trasformati in una sequenza di bit in modalità compressa rispetto all'originale.
Durante la fase di decompressione, si ricostruisce il segnale di partenza o si ricostruisce un segnale che suona come l'originale.
La compressione con perdita di informazione(lossy) è in generale più efficace , anche se la qualità non è sempre eccellente.
Notiamo che il flusso di bit (bitstream) non necessariamente rappresenta una sequenza di campioni come nel file originale. La codifica usata dipende dallo schema di compressione e potrebbe richiedere operazioni di ricostruzione dal segnale anche molto complesse.
Gli schemi di compressione vengono implementati in Codec, librerie software istallate su un calcolatore consentono ad applicativi di alto livello di comprimere e decomprimere nella modalità corrispondente.
Descriviamo  alcuni schemi di compressione lossy: semplici e complessi.  La differenza si basa sulla complessità degli algoritmi  di codifica/decodifica (tempo di computazione), efficacia di compressione.

Le Codifiche u-law A-low

Realizzano specifiche contenute nelle raccomandazioni G.711, comitato internazionale per gli standard delle telecomunicazioni.
Codifica u-law: Nord America e Giappone per sevizi di telefonia digitale ISDN.
Codifica a-law: Europa e sul traffico internazionale telefonia ISDN.
Il segnale audio deve essere sufficientemente compresso per poter essere inviato su una linea ISDN che consente un traffico di 64 Kbps ed essere decodificato in tempo reale.
Tasso di campionamento: 8000 c/s;
funziona bene sulle frequenze fino a 3000-4000 hz.
Quantizzazione: è di natura logaritmica, poiché rappresenta con livelli di quantizzazione don uniformi le ampiezza forti e deboli e prevede 8 bit a campione.
Bit-rate: 64 Kbps (8000c/s x 8 bit/c).
Non limitando la frequenza di campionamento, la compressione offerta dalla quantizzazione logaritmica è di bit-per-campione/8:1; se i campioni originali sono di 16 bit, il fattore di compressione è di 2:1.
La quantizzazione logaritmica con 8 bit consente di raggiungere una gamma dinamica pari a quella ottenuta con una quantizzazione lineare a 13-14 bit.(I campioni di ampiezza debole quantizzasti con maggior accuratezza= Rapporto segnale/rumore per il segnale codificato è più uniforme su tutta la gamma delle ampiezze del segnale in input).
u-law
Si comprimono i campioni a 16 bit in modo non lineare su campioni da 8 bit (0-255). Non linearità in cui i campioni di forte intensità vengono compressi in pochi valori di codifica. I valori ottenuti dalla decompressione non sono esattamente quelli codificati, ma delle loro approssimazioni a volte grossolane(esempio: -200 a 16 bit diventa 106 a 8 bit e con la formula inversa -193 a 16 bit).

La compressione ADPCM (PCM differenziale adattiva)

Metodo diffuso e raggiunge un buon compromesso tra velocità di elaborazione, qualità del segnale decodificato e rapporto di compressione.
Due idee alla base dello schema ADPCM:
- la codifica delle differenze tra i campioni;
- l'adattamento delle differenze allo specifico segnale in input;

Nella codifica delle differenze tra campioni(differencing):
ogni elemento della sequenza da comprimere viene sostituito da un bit che indica il segno della differenza (un campione ha un'ampiezza < o > del precedente)  e da alcuni bit che rappresentano il valore assoluto della differenza.
Le differenze hanno una valore ridotto rispetto ai campioni quindi serviranno un numero inferiore di bit (mantengono pero lo stesso segnale/rumore).

Nella decodifica, la ricostruzione del segnale originale si ottiene sommando o sottraendo la differenza dal campione precedentemente decodificato.

L'adattamento delle differenze allo specifico segnale in input.
In genere l'andamento del segnale non subisce segnali drastici, può capitare che quando prevalgono le frequenze vicine alla frequenza di Nyquist, la differenza tra un campione e il successivo assume valori inconsueti --> per evitare un degrado eccessivo del rapporto segnale/rumore occorre adattare la codifica delle differenze ai valori che prevalgono in una certa finestra del segnale.

Lavorare con le differenze ha il vantaggio di ridurre i valori rispetto ai campioni PCM originali.
Le differenze sono sempre di dimensioni ridotte e tendono a ricorrere. Tali carrateristiche suggeriscono l'uso di tabelle di look-up, dove si memorizza un numero finito di valori ricorrenti in un segnale.
I valori di differenza si riducono introducendo una nuova operazione sul campione precedente: la predizione.
Il campione precedente viene usato come base di partenza per predire il campione attuale , sfruttando la conoscenza del segnale precedente, cioè la successione dei campioni fino a questo punto. Il risultato è che si assegna un numero di N di bit che permettono di rappresentare  2 alla N possibili valori di differenza.
 
La predizione basata su una certa differenza a un certo punto può rivelarsi inefficace (aumentare invece che diminuire). Il problema è evidente in uno spettro ricco di alte frequenze e il segnale varia in modo repentino, non concedendo il tempo di stabilizzare le differenze con una certa regolarità.
Differenze elevate (alte frequenze) non si possono rappresentare con un numero piccolo di bit, gli errori introdotti porterebbero a distorsioni sulle alte frequenze.
Considerando il numero di bit fissato per le differenze(N) occorre introdurre una certa adattabilità sul segnale in modo da ampliare o restringere i passi di quantizzazione  a seconda del contenuto  di alte frequenze. Quindi, lasciando inalterato il numero di regioni di quantizzazione per le differenze, le regioni si ampliano o restringono a seconda se c'è da coprire una differenza maggiore o minore.
Le differenze si dicono quindi quantizzate  e a seconda della variazione più o meno repentina del segnale occorre una riquantizzazione nel caso quella corrente sia inadatta a rappresentare l differenze in gioco in un certo frammento del segnale.
Esendo le differenze quantizzate, la compressione ADPCM è lossy.   

Schema Generale ADPCM


Lo schema di codifica ADPCM usa come suo componente lo schema di decodifica per calcolare i valori predetti.
Segnale in input = X[n] n= numero di campione (X[1],X[2]…)
Campioni ricostruiti o predetti = Xp[n]
Differenze = D[n]
Differrenze quantizzate = Dq[n]

Codifica passo passo
X[n] --> campione con segno= +X[n]
+X[n] viene sottratto il campione predetto= Xp[n-1], calcolato a partire dal campione precedente.
+X[n] - Xp[n-1] = differenza = D[n], positiva o negativa.
Quantizer(adattivo) che darà in output una codifica della differenza D[n] in livelli di quantizzazione(
bit) in numero inferiore al segnale di input(compressione).
Quantizer darà anche l'output della codifica = C[n], sequenza compressa composta di differenze quantizzate.
C[n] differenza quantizzata  è ripresa per calcolare il valore predetto che sarà sottratto dal successivo campione.
Requantizer traduce la differenza quantizzata(C[n]) in una nuova quantizzazione richiesta dal Predictor.
Il valore riquantizzato = Dq[n] viene addizionato al campione predetto al passo precedente ricostruendo il campione Xp[n].
Xp[n] viene utilizzato dal Predictor per costruire il valore predetto per il prossimo campione,
valore definito= Xp[n-1].

Decodifica
Il segnale in ingresso = C[n], differenze quantizzate
C[n] viene riquantizzato in Dq[n] con il Requantizer e addizionate a Xp[n-1] prodotto dal Predictor.
Risultato= Xp[n], sequenza ricostruita che suona come X[n].

Per comprendere l'adattatività al segnale in input: l'algoritmo IMA ADPCM.

La compressione IMA ADPCM


IMA consorzio produttori hardware e software per lo sviluppo di standard per dati multimdediali su computer.
L'obbiettivo: algoritmo di compressione in grado di produrre un rapporto discreto di compressione semplice da permettere una decodifica software in tempo reale di un segnale audio stereo a 44.100 c/s  su un 386 a 2 mHz di clock. E semplice da permettere anche la codifica in tempo reale sullo stesso PC.
La semplicità dipende dal Predictor: il valore predetto è il valore decodificato del campione audio precedente(una copia del flusso di input ritardata di un campione).
Il Predictor IMA non è adattivo, è un semplice registro.

I campioni in input sono a 16 bit mentre le differenze sono di 4 bit, riduce 1/4 i dati del segnale.
Predictor ricostruisce il campione predetto a partire dalla predizione precedente e dalla differenza ri-quantizzata.
Viene inserito un modulo, Adattatore ampiezza del passo, che implementa l'adattabilità al segnale in input --> variando l'ampiezza del passo di quantizzazione in modo logaritmico a seconda della differenza rilevata con l'ultimo campione: modulo che influenza Quantizer e Requantizer.
L'algoritmo si adatta al segnale in input variando la dimensione del passo di quantizzazione(regioni di quantizzazione) nel Quantizer delle differenze.
Differenze è piccola = assottigliato passo di quantizzazione
Differenze aumentano = passo viene ampliato per coprire maggiori distanze.

I possibili passi di quantizzazione sono contenuti in una tabella di 89 voci. Ciascun Passo è associato a un indice della tabella.

Funzionamento Quantizer unito adattatore delle ampiezze del passo.

Quantizzazione= differenza trovata viene confrontata con l'ampiezza del passo corrente= 8 possibili regioni rispetto al passo.
Output del Quantizer = espresso in 3 bit(4 segno), indica la codifica della regione selezionata sulla base del confronto.
Prodotto tra il passo e il Moltiplicatore rende il passo più vicino alla differenza effettiva.
La variazione dell'indice determina un nuovo indice sulla tabella dei passi di quantizzazione.

L'algoritmo IMA mantiene un indice sulla tabella dei passi di quantizzazione.
Ampiezza passo < differenza = indice decrementato
Ampiezza passo > differenza = indice aumentato

L'output tabella dei passi usato come dimensione del passo di quantizzazione per il Quantizer.

La codifica è lossy. Produce un fattore di compressione di bit per campione / 4 a 1, Se campioni originali sono a 16 bit fattore di compressione è 4:1 , bit rate a 400 kbps.

Schemi di compressione di tipo percettivo

Operano perlopiù rimuovendo le parti irrilevanti del segnale audio.
La soglia assoluta di udibilità è caratterizzata dalla quantità minima di energia che deve trasportare un suono puro perché un ascoltatore riesca a percepirlo.
Non si conosce a priori i livelli di riproduzione che saranno usati:
I progettisti degli algoritmi di compressione si riferiscono a una curva SPL ottenuta identificando il punto minimo della curva a 4.000 hz con l'energia rappresentata da 1 bit(6dB).

Le bande critiche e mascheramento simultaneo

Orecchio interno è un analizzatore dello spettro del segnale, lavora in modo tonotopico: assegna un suono puro a un'area specifica della membrana basilare.
Regioni distinte della membrana sono "accordate" su differenti bande di frequenza.
L'analisi spettrale non segue una scala lineare sulle frequenze: si possono identificare delle bande di frequenza , bande critiche, al passaggio tra le quali si può osservare un cambiamento repentino della percezione uditiva; se la banda del rumore si estende oltre i confini della banda critica si percepisce un aumento del volume.
Sistema uditivo si può descrive come un banco di filtri passa-banda: bande sono le bande critiche con una larghezza compresa tra 100 e 500 hz e che può arrivare oltre i 5000 hz nelle alte frequenze per un totale di 25 bande critiche.

Mascheramento simultaneo fenomeno per cui un segnale a debole intensità non viene percepito a causa della presenta simultanea di un segnale a intensità superiore.
Condizioni per il mascheramento è che la frequenza dei 2 segnali sia abbastanza vicina, ed è molto efficace se i segnali sono nella stessa banda critica.
Il comportamento di un segnale mascheratore viene descritto da una soglia di mascheramento per cui tutti i segnali che sono sotto questa soglia non si possono udire, ci sono sia parti del segnale dello spettro, sia artifici introdotti con la digitalizzazione.
Le soglie di mascheramento che dipendono da toni mascheratori (mascheramento tonale):
forma: campana;
basse frequenze: curva di ascesa rapida;
alte frequenze: curva di discesa più dolce; vengono mascherate più facilmente.

Rumore, segnale a banda larga, è un mascheratore più efficace dei toni singoli, in quanto la distanza tra mascheratore e mascherato in termini di intensità è inferiore(cioè il mascherato deve avere un'intensità forte) in esperimenti in cui il rumore maschera il tono che viceversa.

Quando nel segnale originale sono presenti più segnali mascheratori, che non si mascherano a vicenda, è possibile costruire una soglia di mascheramento globale a partire dalle singole soglie di mascheramento.

Diagramma  - Bande critiche e mascheramento simultaneo, singolo tono di mascheramento all'interno di una banda critica.
Ascissa: frequenza;
Ordinata: intensità in dB, logaritmica;
Tono genera una soglia di mascheramento, di cui il minimo si trova all'estremo sinistro della banda critica.
Per lavorare senza l'introduzione di distorsioni occorre basarsi su tale soglia minima.
3 possibilità di SNR (rapporto segnale/rumore) per m-1, m, m+1 bit.
1 bit = 6db SNR, per cui man mano che i bit aumentano anche SNR aumenta.
Rapporto SNR su scala logaritmica si può calcolare :
SNR log = log(max_ampiezza) - log(rumore-medio)
max_ampiezza= livello del tono mascheratore, asse delle ordinate.
SNR è la differenza tra il livello del tono mascheratore e il livello del rumore.

SMR: rapporto segnale/maschera, distanza tra il livello del tono mascherature la minima soglia di mascheramento.

NMR; rapporto rumore/maschera, distanza tra il livello del rumore e la minima soglia di mascheramento.

SNR = SMR + NMR

Rapporto SMR è usato dagli algoritmi di compressione nell'allocazione dei bit necessari per la codifica del segnale:
rumore ha intensità < all minima soglia di mascheramento non è percepibile a causa del tono mascheratore basterà allocare il numero di bit necessari per raggiungere il livello SMR, producendo la stessa qualità prodotta dall'SNR.

Mascheramento temporale: segnali transitori repentini (attacchi suoni percussivi) creano delle regioni di mascheramento che precedono e seguono il segnale.
Pre-mascheramento tende a durare : 5msec
Post-Mascheramento: si può estendere tra 50 e 300 msec.

Standard MPEG

Gruppo di  lavoro per lo sviluppo di standard per compressione, decompressione, elaborazione e rappresentazione codificata di video e audio. Più versioni susseguite cronologicamente.

MPEG  1 : memorizzazione/recupero video e audio ('92)
MPEG 2: standard per TV originale, bit-rate 6 Mbps e sourround('94)
MPEG 4: immagini e audio visti come composti da diversi oggetti, per permettere lo sviluppo di applicazioni multimediali.('98)
MPEG 7: rappresentazione del contenuto per la ricerca, filtraggio, gestione di info multimediale('01)
MPEG 21: sicurezza contenuti multimediali ('09)

Una delle caratteristiche è il principio di minimizzare gli elementi normativi all'interno dello standard. Unici elementi imposti sono il formato dell'audio compresso e l'algoritmo di decodifica.
I moduli dell'algoritmo di compressione audio sono lasciati quasi interamente alla creatività degli sviluppatori.
Le specifiche ufficiali rilasciate includono anche una descrizione completa di un encoder.

Standard MPEG 1, universale in molti settori.
codifica del segnale audiovisivo combinato a un bit-rate di circa 1,5 Mbps(1,2 Mbps video e 0,3 Mbps audio, cioè 300 kbps, per l'audio stereo) con qualità inferiore alla TV.
Specifiche audio permesse per il segnale in input sono:
frequenze di campionamento: 32, 44,1 , 48 Khz
numero canali: 1 o 2
modo di funcionamiento: mono, dual mono, stereo, joint-stero
bit-rate segnale output: da 32 a 224 kbps per canale, buona qualità: 192 kbps.
Tre livelli di compressione(layer)
lager I è l'algoritmo di base , II e III migliorano i moduli dello schema producendo migliori compressioni al costo di incrementare la complessità sia del'encoder che del decoder
Layer 1 : più semplice, bit-rate superiore a 128 kbpss
Layer 2: più complesso esattamente di 128 kbps
Layer 3: il più complesso di 64 kbps, molta compressione    

Struttura di base di MPEG 1 ricalca lo schema generale e implementa in modo differente i vari moduli a seconda dei layer.

Analisi-tempo frequenza
[codifica per blocchi, segnali audio reali non variano molto tra un campione e il successivo, si può assumere che lo stesso esponente valga per un buon numero di campioni. Un risparmio consistente si ottiene mantenendo lo stesso esponente per tutto un blocco di campioni, in modo a memorizzarlo una sola volta: all'interno del blocco si sceglie il campione che necessita del maggior numero di bit di esponente, e determinato il numero viene mantenuto per tutto il blocco]

Segnale audio viene segmentato in frame(blocchi), la porzione di segnale all'interno di ciascun blocco viene analizzata nel dominio della frequenza e convertito nelle sue componenti spettrali mediante un banco di filtri. Il banco di filtri che suddivide il segnale audio in 32 sottobande di frequenza della medesima larghezza.(0 a 31, sub-band coding).
[La codifica per sotto-bande divide lo spettro audio in molte bande di frequenza, le singole bande vengono elaborate individualmente. Il vantaggio di questa codifica è che i suoni non distribuiscono l'energia in modo uniforme lungo tutto lo spettro. Le sotto-bande con gamma dinamica ristretta possono essere codificate con un numero minore di bit; il risultato è che i campioni nelle diverse sotto-bande saranno codificati con un numero variabile di bit  e si avrà una riduzione dovuta alla diminuzione dei bit per alcune bande.]
I campioni in ingresso al banco di filtri nel dominio del tempo e i campioni in uscita nel dominio della frequenza sono gli stessi.
La larghezza uniforme delle bande risulta troppo ampia per le basse frequenze  e troppo stretta per le alte frequenze.

Analisi psicoaucustica
[valuta quanta distorsione si può introdurre in un segnale senza causare un'alterazione della percezione, producendo le soglie di mascheramento che permettono di determinare il massimo ammontare di distorsione armonica che si può introdurre nel segnale durante la fase di ri-quantizzazione, senza provocare delle alterazioni udibili nel segnale ricostruito. Calcola il rapporto SMR, rapporto tra l'ampiezza del segnale e la soglia di mascheramento. I rapporti SMR, calcolati per blocco di frequenze, sono utilizzati per decidere quanti bit vengono allocati per la ri-quantizzazione del segnale in ogni banda, in modo da minimizzare il rumore di quantizzazione ]
I banchi di filtri possono introdurre errori di minima entità, per compensare la mancanza di accuratezza del banco di filtri, il segnale viene analizzato mediante una FFT(Trasformata di Fourier veloce) layer 1 = 512 punti, layer 3= 1024 punti. L'output di questa trasformazione è usato dal modello psicoacustico che determina le soglie di  mascheramento e le sovraimpone alle frequenze contenute in ciascuna sotto-banda in modo da fissare il livello di distorsione permesso[Modello psicoacustico controlla l'allocazione dei bit. Calcola i rapporti SMR prendendo in considerazione lo spettro del segnale limitato a un blocco di campioni audio e la conoscenza sul mascheramento del rumore. Modello presente solo nell'encoder.]
I campioni di frequenza vengono raggruppati in blocchi.
Si usano blocchi di dimensione costante, 384 campioni, che corrispondo a blocchi per sotto-banda di 12 campioni ciascuno(12x32), nel layer II e III 1152 campioni, tre blocchi consecutivi del Layer I (384 x 3, 36 x 32= 1152).
Finestra temporale che corrisponde ad un blocco dipende dal tasso di campionamento:
a 48.000 hz, 384 campioni = 8 msec
a 44.100 hz, 384 campioni = 8,7 msec
Blocchi troppo lunghi per permettere di eviatare il pre-mascheramento temporale.

Layer I
I 384 blocchi subiscono una compansion(capitolo 2).
A tutti i campioni di frequenza del blocco viene attribuito un fattore di scala determinato a partire dal valore di picco del blocco.
Si usa un unico fattore di scala  di 6 bit per ciascuna sotto-banda, quindi lo stesso esponente per tutti i 12 campioni nella quantizzazione non uniforme in virgola mobile.
Si considera un passo di quantizzazione di 2 dB sui fattori di scala, con 6 bit si hanno 2 alla6= 64 configurazioni, con una gamma dinamica di oltre 120 dB.
Bit-rate in uscita è fissato a priori e anche le dimensioni della codifica in uscita da un  blocco sono fissate.
[I bit determinano il numero di regioni di quantizzazione. La somma dei bit allocati per ciascuna sottobanda non deve eccedere il massimo bit-rate fissato a priori]
La lunghezza della codifica per ciascuna sotto-banda deve essere tale per cui la somma totale delle codifiche non supera il bit-rate totale per il blocco.
Alcune sotto-bande avranno codifiche più lunghe e altre più corte.

Layer III
Dopo banco di filtri con 32 sottobande viene posto un modulo addizionale basato su una Trasformata discreta del coseno modificata(MDCT): permette una più elevata risoluzione frequentiate, producendo una partizione dello spettro più simile  a quella delle bande critiche nelle basse frequenze.
2 tipi di finestre: lunghe 36 campioni, corte di 12 campioni.
Opera sovrapponendo le finestre, per cui i campioni effettivi per finestra sono meno di quelli indicati.
La sovrapposizione dimezza i campioni: 18 per le finestre lunghe e 6 per le finestre corte.
Risoluzione totale = 576 frequenze per le finestre lunghe(0-575) e 192 frequenze per le finestre corte.
La dimensione delle finestre è utile per differenziare il trattamento del segnalein presenza di materiale stazionario rispetto alla presenza di transitori. In generale lavora la  MDCT a 18 punti.
Nell'analisi psicoacustica l'altissima risoluzione fornita dalla MDCT permette una sagomatura  del rumore più accurata.

Allocazione dei bit, Fase di quantizzazioneo e codifica
[usa i bit allocati per stabilire le dimensioni delle regioni di quantizzazione e codificare il segnale]
assegna alloca bit  e fattore di scala a ogni sotto-banda.

Nel layer I
le sotto-bande sono trattate allo stesso modo, si usano 14 classi di ri-quantizzazione(4 bit).

Layer III
4 elementi nuovi, quantizzazione non uniforme, bande relative a fattori di scala, codifica di Huffman, riserva di bit.
- Quantizzazione non uniforme  che garantisce un miglior rapporto segnale/rumore.
- layer I si può usare un differente fattore di scala per ciascuna sotto-banda, con la MDCT abbiamo una ploliferazione di sotto-bande, quindi si possono raggruppare delle sotto-bande per fattore di scala, raggruppamenti larghi all'incirca come le bande critiche. Fattori di scala distorcono il rumore di quantizzazione per adattarsi alle curve determinate dalle soglie di mascheramento.
- usa i codici di Huffman a lunghezza variabile per codificare i campioni quantizzati e ottenere una maggiore compressione. Dopo la quantizzazione  l'encoder ordina i 576 coefficienti delle sotto-bande per frequenza di occorrenza crescente. Coefficienti grandi alle basse frequenze, alte frequenze coefficienti bassi o addirittura nulli. Codifica i coefficienti attraverso codici di lunghezza variabile, codici brevi a valori frequenti e codici lunghi a coefficienti infrequenti, minimizzando la lunghezza media della codifica.
- bit-stream progettato in modo da soddisfare le richieste variabili di bit per le varie sotto-bande. Finestre sono di 1152 campioni ma i dati codificati non è detto che assumo sempre la stessa lunghezza. Quando il frame presenta un eccesso di bit rispetto bit-rate fissato, quelli extra possono essere messi in serbatoio , da dove possono esse prelevati quando la necessità per la codifica di un frame eccedono la lunghezza media.

L'algoritmo di allocazione dei bit seleziona un passo di quantizzazione che soddisfi il bit-rate e il rapporto SMR.
L'algoritmo inizia con il calcolo del rapporto rumore/maschera NMR, in db:
NMR = SNR - SMR per sottobanda.
SNR = segnale/rumore (1 bit = 6dB)
SMR è il rapporto segnale/maschera calcolato dal modello psicoaucustico.   
Prendendo in considerazione tutti i valori NMR  calcolati per sotto-banda si ricerca la sottobanco con il più basso rapporto NMR e si allocano i bit per quella sotto-banda.
Quando i bit totali del blocco superano i limiti imposti dal bit-rate, l'unità di allocazione dei bit computa una nuova stima del SNR, e il rapporto NMR per le sotto-bande viene ri-calcolato. Processo si ripete finchè non si possono allocare più bit. (Esempio 154, 4.16)

Layer III -  allocazione dei bit.
Sistema di 2 loop di iterazione annidati, che prendono in considerazione codifica Huffman e la riserva di bit.

Loop interno:
controlla il bit-rate, se numero di bit che risultano da una codifica di una dato blocco > del numero di bit a disposizione --> occorre una companding più efficace con un passo di quantizzazione più grande; operazione ripetuta più volte con differenti passi di quantizzazione finchè la richiesta di bit per la codifica Huffman è piccola abbastanza.

Loop esterno:
controlla la presenza di rumore, per fare in modo che il rumore di quantizzazione stia sotto la soglia di mascheramento,
si applicano i fattori a ogni banda, si parte da un fattore default di 1;
se il rumore di quantizzazione in una banda eccede la soglia di mascheramento , si corregge il fattore di scala per ridurre il rumore;
riduzione del rumore =  aumento allocazione bit --> occorre inviare al loop interno se si sta superando il bit-rate.
Continua finchè il rumore non scende sotto la soglia di mascheramento per ogni banda.

Terminazione:    
- rumore scende sotto la soglia di mascheramento;
- non è più possibile applicare il companding all'interno di una banda oltre il massimo consentito;
- l'applicazione riguarderebbe tutte le bande,
- alcuni includono limiti di tempo.

Layer I
A questo punto il blocco in output è composto da 384 campioni nel layer I che hanno codifica di lunghezza diversa a seconda dell'allocazione dei bit che sia ha per una certa sottobanda;
i blocchi vengono inviati/memorizzati in maniera seriale e non si comprende più la divisione interna della codifica.

Layer III
I blocchi codificati possono essere di lunghezza variabile, l'impacchettamento dei dati nel bitstream prevede un intervallo regolare sui pattern di sincronizzazione , ogni tot bit appare il pattern di sincronizzazione. Dopo il pattern si hanno le info aggiuntive.

Per il decider bisogna inserire delle informazioni che permettono la ricostruzione dei campioni all'interno dei blocchi.
Pacchetto(frame):
pattern predefinito di bit che annuncia l'arriva di un nuovo pacchetto;
Header info di sincronizzazione(descrive il tasso di campionamento);
Codici di controllo degli errori, 16 bit per il CRC;
32 allocazioni di 4 bit per ciascuna sottobanda;
Fattori di scala(32 codici di 6 bit ) che dicono come ciascuna banda è trattata dalla compansion.
Campioni divisi in 32 insieme di 12 campioni ciascuno, con variazione dei bit da 0 a 15 per insieme.
Pacchetto viene chiuso da eventuali info aggiuntive.

Decoder
ricostruisce le sequenze per sotto-banda sulla base dei blocchi di 12 campioni prendendo in considerazione l'allocazione dei bit e il fattore di scala.
Se una sottobanco non ha bit allocati , i corrispondenti campioni della sotto-banda sono messi a 0.
Una volta che l'intera sequenza di campioni di ciascuna delle 32 sottobanco è stata recuperata, si applica il banco di filtri in modalità di sintesi, e si calcolano 32 campioni audio in codifica PCM.


Elementi pratici della compressione MPEG


Successo MP3 è la sua versatilità nelle applicazioni,.

Modalità operative
MPEG I lavora con quattro modalità possibili:
segnali mono;
canali duali(due canali indipendenti, stesso parlato in lingue differenti);
segnali stereo;
joint stereo(combinazione dei segnali sinistro e destro in modo efficente);

Più Tassi di campionamento
MPEG I consente la compressione audio di segnali:
32, 44.1, 48 Khz
MPEG II estende alla loro metà
16, 22.05, 24 Khz
Bit-rate
[numero medio di bit consumati da un secondo di dati audio, kbps]
La selezione del bit-rate è lasciato quasi interamente all'implementatore.
Standard definisce una gamma di bit-rate che va da
32 a 320 kbps MPEG.
layer III permette anche la variazione di bit-rate tra i frame, che però deve essere supportata dal decoder.

La qualità del segnale ottenuto dalla decompressione dipende dal valore di bit-rate, cioè dalla forza della compressione.
bit-rate CD Audio è 1411.2 kbps
bit-rate con compressione MP3 per ottenere un segnale di qualità CD per musica pop/rock è 128 kbps.
Fattore di compressione 10-12.
La compressione a 128 kbps occupa all'incirca 1 mb/minuto: buon compromesso tra spazio occupato, velocità di codifica, e qualità del suono.
Musica acustica conviene salire a 192 o 256 kbps, molte armoniche
bit-rate dipende dalle esigenze del singolo progetto, non solo dalla qualità del suono decompresso.

Prestazioni MP3:
- qualità telefonica: compressione 96:1 (larghezza banda 2.5 kHz / mono / bit-rate 8 kbps)
- meglio di AM radio: 24:1 (7.5 kHz / mono / 32 kbps)
- simile a FM radio: 24:1 (11 kHz / stereo /64 kbps)
- quasi-CD: 16:1 (15 kHz / stereo / 96 kbps)
- CD: 12:1 (>15 kHz / stereo / 128kbps)

Programmi che eseguono codifiche: MP3 encoder, decomprimono: MP3 player o decoder.
Alla base vi sono librerie di funzioni che permettono di effettuare codifiche e decodifiche: Codec.

Scelta encoder dipende dalle esigenze.
Genere, più encoder è veloce più si perde in fedeltà audio.
Se necessario creare MP3 con basso bit-rate è opportuno utilizzare encoder lenti, in qualto altrimenti si rischia di perdere ancora qualità(essendo il bit-rate già basso).

Autore: Fabrizio Garis

Licenza Creative Commons
Compressione by Fabrizio Garis is licensed under a Creative Commons Attribuzione - Non commerciale 3.0 Italia License.

mercoledì 8 febbraio 2012

3.La Percezione Uditiva

Fisica e Cognizione
I suoni sono vibrazioni in un mezzo , che possono essere descritte mediante parametri fisici: ampiezza, frequenza, forma dell'onda.
Noi ci esprimiamo a proposito del suono con aggettivi:
- forte, debole (volume)
- alto, basso, acuto, grave (altezza)
- vuoto, pieno (timbro)
Due compiti principali per il sistema uditivo:
- Comprensione del messaggio sonoro: linguaggio, fruizione della musica, riconoscimento della  sorgente.
- Ricostruzione della mappa spaziale delle sorgenti sonore: localizzazione degli oggetti a partire dai suoni emessi in cui l'udito opera in tutte le direzioni.

Fisiologia dell'udito
I sistemi percettivi possono essere analizzati come delle funzioni di input/output.
Nel sistema uditivo l'input è il segnale acustico, le vibrazioni dell'aria che partono dalle sorgenti sonore e arrivano al nostro orecchio;
l'output è la comprensione del messaggio sonoro  e la ricostruzione della mappa spaziale delle sorgenti intorno a noi.

Orecchio, con componenti ridotte protette dalle ossee temporali. Converte le fluttuazioni di pressioni dell'aria in impulsi nervosi elettrochimici elaborati dal cervello.
Il segnale in ingresso mette in vibrazione la membrana del timpano, che trasmette il movimento meccanico agli ossicini e al liquido della coclea, che stimola il nervo uditivo.
La tromba di eustachio connette l'orecchio con la cavità orale , garantendo la stessa pressione sui due lati della membrana permettendo alla membrana di tornare in posizione dopo la vibrazione.
Il segnale propagato dal timpano verso l'interno viene elaborato dalla coclea, dove avviene la trasduzione da segnale acustico a segnale elettrochimico.
Il segnale elettrochimico viaggia lungo le vie nervose uditive, e viene elaborato in stazioni dette nuclei, raggruppamenti di cellule  nervose con specifiche proprietà , dove arrivano e partono i fasci che costituiscono i segmenti delle vie uditive. 
In tali stazioni  il segnale viene anche miscelato con il segnale proveniente dall'altro orecchio(bi-auricolare). La destinazione è la corteccia uditiva, che risiede nel lobo temporale, dove avvengono le elaborazioni di alto livello,  cioè le funzioni superiori  di interpretazione del segnale.

L'orecchio
Tre sezioni: orecchio esterno(padiglione, meato, timpano) medio (ossicini) interno (coclea).
Il segnale entra nel padiglione e percorre il meato. La forma del padiglione è complessa, offre un imbuto per la cattura di segnali ad alta frequenza (superiori a 3 Khz) in quanto la loro lunghezza d'onda è paragonabile alle dimensioni delle pieghe del padiglione.
Frequenze diverse vengono amplificate in modo diverso, a seconda della direzione del suono.
Il meato è il canale che connette il padiglione con il timpano, la sua frequenza naturale di vibrazione è intorno ai 2 khz, le frequenze in quella regione vengono amplificate è arrivano in modo più efficiente al timpano (comprensione del parlato).
L'orecchio medio propaga le vibrazioni dalla membrana del timpano alla coclea.
Propagazione avviene attraverso 3 ossicini, martello, incudine e staffa.
Martello è connesso al timpano, la staffa alla coclea e l'incudine propaga il movimento tra i due.
La staffa è inserita nella coclea attraverso la finestra ovale, che ha una superficie di vibrazione inferiore al timpano.
L'orecchio medio assolve due compiti: risolve i problemi della differente resistenza tra aria e perilinfa, fluido molto denso per cui le vibrazioni minori non avrebbero effetto sulla coclea, gli ossicini permettono di trasformare una vibrazione su un'ampia superficie in una vibrazione della stessa energia  ma distribuita su una piccola superficie. Secondo il principio della leva la forza che agisce sulla finestra ovale viene amplificata permettendo la percezione anche di segnali deboli.
Il secondo scopo è la protezione della coclea da suoni forti a bassa frequenza, che potrebbero danneggiarla.
I due elementi principali dell'orecchio interno sono i canali semicircolari(compiti di equilibrio) e la coclea, tubo avvolto a forma di chiocciola, il cuore della percezione uditiva.
La membrana fondamentale per l'elaborazione del segnale acustico è la membrana basilare su cui è appoggiato l'organo di Corti, che con oltre 20.000 cellule cigliate si occupa della trasduzione dal segnale acustico al segnale elettrochimico, che viene inviato al cervello. Le connessioni nervose delle cellule cigliate sono incanalate nel nervo uditivo.
La membrana basilare occupa la parte centrale della coclea per tutta la sua lunghezza. Stretta e leggera vicino agli ossicini e aumenta lo spessore verso l'altra estremità dove si trova un orifizio circolare detto elicotrema.
La staffa fa vibrare la perlina attraverso la finestra ovale. La vibrazione percorre tutta la coclea: rampa vestibolare, elicotrema e rampa timpanica, dove la finestra rotonda smorza le vibrazioni che altrimenti rimarrebbero in circolo nella coclea. Nelle vibrazioni ad alte frequenze il passaggio avviene in modo diretto attraverso la membrana basilare, quando le cellule cigliate si flettono si stimola la generazione di impulsi elettrochimici verso il cervello.
La membrana basilare distingue tra le frequenze presenti in un suono complesso rispondendo in modo differente a seconda della posizione lungo la membrana. Il diverso spessore e rigidità dalla base all'apice determinano la posizione sulla membrana per ogni frequenza dell'udibile.
Le alte frequenze alla base, le basse frequenze all'apice.
Dato un punto della membrana, la frequenza che presenta il picco in quel punto è detta frequenza caratteristica.
Funzionamento tonotopico della coclea: frequenze diverse stimolano regioni diverse della membrana basilare e dell'organo di Corti.
La regione che vibra in modo più vigoroso stimola un alto numero di cellule cigliate in una determinata area dell'organo di Corti, e quest'area manderà il più alto numero di impulsi al cervello.
Dal sito di provenienza sulla membrana si riesce a riconoscere la frequenza del segnale e quindi la sua altezza.
Per frequenze fino a 3khz: frequenza dello stimolo e posto di provenienza sono indicatori dell'altezza. Nervo uditivo trasporterà informazioni temporali e spaziali. Per alte frequenze solo la localizzazione sulla membrana sembra essere determinante.
L'intensità dei suoni viene determinata a livello della coclea a partire dall'ampiezza della vibrazione  della membrana basilare, cioè quando questa si sposta dalla posizione di riposo, che aumenta con  l'intensità. Più ampia è la vibrazione , più cellule cigliate si flettono  > impulsi nervosi.  

Trasduzione delle vibrazioni acustiche
Le cellule cigliate dell'organo di Corti trasducono le vibrazioni meccaniche in impulsi nervosi elettrochimici. Le cellule cigliate vengono stimolate dalle vibrazioni della membrana basilare.
Quando le ciglia si flettono, i canali degli ioni si aprono, e il voltaggio all'interno varia abbastanza da causare il rilascio di neurotrasmettitori che verranno assorbiti dalle fibre nervose uditive, stimolando l'invio di un segnale elettrico lungo il nervo coclearie. Dopo l'impulso fibre hanno un periodo di stasi. Ogni cellula cigliata ha circa 10 fibre del nervo uditivo connesse ad essa, con soglie di attivazione differenti.
Il cervello rileva le differenze tra il tasso di impulsi spontanei  e il tasso di impulsi dovuti alle vibrazioni.
Le cellule scaricano con tassi più elevati per vibrazioni  più intense, fino a un livello di saturazione:
fibre con tasso spontaneo alto e saturazione rapida: cambi di intensità livelli bassi;
fibre con tasso spontaneo basso e saturazione lenta: cambi di intensità livelli elevati;
Ciascuna fibra ha una sua frequenza caratteristica, che riesce a stimolarla con minima energia.
Temporizzazione degli impulsi:
Per i suoni <3Khz tenderà a seguire la fase  e gli intervalli tra gli impulsi tenderanno a essere multipli del periodo del tono, la membrana funge da discriminatore di frequenza e e rilevatore di fase;
Toni ad alta frequenza diviene debole l'associazione impulso-fase, la membrana non riesce a essere più un rilevatore di fase ma discrimina ancora le frequenze.
Codifica della Frequenza e Intensità di un tono.
La Frequenza in 2 modi: Il posto di eccitazione massima corrisponde a quelle fibre nervose la cui frequenza caratteristica è vicina alla frequenza del tono, che scaricheranno a un tasso superiore rispetto alle altre fibre, quindi la frequenza del tono sarà determinata dal posto sulla membrana da cui partono le fibre che presentano il più alto tasso di attivazione.
L'informazione di temporizzazione  vale per i toni con frequenza < 3Khz  in cui gli impulsi saranno associati al periodo e gli intervalli tra gli impulsi in un fascio di fibre indicheranno direttamente la frequenza del tono.
L'intensità vine codificata in modi diversi a seconda del livelo:
La gamma dinamica coperta dalla maggior parte delle fibre nervose uditive ad ALTO TASSO SPONTANEO  non supera i 100 db codificando i livelli a bassa intensità.
Le fibre con bassi tassi spontanei hanno una gamma più ampia  e codificano i livelli di alta intensità.
In entrambi i casi un gran numero di cellule cigliate controlla una ristretta banda di frequenze o gamma di intensità. Soldati in batteria: mentre alcuni sparano altri si ricaricano.

La Psicologia dell'udito
Il suono è un segnale a livello acustico, sensazione a livello percettivo , interpretato come musica  e parole a livello cognitivo.
L'ampiezza è percepita come volume interpretata come dinamica del suono;
La frequenza percepita come altezza e determina la classificazione del suono in classe di toni;
Lo spettro percepito come timbro e interpretato come identificazione della sorgente;
Le caratteristiche della propagazione del suono percepite come direzionalità  e usate per costruire una mappa spaziale soggettiva delle sorgenti intorno a noi.
Vedremo come la nostra percezione di una grandezza percettiva risulti dalla combinazione di più grandezze fisiche , con contributi differenti.

Volume
L'ampiezza del segnale viene misurata in termini di intensità sonora(SIL) sulla scala logaritmica dei decibel. SIL in db è data da 10xlog I/I0, dove I è l'intensità misurata in watt/m2 e I0 = 10alla-12 watt/m2 che è l'intensità minima alla quale si può udire un suono di 1000hz.
Dalla modalità di identificare I0 si comprende che la nostra percezione dell'ampiezza sia influenzata dalla frequenza del segnale stesso.
La grandezza percettiva del volume deve tener conto della frequenza: l'unità di misura del volume percepito sono i foni.
Un suono ha un volume di x foni, se un suono di 1000 hz che viene percepito con lo stesso volume ha un'intensità di x dB.
Driagramma di Fletcher e Munson(Anni 40, risultato indagine empirica cittadini americani).
Ascissa: frequenze dell'udibile, 20 - 20.000 hz.
Ordinata: intensità sonora, 0 - 140 dB.
Le curve rappresentate , isofone, punti che fanno parte della stessa curva vengono percepite con lo stesso volume.
La nostra sensibilità è massima per suoni compresi tra 2000 e 5000 hz, in questo intervallo le curve raggiungono il loro minimo.
I suono all'estremità dell'udibile hanno bisogno di energia elevata per essere uditi(50 hz: 40dB).
Il diagramma viene utilizzato nelle tecniche di compressione in cui la curva più importante è quella dei 0 foni, suoni al di sotto saranno eliminati senza introdurre distorsione.

Altezza
Il parametro fisico a cui è correlata più da vicino è la frequenza. Frequenze udibili: 20 a 20.00hz.
Sotto i 30 hz suoni difficili da udire: servono intensità elevate e condizioni di isolamento.
In natura abbiamo suoni complessi con molte armoniche.
Il parametro percettivo dell'altezza corrisponde in generale alla nozione di frequenza fondamentale, anche se non sempre è presente nello spettro, ma viene inferita dalle parziali presenti.
Per differenziare tra le altezze in modo percettivo in musica è stato studiato il problema attraverso la nozione di intervallo, cioè la distanza tra due note di differente altezza. Alla base del nostro sistema musicale l'intervallo è quello di ottava, una nota distante un 'ottava da un'altra ha frequenza doppia o dimezzata. Ogni ottava segna un incremento di frequenza di un fattore 2, è una scala logaritmica in base 2.

Timbro
Descrive la qualità di un suono, parametro che permette di distinguere due suoni con stessa altezza e volume.
Il parametro fisico è la forma d'onda, cioè il contenuto armonico del suono, ma anche le caratteristiche dinamiche come l'inviluppo dell'ampiezza sopratutto nella fase di attacco, e i fenomeni di vibrato.
Il contenuto armonico è dato dal numero e dall'intensità relativa delle armoniche superiori presenti.
L'analisi di Fourier eseguita dal nostro apparato uditivo è in grado di determinare il contenuto armonico di un suono, codificato in un timbro.
Importanti fasi di attacco e decadimento. 
forte tromba lontana VS debole tromba vicina: siamo in grado di riconoscere quale dei due sta suonando più forte grazie al timbro derivato dal contenuto armonico delle fasi di attacco e decadimento.
Riconoscimento del timbro poche decine di millisecondi.
Necessari 4db nelle medie e alte armoniche per percepire cambio di timbro,
10 dB nelle basse armoniche.

Risoluzione in frequenza e mascheramento
Il nostro apparato uditivo si comporta come un analizzatore di Fourier, percepisce le componenti individuali di un suono distribuendole lungo la membrana basilare della coclea.
E un dispositivo meccanico di traduzione tra la frequenza del segnale e la posizione del picco di vibrazione sulla membrana(funzionamento tonotopico).
Il picco di vibrazione interessa una regione che ha una dimensione e se più frequenze ravvicinate ricadono in una stessa regione possono causare imprecisioni nella percezione delle singole componenti.
Fenomeno psicoacustico che ci consente di rilevare l'ampiezza di banda dei filtri uditivi  lungo la membrana è detto mascheramento. Fenomeno per cui un segnale forte maschera uno debole.
Sono stati condotti studi con esperimenti di mascheramento: l'ampiezza di banda con cui lavorano i filtri uditivi ha assunto il nome di banda critica (Fletcher).
La banda critica rappresenta la gamma di frequenze all'interno della quale si verificano i fenomeni di mascheramento.
Suoni discriminati perfettamente solo quando ricadono in differenti bande critiche.
Suono complesso, le componenti parziali udite tutte senza problemi se sono in bande critiche differenti.
Nel caso due parziali sono nella stessa banda una potrebbe mascherare l'altra.
La presenza di rumore con un'ampiezza di banda che copre una banda critica contribuisce al mascheramento dei toni presenti in quella banda.
Le bande critiche permettono di misurare la frequenza in modo uniforme dal punto di vista percettivo. L'unità è la larghezza delle bande critiche  Lunghezza costante fino a 500 hz  e oltre  le bande critiche diventano più larghe.
Comportamento dovuto all'inviluppo della vibrazione sulla membrana che assume forme complicate. Inoltre l'estensione della zona della membrana influenzata da una vibrazione cambia con l'intensità.
Soglia di mascheramento di un tono è il livello di intensità al quale esso si riesce ad ascoltare anche in presenza di un altro tono.
Mascheramento tonale: è possibile individuare un tono. Non tonale: no tono specifico(rumore).

La Segregazione del suono
Localizzazione delle sorgenti.
Le onde sonore si combinano per arrivare al nostro orecchio in un'unica forma d'onda complessa che viene analizzata nelle sue parziali che dovranno essere ricombinate in modo opportuno dal nostro apparato.
Occorre re-identificare le sorgenti, cioè assegnare le parziali alle sorgenti sonore di provenienza.
Le parziali sono segregate dalla sorgente che le ha emesse.
Si conoscono alcuni fattori che influenzano la segregazione:
- coerenza/incoerenza  degli attacchi: stessa sorgente parziali coerenti, sorgenti diverse parziali incoerenti.
- condivisione/non condivisione della locazione spaziale: parziali della stessa sorgente condivideranno la direzionalità del movimento.
- differenze nella struttura armonica: parziali in relazione armonica più facilmente appartengono alla stessa sorgente.

Autore: Fabrizio Garis
Licenza Creative Commons
La percezione uditiva by http://lucciolaonline.blogspot.com/2012/02/3la-percezione-uditiva.html is licensed under a Creative Commons Attribuzione - Non commerciale 3.0 Italia License.

giovedì 19 gennaio 2012

2.La rappresentazione digitale del suono


Da Analogico a Digitale
La rappresentazione dell'onda sonora nel dominio del tempo è una curva dell'ampiezza del suono in funzione del tempo;
La rappresentazione dell'onda sonora nel dominio della frequenza è data da 2 curve, ampiezza e fase in funzione della frequenza.
Nell'archiviazione del suono decidere per una rappresentazione analogica o digitale, sia nel dominio del tempo e della frequenza.

Rappresentazione analogica, lavora per analogia: la curva continua nel tempo delle variazioni di ampiezza viene rappresentata da una curva continua nel tempo delle variazioni di tensione elettrica, curva memorizzata: disco vinile, campo magnetico disco.
Curva continua che approssima una curva continua.

Rappresentazione digitale, non imita la curva continua di ampiezza con una curva analoga ad essa, assegna dei numeri che rappresentano di volta in volta il valore dell'ampiezza in istanti successivi di tempo: successione dei numeri rappresenta l'andamento della curva di ampiezza.
Successione di numeri che approssima una curva continua.
Non è continua , ma discreta: esistono eventi definiti che sono i valori dell'ampiezza  in precisi istanti di tempo.
Si avvale di un codice simbolico preciso dato dalle cifre che compongono i numeri: la rappresentazione avrà a disposizione un insieme finito di simboli.
(es. sistema decimale 10 cifre a disposizione, 0 a 9; se limitiamo a 3 cifre la lunghezza del numero: codice 1000 elementi  tutti i numeri da 000 a 999).
Il numero di elementi possibili si calcola con un'operazione di elevazione a potenza; base= cifre a disposizione e esponente la lunghezza del numero.(es. 10 alla 3)
Nell'analogico invece non è possibile conoscere le limitazioni intrinseche del sistema.

Vantaggi codice simbolico:
Copia del segnale identica all'originale.
Con copie ripetute dello stesso segnale non si ha la degradazione della qualità.(analogico: la copia deve di nuovo approssimare con una curva continua la curva precedentemente memorizzata, sempre + errori).
Manipolazione del segnale: operazione aritmetiche che cambieranno alcuni numeri(es. aumentare l'intensità di una parte del suono: moltiplichiamo i numeri di quella parte per il fattore desiderato, Analogico: applicare un dispositivo elettronico che accresce l'ampiezza della curva).
Correzione degli errori dei supporti per la memorizzazione(CD) e dispositivi di trasmissione(cavo o etere), errore nella lettura o ricezione di qualche numero rispetto alla memorizzazione. Sistema digitale è in grado di rilevare e correggere alcuni errori con l'introduzione di info aggiuntive.

Svantaggi:
Problemi nello scambio di dati con l'esterno dell'elaboratore: i numeri devono essere convertiti in pressione sonora(analogico un onda sonora è sempre una forma d'onda).
Per una qualità come i migliori apparati analogici: grandi capacità di memoria e velocità di trasmissione per la memorizzazione, costi a volte eccessivi --> tecniche di compressione.

Il Suono Analogico
La tecnologia analogica pervade ancora la maggior parte dell'audio che ascoltiamo: radio, televisione..
La catena dell'audio digitale.
Microfono cattura la variazione di pressione nell'aria e la trasduce in un segnale elettrico: le variazioni di tensione descrivono il segnale acustico.
Il segnale elettrico in uscita dal microfono passa attraverso un preamplificatore e un amplificatore.
Viene registrato su un nastro magnetico per poi essere trasferito su un supporto del suono analogico:
nastro magnetico, dischi resina vinilica, pellicola cinematografica.
Da questi supporti il segnale può essere trasdotto mediante un lettore adeguato.
Il segnale viene amplificato e mandato ai diffusori acustici, che trasducono il segnale elettrico in un segnale sonoro. In un sistema di alta fedeltà le curve di ampiezza sonora iniziale e finale sono simili. 

Tuttavia gli elementi della catena possono introdurre rumore e distorsione. Rumore è segnale indesiderato che sia aggiunge al segnale analogico, è in generale ad ampio spettro. (Tipico rumore  è causato dall'impressione magnetica sul nastro e dalla lettura del segnale registrato: percepito come fruscio).
Per la riduzione del rumore diversi metodi: noto sistema della Dolby, enfatizza in registrazione alcune regioni dello spettro dove il rumore è maggiormente percepibile , in riproduzione le stesse regioni vengono de-enfatizzate, risultato: riportare a livelli corretti i rapporti tra le frequenze nel segnale e attenuare il rumore.

Rapporto segnale-rumore:(Signal-to-noise-ratio SNR)
per la stima del rumore del sistema analogico.
Rapporto SNR si definisce come il rapporto tra la massima ampiezza utile del segnale e l'ampiezza del rumore presente:

SNR= max ampiezza segnale/ ampiezza rumore 

Maggiore è il rapporto SNR migliore la qualità del segnale.
Si usa esprimere il  rapporto segnale rumore in decibel.

SNR(in DB)= 20 log (max ampiezza segnale/ampiezza rumore)
SNRdb = 20 [log (ampiezza segnale utile) - log (ampiezza rumore)]
SNRdb = intensità segnale utile db - intensità rumore db
La Gamma Dinamica (Dynamic Range - DR)
Parametro che misura la bontà di un dispositivo audio analogico.
E il rapporto tra l'ampiezza massima e l'ampiezza minima del segnale (log a/b = log a - log b).
Essendo un rapporto di ampiezze anche essa può essere misurata in db : in questo caso la gamma dinamica è la differenza tra l'ampiezza massima e minima del segnale. 
Un brano che passa da un pianissimo a un fortissimo presenta un'estesa gamma dinamica. Un sistema migliore è un sistema che approssima meglio la gamma dinamica  del segnale in ingresso. Il rumore presenta un'ampiezza media costante, limita la risposta utile del sistema in gamma dinamica.

La distorsione è una modifica non desiderata della forma d'onda (dello spettro) di un segnale.La distorsione di solito aumenta con l'ampiezza.
Nella caratterizzazione del SNR l'ampiezza utile si intende l'ampiezza massima alla quale la distorsione è mantenuta sotto a una certa soglia di tolleranza prefissata.
La distorsione può essere in frequenza, ampiezza e fase.

Il  suono digitale
Anni 80. Ciò che arriva da CD,  DAT, MD, USB, DVD, HD. Sale cinematografiche --> diffusione con il Sourround.
Segnale digitale(numerico, disceto) Successione di numeri che rappresentano l'ampiezza del segnale in precisi istanti di tempo.
Occorrono strumenti per la conversione da analogico a numeri e viceversa.

Comprendiamo come la variazione di pressione dell'aria diventino numeri immateriali.

Registrazione: 
Segnale analogico della pressione sonora viene trasdotto in un segnale elettrico.

Conversione del segnale in formato digitale:
Strumento è il Convertitore Analogico-Digitale(ADC- Analogue-To-Digital-Converter), che in base a un suo orologio interno(clock) preleva i campioni dell'ampiezza del segnale analogico.
L'orologio fissa il tasso o frequenza di campionamento(sample-rate - SR), fissa ogni quanto tempo vengono prelevati i campioni.
Campioni: sono numeri che possono essere memorizzati su un qualsiasi dispositivo digitale.

Prima di digitalizzare il segnale occorre filtrarlo in modo da eliminare una parte del suo spettro che potrebbe causare il problema dell'aliasing.
Secondo il teorema di Nyquist(o del campionamento), per digitalizzare un segnale che contiene componenti di frequenza fino a x hertz, occorre campionare a un tasso di campionamento SR di almeno 2x campioni per secondo.
(se nel segnale vi sono componenti frequenziali a 10.000 hz, occorre prelevare almeno 20.000 campioni per secondo(SR=20.000))
La digitalizzazione rispetta il teorema del campionamento procedendo in senso inverso.
Stabilito tasso SR, eliminare dal segnale tutte le frequenze che sono oltre la metà dell'SR(SR=11.000 campioni al secondo, eliminiamo le frequenze superiori a 5500hz).
Per farlo si usa un filtro che elimina(attenua) tutte le frequenze sopra una certa soglia(frequenza di taglio o cut off).
Filtro detto passabasso (lowpass filter) in quanto fa' passare solo le frequenze sotto una soglia, detto antialiasing perché evita il problema dell'aliasing.

Riproduzione:
conversione in segnale analogico(DAC) Convertitore Digitale a Analogico. 
Genera tensioni elettriche che sono proporzionali ai campionamenti del segnale digitale, in corrispondenza degli istanti di tempo stabiliti dal clock.
Un interpolatore si occupa di smussare i gradini dovuti al salto da un valore di tensione al valore vicino. 
Necessita di un nuovo filtro passabasso: gradini ripidi tra un valore e l'altro --> alte frequenze del segnale analogico generato, frequenze che verrano eliminate dal filtro, la cui frequenza di taglio è data dalla metà del tasso di campionamento fissata dal clock.
(Nel segnale digitale le f superiori alla metà del tasso di campionamento sono state eliminate nella registrazione, perché reintrodurle nell'analogico?)
Il segnale sarà amplificato  e mandato ai diffusori per la trasduzione in segnale acustico.

Il passaggio da analogico e digitale è caratterizzato da 2 operazioni di discretizzazione, in cui delle grandezze continue vengono ad assumere valori discreti.
- una è il tempo, l'orologio dei convertitori stabilisce quali sono gli istanti da considerare per il campionamento.
- l'altra è l'ampiezza, i numeri che è possibile usare appartengono a un codice simbolico definito e preciso.
L'operazione che discretizza il tempo è detta campionamento.
L'operazione che discretizza l'ampiezza è detta quantizzazione.

Il campionamento
E' la discretizzazione del segnale analogico nel tempo. Dato che la descrizione del segnale è data dalla variazione dell'ampiezza nel tempo, il campionamento corrisponde alla individuazione dei valori discreti(istanti di tempo)sull'asse delle ascisse.
Perché il segnale digitale rappresenti in modo efficace il segnale analogico di partenza, occorre che i campioni siano prelevati a una velocità(tasso) abbastanza elevati da riuscire a tener conto di tutte le variazioni del segnale.
Il tasso di campionamento deve essere una variabile dipendente dalla velocità di variazione del segnale.
La velocità di variazione del segnale dipende a sua volta dalla parziale con frequenza più alta(componete armonica più alta) che determinerà la velocità massima di variazione del segnale e il tasso di campionamento.
Più brevi sono gli intervalli di tempo tra un campione e il successivo , più simile all'originale analogico sarà il segnale a gradini, al limite segnali analogico e digitale coincidono.
L'intervallo  di tempo tra un campione e il successivo è detto periodo di campionamento;
l'inverso del periodo, e quindi il numero di campioni in un secondo è detto tasso o velocità di campionamento(rate).
A ogni periodo di campionamento si preleva un campione dell'ampiezza del segnale, cioè il valore quantizzato del segnale analogico in quell'istante, il risultato è una sequenza di valori che corrispondono all'andamento del segnale. Più ravvicinati i valori più sarà efficace la descrizione dell'andamento del segnale.

Qual'è la dimensione migliore dell'intervallo? Parametri per trovare un equo compromesso: qualità del suono e numero di campioni.
Migliore qualità del suono --> maggiore quantità di informazioni,+ campioni nell'unità di tempo--> + spazio in memoria  e velocità di trasferimento dati.
Ci serve una velocità appropriata per elaborare il numero corretto di campioni nell'unità di tempo: i campioni che descrivono il segnale sono 44.100 per secondo , occorre che la capacità del dispositivo sia capace di inviare 44.100 numeri al DAC.

Come facciamo ad avere il minimo valore di velocità di campionamento e quindi non avere perdita di informazione?
Anche nella digitalizzazione abbiamo la distorsione e il rumore in senso digitale.
Distorsione
Se non ci sono distorsioni percepibili dal segnale analogico a digitale la nostra percezione rimane invariata.
Nella digitalizzaizone di un segnale si ha un fenomeno di distorsione dovuti tipicamente all'operazione di campionamento che ci è utile per fissare dei limiti inferiori al tasso di campionamento: è l'aliasing(foldover), fenomeno che introduce nel segnale digitale delle frequenze spurie, non presenti nel segnale analogico in ingresso.
A partire dall'aliasing  si possono formulare dei principi generali sulla velocità di campionamento.

Tre casi di campionamento con differenti  rapporti tra tasso di campionamento e frequenza.

  1. Segnale analogico è una sinusoide, frequenza 1/8 del tasso di campionamento(sotto la metà)--> t.c è 1.000 campioni al secondo, la f è 125 hz(1000/8). Interpolando i valori è immediato ricostruire il segnale di partenza.--> Sovracampionamento: le info sono più che sufficienti per ricostruire il segnale.                                                                                                                                                                     
  2. Campionamento critico. frequenza è metà tesso di campionamento--> t.c è 1000, f è 500 hz1
  3. Segnale nuovo, la frequenza spuria. tasso: 1000, frequenza 875(sopra la metà del tasso) . Questo è l'effetto dell'aliasing : i campioni ottenuti dal segnale di 875 hz non sono distinguibili dai campioni che si sarebbero ottenuti dal segnale di 125 hz , usando lo stesso tasso di campionamento  di 1000 campioni/sec.
Al cinema effetto di aliasing nella percezione del movimento, dovuto al sottocampionamento per successione di immagini statiche di movimenti periodici che hanno una frequenza superiore alla metà del tasso di campionamento delle immagini, 24 fotogrammi al secondo.

Foldover o aliasing
Fc tasso di campionamento
F frequenza presente nel segnale di ingresso tale che F sia superiore a Fc/2(F > Fc/2), F superiore della metà del tasso di campionamento.
Si inventa una frequenza nuova(alias)
Fr: frequenza ricostruita nell'intervallo tra -Fc/2 e Fc/2 (-Fc/2 < Fr < Fc/2), poiché la frequenza originale F viene a cadere in un intervallo di frequenze più basso dell'originale F, il fenomeno di aliasing è detto anche foldover, o ripiegamento.

Esiste una formula che permette di calcolare la frequenza ricostruita Fr a partire dalla frequenza originale F e il tasso di campionamento Fc:
Fr = F + KFc  è data dalla somma della frequenza originale F  e del tasso di campionamento Fc moltiplicato per un numero intero  K che soddisfa la relazione:
-Fc/2 < Fr + KFc < Fc/2 cioè K fa in modo che la frequenza ricostruita sia nell'intervallo (-Fc/2 < Fr < Fc/2).

F = 125 Hz, Fc= 1000 campioni/sec,
numero K che soddisfa la relazione -Fc/2 < F + KFc < Fc/2
- 500 < 125 + Kx1000 < 500 
Se K = 0
la frequenza ricostruita sarebbe:
Fr = F + KFc = 125 + 0 = 125 hz

Nel caso F sia oltre i limiti dell'intervallo si ha un sottocampionamento.
F = 875 Hz, Fc= 1000 campioni/sec,
numero K che soddisfa la relazione -Fc/2 < F + KFc < Fc/2
- 500 < 875 + K 1000 < 500 
Se K = -1
la frequenza ricostruita sarebbe:
Fr = F + KFc = 875 - 1000 = - 125 hz      

Calcolare in modo immediato la Fr basta calcolare k a partire dalla disuguaglianza  -Fc/2 < F + KFc < Fc/2 e poi applicare la Fr = F+KFc.
In generale K = - [2F/Fc], dove [ ] indica la parte intera del numero per cui il calcolo di Fr risulta essere: Fr = F -[2F/Fc]Fc
875-[1750/1000]1000= 875 - 1000= -125 Hz

Le conseguenze dell'aliasing possono essere disastrose, e dipendono dai rapporti che le frequenze spurie introdotte hanno con le altre frequenze presenti nel segnale.
Esempi di aliasing:
Nel caso in cui la frequenza spuria sia molto vicina a una frequenza già presente nel segnale: fenomeno dei battimenti.
Fc = 8000 
Segnale Sinusoidale = 2000hz
Segnale Sinusoidale = 5998hz
K = -1 Fr= Fc-F= 8000-5998 = 2002hz

Glissando: fino a che la frequenza del segnale rimane al di sotto della metà del tasso di campionamento , il segnale digitale rappresenta correttamente il segnale analogico, non appena la frequenza supera la metà il segnale ricostruito diminuisce la sua frequenza  secondo la formula vista in precedenza (segnale analogico continuerebbe invece a salire)
da 20 hz a 30.000 hz
Durata: 30 secondi  con frequenza di campionamento 44.100hz

Teorema  di Nyquist, 1928
Considerando una parziale del segnale, sono necessari almeno due campioni per ciascun periodo del segnale: nel periodo di una sinusoide  il segnale cambia direzione due volte. Poiché in un segnale complesso sono presenti più parziali, occorre che il campionamento prelevi almeno due campioni per la parziale di frequenza massima presente nel segnale, le altre parziali saranno tutte sovracampionate, ma questo non è un problema.
Il tasso di campionamento deve essere quindi almeno il doppio della frequenza massima  presente nel segnale di input. Questo tasso di campionamento è detto tasso di Nyquist, se il tasso di campionamento è al di sotto del tasso di Nyquist  si verifica l'aliasing. 

Operando in modo inverso, stabilito un tasso di campionamento sui dispositivi di conversione analogico-digitale, per campionare correttamente il segnale in input occorre che le frequenze che sono oltre la metà della frequenza di campionamento vengono eliminate. Con l'eliminazione il segnale risulterà impoverito rispetto all'originale, ma non è detto che le conseguenze siano percepibili dal sistema uditivo.
Es. Massimo 20.000 hz (soglia). Il tasso di campionamento sia fissato a oltre 40.000 campioni/sec
Tasso di campionamento dei Cd è di 44.100 campioni/sec ed è sufficiente a rappresentare correttamente il segnale originale. 

Per eliminare le frequenze del segnale in ingresso , occorre filtrare il segnale  in modo da far passare solo le frequenze al di sotto della metà del tasso di campionamento.Dispositivo: Filtro Passabasso.
L'eliminazione  è una semplificazione: in realtà  il filtro riesce solo ad attenuare le frequenze indesiderate. La frequenza che fissa la soglia oltre la quale le frequenze vengono attenuate è detta frequenza di taglio o cut-off.

La Quantizzazione
L'operazione di quantizzazione sul singolo campione di ampiezza (tensione elettrica) ha l'obbiettivo di assegnare al campione uno dei valori numerici che sono consentiti nella codifica digitale.
La codifica digitale divide la gamma delle ampiezze possibili in intervalli o regioni: ogni campione ha un'ampiezza che cade in una delle regioni.
Esempio, se l'ampiezza varia tra - 5 e + 5 volt, la gamma totale delle ampiezze è di 10 volt; se la codifica digitale divide la gamma delle ampiezze in 16 regioni, ogni regione sarà ampia 0,625 volt(10/16).
Il numero di regioni in cui è suddivisa la gamma delle ampiezze dipende dai bit a disposizione per la codifica. La rappresentazione digitale si basa sulle sequenze di bit.
Il bit è l'unità minima di informazione , può valere 0 o 1, una sequenza di bit è detta parola binaria.
Una parola binaria  di N bit può assumere 2n valori o configurazioni differenti, 2n possibili sequenze differenti di 0 o 1.
Per N=2 , le parole binarie possibili sono 8(2alla3), cioè 000, 001, 010, 011, 100, 101, 110, 111.
Valori tipici per la lunghezza di una parola binaria nel''audio sono 0 o 16 bit, per un numero di valori differenti di 256 e 65.536

Fissato il numero di regioni possibili mediante i bit a disposizione, occorre stabilire un metodo per associare una configurazione di bit a una regione della gamma delle ampiezze.
Un metodo comune è la quantizzazione lineare, che divide la gamma delle ampiezze in 2n regioni uguali, e associa a ciascuna delle regioni uno dei 2n valori numerici.
Ciascun dei 2n valori numerici è un codice binario a N bit.
Nell'operazione di quantizzazione , tutti i valori di tensione che finiscono  in una certa regione vengono convertiti nel codice binario che rappresenta quella regione.
Nel processo di quantizzazione si perde informazione, in quanto tutti i valori che rientrano in una regione verranno convertiti nello stesso codice binario, attenuando quindi le differenze fra i valori di tensione. E come se il codice corrispondesse a una valore di tensione che potrebbe essere il valore di mezzo della regione.
Rispetto al valore di mezzo, quando viene quantizzato un altro valore della regione si introduce un errore di quantizzazione.
Man mano che i bit della codifica aumentano, le regioni si riducono di ampiezza, e il codice binario viene quindi associato a una regione più piccola, riducendo l'errore di quantizzazione. Il massimo errore di quantizzazione è dato dalla metà della dimensione di una regione perché assumendo che il codice corrisponda al valore  di mezzo, al più il valore di tensione per un certo campione sarà agli estremi della regione. Se ciascuna regione è ampia 0,039 il massimo errore: 0,0195.
Nella regione tra - 5 e - 4,961, il valore di mezzo è - 4,9805 volt. Il massimo errore di quantizzazione si verifica sugli estremi delle regioni, piccole imprecisioni possono far quantizzare il valore sulla regione vicina, la probabilità che accada è ridotta.
L'errore di quantizzazione si può considerare casuale ed è scorrelato dal segnale vero e proprio: si comporta come un segnale aggiunto(affine al rumore bianco) introdotto dal processo di digitalizzazione. Rumore di quantizzazione.
Poiché non è possibile andare all'infinito nell'aumentare il numero di bit della codifica digitale occorre fissare un criterio per determinare se la rappresentazione di un segnale è adeguata. Nel segnale analogico, la qualità di rappresentazione del segnale viene stabilito con la quantità di rumore presente. Il rapporto SNR fornisce una misura della fedeltà di un sistema analogico.
Nel digitale si può introdurre una misura simile al rapporto SNR: l'idea è di confrontare l'ampiezza del segnale con l'ampiezza del rumore di quantizzazione.
Rapporto SNR digitale, si può usare l'acronimo SQNR (Signal-to-Quantization-Noise-Ratio) Rapporto segnale rumore di Quantizzazione.
Se il numero di bit è almeno 6 0 7, SNR= 2n.
SNR = 20 log 2n dB = Nx20 log 2dB = 6.02xN dB
Ogni bit contribuisce per circa 6 db al rapporto tra il segnale e il rumore di quantizzazione SQNR. Per avere un'idea del contributo dato da un singolo bit al rapporto segnale/rumore consideriamo che con 8 bit, SQNR = 48db, 16 bit, SQNR = 96 db, valore molto alto nello standard dei CD: sotto ai 40 db la musica non è praticamente udibile e a 120 si ha una sensazione di dolore fisico.

I valori segnalati riguardano un segnale alla massima ampiezza; per ampiezze inferiori all'ampiezza massima , il rapporto SQNR scende. Per ampiezze inferiori le regioni interessate sono in numero inferiore al massimo, per cui si ha un numeratore inferiore.

Ampiezze minime, il segnale varia solo su 2 regioni (se fosse su una sola regione sarebbe nullo- il silenzio); nella codifica digitale si ha una variazione (0 o 1) dell'ultimo bit della parola binaria detta flip. Se si verifica una regolarità del segnale per cui si alternano con una certa periodicità campioni in una regione e campioni in un'altra regione, il segnale ricostruito sarà un'onda quadra o a impulsi. Il fenomeno è denominato low leve quantization noise, causato dall'errore di quantizzazione alle ampiezze deboli. La presenza di questa questa onda introduce nel segnale ricostruito delle armoniche indesiderate, che se fossero state effettivamente presenti nel segnale originale sarebbero state eliminate dal filtropassabasso.

La presenza di armoniche introdotte dal nulla nel segnale ricostruito causa effetti sgradevoli alle ampiezze minime. La soluzione è una correzione strana, dithering. Prima della conversione analogico-digitale si introduce nel segnale del  rumore(bianco). Il livello del rumore è ridotto(intorno ai 3 db, più o meno corrisponde all'errore di quantizzazione, visto che 1 bit contribuisce per 6 db) e quindi il segnale analogico non viene influenzato nella sua curva di ampiezza.
Tuttavia, l'andamento casuale del rumore provoca delle variazioni casuali nei valori quantizzati alle ampiezze minime(e solo li a causa delle ampiezze ridotte) eliminando il problema della ricostruzione dell'onda quadra, con le sue armoniche indesiderate. Il rimore aggiunto è detto rumore di eccitazione.
Il ditherer è una tecnica a basso costo.

Gamma dinamica di un segnale digitale che è la differenza in db tra ampiezza massima e l'ampiezza minima del segnale. Anche la gamma dinamica aumenta con il numero di bit: ogni bit raddoppia la gamma dinamica della rappresentazione digitale(3 bit: 8 valori, 4 bit : 16 valori). La gamma dinamica per un sistema digitale a N bit è 6N db. Nella quantizzazione uniforme la gamma dinamica ha lo stesso valore del rapporto SQNR(con 16 bit anche la gamma dinamica è 96 db). Le cose sono differenti con la quantizzazione non uniforme.

La codifica del segnale audio
L'operazione di quantizzazione associa ogni campione a una delle regioni di quantizzazione definite dalla lunghezza della parola binaria. Il passo finale della digitalizzazione è la generazione del codice associato al campione, e che identifica tutta la regione. Tutti i codici consentiti dalla rappresentazione (2n per N bit) costituiscono la codifica digitale. In genere, valori in successione della codifica sono associati a regioni successive di quantizzazione. I codici sono parole binarie  che possono rappresentare valori: interi senza segno o con segno, con virgola fissa o mobile, frazioni… Sono le parole binarie a essere memorizzate sui supporti per il digital.

Esistono molti modi per codificare un segnale. Il modo forse più immediato è la modulazione dell'ampiezza dell'impulso (Pulse Amplitude Modulation - PAM), per la quale un impulso occorre a ogni intervallo di campionamento , e l'ampiezza della forma d'onda è un valore digitale che corrisponde all'ampiezza analogica(è ciò che abbiamo fatto finora).
Ma la modulazione, cioè la variazione guidata nel tempo, può riguardare altre grandezze.Esempio: la durata dell'impulso, il numero di impulsi nell'intervallo di campionamento.
La forma più diffusa di codifica digitale avviene mediante la modulazione del codice dell'impulso(Pulse Code Modulation - PCM), l'informazione digitale viene codificata in modo seriale; l'impulso rappresenta l'1, l'assenza di impulso lo 0.

La differenza fondamentale nella rappresentazione binaria è se la codifica è con segno o senza.
Nel segnale analogico, la tensione elettrica assume valori positivi o negativi(esempio: segnale varia tra - 5 volt e + 5 volt).In generale, si adottano 2 tipi di codifica per i valori binari.

La prima è data da interi senza segno o codifica unipolare, per cui 0 corrisponde alla minima tensione negativa(-5 volt), il silenzio è a metà scala e le operazioni sui segnali necessitano di attenzione: esempio, se sommiamo due sorgenti di silenzio si ottiene un livello di picco positivo(bisogna predisporre il segnale per l'elaborazione, ad esempio metà del livello di picco da ogni segnale prima dell'elaborazione) 
Esempio di codifica unipolare è la offset binary, il formato dato in output da molti DAC.

La seconda è dato dagli interi con segno o codifica bipolare, per cui il massimo valore assoluto corrisponde alla minima tensione negativa(- 5 volt). Il primo bit a sinistra rappresenta il segno(0 = + e 1= -). Due esempi di codifica bipolare:
La codifica in complemento a 2 rappresenta il valore assoluto dal fondo scala negativo(1000) fino alla regione che precede il silenzio(1111) ; la scala riprende poi con il silenzio nel segno positivo(0000) fino al picco positivo (0111); la somma di due segnali è una semplice addizione binaria.
Nella codifica segno e magnitudo, il valore assoluto procede dal silenzio verso i picchi positivo e negativo, lo svantaggio è che si hanno due 0, uno positivo e l'altro negativo, occorre un passo di elaborazione prima di poter effettuare elaborazioni.

La codifica PCM è usata in tutti i settori dell'archiviazione e della trasmissione digitale dei dati. Per irrobustire la codifica si aggiungono bit extra che sono utili per il controllo di eventuali errori nella codifica..
Esempio semplice di controllo degli errori è un bit di parità: si aggiunge un bit a una sequenza fissata di bit. Se nella sequenza il numero di bit a 1 è pari, allora il bit verra posto a 0; Se nella sequenza il numero di bit a 1 è dispari, allora il bit verra posto a 1; Nel caso in cui un bit subisce un flip(da 0 diventa 1 o viceversa) il bit di parità permette di scoprirlo.
Ovviamente non si sà dovè l'errore , ma il sistema può richiedere al dispositivo una nuova lettura.
Con un solo bit di parità non è possibile rilevare i casi in cui  si verifichino due errori. Aumentando il numero di bit di controllo è possibile rilevare un numero maggiore di errori e in alcuni casi di correggerli.
Esempio 4 bit di parità su un campione di 8 bit
1101 0000 (1001)
il primo controlla i bit: 1,2,3,4
secondo: 5,6,7,8
terzo: 1,2,5,6
quarto; 2,3,6,7
Le configurazioni possono essere ancora più complesse . Questi codici binari aggiuntivi sono detti codici di correzione degli errori(ECC)

Poiché la spaziatura delle regioni di ampiezza è uniforme, la codifica PCM descritta è lineare.
Il rapporto tra la massima ampiezza del segnale e il rumore medio di quantizzazione(SQNR) è intorno a 6N dB, ogni bit contribuisce con 6 dB al rapporto SQNR.
L'errore di quantizzazione è indipendente dall'ampiezza del segnale, e varia in modo casuale tra lo 0 e la metà della regione di quantizzazione. Quindi il rapporto di 6n dB , che vale per l'ampiezza massima del segnale, va corretto con un fattore che lo fa decrescere con il diminuire dell'ampiezza.
Espressione più accurata per SQNR può essere;
SQNR(in dB) = 6N  + S
S è il fattore di correzione che vale 0 dB per l'ampiezza massima del segnale , vale - 6 dB quando il segnale decresce a metà dell'ampiezza massima, - 12 db quando va' a un quarto dell'ampiezza massima, e così via.(Dimezzare l'ampiezza corrisponde ad accorciare la parola binaria di 1 bit e quindi di 6 dB, dimezzare ancora 1/4 sottrarre altri 6(totale 12) e così via.)
SQNR quindi diminuisce con l'ampiezza del segnale; i segnali più deboli subiscono una degradazione di qualità rispetto ai segnali forti, in codifica PCM lineare.
Per mantenere un livello elevato del rapporto SQNR è sufficiente usare un numero elevato di bit in modo che anche se il rapporto decresce con il diminuire dell'ampiezza continua a godere di valori adeguati alle ampiezze deboli.
Esempio standard CD : usa 16 bit per la quantizzazione, con rapporto SQNR di 96 dB(16x6). Se il livello di pressione sonora(SPL) massimo in riproduzione nel nostro hi-fi è di 100 dB(valore già elevato), allora i campioni con questo SPL godono del rapporto SQNR di 96 dB. Con porzioni del segnale più deboli, il rapporto SQNR scender, ma sarà ancora accettabile(oltre 60 dB) sulla soglia minima di udibilità. Questi valori permettono di mantenere elevato il rapporto SQNR. La quantizzazione lineare sembra la tecnica preferita dai costruttori in quanto facilita la progettazione dell'hardware di base.

Campionamento e sovra-campionamento
Le tecniche illustrate in precedenza sono considerate standard  nella rappresentazione e conversione in digitale del segnale. Si nascondono metodi e approcci molto complessi.
Il processo di campionamento si può vedere come il prodotto di 2 segnali:
il primo segnale è un treno di impulsi di periodo e ampiezza costanti;
il secondo segnale è la forma d'onda da campionare, che modula in ampiezza il treno di impulsi;
Guardando il dominio della frequenza, si ha che lo spettro del treno di impulsi è dato da una serie infinita di armoniche del tasso di campionamento Fc;
lo spettro della forma d'onda da campionare occuperà una certa larghezza di banda che ha il massimo nella frequenza Fmax;
lo spettro del segnale campionato presenta delle bande laterali sui due lati di ogni armonica Fc.
Quando il segnale viene convertito in analogico , il passaggio attraverso il filtro passabasso assicura che tali bande in eccesso vengono escluse, in modo da far emergere solo la banda del segnale originale. 
Questa situazione si ha quando si rispetta il teorema di Nyquist:
Esempio, treno di impulsi ha un tasso di 48.000 campioni al secondo, il segnale da campionare ha una frequenza massima di 20khz, in tal modo le bande laterali sulle armoniche di Fc non si sovrappongono alla banda originale e il taglio del filtro è sufficiente per la ricostruzione del segnale originale.
Se invece il tasso di campionamento non rispetta il teorema, le bande laterali alla prima armonica si sovrappongono allo spettro del segnale originale e si ha l'aliasing.
Se da 48.000 il Tasso scende a 32.000 si ha una sovrapposizione nella banda 12khz-20khz, e le frequenze ripiegate provocano problemi.
Il tasso di campionamento deve essere fissato a un tasso superiore al doppio della massima frequenza presente nel segnale, in modo da rendere innocua la porzione di segnale causata dall'aliasing.

Per questi motivi il tasso di campionamento selezionato agli inizi dell'audio digitale fu di circa 44.000 campioni al secondo. Così i filtri garantiscono un'attenuazione sufficiente anche per le frequenze intorno ai 20 khz, impedendo una sovrapposizione delle bande di frequenza.
Poiché il numero di dati da immagazzinare era di circa 1 megabit per canale(44.000 campioni al secondo per 16 bit per campione corrisponde a 704.000 bit/secondo) si aveva la necessita di supporti che riuscissero a memorizzare i dati con capacità e velocità sufficiente.
Il tasso di campionamento di 44.100 campioni al secondo fu il risultato dell'uso di nastri video per le prime registrazioni e rispondeva alla necessità di garantire che un numero intero di campioni entrasse in una linea del segnale video nei due standard principali:
sistema PAL, Europa, 625 linee tracciate 25 volte al secondo(25 hz), il tasso di linee al secondo è 15.625;
sistema NTSC, Usa, 525 linee tracciate 30 volte al secondo(30 hz), il tasso di linee al secondo è 15.750;

Sistema PAL: 588 linee attive e 37 linee blank, per cui è la frazione 588/625 effettivamente utilizzabile. NTSC  490/525.

Si può osservare che si arriva allo stesso numero di campioni memorizzati in un secondo se si inseriscono 3 campioni per linea.
PAL: 588/625 x 15.625 linee/sec x 3 campioni/linea = 44.100 campioni/sec
NTSC: 490/525 x 15.750 linee/sec x 3 campioni/linea = 44.100 campioni/sec

Si adottò il tasso di campionamento di 48.000 campioni/sec  per le applicazioni audio professionali(48.000 è una volta è mezza 32.000).

Con un tasso di 44.100 campioni al secondo, la frequenza di taglio è fissata a 22.050 hz, molto vicina al limite massimo di udibilità. Per cui parte delle frequenze attenuate dal filtro ha ancora un intensità rilevante e rischia di provocare aliasing. Un modo per aggirare questo problema è il sovracampionamento(oversampling).Consiste in una velocità di campionamento più elevata di quella stabilita dal teorema di Nyquist.
Il sovracampionamento porta anche un migliore sfruttamento delle capacità di rappresentazione del digitale.
Per comunicare una certa quantità di informazione si può:
incrementare la larghezza di banda del segnale(>tasso di campionamento);
incrementare il rapporto segnale/rumore (> lunghezza della parola binaria x la quantizzazione);
Uno stesso contenuto informativo si può realizzare aumentando i campioni e diminuendo la lunghezza della parola binaria o viceversa.
La diminuzione della parola binaria permette l'utilizzo di convertitori flash, in cui il rumore non è uniforme e aumenta con la frequenza. Nel sovracampionamento si ha che la banda del segnale digitale è ampia che lo spettro del rumore è sulle frequenze altissime, non udibili.
La diminuzione della parola binaria porta a un minore efficacia nello sfruttamento del contributo di un solo bit. 
Con l'aumentare della lunghezza della parola binaria  migliorano le prestazioni dei singoli bit, si ha un migliore sfruttamento della memorizzazione: A parità di rapporto segnale/rumore è meglio sovracampionare con altissimi tassi di campionamento e codificare con parole binarie standard mediante un processo successivo di ri-quantizzazione.

Quando l'output è un prodotto consumer che va a un certo tasso di campionamento e con una certa quantizzazione(44.100 e 16 bit) si ha un'operazione di decimazione, selezionando solo alcuni dei campioni: se il sovracampionamento è un fattore n oltre il tasso Nyquist, si selezionerà un campione su n.(oversampling: 176.400 c/s, 4x44.100, si seleziona un campione su quattro).

I contributi del sovracampionamento si hanno nella conversione A/D che D/A.
A/D tradizionale a 44.100 c/s e 16 bit  ha un rumore di quantizzazione di 96 dB sotto la massima ampiezza del segnale ed è diffuso su tutta la banda sotto la metà del tasso di campionamento, cioè 22,050 khz.
Se aumenta la velocità di conversione, la potenza totale del rumore rimane la stessa , ma si distribuisce su una larghezza di banda maggiore.
Se il tasso di campionamento raddoppia, la potenza del rumore di quantizzazione si allarga fino a 44,1 Khz. Ma il segnale utile rimane nella banda a 22,050 khz e in questa banda la potenza del rumore si è dimezzata.
Il Filtro passabasso digitale con frequenza di taglio a 22,050 khz elimina metà del rumore di quantizzazione dalla banda base del segnale, aumentando il rapporto SNR di 3 dB: con un sovracampionamento di 4 volte il rumore di quantizzazione sarà inferiore di 6 dB rispetto allo stesso convertitore senza sovracampionamento.
Un bit di quantizzazione aumenta SNR di 6 dB, un convertitore a 15 bit  a 4x stesse prestazioni di quello a 16 bit e 44.100 c/s.
Si ha che ogni volta che si incrementa il tasso di campionamento di un fattore 4 , si può eliminare un bit dalla quantizzazione, mantenendo lo stesso SNR.
Sovracampionando a 4alla15x possiamo disfarci di 15 su 16 bit e usare un convertitore a un solo bit. Il tasso di campionamento equivale a circa 50 x 10alla12 c/s(si dice Tera Herz -Thz -cioè 1000Ghz, 10.000.000 Khz) Per ridurre  il tasso di campionamento a un livello di praticità per i convertitori con quantizzazione molto bassa si può lavorare con la tecnica della sagomazione del rumore(noise shopping). 

Quantizzazione non lineare
Una soluzione alternativa per evitare le degradazione dei segnali deboli è data da una spaziatura non uniforme delle regioni di quantizzazione, una quantizzazione non lineare. 
Il numero delle regioni è lo stesso, la dimensione delle regioni di quantizzazione diminuisce per le regioni delle ampiezze deboli e aumenta per le regioni delle ampiezze forti.
L'errore di quantizzazione decresce per le ampiezze deboli e aumenta x le ampiezze forti: il guadagno di qualità alle ampiezze deboli è compensato dalla perdita di quelle forti.
Il primo effetto della quantizzazione non lineare è la separazione tra il rapporto SQNR e la gamma dinamica,La gamma dinamica  di un sistema è la differenza in dB  tra la massima e la minima ampiezza del segnale e con la quantizzazione lineare essa coincide con il rapporto SQNR, cioè vale circa 6N dB.
Per la quantizzazione non lineare il rapporto SQNR può assumere forme diverse, in quanto l'ampiezza dell'errore varia con l'ampiezza del segnale e con il tipo di spaziatura scelto.
La quantizzazione non lineare nel digitale cerca di ridurre il rumore di quantizzazione alle ampiezze deboli, permettendo invece che aumenti alle ampiezze forti , dove comunque viene mascherato.
Questo risultato viene raggiunto mediante una spaziatura non uniforme delle regioni di quantizzazione: le regioni vicine all'ampiezza nulla vengono quantizzate in modo più fine delle regioni alle ampiezze elevate.
Con la quantizzazione non lineare il rapporto SQNR  e la gamma dinamica, entrambi espressi in dB, valgono circa 6N, dove N è il numero di bit della rappresentazione.
Spaziando in modo non uniforme le regioni di quantizzazione il rapporto SQNR viene a dipendere dall'errore variabile nelle varie regioni, mentre il calcolo della gamma dinamica resta invariato.

La quantizzazione non lineare, logaritmica ci permette di comprendere come avviene la spaziatura non uniforme degli intervalli (con modifica  del rapporto SQNR) e l'espansione della gamma dinamica.  
Si ritrova in alcuni formati audio comuni. La caratteristica fondamentale è che la dimensione delle regioni di quantizzazione cresce con l'ampiezza del segnale secondo una curva logaritmica.
Quantizzare in modo logaritmico vuol dire assegnare le regioni di quantizzazione in modo uniforme rispetto a una scala logaritmica, risultando in una non uniformità sulla scala lineare.
I codici digitali vengono assegnati ai campioni secondo tale suddivisione.
Rapporto SQNR è migliore alle ampiezze deboli per una quantizzazione logaritmica rispetto a quella lineare con lo stesso numero di bit, peggiore SQNR alle ampiezze elevate, ma i fenomeni di mascheramento permettono di tollerare tale situazione.
Non è molto efficiente quando il segnale quantizzato deve essere in seguito sottoposto a elaborazione: esempio, la somma di due valori su una scala logaritmica  corrisponde al logaritmo del prodotto dei due valori, il prodotto è un'operazione più costosa  in termini di tempo di elaborazione(log a + log b= log axb).
E consigliabile adottare la forma logaritmica in applicazioni in cui non ci si può permettere un numero elevato di bit di quantizzazione, soprattutto nella fase finale di archiviazione di un segnale, quando non verrà più elaborato.
Migliora il rapporto SQNR alle ampiezze deboli e la gamma dinamica. Si può verificare che una quantizzazione logaritmica a 8 bit produce una gamma dinamica pari a una quantizzazione lineare a 13 o 14 bit .

Autore: Fabrizio Garis


Licenza Creative Commons
La rappresentazione digitale del suono by http://lucciolaonline.blogspot.com/2012/01/la-rappresentazione-digitale-del-suono.html is licensed under a Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Italia License.