Это старая версия документа!
Содержание
Универсальные фильтры
- Универсальный фильтр 2-го порядка
- Расчет коэффициентов на DSP (ADAU145X)
——————————————————————————————————
1. Универсальный фильтр 2-го порядка

Блок «Универсальные фильтры (2-го порядка)» предоставляет доступ к широкому спектру алгоритмов фильтров 2-го порядка (биквадратных). Расчет коэффициентов выполняется в контроллере.
- Доступны следующие типы фильтров:
- Параметрический (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)
Чтобы открыть окно управления фильтром, нажмите на кнопку-иконку:
Выберите желаемый тип фильтра из раскрывающегося списка. Элементы управления фильтром и изображение на кнопке-иконке изменятся в соответствии с выбранным типом фильтра.

Алгоритмы этого блока используют биквадратные схемы фильтров (DF1), основанные на работе Роберта Бристоу-Джонсона в этой области.
общие переменные:
Обратите внимание, что коэффициенты 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
Для всех вышеуказанных фильтров коэффициенты делятся на a0, нормализуя их и делая a0 = 1, так что необходимо хранить только 5 коэффициентов. В реальной реализации на DSP, когда коэффициенты сохраняются в параметрической RAM, a1 и a2 необходимо инвертировать. SigmaStudio выполняет эту операцию автоматически, в программном обеспечении, перед записью параметров в память DSP. Микроконтроллеры должны инвертировать a1 и a2 перед записью новых коэффициентов в память DSP.
По умолчанию Q отображается со значением, скорректированным (от классического определения в EE), так что подъем на N dB с последующим срезом на N dB при одинаковых Q и f0/Fs дает точно плоский фильтр с единичным усилением или «прямой провод». Это равно A*Q, где A = 10^(dBgain/40).
Версию Q «Classic EQ» можно дополнительно отобразить, нажав на маленькую круглую кнопку рядом с элементом управления Q.
2. Расчет коэффициентов на DSP
Блок «Универсальные фильтры (2-го порядка)» предоставляет доступ к широкому спектру алгоритмов фильтров 2-го порядка (биквадратных). Расчет коэффициентов выполняется в контроллере.
- Доступны следующие типы фильтров:
- Параметрический (Parametric)
- Шельфовый (Shelving)
- Универсальный фильтр верхних частот (General High-Pass)
- Универсальный фильтр нижних частот (General Low-Pass)
- Универсальный полосовой фильтр (General Band-Pass)
- Универсальный режекторный фильтр (General Band-Stop)
- Фильтр Баттерворта нижних/верхних частот (Butterworth Low-Pass / High-Pass)
- Фильтр Бесселя нижних/верхних частот (Bessel Low-Pass / High-Pass)
- Всепропускающий фильтр (All-pass)
- Фильтр с подъемом АЧХ (Peaking)
- Режекторный фильтр (Notch)
- Фильтр Чебышева нижних/верхних частот (Chebyshev Low-Pass / High-Pass)
Чтобы открыть окно управления фильтром, нажмите на кнопку-иконку:
Выберите желаемый тип фильтра из раскрывающегося списка. Элементы управления фильтром и изображение на кнопке-иконке изменятся в соответствии с выбранным типом фильтра.

Элементы управления GUI
| GUI Control Name | Default Value | Range | Описание функции |
|---|---|---|---|
| Filter Type | Lowpass | LowPass/Highpass/BandPass/BandStop | Тип фильтра |
| Frequency | 1000 Hz | 0-96000 Hz | Частота среза фильтра |
| Gain | 0 dB | -15 to 15 | Усиление фильтра |
| Q Factor | 0 | 0 to 16 | Добротность (Q) фильтра |
| Enable | 1 | 0 t0 1 | Включить или отключить фильтр |
| Phase Shift | 0 | 0 to 1 | Фазовый сдвиг на 180 градусов |
Информация о параметрах DSP
| GUI Control Name | Compiler Name | Описание функции |
|---|---|---|
| Frequency | FREQ_DSP_CALC0_ _ | Частота среза фильтра |
| Gain | GAIN_DSP_CALC0_ _ | Усиление фильтра |
| Q Factor | Q_DSP_CALC0_ _ | Добротность (Q) фильтра |
| Filter Type | FILTER_TYPE0_ _ | Тип фильтра |
| NA | INVERT__ | Инвертировать коэффициенты, соответствующие входу |
| NA | ONE_BY_FS_DSP_CALC0_ _ | 1 / Частота дискретизации |
| NA | ADDRESS_DSP_CALC0_ _ | Начальный адрес коэффициентов фильтра. |
| NA | MEM_SELECTION_DSP_CALC0_ _ | Раздел памяти, в котором расположены коэффициенты фильтра (DM0/DM1) |
Можно выборочно отключить фильтры, которые не будут использоваться. Чтобы выбрать только те фильтры, которые будут использоваться, щелкните правой кнопкой мыши по модулю и выберите «Configure Supported Filters» (Настроить поддерживаемые фильтры), затем выберите только те фильтры, которые могут использоваться.






