impzlength

Импульсная продолжительность ответа

Синтаксис

len = impzlength(b,a)
len = impzlength(sos)
len = impzlength(d)
len = impzlength(hs)
len = impzlength(___,tol)

Описание

пример

len = impzlength(b,a) возвращает импульсную продолжительность ответа для причинного фильтра дискретного времени с рациональной системной функцией, заданной числителем, b, и знаменателем, a, полиномами в z –1. Для стабильных БИХ-фильтров len является эффективной импульсной длиной последовательности ответа. Условия в БИХ-импульсном ответе фильтра после len-th термин являются по существу нулем.

пример

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

пример

len = impzlength(d) возвращает импульсную продолжительность ответа для цифрового фильтра, d. Используйте designfilt, чтобы сгенерировать d на основе спецификаций частотной характеристики.

пример

len = impzlength(hs) возвращает импульсную продолжительность ответа для Системы фильтра object™, hs. У вас должно быть программное обеспечение DSP System Toolbox™, чтобы использовать impzlength с Системным объектом фильтра.

len = impzlength(___,tol) задает допуск к оценке эффективной продолжительности БИХ-импульсного ответа фильтра. По умолчанию tol является 5e-5. Увеличение значения tol оценивает более короткую эффективную длину для БИХ-импульсного ответа фильтра. Уменьшение значения tol производит более долгую эффективную длину для БИХ-импульсного ответа фильтра.

Примеры

свернуть все

Создайте lowpass allpole БИХ-фильтр с полюсом в 0,9. Вычислите эффективную импульсную продолжительность ответа. Получите импульсный ответ. Постройте результат.

b = 1;
a = [1 -0.9];
len = impzlength(b,a)
len = 93
[h,t] = impz(b,a);
stem(t,h)

h(len)
ans = 6.1704e-05

Разработайте 4-й порядок lowpass эллиптический фильтр с частотой среза 0.4π рад/выборка. Задайте 1 дБ пульсации полосы пропускания и 60 дБ затухания полосы задерживания. Разработайте фильтр в нулевом усилении полюса, формируют и получают матрицу раздела второго порядка использование zp2sos. Определите эффективную импульсную длину последовательности ответа из матрицы раздела второго порядка.

[z,p,k] = ellip(4,1,60,.4);
[sos,g] = zp2sos(z,p,k);
len = impzlength(sos)
len = 80

Используйте designfilt, чтобы разработать 4-й порядок lowpass эллиптический фильтр с нормированной частотой полосы пропускания 0.4π рад/выборка. Задайте 1 дБ пульсации полосы пропускания и 60 дБ затухания полосы задерживания. Определите эффективную импульсную длину последовательности ответа и визуализируйте ее.

d = designfilt('lowpassiir','FilterOrder',4,'PassbandFrequency',0.4, ...
               'PassbandRipple',1,'StopbandAttenuation',60, ...
               'DesignMethod','ellip');
len = impzlength(d)
len = 80
impz(d)

Этот пример требует программного обеспечения DSP System Toolbox™.

Разработайте 4-й порядок lowpass эллиптический фильтр с частотой среза 0.4*pi рад/выборка. Задайте 1 дБ пульсации полосы пропускания и 60 дБ затухания полосы задерживания. Разработайте фильтр в нулевом усилении полюса, формируют и получают матрицу раздела второго порядка с помощью zp2sos. Создайте biquad, фильтруют Систему object™ и вводят Системный объект к impzlength.

[z,p,k] = ellip(4,1,60,.4);
[sos,g] = zp2sos(z,p,k);
hBqdFilt = dsp.BiquadFilter('Structure','Direct form I',...
                                            'SOSMatrix', sos,...
                                            'ScaleValues',g);
len = impzlength(hBqdFilt)
len = 80

Разработайте БИХ Баттерворт и КИХ equiripple фильтры для данных, выбранных на уровне 1 кГц. Частота полосы пропускания составляет 100 Гц, и частота полосы задерживания составляет 150 Гц. Пульсация полосы пропускания составляет 0,5 дБ и существует 60 дБ затухания полосы задерживания. Получите Системные объекты для фильтров и сравните импульсные длины последовательности ответа фильтра.

d = fdesign.lowpass('Fp,Fst,Ap,Ast',100,150,0.5,60,1000);
Hd1 = design(d,'butter','SystemObject',true);
Hd2 = design(d,'equiripple','SystemObject',true);
len = [impzlength(Hd1) impzlength(Hd2)]
len = 1×2

   183    49

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

свернуть все

Коэффициенты числителя, заданные как скаляр (allpole фильтр) или вектор.

Пример: b = fir1(20,0.25)

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

Коэффициенты знаменателя, заданные как скаляр (КИХ-фильтр) или вектор.

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

Матрица разделов второго порядка, заданных как K-by-6 матрица. Системная функция K-th biquad фильтр имеет рациональное Z-преобразование

Hk(z)=Bk(1)+Bk(2)z1+Bk(3)z2Ak(1)+Ak(2)z1+Ak(3)z2.

Коэффициенты в K th строка матрицы, sos, упорядочены можно следующим образом.

[Bk(1)Bk(2)Bk(3)Ak(1)Ak(2)Ak(3)]

Частотная характеристика фильтра является системной функцией, оцененной на модульном круге с

z=ej2πf.

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

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

Отфильтруйте Системный объект, заданный как одно из следующего:

Следующие Системные объекты Фильтра поддерживаются этой аналитической функцией:

Используя impzlength с фильтром Системный объект требует программного обеспечения DSP System Toolbox.

Допуск к БИХ фильтрует эффективную импульсную продолжительность ответа, заданную как положительное число. Допуск определяет термин в абсолютно суммируемой последовательности, после которой последующие условия считаются 0. Допуском по умолчанию является 5e-5. Увеличение допуска возвращает более короткую эффективную импульсную длину последовательности ответа. Уменьшение допуска возвращает более долгую эффективную импульсную длину последовательности ответа.

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

свернуть все

Продолжительность импульсного ответа, заданного как положительное целое число. Для стабильных БИХ-фильтров с абсолютно суммируемыми импульсными ответами impzlength возвращает эффективную длину для импульсного ответа, вне которого коэффициенты являются по существу нулем. Можно управлять этим пределом путем определения дополнительного входного параметра tol.

Алгоритмы

Чтобы вычислить импульсный ответ для КИХ-фильтра, impzlength использует длину b. Для БИХ-фильтров функция сначала находит полюса передаточной функции с помощью roots.

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

Если фильтр стабилен, длина расширяет к точке, в которой термин от само-амплитудного полюса является временами tol его исходная амплитуда.

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

Если фильтр имеет и колебательные и ослабленные условия, длина расширяет к большим из этих значений:

  • Пять периодов самого медленного колебания.

  • Точка, в которой термин из-за самого большого полюса является временами tol его исходная амплитуда.

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

| | |

Введенный в R2013a