Filtro di Wiener

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Il Filtro di Wiener è un filtro per l'elaborazione dei segnali su base statistica, proposto da Norbert Wiener negli anni 1940 e pubblicato nel 1949.

Il filtro viene oggi realizzato con tecniche digitali, ma può anche essere realizzato con sistemi analogici, come il prototipo costruito al MIT sulla base del progetto di Wiener.

Descrizione[modifica | modifica wikitesto]

In generale, l'obiettivo di un filtro è l'eliminazione del rumore presente in un segnale.

Tipicamente i filtri sono concepiti per una ben precisa risposta in frequenza e possono operare la separazione tra segnale e rumore a condizione che questi occupino diverse bande di frequenza. Il filtro di Wiener supera questa limitazione affrontando il problema del filtraggio con un approccio statistico. Si assume di avere conoscenza delle caratteristiche spettrali del segnale originale e del rumore, e si cerca il filtro LTI la cui uscita sia "il più vicina possibile" al segnale originale, indicando con questa espressione la minimizzazione di una prefissata misura dell'errore compiuto nell'operazione.

I filtri di Wiener sono caratterizzati dalle seguenti caratteristiche:

  1. Assunzioni: il segnale e il rumore additivo, ovvero che si somma al segnale, sono processi stocastici stazionari e lineari con caratteristiche spettrali note, o con autocorrelazione e mutua correlazione note.
  2. Condizioni: il filtro deve essere fisicamente realizzabile, ovvero la sua risposta (effetto) non può precedere temporalmente l'ingresso (causa). Essendo l'effetto successivo alla causa questi filtri vengono anche chiamati causali. La condizione di causalità può essere abbandonata; in questo caso si parla di filtri, o di soluzioni, non causali.
  3. Criteri prestazionali: minimizzazione dell'errore quadratico medio.

Questo filtro è usato frequentemente nel processo di deconvoluzione; per questo utilizzo vedi deconvoluzione di Wiener.

Cenni storici[modifica | modifica wikitesto]

Il filtro venne proposto da Norbert Wiener durante gli anni della seconda guerra mondiale, per rispondere alla necessità del governo USA di migliorare le capacità di tiro di un sistema di puntamento antiareo, basato sul radar. Si trattava di elaborare il segnale radar ricevuto, al fine di eliminare il rumore in esso contenuto e di stimare la posizione futura del bersaglio, verso la quale dirigere il tiro. Alla classica operazione di filtraggio del segnale (che non poteva però essere basata, in questo caso, sulla separazione delle frequenze) si aggiungeva quindi una nuova esigenza di predizione del suo futuro andamento, sulla base della sua storia passata. Questi due casi, apparentemente distinti, vennerono compresi da Wiener all'interno di un'unica teoria.

Wiener ricondusse alcuni aspetti matematici del problema ad una classe di equazioni integrali da lui già studiate nel 1931, in collaborazione con il matematico ed astrofisico austriaco Eberhardt Hopf (1902 - 1983)[1][2]. Il primo documento che descrive il filtro è del 1942, ma poiché Wiener lo aveva sviluppato per una applicazione militare, esso fu classificato e non poté circolare fino al 1949, quando ne fu permessa la divulgazione[3].

Nel 1941 Andrey Kolmogorov aveva pubblicato un lavoro equivalente sul problema della predizione, nel caso a tempo discreto[4], successivamente esteso al caso tempo continuo dal matematico russo M. Krejn a partire dal 1944. A sua volta, Kolmogorov si era basato su alcuni risultati dello statistico svedese H. Wold[5]. Tuttavia, Wiener aveva lavorato indipendentemente da questi precedenti, che non conosceva. Per questo motivo, il filtro viene spesso indicato come filtro di Wiener–Kolmogorov.

Il filtro di Wiener rappresenta la prima proposta di un filtro progettato su base statistica; successivamente ne sono nati molti altri, tra i quali il filtro di Kalman.

Impostazione del problema[modifica | modifica wikitesto]

L'ingresso di un filtro di Wiener si assume essere un segnale alterato da un rumore additivo . L'uscita è calcolata per mezzo del filtro usando la seguente convoluzione:

Wienerhopf.png
dove il simbolo " * " indica l'operazione di convoluzione e:

  • è il segnale originale da ricostruire il più fedelmente possibile in uscita
  • è il rumore
  • è il segnale stimato che speriamo sia uguale a
  • è il filtro di Wiener

L'errore è mentre l'errore quadratico è dove

  • è l'uscita desiderata del filtro
  • è l'errore

A seconda del valore di α si affronta un tipo di problema diverso:

  • Se allora il problema è detto di predizione
  • If allora il problema è detto di filtraggio
  • If allora il problema è detto di smoothing

Introducendo esplicitamente l'espressione dell'integrale di convoluzione, può essere scritto come: .

e pertanto il valore atteso dell'errore quadratico sarà

dove

  • è la funzione di autocorrelazione di
  • è la funzione di autocorrelazione di
  • è la funzione di correlazione mutua, o cross-correlazione di e

La ottima è quindi quella che minimizza .

Se il segnale e il rumore sono non correlati, ovvero la cross-correlazione è zero, l'espressione di semplifica in quanto

Soluzione stazionaria[modifica | modifica wikitesto]

Il filtro di Wiener ammette soluzione per due possibili casi: il caso in cui si voglia un filtro causale, e il caso in cui un filtro non causale sia accettabile. L'ultimo è più semplice, ma non si presta per applicazioni in tempo reale. L'obiettivo principale di Wiener era risolvere il caso in cui la condizione di causalità fosse valida.

Soluzione non causale[modifica | modifica wikitesto]

Posto che sia ottimale, allora l'equazione di minimo errore quadratico medio si riduce in

e la soluzione è l'inversa della trasformata di Laplace a due lati di .

Soluzione causale[modifica | modifica wikitesto]

Dove

  • è la parte causale di (cioè la parte di questa frazione avente una soluzione temporale positiva per trasformazione inversa di Laplace)
  • è la componente causale di (p.e. la trasformata inversa di Laplace di è non nulla solo se )
  • è la componente anti causale di (p.e. la trasformata inversa di Laplace è non nulla solo per t non negativo)

Questa espressione generale è complicata e necessita di una più dettagliata spiegazione. Per ottenere la soluzione per un caso specifico, bisogna seguire i seguenti passi:[6]

1. Si parte dallo spettro in forma razionale e lo si fattorizza nelle componenti causale e anti causale:

dove contiene tutti gli zeri e i poli nel semipiano sinistro (LHP) e contiene gli zeri e i poli nel semipiano (RHP). Si intendono semipiano destro e sinistro i due semipiani a sinistra e a destra dell'origine, essendo la retta verticale s=0 la frontiera dei due semipiani.

2. Si divide per si espande il risultato in frazioni parziali.

3. Si selezionano quei termini dell'espansione che hanno poli nel semipiano LHP, termini indicati con .

4. Si divide per . Il risultato è la funzione filtro di trasferimento desiderata

Filtro di Wiener FIR per serie discrete[modifica | modifica wikitesto]

Per ricavare i coefficienti del filtro di Wiener si considera un signale w[n] passato a un filtro di Wiener di ordine N con coefficienti . L'uscita del filtro, indicata con x[n], è data dall'espressione

L'errore residuo è indicato con e[n] e definito come e[n]=x[n]-s[n] (Vedi il corrispondente diagramma a blocchi). Il filtro di Wiener è concepito in maniera tale da minimizzare la deviazione standard (criterio MMSE), scritta concisamente nella maniera seguente:

dove indica l'operatore di valore atteso. In generale i coefficienti sono essere complessi e possono essere derivati anche nel caso in cui w[n] e s[n] sono complesse. Per semplicità si considera solo il caso in cui tutte queste quantità sono reali. La deviazione standard può essere riscritta come:

Per trovare il vettore che minimizza l'espressione sopra si calcola la sua derivata rispetto ai coefficienti

Se ai suppongono w[n] e s[n] stazionarie, si possono introdurre le seguenti sequenze , note rispettivamente come l'autocorrelazione di w[n] e la cross-correlazione tra w[n] e s[n], definite come segue

La derivata della MSE può dunque essere riscritta come (si noti che )

Imponendo la derivata uguale a zero si ottiene

che può essere riscritta in forma matriciale

Queste equazioni sono note come equazioni di Wiener-Hopf. La matrice che appare nell'equazione è una matrice di Toeplitz simmetrica. Queste matrici sono definite positive e dunque non singolari, per cui esiste una sola soluzione nella determinazione dei coefficienti del filtro di Wiener. Inoltre esiste un algoritmo efficiente per risolvere le equazioni di Wiener-Hopf noto come algoritmo di Levinson-Durbin[7].

Filtro di Wiener per il riconoscimento del Pile Up[modifica | modifica wikitesto]

Il filtro di Wiener è molto utile anche nel campo del riconoscimento di segnale, in particolare del Pile Up (sovrapposizione di due segnali nella stessa finestra temporale). Ecco come si esprime la funzione di trasferimento del filtro.

Si supponga di avere un sistema con una risposta r(t) al segnale unitario e un segnale non corrotto u(t) in ingresso (es: ). L'uscita s(t) del sistema sarà pertanto una convoluzione tra la funzione di risposta e il segnale di ingresso u(t):

che nel dominio di Fourier si riduce semplicemente a .

Nel caso reale invece l'uscita del sistema sarà un segnale corrotto c(t) = s(t) + n(t). La in questo caso sarà:

Lo scopo del Filtro di Wiener è quello di trovare un filtro tale per cui vale:

dove è la miglior stima di , ovvero minimizza la differenza quadratica tra U e U'. In formule equivale a minimizzare

Risolvendo si ottiene l'espressione cercata:

Se si considera la u(t) come una delta, l'espressione si semplifica:

Questo filtro può tornare molto utile nella ricerca di segnali, come per esempio in un algoritmo di trigger o riconoscimento di pattern, dato che la U' estrapolata rappresenta appunto una delta, quindi è facilmente riconoscibile.

Note[modifica | modifica wikitesto]

Bibliografia[modifica | modifica wikitesto]

  • Thomas Kailath, A View of Three Decades of Linear Filtering Theory, IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. IT-20, NO. 2, MARCH 1974
  • A. N. Kolmogorov, Sequenze stazionarie in spazi di Hilbert, (in russo), Boll. Univ. Mosca 1941 vol.2 n.6 1-40; poi tradotto in inglese in Kailath T. (a cura di) Linear least squares estimation Dowden, Hutchinson & Ross 1977
  • N. Wiener,Extrapolation, Interpolation, and Smoothing of Stationary Time Series. New York: John Wiley & Sons, 1949, ISBN 0-262-73005-7
  • Brown, Robert Grover and Patrick Y.C. Hwang, Introduction to Random Signals and Applied Kalman Filtering, terza edizione, 1996, New York: John Wiley & Sons, ISBN 0-471-12839-2

Voci correlate[modifica | modifica wikitesto]

Matematica Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica