2013-04-29 3 views
3

Я хотел бы, чтобы генерировать сигналы, которые показывают низкие, средние и высокие частоты вместе: ALA Traktor для Ipad http://www.dawsons.co.uk/blog/wp-content/uploads/2013/02/TRAKTOR_DJ_main-2_L.jpgFrequency-сплит осциллограмм

мне удалось получить частотные данные аудио с использованием FFT, затем подвести итоги амплитуды в бункерах на основе частотных диапазонов (низкий: 0 - 300 Гц, середина: 300 - 2000 Гц, высокий: 2000 Гц +), но при построении они не похожи на обычный RMS-график одного и того же звука.

Может кто-нибудь, пожалуйста, дайте мне указатель на то, как генерируются сигналы Traktor? Большое спасибо!

+1

@learnvst правильно, что фильтрация - лучший способ сделать это. Но, если вам понадобится FFT в будущем, я настоятельно рекомендую Kiss FFT (http://sourceforge.net/projects/kissfft/files/kissfft/) Марка Боргердинга. Гораздо проще работать с FFTW и более чем достаточно быстро для любого возможного аудио приложения. – mtrw

+0

Вы уверены, что это то, что показывает трейтор? Мне кажется, что это показывает пик, RMS и что-то еще (abs-mean). –

+0

Im довольно уверен, что толстая линия низких частот - это бас, а внешний вид выглядит как RMS. Средний, который я предполагаю, - это частоты выше баса, но это предположение, поскольку я никогда не использовал версию iPad :) – Val

ответ

6

Я бы не использовал данные FFT, чтобы выполнить такую ​​простую работу. Вместо этого рассмотрите возможность запуска входного сигнала через 3 простых временных фильтра IIR, которые разделяют информацию на сигналы с низким, средним и высоким. Это приводит к 3 сигналам временной области, которые легко построить. Преимущество такого подхода заключается в том, что вам не нужно беспокоиться об обратном процессе БПФ, который даст вам ваши формы сигнала временной области из каждой группы. Он также должен быть менее интенсивным, поскольку вы делаете все во временной области.

Существует один простой код для полосового фильтра Баттерворта 2-го порядка, содержащегося в одном из моих репозиториев github, примерно по строке 120 of this file, которую вы можете использовать в качестве начальной точки.

+0

Спасибо, Ник, я пойду, реализую это :) – Val

+1

Подробнее о том, почему БПФ не подходит: http://blog.bjornroche.com/2012/08/why-eq-is-done-in-time- domain.html и учебник по базовому звуковому эквалайзеру: http://blog.bjornroche.com/2012/08/basic-audio-eqs.html –

+0

Хорошее сообщение в блоге Бьорн, жаль, что я не нашел его раньше! – Val

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