Я рассчитываю БПФ от входа микрофона. Я заметил, что более низкие частоты, кажется, всегда имеют большую мощность (более высокий дБ), чем более высокие частоты.
- Я разрезал данные на 24576 байт (4096 * 6).
- Применить окно Хемминга:
input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/fs));
- Запустите его через FFTW
Process1D()
. - Преобразовать из комплексных чисел:
output[i] = 10.0 * Math.Log10((fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]));
- В среднем из 6 значений получается полное БПФ размером 4096 байт.
- Нарисуйте красивую картинку (цвета сопоставлены с палитрой).
Усреднение (п. 5) выполняется для снижения шума БПФ.
Как показано на рисунке как со звуком, так и с выключенным микрофоном, на низких частотах больше энергии (и больше шума). Это указывает на то, что проблема не только в микрофоне / сабе.
Мои вопросы:
1. Ожидается ли это? Почему?
2. Любой стандартный способ исправить это? Похоже, что какая-то магия Math.Tan () может поднять его туда, где он и должен.
Моя цель - определить 5 лучших частот без выигрыша по умолчанию.