Открываешь процессор, а там кроссоверы, 31 полоса параметрики, all-pass, полки. И где-то в описании мелким шрифтом: «IIR». В соседней модели написано «FIR», и в чате уже спорят, что лучше. Чтобы в этом споре не плавать, полезно знать, как устроены фильтры, которыми ты пользуешься каждый день, и где их пределы.
Основной кирпичик в автомобильных процессорах: biquad, звено второго порядка: y[n] = b0·x[n] + b1·x[n−1] + b2·x[n−2] − a1·y[n−1] − a2·y[n−2]. Пять коэффициентов. Один пиковый фильтр параметрики, одна полка, один all-pass: каждый занимает одно звено. LR4 в кроссовере собран из двух звеньев подряд.
Откуда берутся коэффициенты IIR-фильтра?
Обычно из аналогового прототипа. Инженер берёт знакомую формулу фильтра, например Баттерворта или пикового фильтра эквалайзера, и переводит её в цифру билинейным преобразованием. Готовые формулы для пиковых фильтров, полок и all-pass собраны в Audio EQ Cookbook Роберта Бристоу-Джонсона, по ним работает огромная часть DSP.
У билинейного преобразования есть известная особенность: ось частот «сжимается» к частоте Найквиста, половине частоты дискретизации. На басу и середине это незаметно, а на верху вылезает.

Я посчитал пиковый фильтр +6 дБ на 12 кГц с Q 2. У аналогового прототипа на 20 кГц ещё +1,1 дБ, у biquad на 48 кГц всего +0,1 дБ: правый склон прижат к 24 кГц, колокол стал уже. На 96 кГц цифра почти совпадает с аналогом. Вывод практический: если правишь «воздух» у твитера на 48 кГц, ориентируйся на замер, а не на значение Q в интерфейсе.
IIR против FIR: сравнение
| Что сравниваем | IIR (БИХ) | FIR (КИХ) |
|---|---|---|
| Устройство | Рекурсия, обратная связь по выходу | Только входные отсчёты, без обратной связи |
| Нагрузка на процессор | Малая: 5 умножений на звено | Большая: одно умножение на каждый коэффициент, их сотни и тысячи |
| Фаза | Минимально-фазовая, как у аналогового фильтра | Можно сделать линейной, то есть без фазовых сдвигов |
| Собственная задержка | Нет «пакетной» задержки | Линейно-фазовый фильтр на 1024 коэффициента при 48 кГц задерживает сигнал на 10,7 мс |
| Работа на басу | Хорошо даже при малых ресурсах | Разрешение по частоте около fs/N: при 1024 коэффициентах примерно 47 Гц, для баса мало |
| Устойчивость | Может «возбудиться», если коэффициенты неудачные | Всегда устойчив |
Отсюда понятно, почему почти все автомобильные процессоры строят кроссоверы и эквалайзеры на IIR: дёшево, привычная аналоговая логика настройки, нет лишней задержки. FIR добавляют там, где нужна линейная фаза на средних и высоких частотах.
Что это значит, когда настраиваешь машину
Каждое звено IIR ведёт себя как аналоговый фильтр: поднимаешь колокол, он поворачивает фазу вокруг своей частоты. Для минимально-фазовых проблем, вроде резонанса динамика или пика в АЧХ от самого излучателя, это правильно: фильтр гасит пик вместе с его «звоном» в импульсном отклике. А вот яму от интерференции прямого и отражённого звука никакой фильтр не вытащит, ни IIR, ни FIR.
Ещё момент для саба. На 48 кГц фильтр на 20 Гц задаётся коэффициентами, очень близкими к единице и двойке. Чем ниже частота относительно частоты дискретизации, тем чувствительнее звено к точности вычислений. В хороших процессорах это решено, но странное поведение сабсоника с высоким Q на самом низу стоит проверить замером.
Где ошибаются с IIR-фильтрами
- Навешивать 15 узких фильтров на один канал по одиночному замеру. Каждое звено крутит фазу, стык с соседней полосой начинает «гулять».
- Считать, что FIR автоматически звучит лучше. Качество звучания в SQ определяет установка, стыки полос и тональный баланс, а не буквы в названии фильтра.
- Верить значению Q на верхней октаве при 48 кГц. Проверяй колокол микрофоном.
- Добавлять all-pass «на всякий случай». Это тоже IIR-звено со своей групповой задержкой.
Ещё несколько вещей, о которых спрашивают, когда впервые открывают софт процессора.
Biquad - это звено IIR-фильтра второго порядка, которое считает каждый выходной отсчёт по пяти коэффициентам: из трёх входных отсчётов и двух прошлых выходных. Из таких звеньев в автомобильном процессоре собраны почти все фильтры: один пиковый фильтр параметрики, одна полка или один all-pass занимают одно звено, кроссовер LR4 занимает два звена подряд.
Пакетной задержки обработки у IIR-фильтра нет: сигнал проходит звено сразу, отсчёт за отсчётом. Но, как и аналоговый фильтр, IIR поворачивает фазу и даёт групповую задержку вокруг своей частоты, особенно на басу и при высоком Q. Линейно-фазовый FIR на 1024 коэффициента при 48 кГц, для сравнения, задерживает весь сигнал примерно на 10,7 мс.
На верхней октаве 96 кГц точнее. Билинейное преобразование сжимает ось частот к половине частоты дискретизации, и при 48 кГц пиковый фильтр +6 дБ на 12 кГц с Q 2 даёт на 20 кГц всего +0,1 дБ вместо +1,1 дБ у аналогового прототипа. При 96 кГц цифра почти совпадает с аналогом. На басу и середине разницы практически нет, а частоту дискретизации процессора смотри в его характеристиках.
Только если яма минимально-фазовая, то есть идёт от самого динамика или фильтра. Яму от интерференции прямого и отражённого звука IIR-фильтр не вытащит, и FIR тоже: сколько ни поднимай уровень, отражение гасит прямой звук в той же пропорции. Такие провалы лечат положением динамиков, углами и задержками, а эквалайзер оставляют для пиков.
Понимать, что внутри процессора, нужно не для того, чтобы писать свои фильтры, а чтобы понимать, почему настройка ведёт себя так, как ведёт. Тогда меньше ручек крутится наугад. Если только начинаешь, загляни в статью о том, что такое SQ, а работу с процессором по шагам разбирает раздел «Настройка системы».
Спор «IIR или FIR» в твоей машине решается замером. Выкладывай свои графики в Telegram-чат EBAEVSQ, посмотрим, что там на самом деле.
Источники
- R. Bristow-Johnson, Audio EQ Cookbook (W3C)
- Linkwitz Lab: Active filters
- S. P. Lipshitz, M. Pocock, J. Vanderkooy, «On the Audibility of Midrange Phase Distortion in Audio Systems», JAES, 1982
- А. П. Ефимов, А. В. Никонов, М. А. Сапожков, В. И. Шоров, «Акустика. Справочник», 1989
См. также: Q-фактор, Кроссовер и наклоны фильтров, Групповое время задержки, Bessel.
