Как реализовать эквалайзер

Я знаю, что есть много вопросов об эквалайзерах, но я не получил то, что искал. То, что я хочу сделать, это эквалайзер для изменения аудиосэмплов таким образом, как:

equalizer.eqAudio(audiosamples, band, gain)

Я не уверен, что это именно тот интерфейс, который я хочу, потому что я мало знаю о DSP с точки зрения реализуя их (я использовал фильтры, ограничители, компрессоры, но не сделал их).

Гугля об этом, я прочитал, что я должен сделать БПФ для выборок, чтобы получить данные по частотным диапазонам вместо амплитуды, обработать их так, как я хочу, а затем сделать инверсию БПФ, чтобы я получил результат в аудиосэмплах снова. Я искал реализацию этого FFT и нашел JTransform для Java. Эта библиотека имеет реализацию алгоритма, связанного с БПФ, называемого дискретным косинусным преобразованием (DCT).

Мои вопросы:

  • Хорошо, я в правильном направлении?
  • Поскольку FFT дает мне данные о частоте, я должен перейти к алгоритму FFT a кусок образцов. Насколько большой этот кусок должен быть?
  • Есть ли хорошая книга о программировании DSP, которая объясняет эквалайзеры?

Спасибо!

8
задан leonbloy 11 January 2013 в 04:06
поделиться