introduzione
1
Introduzione
Un segnale biomedico può essere affetto da artefatti di varia natura che corrompono il segnale di interesse sovrapponendosi all’informazione che vogliamo estrarre. I metodi classici basati su filtraggi lineari si basano sul presupposto che l’informazione utile sia presente solo su determinate bande frequenziali.
Nel caso di acquisizioni multi-canale è tuttavia possibile separare artefatti e segnali di interesse nonostante essi abbiano lo stesso contenuto frequenziale. Tale risultato è per esempio ottenibile da approcci statistici di analisi multivariata dei dati quali ad esempio l’analisi delle componenti indipendenti (ICA). Questo metodo è generalmente usato quando è necessario separare acquisizioni multi-canale di segnali biomedicali nelle componenti che le hanno generate. I canali che si osservano sono il risultato di un processo di mescolamento tra sorgenti originarie pesate con dei coefficienti costanti, sorgenti originarie e coefficienti di mescolamento sono sconosciuti. L’ipotesi di partenza su cui si basa il modello ICA è l’indipendenza statistica tra le sorgenti originarie. Nel caso di acquisizione multi-canale di segnali biomedici affetti da artefatti, possiamo assumere l’indipendenza statistica tra segnali provenienti da processi fisiologici diversi e procedere alla separazione delle sorgenti per mezzo di algoritmi di analisi delle componenti indipendenti. In tal modo artefatti e segnali di interesse verranno separati sulla base dell’informazione ad essi associata presente contemporaneamente su canali diversi.
Tali metodiche possono essere implementate su un normale Personal Computer al fine di rimuovere artefatti da segnali biomedici precedentemente acquisiti. Tuttavia la programmazione di una scheda elettronica dedicata, ad esempio basata su processore DSP, abbatte tutte quelle problematiche di ingombro e alto costo associate ad un Personal Computer. Questo permette inoltre elaborazioni in tempo reale il cui risultato sono segnali non degradati da artefatti più facilmente monitorabili anche in condizioni di acquisizione più problematiche.
introduzione
2 Lo scopo del presente lavoro è l’implementazione su una scheda dotata di processore DSP, di un algoritmo basato sull’analisi delle componenti indipendenti per la rimozione di artefatti dal segnale elettrocardiogramma (ECG) .
Nel primo capitolo verranno introdotte problematiche relative all’analisi dei segnali fisiologici. Seguirà una descrizione delle varie tipologie di artefatti che possono contaminare l’acquisizione dell’ECG; una sua scorretta interpretazione, infatti, comporta una errata caratterizzazione della patologia. Infine descriveremo un semplice sistema di acquisizione basato su processore DSP e le motivazioni che hanno portato questa scelta a essere un punto di riferimento per l’elaborazione dei segnali.
Nel secondo capitolo verrà introdotto il modello basato sull’ ICA e la descrizione dei metodi per stimare le componenti indipendenti. Verranno presentati i vari approcci che portano alla formulazione di algoritmi di uso pratico per la ricerca delle sorgenti. Successivamente tali algoritmi verranno descritti in modo accurato mettendo in evidenza le caratteristiche e le proprietà che li differenziano.
Nel terzo capitolo, utilizzando l’ambiente MATLAB della Mathworks, verranno confrontati i vari algoritmi (simulando segnali ECG e artefatti) mediante il calcolo di un coefficiente d’errore per valutare l’accuratezza degli algoritmi per la stima delle componenti indipendenti. Successivamente valuteremo alcune specifiche che interessano l’elaborazione digitale: stimeremo l’accuratezza degli algoritmi nel ricavare le componenti indipendenti modificando la frequenza di campionamento e la finestra temporale di osservazione dei singoli canali. L’algoritmo che minimizza l’errore verrà scelto per essere tradotto e sviluppato in linguaggio C.
Nel quarto capitolo verranno descritte le motivazioni che hanno suggerito la scelta del processore C6711 della famiglia TMS320C6000 della Texas Instrument per l’elaborazione in tempo reale. Verrà inoltre descritta l’architettura interna del DSP e l’ambiente ambiente di sviluppo CODE COMPOSER STUDIO necessario allo sviluppo del codice C.
Nel capitolo quinto descriveremo in maggior dettaglio il codice C, con particolare riferimento agli algoritmi utilizzati per risolvere le problematiche relative a routine MATLAB non direttamente accessibili al programmatore.
Nel capitolo sesto verrà effettuata un confronto tra i risultati numerici ottenuti dal codice C, eseguito sul simulatore della scheda di valutazione e dal MATLAB facendoli operare sugli stessi segnali in ingresso. Successivamente il codice C è stato caricato direttamente nella memoria del processore e sono stati valutati i tempi di esecuzione del
introduzione
3 codice. Sono state studiate ottimizzazioni di tipo software insieme alla possibilità di tradurre procedure C in linguaggio a basso livello (Assembler). Infine è stato verificato il rispetto della specifica del tempo reale.
Il progetto è stato sviluppato in collaborazione con il laboratori ITENI e Computer Vision dell’Istituto di Fisiologia Clinica del Consiglio Nazionale delle Ricerche (CNR) di Pisa. Le elaborazioni software sono state effettuate in ambiente MATLAB, versione 6, della MathWorks e mediante ambiente CODE COMPOSER STUDIO della Texas Instruments.