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)

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

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

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

Figure Filter Visualization Tool - Impulse Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Impulse Response contains an object of type stem.

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

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

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

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

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

Figure Filter Visualization Tool - Impulse Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Impulse Response contains an object of type stem.

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

свернуть все

Коэффициенты передаточной функции, заданные как векторы. Выразите передаточную функцию с точки зрения 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ω++один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 строка 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