FIR фильтры и автоматическая коррекция АЧХ в процессоре MadBit DSP5 своими руками.

Начнем с того что бывают IIR и FIR фильтры. IIR это обычные фильтры-аналог катушки с конденсатором, которые применяются везде. Они очень легко имитируются в DSP процессоре. Но недостаток — крутят фазу. Поэтому применять их вблизи частоты раздела надо осторожно.
FIR фильтры не имеют аналогов в реальном мире. Это чисто математическая модель. Могут иметь любую фазу и АЧХ. В том числе линейную фазу. Именно это больше всего интересно в FIR фильтрах в машине. Это позволит легче состыковать динамики и получить более лучшую сцену. Кроме того крутизна фильтров хоть 100дБ/октаву.

Но есть и недостатки. Самый главный – вычислительная сложность. Чем более низкие частоты обрабатываем, тем больше ресурсов процессора расходуется. В большинстве процессоров не хватит мощности для фильтрации сабвуфера.
Давайте посмотрим что может наш маленький процессор MadBit DSP5.

В SigmaStudio в разделе фильтры можно установить FIR фильтр с длиной 512 тапов. То-есть 128 на канал (на сабвуфер не ставим).
Есть хорошая программа для рассчета FIR фильтров rePhase. На картинке показано что реально может фильтр 128 тапов:


Рисуем произвольную АЧХ и видим, что уже с 1-2 кГц фильтр работает нормально. Синяя линия- что должно быть, красная — что реально получилось. Таким образом можно корректировать АЧХ мидбаса и пищалки в области раздела и выше, при этом не вносить фазовых искажений.

Теперь посмотрим как можно сделать кроссовер:

Фильтр прекрасно отрабатывает 96дБ/октаву на частоте 3кГц. Можно с любой крутизной фильтра стыковать пищалку и мидбас и фаза будет линейна!

На картинках отдельно показан эквалайзер, а отдельно кроссовер. Но фактически это можно сделать в одном фильтре.

Попробуем взять реальную АЧХ левого мидбаса и скорректировать с помощью комбинации обычных фильтров и FIR фильтра. Кроме того FIR фильтр будет работать как кроссовер 8 порядка (48дб/окт).

Для коррекции я снял АЧХ и загрузил ее в SigmaStudio. Там есть отличный блок AutoEQ. Выбрал править АЧХ с 100 до 3000Гц. Макс. Количество фильтров-7.
Синий – исходная ужасная АЧХ, красный-скорректированная. Фиолетовая линия – работа фильтров. Огромный провал на 2-3кГц следствие того что динамик направлен прямо в ногу и не развернут на слушателя. Это самый проблемный динамик в моей тестовой установке. Я его выбрал специально чтобы исследовать возможности FIR фильтров.

На вкладке Filters я выбрал только те фильтры которые близко к частоте раздела и с частотами больше 2 кГц. Они пойдут на расчет FIR фильтра.

Частота Добротность Уровень
2259 2,24 14,77
2222 6,52 4,69
Вносим эти параметры в rePhase и генерим FIR фильтр. Тут нужно не забыть включить опцию Linear-Phase у эквалайзера и на вкладке LinearPhase Filters сделать low-pass фильтр для кроссовера.
Как видим на этих частотах фильтр хорошо работает. Можно посмотреть как он влияет на АЧХ если загрузить измерения нашего динамика в rePhase.
Синяя линия до коррекции и кроссовера. Красная-после.
rephrase сгенерирует нам файл с 128 числами вида:
0.000015559560006078698
0.000051550244716123768
0.00007983702962106549
Загружаем его в SigmaStudio в блок FIR. В блоке Auto-EQ нужно удалить те фильтры, которые мы перенесли в FIR. Проект для левого мидбаса выглядит так. Это вместе с кроссовером на 3кГц.
Попробуем снять АЧХ получившейся системы

С горбом на 130 герц надо еще разбираться, похоже это дребезжание обшивки двери. В остальном получилось неплохо. При том что я сам не крутил ни одного фильтра.
На 3 кГц получилося спад больше чем нужно. Судя по всему в автоэквалайзере надо было корректировать не до 3000, а хотя бы до 3500.

Из особенностей и недостатков:
1. Длина FIR фильтра не позволяет корректировать АЧХ ниже 1-2 килогерца, но на стыке пишалки и мидбаса и выше работает отлично.
2. FIR фильтр вносит задержку равную 64 семпла(для 128 тапов). Это следует учитывать при настройке задержек
3. Сабвуфер и мидбас нужно стыковать обычным кроссовером. Это не является серьезным недостатком. Такие фильтры даже более мощный чип ADAU не потянет. Учитывая длину волны низких частот можно хорошо состыковать и обычными фильтрами.
4. Автоматический эквалайзер в сигма студии не очень понятно работает. Чтобы он заработал нужно в окне фильтров сохранить фильтры в файл, а затем загрузить в блок автоэквалайзера в сигма студии правой кнопкой мыши. Дольше всего провозился с этим пунктом.

Ну вроде все. В следующий раз надеюсь дойду до FIR фильтрации пищалок. В общем ничем не отличается кроме того, что автоэквалайзер не нужен. 128 тапов для пищалки за глаза хватит.

Добавить комментарий