Frost
Home Su

 

3.                BEAMFORMING ADATTATIVO: L’ALGORITMO DI FROST

Nel capitolo 1 avevamo introdotto un criterio di calcolo dei pesi w basato sulla ricerca del guadagno ottimo G. Questo criterio, classificato in letteratura come optimum beamforming , è basato sulla conoscenza a priori delle matrici R e Q, matrici di autocorrelazione del segnale e del rumore.

Il beamforming adattativo aumenta il guadagno dell’array senza alcuna conoscenza sul rumore, aggiustando i pesi w a partire dalla sola conoscenza dei dati in ingresso come rappresentato in figura 3.1.

Figura 3 . 1 Beamforming adattativo.

L’algoritmo di Frost si basa sull’idea di minimizzare la potenza totale di uscita, che è direttamente misurabile, sotto il vincolo di mantenere la risposta uniteria per segnali che arrivano dalla direzione di puntamento. In formule:

 

Minw wH R w         vincolato                      dH w = 1

 

dove d è il vettore di steering nella direzione di puntamento. Più in generale si può generalezzare e introdurre una matrice dei vincoli CH w = g, che, come minimo, deve contenere il vincolo dH w = 1. In C possono essere contenuti dei vincoli che introducono dei nulli in particolari direzioni o in generale dei vincoli sulla forma della risposta spaziale dell’array. Il problema posto diventa:

 

Minw wH R w         vincolato                      CH w = g

 

La matrice CH ha dimensionbe K ´ M dove assumiamo che il numero di vincoli K siano linearmente intipendenti e sia  K < M.

Calcoliamo il minimo con il metodo dei moltiplicatori di Lagrange : il problema vincolato si riconduce al calcolo del minimo della funzione :

 

f(w) =  wH R w + l1 v1 (w) + l2 v2 (w) + . . . + lK vK (w)

 

che si può scrivere:

 

f(w) =  wH R w + (CH w - g )H l

 

dove li ³ 0 sono i moltiplicatori di Lagrange, l è il vettore K´1 dei moltiplicatori, v i (w) sono i vincoli, cioè le righe dell’equazione CH w - g . La f(w) raggiunge il minimo per quel wopt tale che rende nullo il gradiente di f. E’ necessario calcolare D w f:

D w f =

Calcoliamo il gradiente per ciascun termine di f:

= ..

 

..+

 

=

 

=

Questa ultima formula è la K-esima riga del vettore M´1

(wHR)T + Rw =[1] R*w* + Rw = 2 Re (Rw).

 

=

 

 

=

 

=

Questa ultima formula è la K-esima riga del vettore M´1

 

j[ (wHR)T - Rw ] = j( R*w* - Rw) = 2  Im (Rw).

 

Risulta:

 

D w ( wH R w ) = 2 Re (Rw) + j 2  Im (Rw) = 2 Rw

 

Con formule altrettanto noiose di quelle viste sopra si calcola il gradiante del secondo termine di f:

 

D w (C* w - g )H l = C l

 

Il sistema di equazioni :

 

Þ                      

è composto da M + K equazioni, dunque può essere risolto rispetto a w e l ( rispettivamente M e K incognite). Ricavando w dalla prima e sostituendo nella seconda:

w = -  R-1 C l

-  CH R-1 C l = g

Ricavando l dalla seconda e sostituendo nella prima:

 

l = - 2 ( CH R-1 C )-1 g                      ( ip. sia ( CH R-1 C )-1invertibile)

w = R-1 C ( CH R-1 C )-1 g                                            (1)

 

E’ utile vedere w come un vettore di CM e decomporlo nei vettori:

 

w = wc + v

dove wc è la proiezione di w nel sottospazio delle colonne di C, (  Â(C) ), mentre v è la proiezione di w nello spazio ortigonale alle colonne di C, Â(C)^. L’algebra lineare dimostra che lo spazio ortogonale di Â(C) è lo spazio nullo o nucleo di CH  (  ( CH ) )[2]:

 

Â(C) =( ( CH ) )^.

 

Siccome la base di Â(C) è composta dalle K colonne di C ( per ipotesi le colonne di C sono linearmente indipendenti: rango di C = K), allora si può calcolare esplicitamente wc.

Figura 3 . 2 Scomposizione intuitiva di w nelle componenti wc e v.

Il problema può essere posto in questo modo: trovare x’ Î CK tale che wc = C x’ . Risulta    v = w - C x , ma   v   deve essere ortogonale a Â(C) e cioè  per ogni   y  Î Â(C)   deve essere  yH v = 0, oppure per ogni x Î CK vale (C x )H v = 0.

 

(C x )H ( w - C x’ ) = 0                     " x Î CK

xH ( CH w - CH C x’ ) = 0                 " x Î CK

 

Queste equazioni sono vere " x Î CK se e solo se :

 

CH w - CH C x’ = 0       Þ               CH C x’ = CH w

 

Si può dimostrare che se C è una matrice M´K di rango K allora la matrice CHC è una matrice K´K, hessiana e di rango K, dunque invertibile. Allora:

x’ = ( CH C )-1 CH w

 

Possiamo calcolare wc :

 

wc = C ( CH C )-1 CH w,                                                (2)

 

mentre

 

v = w - C ( CH C )-1 CH w .

 

Definita Pc = C (CH C )-1 CH , matrice di proiezione, risulta:

 

wc = Pc w

 

v =  ( I - Pc ) w

 

Sostituendo nella 2 il valore ottimo di w troviamo una nuova formula per wc :

 

wc = C ( CH C )-1 CH R-1 C (CH R-1 C)-1 g

 

wc = C ( CH C )-1 g

 

 

3.1.         L’algoritmo adattativo

 

E’ importante notare che wc non dipende dalla matrice R, il che equivale a dire che non dipende dai segnali in ingresso all’algoritmo, ma solo dai vincoli che abbiamo imposto. Possiamo intuire che comunque variamo v nello spazio  ( CH ) i vincoli imposti sono rispettati in modo esatto. Allora sembra conveniente adattare v in modo da minimizzare la potenza di uscita muovendolo nella direzione dell’antigradiente secondo l’algoritmo steepest descend. L’algoritmo di adattamento di Frost è dunque il seguente:

 

w( t + 1) = wc + ( I - Pc ) [ w( t ) - m R w( t ) ]                        (3)

 

m è il tasso di adattamento, mentre R w( t ) è il gradiente della potenza di uscita (wH R w). Il termine ( I - Pc) garantisce che w varia solo nella componente v così in ogni istante saranno rispettati i vincoli.

E’ scomodo che nella 3 compaia R, perché questa è difficile da stimare, allora si può adottare un approccio di tipo LMS in cui a R si sostituisce una sua stima. La più semplice : R ( t) = x (t) xH (t) , sostituendo nella 3

 

w( t + 1) = wc + ( I - Pc ) [ w( t ) - m x (t) xH (t)  w( t ) ]

 

w( t + 1) = wc + ( I - Pc ) [ w( t ) - m x (t) z*(t) ]                       (4)

 

La 4 è di più facile implementazione rispetto la 3. Frost dimostrò che l’algoritmo converge se il tasso di adattamento m verifica il vincolo:

 

3.2.         Prima applicazione dell’algoritmo di Frost

 

Consideriamo un array di tre microfoni disposti come i vertici di un triangolo equilatero di lato  , come gia avevamo studiato nel capitolo 1.

 

Figura 3 . 3 . Array triangolare di microfoni.

Ricordiamo il vettore di steering:

 

d(q) =

 

Imponiamo due vincoli:

·potenza di segnale unitaria per onde che incidono nella direzione q = p/2. dH (p/2 ) w = 1.

·potenza di segnale nulla per onde che arrivano dal centro O dell’array. Questo vincolo potrebbe avere senso se l’array è usato come microfoni in un telefono ‘viva voce’ e nel punto O è posto l’altoparlante del telefono. Siccome la onde dal punto O giungono in fase ai tre microfoni, tale vincolo si esprime imponendo che la somma dei pesi w1 + w2 + w3 sia nulla: [1 1 1] w = 0.

I due vincoli costruiscono le matrici C e g di seguito.

C =            g =

Dove si è indicato b = . Con le formule dimostrate sopra si calcolano:

wc =

Pc =

I - Pc  =

Secondo la formula 4 e le matrici sopra riportate calcoliamo l’algoritmo di adattamento dei pesi:

w01(t +1) = 0

w02(t +1) = ( w02(t ) - w03 (t ) ) + m ( x3 (t ) – x2 (t ) ) z*(t )

w03(t +1) = - w02 (t +1)


[1]Ricordiamo che R è una matrice hermitiana R = RH

[2]Sia C una matrice complessa M´K,  con K < M e rango K.

Si definisce spazio delle colonne di C  Â(C) il sottospazio vettoriale di tutti gli y Î CM : y = C x  " x Î CK. Si dimostra che la dimensione di Â(C) è K.

Si definisce spazio nullo di CH,  ( CH ), ( detto anche spazio nullo sinistro di C) il sottospazio vettoriale di tutti gli x Î CM : CH x = 0. Si dimostra che la dimensione di  ( CH ) è M-K.

Teorema fondamentale dell’algebra lineare Â(C) =( ( CH ) )^.