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

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

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

Сообщение Santik » 29 окт 2015, 09:39

Ошибся я при определении полюсов :(
На картинке полюса фильтра Баттерворта 3 порядка Fs=0.1 с обычным z- преобразованием (справа) и с "модифицированным":
Бессель3.jpg

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

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

Сообщение Бахурин Сергей » 29 окт 2015, 10:46

А как вы считали полюса?

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

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

Сообщение Santik » 29 окт 2015, 12:09

Да, расчёт полюсов - это проблема... Матлаба у меня нет (и не предвидится). Программы для нахождения корней полинома - тоже нет пока.
Рассчитал модуль
при различных z (400x400 точек) и вывел c помощью Surfer 8.
Вот картинка из программы WinFilter:
Winfilter.JPG
Winfilter.JPG (6.94 КБ) 1860 просмотров

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

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

Сообщение Santik » 29 окт 2015, 17:38

Вот коэффициенты фильтра Бесселя В,А:

Код: Выделить всё

3.987397909164430E+00
3.588658118247990E+01
1.435463247299190E+02
3.349414243698120E+02
5.024121365547180E+02
5.024121365547180E+02
3.349414243698120E+02
1.435463247299190E+02
3.588658118247990E+01
3.987397909164430E+00
1.000000000000000E+00
1.442174807700610E+01
7.332115147660880E+01
2.320730475966620E+02
4.315676713500860E+02
5.290883487097870E+02
4.304484187840970E+02
2.358556137427770E+02
7.943553298347330E+01
1.433616893431490E+01
Вот его ФЧХ:
Бесс3.JPG
Полюса:
Бесс3.jpg
Бесс3.jpg (62.11 КБ) 1857 просмотров
Как ещё на устойчивость проверить?

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

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

Сообщение Бахурин Сергей » 30 окт 2015, 10:29

Есть подпрограмма нахождения собственных чисел матрицы? Если есть то поиск корней это собственные числа compain матрицы полинома.

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

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

Сообщение Santik » 30 окт 2015, 18:20

Бахурин Сергей писал(а): Есть подпрограмма нахождения собственных чисел матрицы? Если есть то поиск корней это собственные числа compain матрицы полинома.
Да, такая подпрограмма есть. Только мне не понятно как по характеристическому уравнению матрицу восстановить :o
Пусть имеем уравнение 2 порядка
Коэффициенты матрицы находим из системы уравнений:


4 неизвестных - 2 уравнения. Маловато будет! (с) :D
Хотя решение существует:


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

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

Сообщение Santik » 31 окт 2015, 07:47

Рассмотрим ФНЧ Бесселя 2 порядка:


- частота среза
- частота среза определяется по уровню 3 дБ
С помощью матрицы z- преобразования найдём коэффициенты







Найдём полюсы H(z):




Теперь найдём матрицу, характеристическое уравнение которой имеет вид

или, другими словами - матрицу, собственные значения которой равны полюсам соответствующей передаточной характеристики H(z):
CodeCogsEqn(97).gif
CodeCogsEqn(97).gif (1.76 КБ) 1836 просмотров
Или:
CodeCogsEqn(100).gif
CodeCogsEqn(100).gif (1.98 КБ) 1836 просмотров
Но всё равно не понятно, как будет выглядеть эта матрица при произвольном порядке!

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

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

Сообщение Santik » 31 окт 2015, 16:23

Бахурин Сергей писал(а): Есть подпрограмма нахождения собственных чисел матрицы? Если есть то поиск корней это собственные числа compain матрицы полинома.
Так что же такое compain матрица полинома???

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

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

Сообщение Santik » 01 ноя 2015, 04:18

После безуспешных попыток понять, что такое compain матрица полинома :D решил всё же воспользоваться Фортрановской библиотекой IMSL. Там аж два типа подпрограмм, одна из них по алгоритму Дженкинса-Трауба. Метод описан в книге Марпл мл. "Цифровой спектральный анализ и его приложения" стр.402
Вот такую картинку я уже приводил:
Бесс3.jpg
Бесс3.jpg (62.11 КБ) 1831 просмотр
Результаты работы подпрограммы DZPORC:

Код: Выделить всё

              Re					         Im				    |z|
   -0.300326288894250E+00    0.650276665521626E+00  z=  0.7162790E+00
   -0.300326288894250E+00   -0.650276665521626E+00  z=  0.7162790E+00
   -0.486416764364578E+00    0.682133098835512E+00  z=  0.8377988E+00
   -0.486416764364578E+00   -0.682133098835512E+00  z=  0.8377988E+00
   -0.592088833254236E+00    0.736475358699697E+00  z=  0.9449683E+00
   -0.592088833254236E+00   -0.736475358699697E+00  z=  0.9449683E+00
    0.200107429840802E+00    0.248442288827343E+01  z=  0.2492469E+01
    0.200107429840802E+00   -0.248442288827343E+01  z=  0.2492469E+01
    0.997283352872912E+01    0.000000000000000E+00  z=  0.9972834E+01
    0.000000000000000E+00    0.000000000000000E+00  z=  0.0000000E+00
Видно, что за пределами единичного круга лежат аж три полюса. Так как их действительная и мнимая часть (по модулю) больше 2, то я их просто "не заметил" :oops: ...А потом долго удивлялся тому, что фильтр неустойчив :D
Всё-таки расчёт полюсов удобнее. Да и, к примеру, можно разбивать "длинный" фильтр на каскады 2 порядка...

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

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

Сообщение Santik » 02 ноя 2015, 10:44

Бахурин Сергей писал(а): Есть подпрограмма нахождения собственных чисел матрицы? Если есть то поиск корней это собственные числа compain матрицы полинома.
Может быть companion matrix - сопровождающая матрица?


Для ФНЧ Баттерворта 2-го порядка сопровождающая матрица имеет вид:

Теперь осталось определить, что лучше (быстрее/точнее) - находить собственные числа сопровождающей матрицы, или искать корни полинома. :D

Ответить

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

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