Vai al contenuto
Elaborazione Numerica dei Segnali

Filtri adattativi: Wiener, LMS e cancellazione di rumore ed eco

Equazioni normali e principio di ortogonalità dimostrati, algoritmo LMS come discesa del gradiente, condizione di convergenza dimostrata, LMS normalizzato, cancellazione di rumore ed eco, equalizzazione.

I filtri visti finora hanno coefficienti fissi, calcolati una volta dalle specifiche. Ma spesso il segnale e il disturbo cambiano nel tempo, o non si conoscono in anticipo: l’eco di una telefonata dipende dalla stanza, il canale di un modem cambia con la linea, il rumore di un motore con i giri. Un filtro adattativo aggiorna i propri coefficienti a ogni campione per minimizzare un errore. In questa lezione ricaviamo il filtro di Wiener con il principio di ortogonalità, l’algoritmo LMS come discesa del gradiente con la dimostrazione della condizione di convergenza, la versione normalizzata e le applicazioni.

Il problema

Un filtro FIR con coefficienti w = (w_0, \dots, w_{N-1})^T riceve il vettore degli ultimi N campioni d’ingresso x[n] = (x[n], \dots, x[n-N+1])^T e produce y[n] = w^Tx[n]. C’è un segnale desiderato d[n], e l’errore è e[n] = d[n] - y[n]. Si cercano i coefficienti che minimizzano l’errore quadratico medio J(w) = E[e^2[n]].

Il filtro di Wiener

Sviluppando il quadrato, con la matrice di autocorrelazione dell’ingresso R = E[x\,x^T] e il vettore di correlazione incrociata p = E[d\,x]:

    \[ J(w) = E[d^2] - 2p^Tw + w^TRw \]

È una funzione quadratica dei coefficienti, una “conca” con un solo minimo.

Teorema. I coefficienti ottimi soddisfano le equazioni normali R\,w_o = p, e nel punto ottimo l’errore è scorrelato da ogni campione d’ingresso: E[e\,x] = 0.

Dimostrazione. Il gradiente di J rispetto a w è \nabla J = -2p + 2Rw. Il minimo di una funzione quadratica convessa (R è semidefinita positiva) è dove il gradiente si annulla, Rw_o = p. Inoltre E[e\,x] = E[(d - x^Tw)x] = p - Rw, che in w_o è zero. ∎

Il secondo risultato è il principio di ortogonalità: l’errore ottimo non contiene più nulla che si possa prevedere a partire dall’ingresso. Il filtro di Wiener richiede però di conoscere R e p e di risolvere un sistema lineare, e se le statistiche cambiano bisogna ricominciare.

L’algoritmo LMS

L’idea di Widrow e Hoff (1960) è scendere lungo il gradiente un passo alla volta, usando al posto del gradiente vero, che richiederebbe le medie statistiche, la sua stima istantanea. Sostituendo R e p con x\,x^T e d\,x, il gradiente stimato è -2(d - x^Tw)x = -2e\,x, e il passo di discesa diventa

    \[ w[n+1] = w[n] + \mu\,e[n]\,x[n] \]

con il passo di adattamento \mu (il fattore 2 è assorbito in \mu). Ogni coefficiente si corregge in proporzione all’errore e al campione d’ingresso che gli corrisponde. Il costo è di circa 2N moltiplicazioni per campione: lo stesso ordine del filtro.

La convergenza

Teorema. Con ingressi stazionari e indipendenti tra un passo e l’altro, i coefficienti LMS convergono in media alla soluzione di Wiener se e solo se

    \[ 0 \lt  \mu \lt  \frac{2}{\lambda_{max}} \]

dove \lambda_{max} è il massimo autovalore di R.

Dimostrazione. Sia v[n] = w[n] - w_o lo scostamento dall’ottimo. Facendo la media dell’aggiornamento, con l’ipotesi di indipendenza E[x\,x^Tw] = R\,E[w], si ottiene E[w[n+1]] = E[w[n]] + \mu(p - R\,E[w[n]]), cioè, usando p = Rw_o,

    \[ E[v[n+1]] = (I - \mu R)\,E[v[n]] \]

R è simmetrica, R = Q\Lambda Q^T con Q ortogonale; nelle coordinate Q^Tv le componenti evolvono separatamente come (1 - \mu\lambda_i)^n. Tendono a zero se e solo se |1 - \mu\lambda_i| \lt  1 per ogni i, cioè 0 \lt  \mu \lt  2/\lambda_i; la condizione più restrittiva è quella del massimo autovalore. ∎

Nella pratica si usa la stima \lambda_{max} \le \mathrm{tr}\,R = N\sigma_x^2, facile da misurare: \mu \lt  2/(N\sigma_x^2). La velocità di convergenza è dettata invece dal minimo autovalore: se gli autovalori sono molto diversi (ingresso molto colorato), l’LMS converge lentamente lungo alcune direzioni. Un \mu grande converge in fretta ma lascia i coefficienti “agitati” attorno all’ottimo (il disadattamento, un eccesso di errore); un \mu piccolo è preciso ma lento a seguire i cambiamenti.

L’LMS normalizzato

Se la potenza dell’ingresso varia, un \mu fisso diventa troppo grande o troppo piccolo. L’NLMS divide il passo per l’energia corrente dei campioni:

    \[ w[n+1] = w[n] + \frac{\tilde\mu}{\varepsilon + \|x[n]\|^2}\,e[n]\,x[n],\qquad 0 \lt  \tilde\mu \lt  2 \]

con \varepsilon piccolo per evitare divisioni per zero. È la versione usata quasi sempre, per esempio nei cancellatori d’eco. Algoritmi più costosi come l’RLS (minimi quadrati ricorsivi) convergono molto più in fretta a prezzo di N^2 operazioni per campione, e il filtro di Kalman ne è la generalizzazione per sistemi descritti nello spazio degli stati.

Le applicazioni

Cancellatore adattativo di rumore con algoritmo LMS
Il segnale desiderato d contiene il segnale utile s più un rumore v. Un secondo sensore misura un riferimento x correlato al rumore ma non al segnale. Il filtro adattativo w stima il rumore dal riferimento e lo sottrae; l’errore e, che è il segnale ripulito, guida l’aggiornamento dei coefficienti.
  • Cancellazione del rumore. Un microfono raccoglie voce più rumore, un secondo microfono raccoglie solo il rumore (il riferimento). Il filtro impara la trasformazione tra i due rumori e la sottrae: per il principio di ortogonalità l’errore minimo è proprio la voce, che non è correlata al riferimento. Le cuffie a cancellazione di rumore attiva ne usano una variante.
  • Cancellazione d’eco. Nei vivavoce e nelle videochiamate l’altoparlante rientra nel microfono. Il filtro, con la voce remota come riferimento, stima il percorso dell’eco nella stanza (centinaia di millisecondi, migliaia di coefficienti) e lo toglie.
  • Equalizzazione. In un modem o in un ricevitore radio, il filtro compensa la distorsione del canale imparando da una sequenza nota, poi continua seguendo le decisioni del ricevitore.
  • Identificazione. Messo in parallelo a un sistema sconosciuto, con lo stesso ingresso, il filtro converge alla sua risposta all’impulso: si usa per misurare acustiche, canali e processi.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x