2017-03-24 1 views
0

Je suis en train d'enregistrer l'audio en utilisant l'API audiorecord, et je suis en train de convertir domaine temporel au domaine de fréquence. Si je veux enregistrer l'audio toutes les 10 ms que ce qui est le tampon et la taille FFT?Quelle est la taille de la mémoire tampon audio et la taille FFT pour l'enregistrement de l'audio toutes les 10 ms?

audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 
      44100, AudioFormat.CHANNEL_IN_MONO, 
      AudioFormat.ENCODING_PCM_16BIT, what is the buffersize?); 

short = new short[what is the buffer size ?]; 
int fftSize = ?; 

Répondre

0

Si votre fréquence d'échantillonnage est de 44,1 kHz, 10 ms seront 0,01 * 44100 = 441 échantillons.

Si votre bibliothèque FFT ne supporte que des puissances de 2 tailles alors vous pouvez utiliser N = 512 comme taille de FFT et soit pad par des zéros ou utiliser des fenêtres qui se chevauchent.

+0

merci pour la réponse fft taille 512 alors est-ce correct audioRecord = nouveau AudioRecord (MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 512 (0r) 2 * 512); – Siddharthan