ΣSigmaStudio English

Это старая версия документа!


Универсальные фильтры

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

——————————————————————————————————

1. Универсальный фильтр 2-го порядка

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)

Чтобы открыть окно управления фильтром, нажмите на кнопку-иконку:

Выберите желаемый тип фильтра из раскрывающегося списка. Элементы управления фильтром и изображение на кнопке-иконке изменятся в соответствии с выбранным типом фильтра.

1. Универсальный фильтр 2-го порядка


Алгоритмы этого блока используют биквадратные схемы фильтров (DF1), основанные на работе Роберта Бристоу-Джонсона в этой области.

H(z)={b_0 + b_1 z^-1 + b_2 z^-2}/{1 + a_1 z^-1 + a_2 z^-2}

общие переменные:

  • omega_0 = {2 pi f_0}/{F_s}
  • gainLinear = 10^{gain/20}


1. Универсальный фильтр 2-го порядка
1. Универсальный фильтр 2-го порядка
Обратите внимание, что коэффициенты b0 и b2 для фильтра верхних частот, приведенные ниже, инвертированы по сравнению с тем, что хранится в RAM. Правильные уравнения для b0, b1 и b2 для фильтра верхних частот следующие:
b0 = -(1 + cos(ω0)) * gainLinear / 2
b1 = -(1 + cos(ω0)) * gainLinear
b2 = -(1 + cos(ω0)) * gainLinear / 2

1. Универсальный фильтр 2-го порядка

Обратите внимание, что знаки минус у значений b0 и b2 ошибочны для фильтров верхних частот Баттерворта и Бесселя. Их не должно быть. См. https://ez.analog.com/message/4769

1. Универсальный фильтр 2-го порядка

Для всех вышеуказанных фильтров коэффициенты делятся на 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).

classicqcontrol.jpg

Версию Q «Classic EQ» можно дополнительно отобразить, нажав на маленькую круглую кнопку рядом с элементом управления Q.

classicqdisplay.jpg

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)

Чтобы открыть окно управления фильтром, нажмите на кнопку-иконку:

Выберите желаемый тип фильтра из раскрывающегося списка. Элементы управления фильтром и изображение на кнопке-иконке изменятся в соответствии с выбранным типом фильтра.

2. Расчет коэффициентов на DSP

Элементы управления GUI

GUI Control NameDefault ValueRangeОписание функции
Filter Type LowpassLowPass/Highpass/BandPass/BandStopТип фильтра
Frequency1000 Hz0-96000 HzЧастота среза фильтра
Gain0 dB -15 to 15 Усиление фильтра
Q Factor0 0 to 16 Добротность (Q) фильтра
Enable1 0 t0 1 Включить или отключить фильтр
Phase Shift0 0 to 1 Фазовый сдвиг на 180 градусов

Информация о параметрах DSP

GUI Control NameCompiler NameОписание функции
FrequencyFREQ_DSP_CALC0_ _Частота среза фильтра
GainGAIN_DSP_CALC0_ _Усиление фильтра
Q FactorQ_DSP_CALC0_ _Добротность (Q) фильтра
Filter TypeFILTER_TYPE0_ _Тип фильтра
NAINVERT__Инвертировать коэффициенты, соответствующие входу
NAONE_BY_FS_DSP_CALC0_ _1 / Частота дискретизации
NAADDRESS_DSP_CALC0_ _Начальный адрес коэффициентов фильтра.
NAMEM_SELECTION_DSP_CALC0_ _Раздел памяти, в котором расположены коэффициенты фильтра (DM0/DM1)

Можно выборочно отключить фильтры, которые не будут использоваться. Чтобы выбрать только те фильтры, которые будут использоваться, щелкните правой кнопкой мыши по модулю и выберите «Configure Supported Filters» (Настроить поддерживаемые фильтры), затем выберите только те фильтры, которые могут использоваться.
Информация о параметрах DSPИнформация о параметрах DSP

General Filters в SigmaStudio: настройка и параметры

Блок «Универсальные фильтры (2-го порядка)» в среде SigmaStudio предоставляет разработчику доступ к широкому набору алгоритмов биквадратных фильтров для процессоров семейства ADAU145x от Analog Devices. В отличие от специализированных модулей, этот компонент объединяет более пятнадцати типов обработки сигнала в одном элементе, что упрощает построение сложных трактов коррекции АЧХ. Расчет коэффициентов для выбранного типа фильтра выполняется на стороне управляющего контроллера, а не внутри DSP. Это позволяет гибко менять параметры в реальном времени без перекомпиляции проекта. Доступные алгоритмы включают параметрический и шельфовый фильтры, фильтры Баттерворта, Бесселя и Чебышева нижних и верхних частот, полосовые и режекторные реализации, регулятор тембра, а также режим прямого ввода коэффициентов БИХ-фильтра. Все схемы построены на биквадратной структуре DF1. При выборе типа фильтра из раскрывающегося списка элементы управления на лицевой панели блока автоматически обновляются, отображая релевантные параметры: частоту среза f0, добротность Q, усиление gain. Для фильтров верхних частот в документации отмечается особенность инверсии коэффициентов b0 и b2 относительно хранимых в RAM значений, а для некоторых типов (Баттерворт, Бессель) знаки в формулах требуют ручной корректировки. Внутри DSP коэффициенты нормализуются по a0, при этом a1 и a2 инвертируются перед записью в параметрическую память.