Быстрый расчет коэффициента фильтра IIR

#audio #signal-processing

Вопрос:

Я пишу код DSP в реальном времени, который буду использовать внутри встроенного устройства.

Я хочу реализовать там фильтр biquad с возможностью настройки параметров в реальном времени. Мне нужно найти способ, как найти коэффициенты для таких фильтров.

В идеальном сценарии мне нужно каким-то образом сохранить или найти коэффициенты для типов фильтров HP/BP/LP/Notch различных стадий (предположим, от 1 до 5 стадий биквадратов) с точным контролем полосы пропускания фильтра, Fc и усиления. Меня не очень волнует точная потеря полосы останова, используемая фаза и полином, а также пульсация (например, я согласен с тем, чтобы иметь BPF 3-го порядка с определенным BW и коэффициентом усиления, с любыми уровнями полосы останова, которые он может мне дать)

Что меня волнует, так это скорость (фильтр должен адаптировать Fc/BW в режиме реального времени), скорость обработки и память (я не могу выделить более ~300 Кб).

Каков наилучший подход для реализации такого?

Комментарии:

1. Быстрый -это сложный термин, который иногда вызывает сообщество SO. Я бы рекомендовал попробовать реализовать простой биквадрон и посмотреть, соответствует ли он вашим требованиям к скорости. Если это не так, то я бы добавил языковой тег и минимальный полный пример к вопросу, и вы должны получить лучший ответ.