Trasformata Z Filtri AC PSD I

Transcript

Trasformata Z Filtri AC PSD I
SISTEMI LINEARI
(a) Il segnale x(t) in
F
F
SCHEMA A BLOCCHI DI UN SISTEMA (LINEARE)
ingresso passa attraverso
la trasformazione F{·} e
produce l’uscita y(t)
(b) L’uscita y(t) è
rappresentata dalla
convoluzione
dell’ingresso x(t) e della
risposta impulsiva del
sistema h(t)
RAPPRESENTAZIONE NEL DOMINIO DEL TEMPO
(c) La trasformata
dell’uscita è data dal
prodotto della
trasformata dell’ingresso
e della funzione di
trasferimento
RAPPRESENTAZIONE NEL DOMINIO DELLA FREQUENZA
RISPOSTA IMPULSIVA
Per il sistema lineare, causale (le uscite non possono precedere gli
ingressi), DT:
Si consideri l’ingresso
(impulso unitario):
L’uscita è data da:
1
x(k)  (k)  
0
k0
k0
y(k)  F[ x(k)]  F[(k)]  h(k)
Dove h(k) è definita come la risposta impulsiva (risposta all’impulso
unitario) del sistema.
Sistema (filtro) FIR (Finite Impulse Response): h(k)=0 k>K, |K|<
Sistema (filtro) IIR (Infinite Impulse Response): altrimenti
CONVOLUZIONE
Si consideri un ingresso arbitrario x(k), che si può scrivere come:
Quindi l’unico
termine 0 si
ha per i=k
Poiché y(k)=F[x(k)], e per la linearità: F[x(i)(k-i)]=x(i)F[(k-i)], si ha:




E per definizione di h(k): y(k)   x(i)h(k  i)   h(i)x(k  i)
SOMMA DI
CONVOLUZIONE
OSSERVAZIONI
•
L’operatore convoluzione gode delle proprietà: associativa, commutativa e
distributiva.
•
La risposta impulsiva è un modo di esprimere la memoria di un
sistema, analogamente all’ autocorrelazione (AC).
•
Si può mostrare che l’AC di una funzione di risposta impulsiva è ancora una
funzione di risposta impulsiva, quindi (k) è scorrelata e non ha memoria.
•
I valori dell’ingresso di un sistema sono pesati dai valori della risposta
impulsiva e sommati per generare l’uscita.
•
Poiché la risposta impulsiva è la soluzione “a stato zero” di un sistema
descritto da un’equazione differenziale con in ingresso una funzione
impulsiva, i parametri della risposta impulsiva si ottengono dai
coefficienti dell’equazione differenziale (particolarmente utile per
equazioni del 1° e 2° ordine).
CONVOLUZIONE E FILTRAGGIO
• Il processo di convoluzione fra la risposta impulsiva di un
sistema lineare ed un segnale di ingresso, è la
rappresentazione del filtraggio nel dominio del tempo.
• La conoscenza della risposta di un sistema al gradino (impulso)
unitario consente un’indagine quantomeno qualitativa della sua
risposta impulsiva, da cui si può stimare la risposta ad un
qualunque ingresso.
• Si noti che non è necessario conoscere l’equazione differenziale
del sistema per predire il suo comportamento, se è possibile
determinarne la risposta impulsiva.
SISTEMI LINEARI DT
Ogni successione discreta (DT=Discrete-Time) f(n) si può scrivere come:
Con:
risposta impulsiva unitaria
L’uscita g(n) corrispondente ad un ingresso arbitrario f(n) è data dalla
convoluzione discreta:
Per sistemi causali (l’uscita non può precedere l’ingresso) g(n) dipende solo
da f(k), kn, da cui: h(k)=0 per k<0
TRASFORMATA Z
E’ essenzialmente una variante della DFT, ma di uso più semplice in molte
applicazioni. E’ l’equivalente TD della trasformata di Laplace per sistemi TC.
Data una successione discreta xk la sua trasformata z, X(z) è:
X( z ) 


x k z k  x 0  x 1z 1 x 2 z  2  ...
( 1)
k 0
N.B.: La trasformata z si ottiene dalla DFT per N→ e z=exp(-j2πm/N).
Nella maggior parte dei sistemi biologici, la trasformata z del segnale
(campionato) è stimata solo per k=0,1,2,…, N-1.
Per un segnale x(t) campionato con periodo T, si ha la successione
x=[x(0), x(T), x(2T), …, x(kT)]
Dalla (1) la sua trasformata z è quindi:
X(z)=x(0)+ x(T)z-1+ x(2T)z-2+…+ x(kT)z-k
z-k può quindi essere visto come l’operatore di “shift”, che “ritarda” un
campione di segnale di esattamente k intervalli di campionamento, kT.
TRASFORMATA Z
Proprietà della trasformata Z (*=trasposto coniugato)
FUNZIONI RAZIONALI IN Z
Classe importante per le applicazioni sia nel dominio del tempo che della frequenza
(analisi spettrale). L’ingresso x(n) e l’uscita y(n) sono legati dalla relazione:
y(n)
x(n)
h(n)
La trasformata Z è:
Forma fattorizzata
Forma polinomiale
La funzione I/O del sistema è quindi un polinomio razionale in z:
Zeri = radici del numeratore; Poli = radici del denominatore
La forma fattorizzata mette in evidenza zeri (zk) e poli (pk). I poli complessi coniugati
costituiscono le risonanze del sistema
FILTRI ANALOGICI
Si possono considerare una classe di
sistemi lineari usata frequentemente per
l’analisi di sistemi biologici.
I filtri si usano per rimuovere
componenti di rumore indesiderate dal
segnale,
che
possono
causare
distorsioni e rendere difficile o
addirittura errata la diagnosi.
Si possono distinguere tre classi
principali di filtri: passa-basso, passabanda, passa-alto.
A-Passa-basso: eliminano le alte
frequenze
ed
eventualmente
amplificano le basse;
B-Passa-alto: svolgono la funzione
opposta dei passa-basso;
C-Passa-banda: rimuovono sia le alte
che le basse frequenze, preservando
una banda opportuna.
FILTRI ANALOGICI
Essendo sistemi lineari, nel dominio del tempo l’uscita del filtro è data
dalla convoluzione fra l’ingresso e la risposta impulsiva del filtro stesso.
Nel dominio della frequenza la trasformata dell’uscita è data dal
prodotto della trasformata dell’ingresso e quella del filtro. In figura è
mostrato il caso del filtro ideale passa-basso:
Risposta impulsiva h(t) del filtro:
hLP(t)=Wcsinc(Wct)/π, dove Wc=2πfc è
la frequenza di cutoff.
Funzione di trasferimento H(ω) del filtro
ideale passa-basso. HLP(ω)=1 per |ω|<Wc,
0 altrove.
Per il filtro ideale passa-alto si ha: hHP(t)= δ(t)- hLP(t) e HHP(ω)=1- HLP(ω)
Per il filtro ideale passa-banda si ha: hBP(t)= hHP(t)* hLP(t) e HBP(ω)= HHP(ω)·HLP(ω)
FILTRI DIGITALI
Sono descritti da equazioni alle differenze (essenzialmente equazioni
differenziali discretizzate). La forma generale è:
Dove x(k)=ingresso, y(k)=uscita. Ad esempio, per M=2, N=2, si ha:
I filtri digitali possono essere definiti dalla risposta impulsiva e dalla
somma di convoluzione:
Filtri FIR: la risposta impulsiva ha un numero finito di valori diversi da zero;
Filtri IIR: la risposta impulsiva ha un numero infinito di valori diversi da zero.
Utili per simulare filtri analogici utilizzando pochi parametri.
DA FILTRO DIGITALE A FUNZIONE
DI TRASFERIMENTO
La funzione di trasferimento per il sistema (filtro) digitale H(z) si può
ottenere dall’equazione alle differenze vista per la trasformata z. H(z) è il
rapporto fra la trasformata z dell’uscita, Y(z) e quella dell’ingresso X(z):
ESEMPI
ES.1: Trovare la risposta impulsiva del filtro FIR: y(k)=1/3x(k)+1/3x(k-1)+1/3x(k-2)
ES.2: Trovare la funzione di trasferimento del filtro IIR: y(k)-1/2y(k-1)=1/2x(k)
1
2
Entrambi i filtri sono passa-basso, ma con prestazioni molto inferiori a quelle del
filtro ideale mostrato in figura.
FILTRAGGIO DEL RUMORE
Le misure dei segnali biologici sono spesso “mescolate” a rumore di
misura. Molte classi di segnali biologici sono modellizzate come la somma
di una componente ideale priva di rumore, x(t) e un termine indipendente di
rumore n(t):
xi(t) = x(t) + ni(t)
Il segnale xi(t) corrisponde alla i-ma “prova” o “misura” del segnale.
Benché la componente deterministica x(t) sia fissa per ogni misura, il
termine di rumore n(t) rappresenta la variabilità intrinseca del segnale, che
può avere origini diverse.
Ad esempio, una elettrodo in una misura di ECG può registrare segnali
estranei a quello in esame, provenienti dai muscoli, polmoni ed anche
dall’elettronica interna allo strumento (ad es., un rumore a 60 Hz dovuto
all’alimentatore). Questi segnali costituiscono quindi il rumore presente sul
segnale ECG.
FILTRAGGIO DEL RUMORE
Tramite i filtri visti, possiamo separare il segnale dal rumore, a patto che i
rispettivi spettri non si sovrappongano. Questo in genere non accade con i
segnali biologici.
I segnali biologici sono in maggior parte periodici, ma, per la loro intrinseca
variabilità, è da prevedere la presenza di una qualche forma di rumore.
Un modo per calcolare le variabili cliniche di interesse è quello di riferirsi
alla media aritmetica, ma questo è spesso impossibile a causa del rumore
presente sulle singole misure.
In alternativa, si può calcolare la media delle misure effettuate in N prove
distinte xi:
x( t ) 
x( k ) 
N
1
N
 x( t )
1
N
 x( k )
i
TC
i 1
N
i
i 1
TD
FILTRAGGIO DEL RUMORE
Sostituendo nell’equazione precedente: xi(t)=x(t)+ni(t), si ha:
1
x( t )  x( t ) 
N
N
 n( t )  x( t )  ( t )
i
i 1
Se il termine di rumore n(t) è puramente aleatorio si dimostra che ε(t), che
contiene il contributo del rumore, tende a 0 per N. Per cui
x( t )  x( t )
per N grande, e ε(t) 0.
Questo risultato ci dice quindi che possiamo eliminare il rumore con una
semplice operazione di media su un numero elevato di prove. Molti sistemi di
misura per segnali biologici sono progettati per effettuare la media mentre
vengono raccolti i dati.
Per segnali intrinsecamente aleatori in genere è consigliabile effettuare
l’operazione di media in frequenza.
MEDIA DI VALORI DI PRESSIONE
Operazione di
media sul
segnale di
pressione
sanguigna del
bambino di 4
anni visto
MEDIA DI VALORI DI RISPOSTA
UDITIVA
Risposta uditiva
(segnale EEG) ad un
breve impulso sonoro
misurata sul lobo
temporale (Auditory
Breinstem Response,
ABR).
E’ evidente la
presenza di rumore
che maschera il
segnale reale. La
media su 1000 segnali
mostra invece
chiaramente la
componente di
risposta uditiva allo
stimolo.
SINUSOIDE + RUMORE
Dato il segnale:
x(k)=sin(π/4k)+n(k)
Scrivere una funzione
MATLAB che mostri
come l’operazione di
media (1, 10, 100 medie)
rimuova la componente
rumorosa e riveli il
segnale deterministico
sottostante.
k=1:64; %discrete time axis
x=zeros(100,64);
for i=1:100 %generating 100 signal trials
x(i,k)=sin(pi/4*k)+randn(1,64); %i-th trial
end
X1=x(1,:); %1 Averages
X10=mean(x(1:10,:)); %10 Averages
X100=mean(x); %100 Averages
subplot(311) %Plotting results - 1 Average
plot(k,X1,'k')
axis([1 64 -3 3])
title('1 Average')
ylabel('Amplitude')
subplot(312) %Plotting results - 10 Averages
plot(k,X10,'k')
axis([1 64 -3 3])
title('10 Averages')
ylabel('Amplitude')
subplot(313) %Plotting results - 100 Averages
plot(k,X100,'k')
axis([1 64 -3 3])
title('100 Average')
ylabel('Amplitude')
Script MATLAB
noise_removal.m