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