Implementazione s/w delle tecniche per la soppressione in tempo reale di disturbi impulsivi nei segnali audio
Tesi di laurea di Stefano Chiari matr. 453012
Riassunto
In questa tesi vengono trattati segnali audio degradati da fattori
esterni, quali ad esempio deterioramento dei supporti di registrazione
o disturbi di qualsiasi tipo nei mezzi trasmissivi, avendo come
scopo ultimo il loro restauro, dove con il termine restauro si
intende una qualsiasi operazione tesa al miglioramento della qualità
del segnale.
Le tipologie di disturbo presenti nei segnali audio, sono tante
quante le possibili fonti di rumore, fonti che vanno dai disturbi
elettromagnetici alle distorsioni dovute alle funzioni di trasferimento
delle apparecchiature elettroniche, alla degradazione dei supporti
dovuta al tempo e all'incuria.
In ogni caso, i disturbi che si possono incontrare in un segnale
audio si possono sostanzialmente raggruppare in due grandi categorie:
rumore di fondo e disturbi impulsivi
In questa tesi è stata presa in considerazione la classe
dei disturbi impulsivi, i quali sono generalmente definiti come
discontinuità nell'andamento della forma d'onda e sono
il più delle volte ben riconoscibili a occhio, tant'è
vero che una delle tecniche di restauro più semplici, è
la loro rimozione a mano tramite un qualsiasi programma di editing
di segnali.
Sono molte le cause di questo tipo di disturbo, il quale è
tipicamente associato ai vecchi supporti fonografici in vinile.
Per quanto riguarda i dischi, qualsiasi discontinuità fisica
del supporto causa una corrispondente discontinuità nella
forma d'onda. Queste discontinuità sono di diversi tipi,
solitamente causate da piccoli granelli di polvere o di sporco
che aderiscono alla superficie del supporto, o da vari tipi di
graffi o incisioni.
A loro volta, i disturbi impulsivi si possono dividere in due
classi: click e scratch.
I disturbi associati al termine click, sono formati semplicemente
dalla discontinuità della forma d'onda e la loro estensione
temporale è limitata all'intervallo temporale in cui è
intervenuto il processo esterno che si è sovrapposto (o
ha addirittura sostituito), localmente al segnale originale.
Percettivamente, sono sentiti come dei brevi tick, la cui lunghezza
può andare dai 20 ms cioè pochi campioni, fino a
qualche millisecondo, corrispondente ad un centinaio o più
campioni coinvolti per un segnale audio campionato a qualità
CD (44,1 kHz).
Il disturbo denominato come scratch, invece, è essenzialmente
dato dalla risposta del sistema di riproduzione ad una discontinuità
del supporto, ad esempio la puntina di un giradischi che salta
su di un graffio di grosse dimensioni. Ad una prima sezione impulsiva,
identica a quella dei click, segue una componente rumorosa correlata
in bassa frequenza, corrispondente ad una oscillazione smorzata
dovuta all'assestamento del sistema di riproduzione, ad esempio
sempre la puntina del giradischi, la quale prima di ritornare
ad un andamento normale, oscilla con una sua frequenza di risonanza.Tipicamente
sono causati dagli stessi processi dei click, i quali però
assumono un'intensità tale da eccitare il sistema di riproduzione.
In questa tesi, ci si è concentrati sui click perché
nessuna tecnica nota per la rilevazione e la rimozione degli scratch
può prescindere da un trattamento della prima sezione impulsiva,
Questo lavoro può essere quindi considerato anche come
un primo passo per il trattamento degli scratch.
Per il trattamento dei click, i segnali audio sono considerati
come processi stocastici quasi stazionari che soddisfano la modellistica
AR per le serie storiche e vengono quindi descritti in questo
modo.
I disturbi impulsivi vengono invece modellati come processi rumorosi
che si sommano localmente al segnale originale.
A questo punto il problema della rilevazione di un click, diventa
il problema di localizzare un processo estraneo.
Si è provato sperimentalmente che applicando al segnale
degradato un filtro il cui output è il rumore di eccitazione
di un modello AR di ordine molto basso, la presenza dei click
viene smascherata da un'amplificazione locale dell'eccitazione,
senza per questo avere falsi allarmi dovuti all'effetto combinato
di click ravvicinati., cosa che invece accade se si utilizza un
filtro di ordine alto.
Tutte le operazioni sono fatte su blocchi di campioni la cui dimensione
può andare da N=500 a N=2000 per un intervallo temporale
che va dai circa 10 msec ai circa 40 msec.
Tutte le operazioni che verranno descritte qui di seguito, in
un ottica tesa ad avere un'applicazione operante in tempo reale,
devono essere quindi contenute in questi tempi.
Per quanto riguarda il calcolo dei parametri del filtro, si tratta
di risolvere un sistema di p equazioni in p incognite, la cui
matrice dei coefficienti permette l'utilizzo dell'algoritmo di
Levinson-Durbin la cui complessità computazionale è
O(p2) , quando la complessità del metodo di eliminazione
di Gauss e di O(p3).
La matrice dei coefficienti è formata dagli elementi della
sequenza di autocorrelazione, il cui calcolo richiede Np operazioni
lunghe. Nel caso della rilevazione, N>>p quindi il maggiore
carico computazionale è dovuto al calcolo della matrice
dei coefficienti. In ogni caso, N è un valore prefissato
e può essere scelto in modo da soddisfare le esigenze di
prestazioni.
La rilevazione è quindi fatta mediante opportuna sogliatura
del rumore di eccitazione di un modello AR di ordine molto basso,
questa operazione richiede un numero di operazioni proporzionale
ad N.
Una volta che sono stati localizzati i click, il problema che
rimane è quello della loro rimozione.
L'approccio adottato, è quello di considerare i campioni
coinvolti come irrimediabilmente corrotti, nel senso che non ci
si aspetta di poter ricavare da essi alcuna informazione riguardante
i campioni originali, quindi, una volta identificati, bisogna
trovare una strategia che preservi il più possibile l'andamento
della forma d'onda.
Una interpolazione polinomiale non si rivela appropriata perché
non tiene conto delle caratteristiche intrinseche del segnale,
caratteristiche che risiedono nei parametri del modello AR, il
quale, ai fini di un'appropriata ricostruzione, deve essere di
ordine almeno pari a 30 per segnali molto semplici o gap molto
corti, fino ad un ordine che può essere anche superiore
a cento, molto superiore all'ordine richiesto per la semplice
rilevazione.
E' stato quindi implementato un interpolatore ai minimi quadrati
che incorpora il modello AR e per questo chiamato LSAR (Least
Squares AR-based). L'interpolatore LSAR considera noti i parametri
del modello AR, parametri che bisogna stimare da una sezione del
segnale adiacente al disturbo, sfruttando la stazionarietà
del processo.
Questo interpolatore può essere applicato indifferentemente
ad un click isolato circondato da campioni non corrotti, come
ad un blocco qualsiasi di campioni contenente un numero arbitrario
di click, non essendoci alcun vincolo sulla posizione dei campioni
ignoti.
Questo significa che, se applicato click per click, il programma
procederà al ricalcolo dei parametri per ognuno di essi,
mentre se applicato ad un blocco singolo di N campioni, il calcolo
dei parametri può essere fatto una sola volta. La complessità
in tempo di questa stima è identica a quella della prima
fase, ma p può essere anche di due ordini di grandezza
superiore, è quindi molto importante utilizzare l'algoritmo
di Levinson-Durbin per la risoluzione di questo sistema.
Per quanto riguarda l'interpolazione vera e propria, la dimensione
della matrice su cui viene basata la matrice dei coefficienti
del sistema da risolvere è N(N-p) quindi elevata.
Questa matrice comunque è sparsa, gli elementi non nulli
sono infatti Np e sono costituiti solamente dai p parametri del
modello. Quindi, una implementazione normale può essere
fatta con un'occupazione di memoria di Np locazioni, mentre una
ottimizzata, può occupare solamente p locazioni di memoria.
La matrice dei coefficienti ha dimensioni dipendenti dal numero
di campioni ignoti da stimare e per il suo calcolo bisogna operare
una moltiplicazione tra due matrici sparse.
E' stato implementato anche un algoritmo iterativo che considera
ignoti sia i campioni da restaurare che i parametri del modello.
La complessità computazionale di questo metodo equivale
a quella dell'interpolatore descritto, moltiplicata per il numero
di iterazioni. La convergenza è comunque molto veloce e
spesso ci si può fermare al primo passo.
Il prototipo è stato sviluppato con Matlab versione 5.2
un ambiente di programmazione multipiattaforma specifico per la
matematica, con funzioni estese nell'ambito del signal processing
grazie all'apposito toolbox.
Per valutare la qualità del segnale restaurato, sono
state fatte sia prove numeriche su segnali sintetici sia valutazioni
percettive su brani reali.
Aggiungendo click artificiali a segnali sintetici di composizione
frequenziale nota e valutandone lo spettro prima e dopo l'operazione
di restauro, si è visto che ci si avvicina decisamente
allo spettro originale del segnale.
Ad un riscontro visivo della forma d'onda, l'interpolazione si
è rivelata più accurata di quella operata da alcuni
prodotti commerciali, anche se le differenze a livello uditivo
sono difficilmente percepibili.
La qualità del restauro, si è rivelata soddisfacente
a livello percettivo anche se applicata a brani degradati non
solo da click di ampiezza molto diversa fra di loro (problema
aggiuntivo per quanto riguarda la rilevazione), ma anche da scratch
relativamente piccoli.
In quest'ultimo caso, un rumore residuo molto piccolo ma percettibile,
corrispondente alla sezione oscillante degli scratch, è
rimasto nel segnale.