impzlength

Длина импульсной характеристики

Описание

пример

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