Calcolo della derivata levigata di un segnale usando la differenza con passo più grande = contorto con finestra rettangolare


9

Ho un segnale campionato a dove i = 0..n-1. Voglio trovare la prima derivata del segnale: f '(t).Δt:fi(ti=iΔt)

Il mio primo pensiero è stato quello di stimarlo con una differenza centrale:

f(ti)=f(ti+1)f(ti1)2Δt

Tuttavia, il segnale può avere un sacco di rumore ad alta frequenza che può causare fluttuazioni rapide in f '. Immagino che la cosa giusta potrebbe essere appianare il segnale contorcendosi con una funzione di finestra, ad esempio Hann, e quindi trovare la derivata dalle differenze.

Un collega ha suggerito un modo più rapido per trovare una stima uniforme della derivata: utilizzare una differenza centrale su 2n campioni, dove n >> 1:

f(ti)=f(ti+n)f(tin)2nΔt

Questo sarebbe ovviamente più veloce dal punto di vista computazionale rispetto alla prima convoluzione con una funzione finestra, ma è una buona soluzione?

Se formiamo la somma:

S=2Δt[f(tin+1)+f(tin+2)+..+f(ti+n1)]

ed espandi ogni derivata della differenza centrale con step :Δt

S=f(tin+2)f(tin)+f(tin+3)f(tin+2)+..+f(ti+n)f(ti+n2)

tutti i termini tranne due cancellano:

S=f(ti+n)f(tin)=2nΔtf(ti)

Perciò:

f(ti)=1n[f(tin+1)+f(tin+2)+..+f(ti+n1)]

Quindi, prendere la differenza centrale su 2n campioni equivale a contornare prima una finestra rettangolare di dimensioni 2n - 2 e quindi prendere una differenza centrale su +/- 1 campione.

Quanto è "cattivo" levigare con una finestra rettangolare?

Se prendiamo la FFT questo provocherà "squilli", ma non è necessario prendere la FFT.

Grazie in anticipo per le risposte!

Risposte:


4

Questa è una domanda difficile da gestire in generale. Il livellamento con una finestra rettangolare viene sempre utilizzato (spesso chiamato "media mobile"), quindi non è necessariamente un problema. Non sono sicuro a quale squillo ti riferisci, forse ai lati della risposta in frequenza della finestra rettangolare.

La differenziazione è intrinsecamente un'operazione passa-alto; il differenziatore ideale a tempo continuo ha una funzione di trasferimento di:

H(s)=s

In modo che la sua risposta di magnitudo sia:

|H(jω)|=ω

Il guadagno di un differenziatore aumenta quindi monotonicamente con la frequenza. Se il tuo segnale contiene rumore ad alta frequenza, potrebbe essere amplificato applicando un differenziatore. Per combattere questo, sono evidenti due approcci:

  • Progettare un filtro differenziatore più sofisticato che abbia la risposta di magnitudine lineare desiderata sulla parte della banda che copre il segnale di interesse, quindi attenua nettamente le frequenze più alte. È possibile progettare un filtro di questo tipo utilizzando, ad esempio, i metodi dei minimi quadrati o il metodo di campionamento della frequenza.

  • Utilizzare un approccio a cascata in cui per prima cosa è possibile eliminare tutto il rumore ad alta frequenza che è possibile utilizzare un filtro passa-basso, quindi seguire con il differenziatore. La copertura in frequenza del differenziatore non deve essere così stretta poiché il filtro passa-basso eliminerà il rumore fuori banda.

I metodi dovrebbero essere approssimativamente equivalenti se si utilizzano filtri lineari; potresti pensare al primo approccio a filtro singolo solo come una cascata di un differenziatore e un filtro passa-basso. Come hai notato, l'approccio della differenza centrale può essere modellato in questo modo. È difficile per chiunque dire che è "cattivo" senza alcuna conoscenza della tua applicazione. Il mio pensiero principale sarebbe che è "cattivo" se l'operazione di smoothing attenua in modo tangibile il tuo segnale di interesse, in modo tale che la stima derivata non sia più utile. Tuttavia, se i parametri del segnale sono tali che è possibile attenuare il rumore senza distorcere notevolmente il segnale (ovvero se il segnale è ben sovracampionato), allora potrebbe essere una vittoria.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.