Ruslan1 17 19 июня, 2023 Опубликовано 19 июня, 2023 · Жалоба Здравствуйте! Есть задачка фильтровать сигнал с полосой частот как один фильтр 1/3 октавы, и дополнительно - организовать канал с полосой пропускания несколько октав. семплрейт- 1000 SPS, третьоктавные частоты - от 1Гц до 398 Гц (27 элементарных 1/3-октавных каналов) С одиночными фильтрами вопросов нет- полосовые фильтры IIR 6-го и 8-го порядка покрывают нужный диапазон октав (1-500 Гц), и я вписываюсь в заданные в ISO лимиты по полосе (см. картинку ниже для фильтра на частоту 1 Гц). Но вот с полосовым фильтором на переменное число октав что-то не выходит так просто. Хочу "всего-то" сделать отдельные HPF и LPF на каждую из октав, и комбинировать из них нужный мне полосовой фильтр. То есть что-то типа как на картинке ниже: Пробую сделать Баттерворта, но получаю что-то непотребное: для низкого порядка не могу достичь нужного спада, а для высокого порядка получаю артефакты: [b1,a1] = butter(filtOrder,freq/(Fs/2),'high'); это фильтр 6-го порядка а это 8-го порядка если уменьшаю семплрейт с 1000 до 200, то он становится похож на фильтр: Это что-то я не так считаю? Может как-то можно получить нормальные крутые HPF фильтры на 1 Гц, для 1000 SPS? Думаю, если разберусь с HPF, то и c LPF будет ясно что делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 20 июня, 2023 Опубликовано 20 июня, 2023 · Жалоба Вроде разобрался. Зачем-то в лоб Баттерворта подставил, вместо того чтобы по нужным характеристикам построить оптимальный IIR фильтр с помощью встроенных функций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться