Импульсный метод инвариантности для аналого-цифрового преобразования фильтра
[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.