Complementi di DSP

Principi della FFT

La g in tempo reale implica che vengano analizzati un numero minimo di campioni; non avrebbe senso effettuare la g di un singolo campione, quale sarebbe la sua frequenza?

Consideriamo di prendere una finestra di campioni pari a 1024 campioni (potenza di 2); questa finestra viene detta window (o frame) size.

Se effettuo la g su questa finestra è come se la effettuassi su un segnale spalmato su 1024 campioni, che ad una frequenza di campionamento di 44100 Hz durerebbe.

1/44100 ∙1024 = 0.023 𝑠 a cui corrisponde una frequenza fondamentale di 1/𝑇 = 1/0.023 = 43.06𝐻𝑧

Questo significa che si effettua l’analisi di Fourier su un segnale che dura 0.023 s (che per Fourier deve ripetersi periodicamente) quindi cioè la frequenza più piccola che presenta il segnale dentro la window size analizzato è di 43,06 Hz

Quando si effe:ua la g, essa genera una coppia di valori (coeff di Fourier) per ogni frequenza multipla della frequenza fondamentale; si ha una coppia di coefficiente di Fourier per f = 0Hz; la coppia successiva f = 43.06 Hz e sicuramente per la max frequenza possibile cioè la frequenza di Nyquist.

𝑓= 𝑓↓𝑐 /2 = 44100/2 =22050

Quindi la banda da 0 Hz a 22050 viene ripartita in zone multiple di f = 43.06 Hz. Questa frequenza detta frequenza fondamentale della g, può essere considerata il “passo” con il quale la g ripartisce lo spettro.

In totale si avranno 22050/43.066 =512 bande e quindi 512 coppie di coefficienO di Fourier fino a fc/2;

I valori dei coeff di Fourier per le frequenze da fc/2 a fc (altre 512 bande) non interessano perché riguardano frequenze al di la di fc/2.

In generale data una frequenza di campionamento e una window size la frequenza minima che si può analizzare è data dalla formula f0 = 𝑓↓𝑐 /𝑤𝑖𝑛𝑑𝑜𝑤_𝑠𝑖𝑧𝑒 

Nel nostro caso 44100/43.066 = 1024.15 bande, che vengono idenOficate con numeri interi progressivi. Queste bande vengono de:e bins e il numero di bins coincide con il numero di campioni della window-size.

Nell’analisi di Fourier si terrà però conto solo dei primi 512 bins (cioè delle prime 512 coppie di coeff. di Fourier) poiché sono relativi alla porzione di spettro tra 0 Hz e fc/2.

Quindi una g produrrà per ogni bin una coppia di valori che rappresentano i coefficienti di Fourier (e quindi segnalano la presenza di energia) per ogni specifico bin.

Per estrarre la quantità di energia è conveniente passare alle coordinate polari, che rappresentano un numero complesso in termini di ampiezza e fase.

In Max-msp è possibile scrivere questi valori (ampiezza e fase) per ogni bin su un buffer e quindi visualizzarne il contenuto.

Site was started with Mobirise