stepz

Переходная характеристика цифрового фильтра

Синтаксис

[h,t] = stepz(b,a)
[h,t] = stepz(sos)
[h,t] = stepz(d)
[h,t] = stepz(...,n)
[h,t] = stepz(...,n,fs)
stepz(...)

Описание

[h,t] = stepz(b,a) возвращает переходной процесс фильтра с коэффициентами числителя, b, и коэффициенты знаменателя, a. stepz выбирает количество выборок и возвращает ответ в вектор-столбце h и шаги расчета в вектор-столбце t (где   t = [0:n-1]', и n = length(t) вычисляется автоматически).

[h,t] = stepz(sos) возвращает переходной процесс матрицы разделов второго порядка, sos. sos K-by-6 матрица, где количество разделов, K, должно быть больше или быть равно 2. Если количество разделов меньше 2, stepz полагает, что вход вектор числителя, b. Каждая строка sos соответствует коэффициентам второго порядка (biquad) фильтр. i th строка sos матрица соответствует [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)].

[h,t] = stepz(d) возвращает переходной процесс цифрового фильтра, d. Используйте designfilt сгенерировать d на основе спецификаций частотной характеристики.

[h,t] = stepz(...,n) вычисляет первые n выборки переходного процесса, когда n является целым числом (t = [0:n-1]'). Если n вектор целых чисел, переходной процесс вычисляется только в тех целочисленных значениях с 0 обозначениями источника времени.

[h,t] = stepz(...,n,fs) вычисляет n выборки и производит векторный t из длины n так, чтобы выборками был распределенный 1/fs модули независимо. fs принят, чтобы быть в Гц.

stepz(...) без выходных аргументов строит переходной процесс фильтра. Если вы вводите коэффициенты фильтра или матрицу разделов второго порядка, окно текущей фигуры используется. Если вы вводите digitalFilter, переходной процесс отображен в FVTool.

Примечание

Если вход к stepz одинарная точность, переходной процесс вычисляется с помощью арифметики с одинарной точностью. Выход, h, одинарная точность.

Примеры

свернуть все

Создайте третий порядок Фильтр Баттерворта с нормированной частотой на уровне половинной мощности 0.4π рад/выборка. Отобразите его переходной процесс.

[b,a] = butter(3,0.4);
stepz(b,a)
grid

Создайте идентичный фильтр с помощью designfilt и отобразите его переходной процесс с помощью fvtool.

d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.4);
stepz(d)

Спроектируйте четвертый порядок lowpass эллиптический фильтр с нормированной частотой полосы пропускания 0.4π рад/выборка. Задайте неравномерность в полосе пропускания 0,5 дБ и затухание в полосе задерживания 20 дБ. Постройте первые 50 выборок переходного процесса фильтра.

[b,a] = ellip(4,0.5,20,0.4);
stepz(b,a,50)
grid

Создайте тот же фильтр с помощью designfilt и отобразите его переходной процесс с помощью fvtool.

d = designfilt('lowpassiir','FilterOrder',4,'PassbandFrequency',0.4, ...
               'PassbandRipple',0.5,'StopbandAttenuation',20, ...
               'DesignMethod','ellip');
stepz(d,50)

Алгоритмы

stepz фильтрует длину n использование последовательности шага

filter(b,a,ones(1,n))

и строит результаты с помощью stem.

Вычислить n в случае автодлины, stepz любой использование   n = length(b) для КИХ-случая или сначала находит полюса с помощью   p = roots(a), если length(a) больше 1.

Если фильтр нестабилен, n выбран, чтобы быть точкой, в которой термин от самого большого полюса достигает 106 раз своего исходного значения.

Если фильтр устойчив, n выбран, чтобы быть точкой, в которой термин из-за самого большого амплитудного полюса является 5 × 10–5 из его исходной амплитуды.

Если фильтр является колебательным (полюса только на модульном круге), stepz вычисляет пять периодов самого медленного колебания.

Если фильтр имеет и колебательные и ослабленные условия, n выбран, чтобы равняться пяти периодам самого медленного колебания или точки, в которой термин из-за полюса самой большой немодульной амплитуды является 5 × 10–5 раз ее исходная амплитуда, какой бы ни больше.

stepz также допускает задержки полинома числителя. Количество задержек включено в расчет для количества выборок.

Смотрите также

| | | | | |

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