impz

Импульсная характеристика цифрового фильтра

Описание

пример

[h,t] = impz(b,a) возвращает импульсную характеристику цифрового фильтра с коэффициентами числителя b и коэффициенты знаменателя a. Функция выбирает количество выборок и возвращает коэффициенты ответа в h и шаги расчета в t.

[h,t] = impz(sos) возвращает импульсную характеристику фильтра, заданного матрицей секций второго порядка sos.

пример

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

пример

[h,t] = impz(___,n) задает что выборки импульсной характеристики вычислить. Можно задать фильтр с помощью любого из предыдущих синтаксисов.

пример

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

пример

impz(___) без выходных аргументов строит импульсную характеристику фильтра.

Примеры

свернуть все

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

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

Спроектируйте тот же фильтр с помощью designfilt. Постройте первые 50 выборок его импульсной характеристики.

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

Спроектируйте КИХ highpass фильтр порядка 18 с помощью окна Кайзера с β=4. Задайте частоту дискретизации 100 Гц и частоту среза 30 Гц. Отобразите импульсную характеристику фильтра.

b = fir1(18,30/(100/2),'high',kaiser(19,4));
impz(b,1,[],100)

Спроектируйте тот же фильтр с помощью designfilt и постройте его импульсную характеристику.

d = designfilt('highpassfir','FilterOrder',18,'SampleRate',100, ...
               'CutoffFrequency',30,'Window',{'kaiser',4});
impz(d,[],100)

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

свернуть все

Коэффициенты передаточной функции в виде векторов. Опишите передаточную функцию в терминах b и a как

H(ejω)=B(ejω)A(ejω)=b (1)+b (2)ejω+b (3)ej2ω++b (M)ej(M1)ω(1)+(2)ejω+(3)ej2ω++(N)ej(N1)ω.

Пример: b = [1 3 3 1]/6 и a = [3 0 1 0]/3 задайте третий порядок Фильтр Баттерворта с нормированной частотой на 3 дБ 0.5π рад/выборка.

Типы данных: double | single
Поддержка комплексного числа: Да

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

Пример: s = [2 4 2 6 0 2;3 3 0 6 0 0] задает третий порядок Фильтр Баттерворта с нормированной частотой на 3 дБ 0.5π рад/выборка.

Типы данных: double | single
Поддержка комплексного числа: Да

Цифровой фильтр в виде digitalFilter объект. Использование designfilt сгенерировать цифровой фильтр на основе технических требований частотной характеристики.

Пример: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) задает третий порядок Фильтр Баттерворта с нормированной частотой на 3 дБ 0.5π рад/выборка.

Демонстрационные числа в виде положительного целого числа, вектора из неотрицательных целых чисел или пустого вектора.

  • Если n положительное целое число, impz вычисляет первый n выборки импульсной характеристики и возвращают t как (0:n-1)'.

  • Если n вектор из неотрицательных целых чисел, impz вычисляет импульсную характеристику в местоположениях, заданных в векторе.

  • Если n пустой вектор, impz вычисляет количество выборок автоматически. См. Алгоритмы для получения дополнительной информации.

Пример: impz([2 4 2 6 0 2;3 3 0 6 0 0],5) вычисляет первые пять выборок импульсной характеристики Фильтра Баттерворта.

Пример: impz([2 4 2 6 0 2;3 3 0 6 0 0],[0 3 2 1 4 5]) вычисляет первые шесть выборок импульсной характеристики Фильтра Баттерворта.

Пример: impz([2 4 2 6 0 2;3 3 0 6 0 0],[],5e3) вычисляет импульсную характеристику Фильтра Баттерворта, спроектированного, чтобы отфильтровать сигналы, произведенные на уровне 5 кГц.

Частота дискретизации в виде положительной скалярной величины. Когда модуль времени является секундами, fs описывается в герц.

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

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

свернуть все

Коэффициенты импульсной характеристики, возвращенные как вектор-столбец.

Шаги расчета, возвращенные как вектор-столбец.

Алгоритмы

impz фильтрует длину-n импульсное использование последовательности

filter(b,a,[1 zeros(1,n-1)])

и строит использование результата stem.

Примечание

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

Когда impz вычисляет n автоматически, алгоритм зависит от свойств фильтра:

  • КИХ-фильтры — n длина b.

  • БИХ-фильтры — impz сначала находит полюса использования передаточной функции roots.

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

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

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

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

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

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

| | | | (Control System Toolbox)

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