Differenza di ampiezza dalla stessa fonte tramite FFT
-
24-09-2019 - |
Domanda
Ho una domanda riguardo all'uso del FFT. Utilizzando la funzione getBand(int i)
con Minim posso estrarre l'ampiezza di una specifica frequenza e fare praticamente Mappe di esso. Funziona alla grande.
Tuttavia, questo è un altro di una domanda curiosità. Quando guardo i valori estratti dal suonare la stessa canzone due volte utilizzando la stessa frequenza (così l'ampiezza dovrebbe essere identica), ma io ottenere valori molto diversi - perché è questo
0.0,0.0,0.0,0.0,0.0,0.08706585,0.23708777,0.83046436,0.74603105,0.30447206
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08706585,0.4790409,0.9608221,0.83046436,0.74603105
Soluzione
Sei sicuro che gli ingressi sono esattamente le stesse in entrambi i casi? Se stai solo prendendo un segmento casuale di una canzone allora l'uscita di una FFT sarà molto diverso per i diversi punti di partenza nella canzone.
Altri suggerimenti
La decodifica mp3 potrebbe essere friabile e / o lead-in buffer della routine FFT potrebbe essere flakey, (differente lunghezza di silenzio precede serie). In questo caso sembra che il lead-in è di circa 2 punti maggiore nel 2 ° uscita.
Quindi, se l'intervallo di tempo in cui vengono eseguite le FFT è più lungo del formato della finestra FFT, una differenza di lead-in può causare le finestre FFT per atterrare su molto diverse parti della serie, che potrebbe spiegare il molto valori diversi in seguito nelle uscite.
La situazione dovrebbe essere più chiaro se è possibile aumentare la 'risoluzione temporale' (quantità di FFT eseguite per ogni dato momento) -o aumentare le dimensioni della finestra FFT, in modo che le misure FFT arent fatto scarsamente. Idealmente essi dovrebbero sovrapporsi prima che potessimo aspettarci per abbinare un modello tra le scansioni fatte al passo.