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.