Цифровой фильтр Бесселя

Все что касается фильтрации
Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Цифровой фильтр Бесселя

Сообщение Santik » 30 сен 2015, 07:09

https://ru.wikipedia.org/wiki/%D0%A4%D0 ... 0%BB%D1%8F
Фильтр Бесселя — в электронике и обработке сигналов один из наиболее распространённых типов линейных фильтров, отличительной особенностью которого является максимально гладкая групповая задержка (линейная фазо-частотная характеристика).
http://matlab.exponenta.ru/signalproces ... esself.php
Дискретные фильтры Бесселя не сохраняют это свойство...
Рассмотрим ФНЧ Бесселя 1-го порядка:

Заметим, что на 1 порядке все типы фильтров совпадают :shock:
До этого всегда делали z- преобразование S=(1-z)/(1+z).
Давайте учтём ещё один член в разложении:


Окончательно получим:

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Цифровой фильтр Бесселя

Сообщение Santik » 30 сен 2015, 10:03

Итак, смотрим, что получилось. Удивляемся... :D
Бессель АЧХ.JPG
Бессель ФЧХ.JPG
АЧХ конечно отвратительная :-)
ФЧХ - близка к линейной.

Надо более высокие порядки посмотреть.
Для справки:
Бессель 2-го порядка:
H(S) = 3/(S^2 +3S + 3)
Бессель 3-го порядка:
H(S) = 15/(S^3 + 6S^2 + 15S + 15)
Ну и неприятно, конечно, что в z-области порядок фильтра возрастает...
Может кто ссылку скинет, на аналогичный подход?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 702
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Цифровой фильтр Бесселя

Сообщение Бахурин Сергей » 01 окт 2015, 06:55

Думаю что не получится чуда. При переходе из s плоскости в z плоскость частота искажается нелинейно. И если аналоговый фильтр имел хорошую фчх, то цифровой будет иметь плохую.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Цифровой фильтр Бесселя

Сообщение Santik » 05 окт 2015, 06:25

Статья "Синтез цифровых рекурсивных фильтров с линеаризованной фазочастотной характеристикой":
http://cyberleninka.ru/article/n/sintez ... teristikoy

INFERION
Сообщения: 34
Зарегистрирован: 20 окт 2015, 13:06
Откуда: Украина

Re: Цифровой фильтр Бесселя

Сообщение INFERION » 20 окт 2015, 13:21

Здравствуйте. Читаю статьи на этом ресурсе, по синтезу цифровых фильтров. Пытаюсь оценить рациональность перехода с моделей физических LRC-фильтров на "Каноническую форму БИХ-фильтра" ( http://www.dsplib.ru/content/filters/ch10/ch10.html ). Не нашел статьи по нужному мне цифровому аналогу БИХ фильтра с аппроксимацией Бесселя, и решил покопаться на форуме. Получается, данный фильтр в принципе невозможно построить классическим способом? В данный момент LRC аналог требует порядка 20-ти операций сложения, вычитания и умножения для 10-го порядка (против 16-ти операций у каноничного), и столько же памяти для хранения переменных. Данному фильтру приходится компенсировать ГВЗ с помощью аналогичного фазового (всепропускающего) фильтра - его тоже, теоретически, невозможно построить классическим методом, верно?

Задача - цифровой кроссовер на акустическую систему. Важно отсутствие пре-эха, типичного для фазолинейного КИХ-фильтра. Нарушение причинно-следственной связи на практике бросается на слух. Так же важно не искажать сигнал во временной области, поэтому Бессель тут безальтернативный. Может быть имеются более простые способы качественно разрезать сигнал на полосы?

Спасибо за внимание.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Цифровой фильтр Бесселя

Сообщение Santik » 22 окт 2015, 08:13

Я не думаю, что Бессель безальтернативен в цифровой области. "Нарезать" качественно 3 полосы можно и КИХ фильтром, если забыть о "реальном времени". Что, в принципе вполне реально при современном уровне электроники.
Т.е. должна быть некая предварительная обработка сигнала (разделение на 3 полосы). При воспроизведении будет достаточно компенсировать временные задержки между каналами (полосами). Порядок КИХ (БИХ) фильтра может быть индивидуален для каждой полосы. Но здесь нужно экспериментировать... Число усилителей должно быть равно числу полос. В идеале можно компенсировать АЧХ и ФЧХ динамиков и даже "бороться" с их нелинейными искажениями. Конечно о каузальности надо забыть :D

http://kit-e.ru/assets/files/pdf/2007_01_150.pdf
http://matlab.exponenta.ru/forum/post24013.html

INFERION
Сообщения: 34
Зарегистрирован: 20 окт 2015, 13:06
Откуда: Украина

Re: Цифровой фильтр Бесселя

Сообщение INFERION » 22 окт 2015, 15:06

Компенсация линейных и нелинейных искажений звеньев АС происходит позже, за счёт моделирования этих звеньев программно, по сигналу ЭМОС. Но это другая тема для разговора - сперва сигнал нужно нарезать, а уже затем воевать с динамикими. И там у меня совершенно другие вопросы, более сложные. Нет общепринятых методик измерения, к примеру, внутреннего сопротивления магнитной системы, нелинейности мотора и т.п. Приходится самому над этим всем думать. Но сейчас мы говорим не об этом. Сейчас мне интересно как оптимальнее разрезать сигнал на полосы казуальным фильтром. Напомню - мне всё равно какая ГВЗ, главное чтоб она была близка к прямой на графике в полосе пропускания. Ресурсов у меня мало, поэтому предпочтение отдаю БИХ фильтру. В данный момент с задачей справляется 10-й порядок. При чём на три полосы требуется только два фильтра, т.к. благодаря ихним характеристикам СЧ полоса получается простым вычитанием из исходного сигнала НЧ и ВЧ составляющей. Всё это проверено на наличие фазовых и амплитудных искажений и работает.

КИХ фильтры, с симметричной импульсной характеристикой (не казуальные), мне не подходят по вышеупомянутым причинам. Народ ими болеет, а в акустике они не применимы, если интересует отсутствие артефактов из-за не идеальности АС (разнесённые в пространстве звенья, искаженная передаточная характеристика, диаграмма направленности, интерференция и т.п.). Т.е. нужен не фазолинейный, а минимально-фазовый фильтр, насколько я понял. Практически реально выполнить ТЗ на фильтрах Бесселя и его же фазовых фильтрах. Уже выполнял, но я решил попробовать сделать это так, как все делают - с помощью Z-преобразования, а не моделирования физических фильтров. Это даже немного быстрее и проще в реализации (но не в проектировании).

За ссылку на статью спасибо. Странно в ней то, что автор предлагает бороться с нелинейной ФЧХ Баттерворта с помощью фазового фильтра вместо того, чтоб перейти к фильтру с изначально более аккуратной ГВЗ. Смысл в этих извращениях, если такая система не будет проще Бесселя с такой же крутизной среза? Да и случай описан в ней не наш. Там другие требования.

P.S. Кому-нибудь известны хорошие статьи по измерению нелинейности динамической головки громкоговорителя по её противо ЭДС? Может быть отдельную тему оформить для обсуждения?

Vlad27
Сообщения: 71
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Цифровой фильтр Бесселя

Сообщение Vlad27 » 22 окт 2015, 16:40

INFERION писал(а):Мне всё равно какая ГВЗ, главное чтоб она была близка к прямой на графике в полосе пропускания. Ресурсов у меня мало, поэтому предпочтение отдаю БИХ фильтру.
В соседнем разделе "Целочисленное проектирование фильтров" как раз приведён пример
синтеза БИХ-фильтра по критерию постоянства ГВЗ (максимальной линейности фазы)
в полосе пропускания методом ЦНП. Фазовые искажения получаются минимальными.

INFERION
Сообщения: 34
Зарегистрирован: 20 окт 2015, 13:06
Откуда: Украина

Re: Цифровой фильтр Бесселя

Сообщение INFERION » 22 окт 2015, 16:59

Да, спасибо, я читал всю эту тему недавно. Она большая и там конструктивизма мало. Больше спор на тему "реальные фильтры с нестандартным подходом к проектированию vs сферические в вакууме с классическим подходом к проектированию". И там упоминалась возможность построения классического БИХ фильтра с линейной фазой. Только я не понял какая у него аппроксимация (добротность, если так угодно) и проще за текущий вариант он мне не показался. Мне, если честно, как радиолюбителю-ассемблерщику (частично Си'шнику), ближе целочисленная система (с диффузией ошибки, что лучше плавающей точки), но с аналогами реальных физических фильтров, которые я ещё хоть как-то понимаю. Тем более, что все эти представления полюсов, плоскостей и т.п. мне даются туго. Ну не умею я так мыслить. Куда удобнее оперировать резонансами и добротностями. Реальные системы, которые обладают неравномерностью АЧХ - чаще всего представляют из себя аналоги физических фильтров, обладающих и соответствующими искажениями ФЧХ. Описать такие модели можно простым набором LRC фильтров. Если создавать линеаризующий фильтр как комплементарную (противоположную) модель искажающей системы - можно не переживать и за качественную линеаризацию ФЧХ системы. Оно само собою естественным образом получается, и как правило такая реализация наиболее простая. Только вот оперировать приходится реактивными и активными сопротивлениями компонентов, тогда как методы вычисления коэффициентов дискретной передаточной характеристики для меня подобна магии. Поэтому я и не могу сориентироваться с Бесселем, не имея готового примера классической реализации в одной из статей на dsplib.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 702
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Цифровой фильтр Бесселя

Сообщение Бахурин Сергей » 22 окт 2015, 17:36

не понятно вы хотите цифровой бих фильтр с линейной фчх или аналоговый фильтр с линейной фчх? (ни первого ни второго в природе не существует)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость