Creazione di un’interfaccia grafica in ambiente Matlab per l’acquisizione e l’elaborazione dei dati da un file *.txt Corso di “Meccatronica” A.A. 2013/2014 Docente Studente Prof.Ing.Nicola Ivan Giannoccaro Antonio Tricarico matricola 20009708
Fasi di sviluppo dell’interfaccia grafica Simulazione del processo di campionamento di un segnale sinusoidale; Salvataggio dei dati in un file di testo (*.txt); Caricamento dei dati acquisiti, stima dell’andamento temporale ed analisi nel dominio della frequenza; Filtraggio digitale (filtri FIR e IIR) e analisi del segnale filtrato in relazione all’input.
Elaborazione del segnale Analisi nel dominio del tempo Il segnale è analizzato rispetto alla variabile tempo (ampiezza positiva e negativa massime, ampiezza picco-picco, valore medio e valore efficace) Analisi nel dominio della frequenza È analizzato lo spettro delle frequenze che costituiscono il segnale: l’analisi spettrale mediante l’analisi di Fourier si basa sull’ipotesi secondo la quale qualsiasi onda può essere scomposta in una somma di onde sinusoidali , la cui somma ricostruisce l’onda originale. DOMINIO DELLA FREQUENZA DOMINIO DEL TEMPO ANALISI DI FOURIER Il segnale è scomposto in una somma di sinusoidi (armoniche), ciascuna con una propria ampiezza e fase (Fast Fourier Transform)
Spettro segnale filtrato Struttura della GUI Pulsante acquisizione dati Forma d’onda segnale acquisito Spettro segnale acquisito Forma d’onda segnale filtrato Spettro segnale filtrato Inserimento specifiche di filtraggio e visualizzazione risultati
Definizione del segnale in ingresso ANALIZZATO A*sin(2*pi*F'*t) + d A = vettore riga ampiezze F = vettore riga frequenze d = rumore Segnale ideale Segnale misurato Il segnale in esame può essere considerato periodico ed è caratterizzato da numerose armoniche. Il disturbo in oggetto (disturbo a frequenza di rete 50 Hz) rende tale segnale fortemente degradato
Forma d’onda e spettro del segnale campionato La scelta della frequenza di campionamento fc deve essere tale da rispettare il teorema di Shannon, ossia fc≥2fMAX , con fMAX = massima frequenza componente del segnale che si desidera acquisire. Nel caso considerato, fMAX = 50 Hz, per cui si opta per fc = 200 Hz. Se si optasse per fc < 2fMAX , si verificherebbe il fenomeno di ALIASING
segnale campionato correttamente segnale sottocampionato i.e. ALIASING Scelta di fc: condizioni di aliasing Il segnale appare caratterizzato da una frequenza differente da quella effettiva fc=90 Hz (fMAX=50 Hz, fc < 2fMAX) fc=200 Hz, fMAX=50 Hz fc ≥ 2fMAX segnale campionato correttamente fc=90 Hz, fMAX=50 Hz fc ≤ 2fMAX segnale sottocampionato i.e. ALIASING
Contaminazione del segnale La misura del segnale di interesse è affetta dalla presenza di disturbi e rumore il segnale ne risulta contaminato e il suo andamento non è determinato correttamente ELIMINAZIONE DI PARTE DEL CONTENUTO ARMONICO DEL SEGNALE L’utilizzo di tecniche di filtraggio permette di ridurre o eliminare il livello di disturbo e/o rumore presente nel segnale, ottenendo un segnale ripulito.
Segnale ideale vs Segnale misurato Effetti del rumore y(t) = yi(t) + yr(t) Segnale ideale vs Segnale misurato yr(t) = rumore yi(t) = segnale ideale y (t) = segnale misurato Il segnale acquisito comprende il disturbo indotto dalla componente yr(t) SEPARARE IL SEGNALE UTILE DAL RUMORE
Finite Impulse Response Infinite Impulse Response Filtri digitali FIR Finite Impulse Response IIR Infinite Impulse Response Metodo delle finestre Campionamento in frequenza Minimi quadrati Equiripple Bessel Butterworth Chebishev (I tipo) Chebishev (II tipo) Ellittico
Tipi di filtro FILTRO PASSA-ALTO (HIGH-PASS) elimina le componenti inferiori alla frequenza di taglio; FILTRO PASSA-BASSO (LOW-PASS) elimina le componenti superiori alla frequenza di taglio; FILTRO PASSA-BANDA (BANDPASS) combina gli effetti dei due filtri precedenti; FILTRO ARRESTA-BANDA (BANDSTOP) rimuove le frequenza appartenenti ad un dato intervallo Condizioni di non idealità: ripple banda passante (Rp) banda di transizione non nulla ripple banda oscura (Rs) La maschera del filtro, impostata in fase di progetto, specifica i margini di accettabilità delle non idealità elencate
Soppressione del rumore: filtro passa basso Rp ripple banda passante Rs ripple banda oscura ωc frequenza di taglio a 3 dB ωs frequenza di inizio banda oscura 0 ≤ ω ≤ ωc banda passante ωc ≤ ω ≤ ωs banda di transizione ω > ωs banda oscura
b, a coefficienti del filtro Rp ripple banda passante Funzioni Matlab per il filtraggio IIR Butterworth [b,a]= butter[O,Wn,type] Chebishev I tipo [b,a]= cheby1[O,Rp,Wn,type] Chebishev II tipo [b,a]= cheby2[O,Rs,Wn,type] Ellittico [b,a]= ellip [O,Rp,Rs,Wn,type] b, a coefficienti del filtro Visualizza la funzione di trasferimento del filtro O ordine del filtro freqz(b,a) Wn frequenza di taglio Rp ripple banda passante n, Wn = ? Rs ripple banda oscura type: ‘high’, ‘low’, ‘bandpass’, ‘stop’
I filtri ellittici soddisfano le specifiche imposte per n più basso Fasi progettuali Si assegnano i valori di Wp, Ws, Rp, Rs Wp, Ws vettori delle frequenze che delimitano le bande passanti e oscura Funzioni buttord,cheb1ord,cheb2ord,ellipord: forniscono i valori di n e Wn che soddisfano le specifiche Wp = 0.4, Ws = 0.5, Rp = 3, Rs = 20 Butterworth n=8, Wn=41 Hz Chebishev I tipo n=4, Wn=40 Hz Chebishev II tipo n=4, Wn=50 Hz Ellittico n=3, Wn=40 Hz I filtri ellittici soddisfano le specifiche imposte per n più basso
Inserimento dati per il filtraggio Più è elevato l'ordine del filtro e maggiore è l'eliminazione delle armoniche fuori banda ORDINE passa alto passa basso passa banda arresta banda TIPO DI FILTRO FREQUENZA DI TAGLIO CATEGORIA
Filtri IIR Risposta in fase non lineare, ritardo di fase in aumento in prossimità di fc. Butterworth Chebishev I All’aumentare di n aumenta la pendenza della banda di transizione. A parità di n, la banda di transizione diventa più ripida passando dai filtri di Butterworth a quelli ellittici per i quali il ritardo di fase è estremamente non lineare. Chebishev II Ellittico Butterworth “maximally flat” in banda passante, lenta transizione banda passante-banda oscura Chebishev I banda di transizione più stretta, ripple in banda passante Chebishev II banda di transizione più stretta, ripple in banda oscura Ellittico banda di transizione maggiormente ridotta, ripple in banda passante e banda oscura
Segnale filtrato vs Segnale input segnale_filtrato=filtfilt(b,a,segnale) Operazione di filtraggio del segnale. filtfilt in luogo di filter rifasa il segnale cancellando il ritardo NON LINEARITÀ Filtro ellittico passa basso, n = 3, fc = 40 Hz
Funzioni Matlab per il filtraggio FIR Finestre b= fir1(O,Wn,type,window) Campionamento in frequenza b= fir2(O,F,M) Minimizzazione ai minimi quadrati b= firls(O,F,M) Equiripple b= firmp(O,F,M) fir1 configurazione passa alto, passa basso, passa banda e arresta banda F = vettore intervalli di frequenze normalizzati (bande) ([0 f1 f2...1]) M = vettore ampiezze desiderate in ogni banda fir2 firls Utilizzano algoritmi che minimizzano gli errori tra la risposta in frequenza desiderata e la risposta in frequenza attuale firpm
Filtri passa basso FIR F = [0 0.4 0.5 1] A = [1 1 0 0] banda passante 0 Hz -40 Hz, banda oscura 50 Hz -100 Hz Filtro FIR Frequency Sampling, n=3 Filtro FIR Least Squares, n=3
Filtraggio mediante filtri FIR Risposta LINEARE in fase Filtri SEMPRE STABILI Maggiori specifiche rispetto ai filtri IIR complessità progettuale DSP Filtro FIR Equiripple n = 3 Filtro IIR Ellittico n = 3
FIR vs IIR Filtro FIR Equiripple n = 11 Filtro IIR Ellittico n = 3 Fs = 200; %Frequenza di campionamento F = [40 50]; %Banda passante, Banda oscura A = [1 0]; %Ampiezze desiderate DEV = [0.171 0.1]; %Rp=3, Rs=20 [n,fo,ao,w] = firpmord(F,A,DEV,Fs) Filtro FIR Equiripple n = 11 Filtro IIR Ellittico n = 3 I filtri FIR necessitano di un ordine superiore ai filtri IIR per realizzare le stesse specifiche su Wp, Ws, Rs e Rp
Segnale filtrato Filtro FIR Equiripple n = 11 Filtro IIR Ellittico n = 3
Considerazioni finali La scelta di un filtro è il risultato di obiettivi talvolta contrastanti. Ad un aumento delle specifiche imposte al filtro corrisponde, inevitabilmente, un aumento della difficoltà di realizzazione e del costo del filtro stesso. Il progetto di un filtro è coadiuvato da dispositivi DSP, i cui costi sono relativamente contenuti in relazione alla capacità di elaborazione offerta. Rispetto ai filtri FIR, i filtri IIR sono più efficienti, in quanto permettono di ottenere roll-off rate più marcate a parità di n, tuttavia possono presentare problemi di stabilità e presentano risposta in fase non lineare. I filtri FIR, “incondizionatamente stabili” e con risposta in fase lineare, necessitano di un ordine e specifiche maggiori rispetto ai filtri IIR i.e. il progetto dei FIR è richiesto quando c’è necessità di linearità della fase e stabilità, senza grosse limitazioni per la quantità di memoria per i coefficienti, il cui numero è legato all’ordine del filtro. La scelta di usare un filtro FIR o IIR è in genere legata, oltre alle caratteristiche della risposta in frequenza e fase desiderate, anche a considerazioni di tipo computazionale, al ritardo di gruppo ammissibile, ecc. Avere una fase lineare può risultare vantaggioso in molte situazioni e, laddove è compatibile con il tipo di applicazione, risulta preferibile l’uso di filtri FIR. L’utilizzo di filtri IIR risulta preferibile in applicazioni in cui, per ragioni costruttive e di DSP (costi contenuti), l’ordine n deve essere mantenuto basso.