impinvar

Импульсный метод инвариации для аналого-цифрового преобразования фильтра

Описание

пример

[bz,az] = impinvar(b,a,fs) создает цифровой фильтр с коэффициентами числителя и знаменателя bz и az, соответственно, импульсная характеристика которого равна импульсной характеристики аналогового фильтра с коэффициентами b и a, масштабируется на 1/ fs, где fs - частота дискретизации.

[bz,az] = impinvar(b,a,fs,tol) использует допуск, заданный как tol для определения, повторяются ли полюсы.

Примеры

свернуть все

Преобразуйте аналоговый lowpass Butterworth шестого порядка в цифровой фильтр с помощью импульсной инвариации. Задайте частоту дискретизации 10 Гц и частоту отключения 2 Гц. Отобразите частотную характеристику фильтра.

f = 2;
fs = 10;

[b,a] = butter(6,2*pi*f,'s');
[bz,az] = impinvar(b,a,fs);

freqz(bz,az,1024,fs)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Преобразуйте аналоговый эллиптический фильтр третьего порядка в цифровой фильтр с помощью импульсной инвариации. Задайте частоту дискретизации fs=10 Гц, частота ребра полосы пропускания 2,5 Гц, неравномерность в полосе пропускания 1 дБ и затухание в полосе задерживания 60 дБ. Отобразите импульсную характеристику цифрового фильтра.

fs = 10;

[b,a] = ellip(3,1,60,2*pi*2.5,'s');
[bz,az] = impinvar(b,a,fs);

impz(bz,az,[],fs)

Figure contains an axes. The axes with title Impulse Response contains an object of type stem.

Выведите импульсную характеристику аналогового фильтра, найдя остатки, rk, и полюсов, pk, передаточной функции и инвертирования преобразования Лапласа явно используя

H(s)=krks-pkh(t)=krkepkt.

Наложите импульсную характеристику аналогового фильтра. Инвариация импульса вводит усиление 1/fs в цифровой фильтр. Умножьте аналоговую импульсную характеристику на этот коэффициент усиления, чтобы обеспечить содержательное сравнение.

[r,p] = residue(b,a);
t = linspace(0,4,1000);
h = real(r.'*exp(p.*t)/fs);

hold on
plot(t,h)
hold off

Figure contains an axes. The axes with title Impulse Response contains 2 objects of type stem, line.

Входные параметры

свернуть все

Коэффициенты передаточной функции аналогового фильтра, заданные как векторы.

Пример: [b,a] = butter(6,2*pi*10,'s') задает фильтр Баттерворта 6-го порядка с частотой отключения 10 Гц.

Типы данных: single | double

Частота дискретизации, заданная как положительная скалярная величина.

Типы данных: single | double

Допуск, заданный как положительная скалярная величина. Допуск определяет, повторяются ли полюсы. Больший допуск увеличивает вероятность того, что impinvar интерпретирует тесно расположенные полюсы как кратности (повторные таковые). Допуск по умолчанию соответствует 0,1% величины полюса. Точность значений полюса все еще ограничена точностью, получаемой roots функция.

Типы данных: single | double

Выходные аргументы

свернуть все

Коэффициенты передаточной функции цифрового фильтра, возвращенные как векторы.

Алгоритмы

impinvar выполняет импульсно-инвариантный метод преобразования аналого-цифровой передаточной функции, рассмотренный в ссылке [2]:

  1. Это находит частичное расширение дроби системы, представленной b и a.

  2. Он заменяет полюса p по полюсам exp(p/fs).

  3. Он находит коэффициенты передаточной функции системы из остатков с шага 1 и полюсов с шага 2.

Ссылки

[1] Антониу, Андреас. Цифровые фильтры. Нью-Йорк: McGraw-Hill, Inc., 1993.

[2] Parks, Thomas W., and C. Sidney Burrus. Создание цифровых фильтров. Нью-Йорк: John Wiley & Sons, 1987.

См. также

| | | |

Представлено до R2006a