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
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top