• Non ci sono risultati.

3.3 IL FILTRAGGIO

3.3.1 Aspetti implementativi

I filtri passa-alto con frequenza di taglio di 6 kHz sono stati realizzati con Matlab. Per il filtro di Butterworth la funzione usata è la seguente:

[B,A] = butter(N,Wn,'high')

dove:

 N è l‟ordine del filtro, posto pari a 10;

 Wn è la frequenza di taglio normalizzata;

 la stringa „ftype‟ designa il tipo di filtro considerato, in questo caso un filtro passa-alto;

 B e A sono vettori riga di lunghezza N+1, contenenti i coefficienti rispettivamente del numeratore (B) e del denominatore (A) della funzione di trasferimento del filtro.

La funzione butter calcola quindi i vettori A e B contenenti i coefficienti dell‟equazione alle differenze che realizza il filtro con le specifiche richieste.

Per la sintesi del filtro ellittico invece le funzioni Matlab usate sono le seguenti:

[N,Wn]=ellipord(Wp,Ws,Rp_db,Rs_db)

dove:

 Wp e Ws rappresentano, rispettivamente, la banda passante e la banda oscura, normalizzate tra 0 e 1 (dove 1 corrisponde a metà della frequenza di campionamento). Ws e Wp possono essere quantità scalari (nel caso di filtro passa-alto) o vettori di dimensione 2 (nel caso di filtri passa-banda);

 Rp_db e Rs_db rappresentano il ripple in banda passante e il ripple in banda oscura; sono espressi in decibel (dB);

 N è l‟ordine più basso del filtro ellitico digitale che non perde più di Rp_dB nella banda passante e che ha almeno Rs_dB di attenuazione in banda oscura;

 Wn è la frequenza di taglio.

La funzione ellipord quindi calcola l‟ordine minimo che soddisfa le specifiche del filtro (banda passante, banda oscura, ripple in banda passante e ripple in banda oscura).

[B,A]=ellip(N,Rp_db,Rs_db,Wn,'high')

47

 N è l‟ordine del filtro, il cui valore è tra le uscite della funzione precedente;

 Rp_db e Rs_db rappresentano il ripple in banda passante e il ripple in banda oscura; sono espressi in dB;

 Wn è la frequenza di taglio, in uscita alla funzione precedente;

 la stringa „ftype‟ designa il tipo di filtro considerato, in questo caso un filtro passa-alto;

 B e A sono due vettori di lunghezza N+1 contenenti i coefficienti rispettivamente del numeratore (B) e del denominatore (A) della funzione di trasferimento del filtro.

La funzione ellip, quindi, date le specifiche del filtro e l‟ordine, calcola i vettori A e B contenenti i coefficienti dell‟equazione alle differenze che realizza il filtro con i requisiti cercati.

Per entrambi i filtri è stata poi usata la funzione freqz, chiamata nel seguente modo:

[H F]=freqz(B,A, N, Fc)

Questa funzione crea un vettore reale F e un vettore complesso H di dimensione N che contengono, rispettivamente, N valori di frequenze equispaziati tra 0 e Fc/2 e i relativi campioni della risposta in frequenza del sistema ARMA a coefficienti in B ed A.

Per accedere al modulo di H è stata poi usata l‟istruzione abs(H), essendo H un vettore complesso.

Nella Figura 3.6 sono riportati rispettivamente il modulo del filtro di Butterworth passa-alto e il modulo del filtro ellittico passa-passa-alto analizzati in questo lavoro di tesi.

48

Figura 3.6: Modulo della risposta in frequenza del filtro passa-alto di Butterworth (in alto) e del filtro passa-alto ellittico (in basso).

Infine per filtrare il segnale d‟interesse è stato usato il comando:

segnale_filtrato= filter(B,A,y)

La function filter filtra i dati nel vettore y usando il filtro descritto dai coefficienti del numeratore e del denominatore della funzione di trasferimento, contenuti rispettivamente nel vettore B e nel vettore A [26, 27].

3.4 LA TRASFORMATA DI FOURIER CONTINUA E DISCRETA DI SEGNALI A TEMPO DISCRETO

La trasformazione in frequenza più conosciuta è quella dovuta all‟idea del matematico francese Jean Baptiste Joseph Fourier, pubblicata nel 1822 in “Teoria analitica del calore”. In questo lavoro egli mostrò come un generico segnale possa essere espresso come somma di onde semplici, caratterizzate ognuna da uno specifico valore di frequenza e da un coefficiente che ne modula l‟ampiezza. Una volta applicata la trasformata di Fourier, rappresentando le coppie frequenza-coefficiente come punti in un nuovo sistema di coordinate (avente le frequenze sull‟asse x e i valori dei relativi coefficienti sull‟asse y), si ottiene un grafico che indica quali frequenze sono contenute nel segnale e con che intensità, ovvero lo spettro del segnale stesso.

49

 

    n n j e n x n x FT X() ( ) ( ) con ω 2πf (7)

Tale funzione è complessa, di variabile reale ω e periodica di periodo 2 π.

Poiché l‟esponenziale nella (7) può essere riscritto attraverso la formula di Eulero come:

2 2 (8)

per ogni valore di f la (7) moltiplica l‟intero segnale per un‟espressione complessa composta da seno e coseno alla frequenza f, e ne calcola la sommatoria.

Il senso di questo passaggio risiede nell‟idea che se x(n) contiene una componente ad una certa frequenza ̂ questa componente ed i termini sinusoidali a frequenza ̂ vanno a coincidere ed il loro prodotto fornisce una curva avente un‟ampiezza relativamente consistente. Tramite la sommatoria questo concetto viene sintetizzato in un unico valore, che viene segnato nel piano frequenza-ampiezza in corrispondenza di ̂.

Se la FT fornisce per f = ̂ un valore consistente, si dice che il segnale x(n) ha una componente spettrale dominante alla frequenza ̂. Viceversa, se il risultato della sommatoria è relativamente piccolo, significa che l‟onda a frequenza ̂contenuta nel segnale x(n) ha ampiezza ridotta. Infine, se il risultato è pari a zero, il segnale x(n) non contiene quel tipo di onda.

La natura reale dei segnali biologici comporta la simmetria dello spettro rispetto all‟asse y (la FT ha cioè modulo pari): l‟asse delle frequenze può quindi essere limitato tra 0 e Fc/2 senza perdita di informazione dove Fc rappresenta la frequenza di campionamento. Nel caso in cui il segnale discreto x(n) abbia un numero finito di campioni (n=0…N-1), anche la (7) assume natura discreta, e prende appunto il nome di trasformata di Fourier discreta (DFT).

La sua formulazione analitica diventa:

  1 0 2 ) ( )] ( [ ) ( N n N nk j e n x n x DFT k X con k=0….N-1 (9) (i campioni sono tanti quanti quelli di partenza) Tale funzione è un segnale complesso, ad ascissa discreta, con numero di campioni pari a N nell‟intervallo 0-2π

50

Dal confronto tra le formule della FT e della DFT è immediato verificare che la DFT non è altro che una sequenza di campioni equispaziati di un periodo della trasformata di Fourier continua; si ha quindi che:

[26, 27, 28].

La trasformata di Fourier discreta è stata implementata in Matlab tramite l‟algoritmo della FFT (Fast Fourier Transform).