Импульсный метод инвариантности для аналого-цифрового преобразования фильтра
[bz,az] = impinvar(b,a,fs)
[bz,az] = impinvar(b,a,fs,tol)
[bz,az] = impinvar(b,a,fs) создает цифровой фильтр с числителем и коэффициентами знаменателя bz и az, соответственно, чей импульсный ответ равен импульсному ответу аналогового фильтра с коэффициентами b и a, масштабируемый 1/fs. Если вы не учитываете аргумент fs или задаете fs как пустой вектор [], это берет значение по умолчанию 1 Гц.
[bz,az] = impinvar(b,a,fs,tol) использует допуск, заданный tol, чтобы определить, повторяются ли полюса. Больший допуск увеличивает вероятность, что impinvar интерпретирует тесно расположенные полюса как кратность (повторенные единицы). Значение по умолчанию 0.001, или 0,1% значения полюса. Точность значений полюса все еще ограничивается точностью, доступной функцией roots.
impinvar выполняет инвариантный импульсом метод аналого-цифрового преобразования передаточной функции, обсужденного в ссылке [1]:
Это находит расширение элементарной дроби системы представленным b и a.
Это заменяет полюса p полюсами exp(p/fs).
Это находит коэффициенты передаточной функции системы от остатков от шага 1 и полюсов от шага 2.
[1] Парки, Томас В. и К. Сидни Беррус. Создание цифровых фильтров. Нью-Йорк: John Wiley & Sons, 1987.
[2] Antoniou, Андреас. Цифровые фильтры. Нью-Йорк: McGraw-Hill, Inc., 1993.