General Eq (2nd order) Slew Ext-(ADAU145x)
Блок General (2nd-Order) Slew Ext предоставляет доступ к широкому спектру алгоритмов фильтров 2-го порядка (биквадратных). Время слейва (slew) может быть задано модулю через внешний управляющий пин в секундах (0-1) для плавного перехода от начального набора коэффициентов к целевому значению при изменении любого параметра фильтра.
- Доступные типы фильтров:
- Параметрический (Parametric)
- Шельфовый (Shelving)
- Универсальный фильтр верхних частот (General High-Pass)
- Универсальный фильтр нижних частот (General Low-Pass)
- Универсальный полосовой фильтр (General Band-Pass)
- Универсальный режекторный фильтр (General Band-Stop)
- Фильтр Баттерворта нижних/верхних частот (Butterworth Low-Pass / High-Pass)
- Фильтр Бесселя нижних/верхних частот (Bessel Low-Pass / High-Pass)
- Регулятор тембра (Tone Control)
- Фильтр 1-го порядка нижних/верхних частот (1st-Order Low-Pass / High-Pass)
- Всепропускающий фильтр (All-pass)
- Фильтр с подъёмом АЧХ (Peaking)
- Режекторный фильтр (Notch)
- Фильтр Чебышева нижних/верхних частот (Chebyshev Low-Pass / High-Pass)
Функция слейва (slewing) добавлена для плавного перехода от одного набора коэффициентов фильтра к другому при изменении параметров фильтра. Слейв происходит приблизительно за время слейва, заданное пользователем.
Время слейва может быть задано путем подачи значения
на управляющий пин. Параметр
определяет скорость слейва. При увеличении количества каскадов фильтра к модулю добавляется новый управляющий пин для значения
для каждого каскада. Вычисление слейва всегда выполняется в одинарной точности.
Чтобы открыть окно управления фильтром, нажмите на кнопку-иконку:
Выберите желаемый тип фильтра из раскрывающегося списка. Элементы управления фильтром и изображение кнопки-иконки изменятся, чтобы отразить выбранный тип фильтра.
Алгоритмы этого блока используют биквадратные конструкции фильтров (Прямая форма I), основанные на работе Роберта Бристоу-Джонсона в этой области.
общие переменные:
Обратите внимание, что коэффициенты b0 и b2 для фильтра верхних частот, показанного ниже, инвертированы по сравнению с тем, что хранится в RAM. Правильные уравнения для b0, b1 и b2 для фильтра верхних частот следующие:
b0 = -(1 + cos(ω0)) * gainLinear / 2
b1 = -(1 + cos(ω0)) * gainLinear
b2 = -(1 + cos(ω0)) * gainLinear / 2
Обратите внимание, что знаки минус у значений b0 и b2 ошибочны для фильтров верхних частот Баттерворта и Бесселя. Их не следует учитывать. См. https://ez.analog.com/message/4769
Вышеуказанная функция слейва реализует RC-слейв. Параметр
рассчитывается на основе постоянной времени слейва. Вычисления для слейва коэффициентов фильтра выполняются на DSP.
Для всех вышеперечисленных фильтров коэффициенты делятся на a0, нормализуя их и делая a0 = 1, так что необходимо хранить только 5 коэффициентов. В реальной реализации на DSP, когда коэффициенты сохраняются в parameter RAM, a1 и a2 должны быть инвертированы. Это делается автоматически, в программном обеспечении, перед записью параметров в память.
Q отображается со скорректированным значением (от классического определения в электротехнике), так что подъём на N dB с последующим срезом на N dB при одинаковых Q и f0/Fs дает точно плоский фильтр с единичным усилением или «провод». Это равно A*Q, где A = 10^(dBgain/40).
Примечание: Некоторые фильтры General 2nd order (те, что в дереве Type2) основаны на реализации Прямой формы II, которая используется в следующем HW ADSP-215xx & SC5xx. Пожалуйста, см. изображение ниже.




