ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
21 апреля
1512670
Idler (18.04.2025 13:50, просмотров: 1209)
А вот очередной вопрос по фильтрам. Можно как-нибудь набор коэффициентов для стандартного IIR фильтра превратить в набор для каскадного? Там и чисел больше, и сами они на вид никак со стандартными не соотносятся... 

Есть программа pyFDA, считающая фильтры намного точнее, чем FilterSolutions, и без её ограничений по порядкам (20 для IIR, 200 для FIR), хоть миллионный считай. Но фильтры только стандартные.

До 10 порядка IIR результаты почти совпадают и работают, на 12 начинают отличаться и стандартный от F.S. при некоторых параметрах не работает, при 14 сильно отличаются не только по коэффициентам, но и по графику магнитуды, и фильтры от F.S. почти не работают. То есть, из-за неточности он просто не может реализовать заданный полином, что ограничивает крутизну и дальнейшее повышение порядка только подавление увеличивает, то есть, правая (для LP) часть графика "съезжает" вправо-вниз при постоянной крутизне.

Каскадная реализация, конечно, работает, в соответствии с расчитанным (пологим) графиком. Результат (и график) pyFDA глобально лучше - подавление заданное, крутизна растёт, 14 порядок стандартного работает. Дальше разница ещё больше, но работу не проверял.

Хочу каскадный 18-20 порядка, но по результатам от pyFDA. Хоть и медленнее стандартного, но даже на float32 обычно работает (сейчас у меня проц с double, но нужно, чтобы и на других работало). А pyFDA работает на PC с float80, и каскадность ей нахрен не нужна...