@ ilviandante
mima85 ha scritto:
esegui la trasformata di ogni segmento e poi, mettendo per così dire "in fila" i risultati delle FFT di ogni segmento
ciao, in merito al tuo intervento: quando fai l'la FFT ti ritrovi con un vettore vec(re,im), come determini la frequenza/ampiezza?
Leggevo che per un campionamento a 44100 Hz e segmenti (o finestre) da 2048 campioni si calcola:
frequenza=numerosegmento*44100/2048
dove numerosegmento 0,1,2,3,4,5,6,7 fino a 44100:2048=21 segmenti
Data una frequenza di campionamento di 44'100 Hz, i 2048 punti del tuo vettore in uscita dalla FFT rappresentano le frequenze da 0 fino a fcampionamento / 2, quindi nel nostro caso fino a 22'050 Hz, come da teorema di Nyquist.
Per calcolare la frequenza rappresentata da ogni punto del vettore, si ha f = n * 22'050 / 2048, dove n è l'indice di ognuno dei 2048 punti del tuo vettore e non il numero di segmento. Il valore di ognuno dei 2048 punti invece è l'intensità di quella banda di frequenza, dove nel nostro caso ogni banda avrà una larghezza di circa 10.7 Hz. Quindi il primo punto rappresenta la banda tra 0 e 10.7 Hz, il secondo la banda tra 10.7 Hz e 21.4 Hz, il terzo la banda tra 21.4 Hz e 32.1 Hz e via dicendo, fino ad arrivare ai 22.05 KHz della 2048esima banda.
Se tu prendi quei 2048 punti e ne fai un grafico in Excel, otterrai il grafico dello spettro di frequenze di quello spezzone di campione.