-
- Всё, победил. Из-за того, что pyFDA выдаёт коэффициенты в другом
виде, вставлял их в программу с ошибкой и результат получался не
лучше, чем у FS. Теперь, если pyFDA смогла рассчитать фильтр без
ругани, то он работает и без каскадирования. В частности, 20-й
порядок. Больше 22 она и сама рассчитать не может. Теперь при
фильтрации до 8кГц и подавлении 90дБ теряется всего 20Гц! А авторы
FS - нехорошие люди. Результаты до 20 дес.знаков, но честных-то из
них не больше 8... - Idler(19.04.2025 18:48)
- Если у вас всё на мази, можэт попробуете посмотреть, что даёт
Qedit? Чисто, чтобы знать границы его применимости. - mse homjak(19.04.2025 18:53)
- Насчет "на мази" я погорячился. Требования к точности зависят от ширины среза в герцах, а от фильтров-то требуется постоянная ширина среза в % от частоты. При Fs=32000 фильтр на 8000 без каскадирования работает, но для 4000 уже со скрипом, а для 2000 уже точности не хватает. А нужно и 1000, и 500, и 250. А каскадировать pyFDA не умеет. FS - умеет, но изначально считает неточно. А вот QED (QE-Design, а не QEdit!), считает то, что надо, несмотря на древность. Считает Idler(1216 знак., Вчера, 10:59)
- Если у вас всё на мази, можэт попробуете посмотреть, что даёт
Qedit? Чисто, чтобы знать границы его применимости. - mse homjak(19.04.2025 18:53)
- Настоятельно рекомендую применять простейший фильтр Калмана. Здесь наверное ещё не утоптался его примитивный код? bnb62(30 знак., 19.04.2025 10:57)
- Господа, вы звери! Там, где коэффициенты типа "дабл", какие резисторы (и конденсаторы) вы собираетесь использовать? - Kpoк(19.04.2025 10:43)
- Я в этих фильтрах не разбираюсь. Но нельзя ли сделать фильтр с
подавлением наполовину и применить его дважды? - SciFi(18.04.2025 22:25)
- Пульсаци в полосе пропускания вырастут. Но, в общем, так и делают. Каскадируют. Nikolay_Po(248 знак., 18.04.2025 22:51)
- У меня такое ощущение, что кто-то хочет получить подавление больше
120дВ на флоате. И при таких порядках можно во флоате можно и
возбуд словить. А каскадировать фильтры очень просто, для фильтра
батерворта нужно, чтобы полюса каждого каскада ложились на дугу
единичного радиуса, есно, в левой полуплоскости. - IBAH(18.04.2025 18:33)
- 120дБ мне не нужно, хватает 80. Но при -80дб на 8000Гц я хочу
полосу пропускания с ripple 1.5дБ не до 7660, как может сделать FS,
а до 7950, обещаемые pyFDA. Терять почти 300Гц нельзя. И там не
Баттерворт, и даже не Чебышев-2, а эллиптический, иначе никаких
шансов. - Idler(18.04.2025 20:44)
- ХЗ, конечно, не знаю частоты дескритезаццыи и всего остального, но КуЭдит2000 по вашим требованиям наваял 14-полюсный эллиптический НЧ фильтер с Фдискр=24кГц. Не сказать, что там какие-то сумасшедшие коэффициенты, типа 0.9999999(9). Хотя, проверить не на чом, а картинок и я нарисовать могу каких хош. - mse homjak(18.04.2025 22:37)
- Потыкал в программу для расчета аналоговых фильтров, она такой
такую характеристику аппроксимировать отказывается. Для
эллиптического фильтра пишет 16 порядок, но добротность полюса
>300. Сто пудов заведется. Значит в цифре будет работать
только в дабле. В матлабе, кажись, синтез фильтров в лонг дабле и
можно привести к флоату и сравнить. - IBAH(18.04.2025 22:03)
- pyFDA предлагает 20 порядок. Fs=32kHz. Но она считает в лонг дабле.
А даже просто в дабле оно пухнет и дохнет. Но высказанная тут мысль
двухпроходности имеет смысл. То есть, каскадировать не 10 второго
порядка, а 2 десятого. 10 порядок в дабле ещё работает. - Idler(18.04.2025 23:36)
- Увы, это так не работает... Если 2 раза фильтровать весь файл, то всё правильно. При одном проходе по файлу 10-м порядком с подавлением 45дБ, после децимации вылез жирненький алиас, с уровнем -45дБ. Если децимация после второго прохода - алиас ушел на -90дБ и больше ничего не изменилось. Но с отдельным отсчетом, и даже с фрагментом файла так поступать нельзя. IIR мало того, что фазу крутит как хочет, у него ещё и групповая задержка болтается чуть ли не на пол-файла. В Idler(198 знак., 19.04.2025 14:00)
- pyFDA предлагает 20 порядок. Fs=32kHz. Но она считает в лонг дабле.
А даже просто в дабле оно пухнет и дохнет. Но высказанная тут мысль
двухпроходности имеет смысл. То есть, каскадировать не 10 второго
порядка, а 2 десятого. 10 порядок в дабле ещё работает. - Idler(18.04.2025 23:36)
- При таких запросах может посмотреть в сторону КИХ, хотя там тоже без дабла не обойтись - IBAH(18.04.2025 22:02)
- 120дБ мне не нужно, хватает 80. Но при -80дб на 8000Гц я хочу
полосу пропускания с ripple 1.5дБ не до 7660, как может сделать FS,
а до 7950, обещаемые pyFDA. Терять почти 300Гц нельзя. И там не
Баттерворт, и даже не Чебышев-2, а эллиптический, иначе никаких
шансов. - Idler(18.04.2025 20:44)
- Всё, победил. Из-за того, что pyFDA выдаёт коэффициенты в другом
виде, вставлял их в программу с ошибкой и результат получался не
лучше, чем у FS. Теперь, если pyFDA смогла рассчитать фильтр без
ругани, то он работает и без каскадирования. В частности, 20-й
порядок. Больше 22 она и сама рассчитать не может. Теперь при
фильтрации до 8кГц и подавлении 90дБ теряется всего 20Гц! А авторы
FS - нехорошие люди. Результаты до 20 дес.знаков, но честных-то из
них не больше 8... - Idler(19.04.2025 18:48)