2016-11-24 10 views
0

Извиняюсь заранее, если мой вопрос не имеет никакого смысла. Я смущен, потому что мне трудно понять это. Это общий вопрос, на который мне нужно ответить за мой код, над которым я сейчас работаю.Как указать определенное количество fft-точек в частоте

У меня частота дискретизации 44,1 кГц, для аудиофайла (wav), на котором я хочу использовать БПФ. Если я прав, значит, есть 44100 очков за 1 секунду. Я выполнил правила теоремы Найквиста-Шеннона, в которой говорится, что мой fs/2> fmax. Я имею частотное разрешение 4096. Я определил переменную, то есть 300 Гц. Я хочу знать, сколько там очков.

ответ

4

Если вы имеете в виду, что размер FFT является 4096 и ваша частота дискретизации 44,1 кГц, то каждый бункер имеет разрешение 44100/4096 = 10.7666015625 Hz и 300 Гц синусоидальной волны будет иметь пик в бункере с индексом 4096*300/44100 = 27.863945578231293, поэтому на практике он будет иметь максимум в индексе 28 бункера с некоторой энергией в соседних ячейках. (Обратите внимание, что это использование общего соглашения индексов, начинающегося с 0, - если вы используете MATLAB, тогда индексы будут, скорее всего, 1 на основе, и вам необходимо будет компенсировать это.)

См. this useful answer для получения более подробного объяснения как индексы bin относятся к частоте.

 Смежные вопросы

  • Нет связанных вопросов^_^