Я рассчитываю БПФ от входа микрофона. Я заметил, что более низкие частоты, кажется, всегда имеют большую мощность (более высокий дБ), чем более высокие частоты.
- Я разрезал данные на 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 лучших частот без выигрыша по умолчанию.
Ответы:
Да, это очень ожидается. То, что вы видите, это « розовый » спектр, то есть постоянная энергия на относительную полосу пропускания, по сравнению с « белым », который является постоянной энергией на абсолютную полосу пропускания. Для розовых сигналов энергия между 1-2 кГц такая же, как и с 2-4 кГц (каждый представляет удвоение полосы пропускания или «октаву»).
Большинство естественных аудиосигналов (речь, музыка, фильмы и т. Д.) Имеют розовый цвет. Также большинство акустических фоновых шумов (шум микрофона, шум ОВК, колебания давления воздуха, общий фон) имеют тенденцию быть розовым или даже более искаженным в сторону низких частот.
Слуховые системы человека тоже работают таким образом. Во внутреннем ухе аудиосигналы разбиты на полосы постоянной относительной ширины полосы (называемые «критическими полосами»), которые примерно совпадают с третьим октавным спектром.
Лучший способ взглянуть на данные звукового спектра - это построить их на логарифмической шкале частот.
источник
На шаге 2 формула должна быть
input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/N));
гдеN
ваше количество выборок в буфере24576
.На шагах 4 и 5 я делаю усреднение по бинарным значениям по квадрату значений амплитуды, а не по значениям дБ. Скажем, у вас есть квадрат величины
[4,6]
. Их среднее значение5
,10*log10(5) ~= 6.99
. Среднее значение10*log10(4)
и10*log10(6)
есть6.90
.Первой проблемой может быть причина смещения в сторону низких частот, так как это вызовет спектральную утечку, а низкие частоты получат большее загрязнение от линии постоянного тока (что неизбежно является плохой оценкой). Вторая проблема, вероятно, не будет иметь никакого значения на низких частотах, но я думаю, что становится ближе к цели вашего измерения.
источник
fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]
1 / f шум возникает во многих физических, биологических и экономических системах. Некоторые исследователи описывают это как вездесущий.
Розовый шум (слева) и белый шум (справа) на спектрограмме БПФ с линейной частотой вертикальной оси (на типичном анализаторе аудиосигнала или аналогичного спектра розовый шум будет ровным, не наклонным вниз, а белый шум возрастает)
источник
У многих естественных звуков есть гармоники , поэтому будут более низкие основные частоты, а затем будет меньше энергии в более высоких кратных основных частотах. Может быть постоянное смещение, которое будет означать много энергии слева. Другое влияние - ваша функция управления окнами, которая искажает частотную характеристику.
Вы можете справиться со смещением постоянного тока, используя фильтр верхних частот. Простая реализация состоит в том, чтобы вычесть долгосрочное среднее из каждой выборки (РЕДАКТИРОВАТЬ: или еще проще, отбросить более низкие частоты, например, <50 Гц из вашего результата FFT). Вы также можете поэкспериментировать с различными оконными функциями. убедитесь (как указывает @mtrw), что вы правильно используете окно. Любые другие нелинейности в отклике могут быть исправлены путем измерения некоторого идеального входа и нормализации к этой кривой.
источник