В общем случае порядок FIR фильтра и количество отводов с умножителями совпадают, хотя если фильтр проектируется с симметричной импульсной, то можно сделать фильтр с N/2+1 умножителями. Для такой узкой полосы можно сделать фильтр большого порядка. В случае вещественного входного сигнала для фильтра 128 порядка потребуется на каждый сэмпл делать 65 вещественных умножений, так же потребуется 512 байт на линию задержки (если используется 32-битная логика). Сам пишу на ПЛИС, там ресурс считается по-другому, но не думаю, что фильтрация полосы менее 22 кГц составит для процессора проблему.
Чтобы сделать 3 варианта фильтрации одним фильтром, можно сделать три набора коэффициентов, соответствующих, например 128 порядку. Порядок будет определяться по худшему случаю, т.е. когда апсемплинг равен 8. Для 4 и 2 просто уменьшайте скругление. Не забудьте нормализовать усиление коэффициентов фильтра для разных полос, иначе при переключении апсемплинга будете наблюдать разную мощность на выходе фильтра.
|