Come Filtrare Un Segnale In Matlab con un filtro IIR

tramite: O2O
Difficoltà: difficile
16

Introduzione

Matrix Laboratory (MATLAB), un software in grado di acquisire e fornire indicazioni di alcuni importanti segnali biologi ha trovato un largo uso in campo ingegneristico per l’analisi dei segnali biomedici e nella fattispecie nell’individuazione di caratteristiche intrinseche e nascoste. E’ possibile filtrare un segnale in matlab con un filtro IIR, scopo di questa guida, darvi le informazioni necessarie per modellizzare e caratterizzare adeguatamente i filtri in uso. Approfondimenti sul software Matlab sono reperibili sul sito mathworks.

26

Occorrente

  • Software MATLAB
36

I filtri che andrete ad applicare sono filtri in frequenza, in particolare modo utilizzerete sono:
il filtro passa-banda che permette il passaggio delle frequenza in un determinato range; il filtro passa-alto che permette di far passare tutte le frequenza oltre una frequenza di soglia e attenua tutte quelle frequenze inferiori; ed infine il filtro passa-basso, che permette altresì di far passare tutte le frequenza al di sotto di una soglia attenuando quelle superiori. Avviate il software Matlab. Cliccate sull'apposita icona e avviate il programma. Una volta aperto è necessario caricare il segnale che si vuole filtrare. Con l'istruzione “load” carichiamo la sessione di registrazione del segnale salvata precedentemente in formato *. Mat, l'istruzione successiva serve per estrarre il segnale vero e proprio. Con l'istruzione plot visualizziamo il seguente in figura.
Utilizzate il filtro IIR. La funzione di trasferimento di tale filtro ha la seguente forma filtro IIR: Per definire i parametri dovete scegliere in modo adeguato i coefficienti a e b.
Tra i diversi tipi di filtri IIR è possibile optare tra i parametri modellizzazione come il filtro Butterworth.. Altro coefficiente da parametrizzare è la frequenza di campionamento.

46

L'istruzione Matlab necessaria per modellizzare il filtro IIR è la seguente: [b a]=butter (n, wn, type). Nel dettaglio troviamo “b” ed “a” che sono i coefficienti del filtro e saranno il risultato dell'istruzione. I parametri da passare sono rispettivamente: “n” che rappresenta l'ordine del filtro, “wn” che indica la frequenza di taglio normalizzata secondo la frequenza di Nyquist (metà della frequenza di campionamento) e infine “type”, che specifica il tipo di filtro e può essere “low”, ”high”, “stop” a seconda che il filtro sia rispettivamente passa-basso, passa-alto, passa-banda (in quest'ultimo caso “wn” sarà un vettore contente gli estremi del range di frequenza che si vuole far passare). Per visualizzare la funzione di trasferimento del filtro è utile usare la seguente istruzione: freqz(a, b, freq_Nyquist). I filtri IIR hanno il difetto di introdurre uno sfasamento non lineare della fase del segnale: il segnale dopo essere stato filtrato appare traslato lungo l'asse delle x, come se fosse ritardato. Per ovviare a questo problema Matlab mette a disposizione l'istruzione filtfilt (b, a, segnale) che, dopo aver filtrato il segnale, lo rifasa in modo da cancellare il ritardo.

Continua la lettura
56

Di seguito sono riportate le istruzioni utilizzate dal workspace di Matlab per filtrare il segnale di esempio:
[ba]=butter (10,0.1,'low'); freqz (b, a,100); segnale_filtrato=filtfilt (b, a, segnale); plot (segnale_filtrato,'r'). La prima istruzione permette di ottenere i parametri a e b di un filtro modellizzato secondo Butterworth di ordine 10, frequenza di taglio normalizzata pari a 0.1 e di tipo passa-basso. La seconda istruzione freqz permette di visualizzare la funzione di trasferimento del filtro, nell'immagine sottostante sono visualizzabili i grafici della fase e del modulo relativi al filtro di esempio: Con la terza istruzione avviene significantemente l'operazione di filtraggio del segnale. Le ultime operazioni permettono di sovrapporre e graficare il segnale di provenienza prima e dopo il filtraggio sulla stessa figura. Il segnale in rosso rappresenta il risultato dopo l'operazione di filtraggio passa-basso (notate come le oscillazioni ad alta frequenza sono state eliminate), il segnale in blu è quello originale. Le istruzioni riportate possono essere utilizzate per filtrare qualsiasi segnale con filtri di tipo IIR di Butterworth. Per adattarle alle proprie esigenze bisogna solo modificare i parametri in modo che il filtro rispetti le specifiche.

66

Consigli

Non dimenticare mai:
  • Parametrizzate correttamente i coefficienti in matlab

Potrebbe interessarti anche

Segnala contenuti non appropriati

Tipo di contenuto
Devi scegliere almeno una delle opzioni
Descrivi il problema
Devi inserire una descrizione del problema
Si è verificato un errore nel sistema. Riprova più tardi.
Verifica la tua identità
Devi verificare la tua identità
chiudi
Grazie per averci aiutato a migliorare la qualità dei nostri contenuti

Guide simili

Software

5 alternative gratuite a Matlab

Matlab è un ambiente di sviluppo in ambito matematico ed informatico. Permette di svolgere calcoli relativi a matrici o all'algebra lineare in generale, dinamica dei sistemi e feedback di motori. Il software è di tipo professionale, infatti necessità...
Software

Come creare un grafico in Matlab

La matematica è sicuramente una materia molto affascinante e ricca di mistero. Purtroppo non è compresa da tutti, e non tutti sono in grado di studiarla e comprenderne tutte le sfumature. Attraverso di essa si possono creare grafici bidimensionali o...
Software

Come calcolare un logaritmo naturale in MATLAB

Benvenuti nella guida dedicata al come calcolare un logaritmo naturale in Matlab! Basterà seguire questi semplici passi per imparare in breve tempo l'utilizzo questa nuova operazione. Su Matlab avrete numerosissime possibilità nel creare algoritmi...
Windows

Come installare Matlab su Windows

MatLab o Matrix Laboratory, è un ambiente grafico di calcolo scientifico strutturato appositamente per gestire oggetti di tipo matrice. Risolve dei problemi numerici al calcolatore facendo uso di librerie di calcolo. Si usa moltissimo in ambito ricerca...
Software

Come risolvere le equazioni simultanee con Matlab

MATLAB (Matrix Laboratory) è un software per risolvere calcoli numerici. Risolvere un sistema di equazioni simultanee con questo programma è più semplice, vediamo come in seguito.Per risolvere questo tipo di equazioni, non servono particolari conoscenze...
Software

Come regolare gli assi in MATLAB

Matlab è uno dei software di calcolo tra i più potenti ed utilizzati in ambito tecnico e scientifico, ma non solo, grazie a numerosi miglioramenti nel corso degli anni adesso è in grado di dare supporto in tutte le applicazioni che riguardano la scienza...
Internet

Come Tracciare Il Grafico Di Funzioni Matematiche Grazie Ad Un Tool Online Gratuito

Tra i tanti software online gratuiti per aggiungere ulteriori funzioni al nostro PC, ci sono i tool per tracciare il grafico di funzioni matematiche. Prima di scegliere quale fa' al caso nostro è consigliabile informarsi, poiché ne esistono di diversi....
Internet

Come Filtrare le informazioni sulla bacheca di Facebook

Al giorno d'oggi Facebook rappresenta sicuramente il social network più diffuso e conosciuto al mondo. Con esso infatti è possibile condividere fotografie,video oppure pensieri riguardanti la nostra vita con tutti quelli che vogliamo. A volte però...
I presenti contributi sono stati redatti dagli autori ivi menzionati a solo scopo informativo tramite l’utilizzo della piattaforma www.o2o.it e possono essere modificati dagli stessi in qualsiasi momento. Il sito web, www.o2o.it e Arnoldo Mondadori Editore S.p.A. (già Banzai Media S.r.l. fusa per incorporazione in Arnoldo Mondadori Editore S.p.A.), non garantiscono la veridicità, correttezza e completezza di tali contributi e, pertanto, non si assumono alcuna responsabilità in merito all’utilizzo delle informazioni ivi riportate. Per maggiori informazioni leggi il “Disclaimer »”.