Есть простые фильтры типа IIR (скажем, до 3-го порядка), применяются для обработки звука. Конечно, в математическим смысле они должны бытть устойчивы. Однако, поскольку фильтры рекурсивные, а точность чисел конечна, не пойдет ли он со временем вразнос чисто из за погрешности float/double? Не придется ли его ресетить время от времени? И если да, то какова грубая оценка, скажем, простого LP фильтра третьего порядка, на сколько самплов его хватает — тысячи? миллионы? миллиарды?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, McSeem2, Вы писали:
MS>Есть простые фильтры типа IIR (скажем, до 3-го порядка), применяются для обработки звука. Конечно, в математическим смысле они должны бытть устойчивы. Однако, поскольку фильтры рекурсивные, а точность чисел конечна, не пойдет ли он со временем вразнос чисто из за погрешности float/double? Не придется ли его ресетить время от времени? И если да, то какова грубая оценка, скажем, простого LP фильтра третьего порядка, на сколько самплов его хватает — тысячи? миллионы? миллиарды?
Зависит от конкретного вида фильтра и полосы пропускания. По народным приметам, если отношение минимального коэффициента при x к максимальному при y лежит в пределах точности экспоненциально не разнесет и ошибка монотонно со временем накапливаться не будет.
Здравствуйте, McSeem2, Вы писали:
MS>Есть простые фильтры типа IIR (скажем, до 3-го порядка), применяются для обработки звука. Конечно, в математическим смысле они должны бытть устойчивы. Однако, поскольку фильтры рекурсивные, а точность чисел конечна, не пойдет ли он со временем вразнос чисто из за погрешности float/double? Не придется ли его ресетить время от времени? И если да, то какова грубая оценка, скажем, простого LP фильтра третьего порядка, на сколько самплов его хватает — тысячи? миллионы? миллиарды?
В теории цифровой фильтр стабилен, если полюса пердаточной ф-и лежат где угодно внутри единичной окружности, но на практике из-за погрешности округления они должны находиться на некотором безопасном расстоянии от нее, т.е. по модулю быть чуть меньше единицы. И чем больше порядок фильтра, тем меньше допустимый радиус для полюсов.
Ресетить фильтры бесполезно, ибо если они нестабильны, то обычно очень быстро уходят в бесконечность, и звук превращается в полное Г. Решение — преобразовывать фильтры большого порядка в набор последовательных либо параллельных фильтров 2 порядка