Страница 9 из 10

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 02 ноя 2015, 18:18
Santik
Попытаемся построить ФНЧ с линейной фазовой характеристикой в полосе пропускания.
Предварительно идея такая:
Берём фильтр Баттерворта 7 порядка.
Умножаем на фазокорректирующую цепочку 2-го порядка:

Целевая функция:


По двум параметрам относительно легко оптимизировать (и быстро :D )

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 02 ноя 2015, 20:58
Santik
Для начала возьмём исходный фильтр 2-го порядка:


Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 03 ноя 2015, 22:38
Santik
Найдём область устойчивости корректирующего звена 2 порядка, в зависимости от параметров k1,k2:
Область устойчивости.jpg
Область устойчивости.jpg (65.92 КБ) 5354 просмотра
Красным цветом выделена область неустойчивости звена 2-го порядка.
Посмотрим, как ведёт себя целевая функция. Для удобства визуализации возьмём функцию, обратную целевой. Соответственно будем искать не минимум, а максимум этой функции.
Итак, исходные данные:
1-е звено ФНЧ Баттерворта 2-го порядка, Fs=0.2
2-е звено - всепропускающий фильтр.
2 звена.jpg
2 звена.jpg (30.56 КБ) 5354 просмотра
Неудача! Локальный максимум существует, но лежит вне области устойчивости!

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 04 ноя 2015, 10:36
Santik
Теперь рассмотрим, как легко определить устойчивость звена 2-го порядка вида:

Критерием устойчивости фильтра является нахождение его полюсов внутри единичного круга в z-области.
Полюса определяются уравнением:

Однако, вычислять оба полюса вовсе не обязательно. Значения коэффициентов однозначно определяют нахождение полюсов в единичном круге (устойчивость фильтра).
Посмотрим на картинку "область устойчивости" выше.
Критерий устойчивости любого звена 2 порядка:


Или:


Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 05 ноя 2015, 11:15
Santik
Выведем целевую функцию в другом масштабе:
Баттерворт с коррекцией ФЧХ_2.JPG
Баттерворт с коррекцией ФЧХ_2.JPG (92.52 КБ) 5297 просмотров
Красным цветом выделена область более оптимальных параметров. Однако область вверху полностью соответствует расходящемуся фильтру.
Выберем точку k1=0.9 k2=-0.5
Баттерворт с коррекцией ФЧХ.JPG
ФЧХ на частотах 0.2-0.35 стала более линейной!

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 05 ноя 2015, 16:10
Santik
1-е звено ФНЧ Бесселя 2-го порядка Fs=0.2
Целевая функция
Бессель2.jpg
Бессель2.jpg (31.63 КБ) 5286 просмотров
Вот здесь экстремум появился :D
Параметры корректирующего звена 2-го порядка:
k1=0.1 k2=0.2
Бессель2ФЧХ.JPG

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 06 ноя 2015, 21:11
Santik
Сравнивать фильтры разных порядков по ГВЗ не совсем корректно.
Поэтому пронормировал каждую ГВЗ на своё максимальное значение.
ГВЗ Бесселя.JPG

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 09 ноя 2015, 14:37
Santik
Исправил кое-какие ошибки в программе.
Фильтр Баттерворта 3 порядка Fs=0.2 + всепропускающее звено 2 порядка:
Батт3_02_АЧХ.JPG
Батт3_02_ГВЗ.JPG
Синий график - без коррекции
Красный - с коррекцией.
На низких частотах пока не удаётся АЧХ линеаризовать :(

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 10 ноя 2015, 08:12
Santik
Похоже использовать в качестве целевой функции интеграл от модуля 2-й производной по фазе - была не лучшая идея :lol:

Re: "Оптимальные" коэффициенты БИХ фильтра

Добавлено: 10 ноя 2015, 13:08
Santik
Продолжаем "рихтовать" ФЧХ фильтра Баттерворта 3 порядка всепропускающим звеном 2-го порядка.
Относительная частота среза 0.2
Батт3_02.JPG
В увеличенном масштабе:
Батт3_02_1.JPG
Красным цветом выделена "идеальная" ФЧХ к которой я пытаюсь "притянуть" ФЧХ фильтра.
Диапазон оптимизации (по частоте)
0-0.3
0-0.4
0-0.5
0-0.6
Мне лично оптимизация в диапазоне 0-0.5 понравилась.
Батт3_02_2.JPG