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