Цифровой фильтр Бесселя
Re: Цифровой фильтр Бесселя
В правом канале. Т.е. там, где поработал синтезатор саундфорджа. Видимо, звуковой редактор значение последнего бита просто округляет, внося ошибку. Уровень гармоник как раз соответствует чистому динамическому диапазону 16-ти бит - -120Дб. Если делать по-уму, то нужно или сразу считать синус в целочисленной системе с такой же разрядностью (16 бит), или всё что отбрасывается округлением - интегрировать до целого значения и добавлять периодически к семплам (то же самое, что и сразу считать в 16 битах, в принципе). Разница - на картинке выше. Поэтому я всё ещё плавающей точке и не доверяю...
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Цифровой фильтр Бесселя
Постараюсь объяснить "на пальцах". Будем предполагать, что у нас 5 одинаковых фильтров 2 порядка.Прочитал статьи - там не написано самое главное - ПОЧЕМУ, к примеру, фильтр 10-го порядка даёт лучший результат, по сравнению с 5-ю фильтрами 2-го порядка?
В каждом фильтре есть полоса пропускания, в которой коэффициент передачи =1.
И если ты желаешь получить "полочку" в полосе пропускания, необходимо резонансы фильтров равномерненько распределить по полосе пропускания. То есть надо брать 5 фильтров с различными параметрами!
Если ты берёшь одинаковые звенья, то тупо "губишь" полосу пропускания.
Пусть коэффициент передачи ФНЧ 2-го порядка от частоты в полосе пропускания равен 1,1,1,1,0.99,0.9,0.8,0.707.....
Если ты возьмёшь 5 таких одинаковых каскадов, то эти значения надо в 5 степень возвести...
1,1,1,1,0.95,0.59,0.32,0.176.....
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Цифровой фильтр Бесселя
Возвращаемся к теме фильтра Бесселя.
Напомню, я добавил в разложение ln(z) ещё один член. Теперь z- преобразование имеет вид:
Матрица z- преобразования дана выше.
Результаты. На АЧХ появился выброс вблизи частоты среза Fs = 0.5 Найквиста
При уменьшении частоты среза выброс исчез Fs = 0.25 Найквиста И вот такая ФЧХ при Fs = 0.25 Найквиста
Напомню, я добавил в разложение ln(z) ещё один член. Теперь z- преобразование имеет вид:
Матрица z- преобразования дана выше.
Результаты. На АЧХ появился выброс вблизи частоты среза Fs = 0.5 Найквиста
При уменьшении частоты среза выброс исчез Fs = 0.25 Найквиста И вот такая ФЧХ при Fs = 0.25 Найквиста
Re: Цифровой фильтр Бесселя
А я вот причесал программу и теперь ищу способы найти/вычислить требуемые мне резонансные частоты и добротности для звеньев фильтра 10-го порядка. Чтоб на практике сравнить результат. Есть калькуляторы для расчёта активных фильтров, но они дают на выходе номиналы компонентов. Например: http://www.daycounter.com/Filters/Salle ... tor2.phtml
А формулы вычисления нужных мне параметров по ним - почему-то не работают: http://digteh.ru/Sxemoteh/filtr/RC/
Во всяком случае, у меня они дают какие-то бредовые результаты. Частоты в 10 раз выше среза, и добротности около 0,25.
----------------------
Заглянул во второй том "Полупроводниковая схемотехника" Титце и Шенка, а там уже вот прямо для меня табличка готова на 114-й странице:
i fgi/fg Qi
1. 1.264 0.50
2. 1.412 0.54
3. 1.780 0.62
4. 2.479 0.81
5. 3.446 1.42
Там расписаны все фильтры до 10-го порядка. Одних только Чебышевов с неравномерностями 0,5...3Дб...
Конечно, это не самостоятельный расчёт, но можно списать на справочную информацию. Ею ведь разработчики тоже пользуются, верно? Т.е. это тоже метод ...
А формулы вычисления нужных мне параметров по ним - почему-то не работают: http://digteh.ru/Sxemoteh/filtr/RC/
Во всяком случае, у меня они дают какие-то бредовые результаты. Частоты в 10 раз выше среза, и добротности около 0,25.
----------------------
Заглянул во второй том "Полупроводниковая схемотехника" Титце и Шенка, а там уже вот прямо для меня табличка готова на 114-й странице:
i fgi/fg Qi
1. 1.264 0.50
2. 1.412 0.54
3. 1.780 0.62
4. 2.479 0.81
5. 3.446 1.42
Там расписаны все фильтры до 10-го порядка. Одних только Чебышевов с неравномерностями 0,5...3Дб...
Конечно, это не самостоятельный расчёт, но можно списать на справочную информацию. Ею ведь разработчики тоже пользуются, верно? Т.е. это тоже метод ...
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Цифровой фильтр Бесселя
Итак, моя идея применить z- преобразование вида:
закончилась полным провалом!
Мало того, что порядок фильтра увеличился в 3 раза, появились "паразитные резонансы".
На картинке фильтр Баттерворта 3 порядка (с учётом z- преобразования - 9 порядка) при различных значениях относительной частоты среза: Можно конечно согреть себя мыслью, что я получил на Fs/FN=0.1 ФНЧ+полосовой на 0.67 , однако основная цель не достигнута...
Ещё интересный эффект: большая крутизна среза на Fs/FN=0.6, которую можно сравнить с крутизной фильтра Чебышева 2 рода 9 порядка, но с монотонно спадающей полосой затухания:
закончилась полным провалом!
Мало того, что порядок фильтра увеличился в 3 раза, появились "паразитные резонансы".
На картинке фильтр Баттерворта 3 порядка (с учётом z- преобразования - 9 порядка) при различных значениях относительной частоты среза: Можно конечно согреть себя мыслью, что я получил на Fs/FN=0.1 ФНЧ+полосовой на 0.67 , однако основная цель не достигнута...
Ещё интересный эффект: большая крутизна среза на Fs/FN=0.6, которую можно сравнить с крутизной фильтра Чебышева 2 рода 9 порядка, но с монотонно спадающей полосой затухания:
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Цифровой фильтр Бесселя
Приведу результаты для фильтра Бесселя 3-го порядка:
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Цифровой фильтр Бесселя
странная форма фчх. Возрастающая фчх означает отрицательную групповую задержку. Фильтр точно устойчив?
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Цифровой фильтр Бесселя
На устойчивость не проверял. Думаю мне такое преобразование накидало лишних полюсов, возможно, что и вне единичного круга
Re: Цифровой фильтр Бесселя
А у меня вот что получилось:
приведённые мною выше коэффициенты дали значительно худший результат, чем просто последовательное включение одинаковых фильтров.
Я попытался реализовать ФВЧ Бесселя и наткнулся на проблемы. Дело в том, что в таком фильтре полочка оказывается в полосе подавления, а в полосе пропускания из-за фазового сдвига получается горб как у Чебышева. Сколько я не гуглил информацию по этому поводу - нигде ничего. А ведь я как-то раньше получал ФВЧ. Решил отложить этот вопрос и заняться фазовым фильтром Бесселя...
Вверху синус 20...20000Гц, а внизу измеренное между переходами через ноль время. Добротность 0,57. Это 4-й порядок, потому что с бОльшим начинает глючить измеритель ГВЗ (он работает только в пределах периода), но на 10-м порядке полочка никак не меняется, только общее время задержки растёт. И что интересно - Я попытался реализовать ФВЧ Бесселя и наткнулся на проблемы. Дело в том, что в таком фильтре полочка оказывается в полосе подавления, а в полосе пропускания из-за фазового сдвига получается горб как у Чебышева. Сколько я не гуглил информацию по этому поводу - нигде ничего. А ведь я как-то раньше получал ФВЧ. Решил отложить этот вопрос и заняться фазовым фильтром Бесселя...
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Цифровой фильтр Бесселя
Все полюсы вроде бы на месте:
Коэффициенты фильтра Бесселя. Fs=0.8
Код: Выделить всё
A B
0.100000000E+01 0.383677870E+00
0.643827295E+01 0.345310083E+01
0.204869645E+02 0.138124033E+02
0.397488678E+02 0.322289411E+02
0.509816426E+02 0.483434116E+02
0.436028650E+02 0.483434116E+02
0.243586295E+02 0.322289411E+02
0.818900171E+01 0.138124033E+02
0.151908782E+01 0.345310083E+01
0.117742075E+00 0.383677870E+00