Beamforming in f
Home Su

 

2.                BEAMFORMING NEL DOMINIO DELLA FREQUENZA.

Discutiamo in questo capitolo come implementare in tempo reale il beamforming estendendolo anche per segnali a larga banda. Parlando del delay and sum beamforming abbiamo sempre supposto che il segnale trasportato dall’onda sia cosinusoidale, cioè un segnale monocromatrico. Se questa ipotesi cade, si può sempre pensare di dividere lo spettro del segnale in tante fettine e applicare il beamforming separatamente a ciascuna singola fettina. Questa è l’idea di fondo del beamforming nel dominio della frequenza.

I segnali prodotti dai microfoni sono segnali tempo-discreto, dunque lo strumento matematico che definisce lo spettro di questi segnali è la trasformata discreta di Fourier (DFT) e con questa lavoreremo. La DFT prevede che i segnali da trasformare siano di durata finita, dunque, per realizzare un filtraggio del segnale in tempo reale è necessario implementare l’algoritmo su di una finestra di durata D che scorre sui segnali di ingresso secondo una modalità del tipo overlap and save, molto utilizzata quando si realizzano in tempo reale algoritmi del campo del DSP.

In questo capitolo discuteremo prima della realizzazione del beamforming nel dominio della frequenza con segnali di durata finita, poi di come la finestra si deve sovrapporre ai segnali di ingresso.

2.1.         Beamforming  per segnali di durata finita.

 Indichiamo con si[n], per i=1,2,..,M , i segnali, di durata non finita, prodotti dagli M microfoni. Chiamiamo xi[n] i segnali ottenuti dagli si[n] finestrandoli :

xi[n] = si[n] f[n]              per  i = 1,2,..,M

dove f[n] indica la finestra rettangolare di durata D,

f[n] = 1                          per  0£ n £ D -1.

f[n] = 0                          altrove.

La DFT per i segnali xi [n] è definita:

Xi [k] =        per  k = 0,1,...,D-1.

                                      per  i = 1,2,...,M.

dove                              WD = exp (- j 2p/D).

Come noto, la Xi [k] e’ il campionamento della DTFT (trasformata tempo discreto di Fourier) della sequenza xi [n] sul cerchio unitario:

   per  k = 0,1,...,D-1.

Il ritardo nel delay and sum beamforming era ottenuto moltiplicando il fasore dell’ingresso per il termine:

  per  i = 1,2,..,M.                                (1)

Vediamo cosa succede se ad ogni bin della Xi [k] lo moltiplichiamo per la 1 in cui alla frequenza analogica f si sostituisce la frequenza digitale fck/D dove fc è la frequenza di campionamento del segnale. Con tale sostituzione la 1 diventa:

                     per  i = 1,2,...,M.

La DFT dell’uscita si ottiene:

Z[k] =                                                       (2)

Per le proprietà della DFT, il termine   e’ la DFT della sequenza xi [n] che ha subito una traslazione circolare di Di=r0 xi fc/c. Risulta:

.                                                        (3)

Se Di non è intero la traslazione circolare opera anche un ricampionamento del segnale:

Figura 2 . 1

 

2.2.         Beamforming attraverso lo schema overlap and save.

Nel beamforming, quando l’onda di segnale arriva dalla direzione di puntamento, i segnali che escono dai microfoni vengono ritardati di un opportuno ritardo in modo da trovarsi tutti in fase. Questo è sinteticamente riassunto nella successiva figura.

figura 2 . 2

Realizzando l’algoritmo attraverso DFT  il ritardo si produce attraverso la traslazione circolare introdotta dalla formula 3.

 

figura 2 . 3

 

 

Dalla figura 2.3 notiamo che realizzando il ritardo per mezzo di una traslazione circolare gli ultimi 5 campioni non sono correttamente allineati, dunque debbono essere scartati.

In generale, siccome i ritardi possono essere sia positivi che negativi si dovranno scartare i primi e gli ultimi N campioni dove N coincide con il massimo ritardo temporale. E’ ovvio che la durata della finestra deve essere almeno pari a 2N+1 campioni, perché altrimenti tutta l’uscita verrebbe scartata.

E’ necessario che la successione delle finestre di ingresso siano parzialmete sovrapposte di 4N campioni per fare in modo che concatenando le uscite nelle diverse finestre si ottiene la giusta sequenza di valori. ciò è quanto indicato in figura:

Figura 2 . 4

Quando i pesi wi sono funzioni dell’indice di frequenza k, questo schema non è più valido, infatti la 2 diventa :

                                                   (4)

e da questa non è possibile ricavare la 3. Possiamo pensare a z[n] come alla somma, su indice i, delle convoluzioni circolari tra l’antitrasformata di  (wi[n]) e xi[n]:

z[n] = wi[n] Ó xi[n].                                                         (5)

I pesi in frequenza realizzano un filtro sul segnale, cioè una convoluzione lineare che noi dobbiamo realizzare sfruttando la convoluzione circolare introdotta con la 4 e 5. Secondo lo schema overlap and save, se wi[n] è lungo P campioni dobbiamo finestrare il segnale con finestre lunghe D che si sovrappongono di P-1 campioni, come nella fig. 2.5.

 

Figura 2 . 5

Deve essere rispettato il vincolo che D>2(P-1) campioni, altrimenti tutti i campioni verranno scartati. La difficoltà di questa implementazione è proprio nell’imporre che  wi [n] rispetta tale vincolo.

 Delay and sum b.. Beamforming in f Frost