idfilt

Отфильтруйте данные с помощью пользовательских полос пропускания, общих фильтров или Фильтров Баттерворта

Синтаксис

Zf = idfilt(Z,filter)
Zf = idfilt(Z,filter,causality)
Zf = idfilt(Z,filter,'FilterOrder',NF)

Описание

Zf = idfilt(Z,filter) данные о фильтрах с помощью пользовательских полос пропускания, общих фильтров или Фильтров Баттерворта. Z данные, заданные как iddata объект. Zf содержит отфильтрованные данные как iddata объект. Фильтр может быть задан тремя способами:

  • Как явная система, которая задает фильтр.

    filter = idm or filter = {num,den} or filter = {A,B,C,D}
    

    idm может быть идентифицированная линейная модель любой SISO или объект модели LTI. Кроме того, фильтр может быть задан как массив ячеек {A,B,C,D} из матриц пространства состояний SISO или как массив ячеек {num,den} из числителя/знаменателя фильтруют коэффициенты.

  • Как вектор или матрица, которая задает одну или несколько полос пропускания.

    filter=[[wp1l,wp1h];[ wp2l,wp2h]; ....;[wpnl,wpnh]]
    

    Матрицей является n- 2, где каждая строка задает полосу пропускания. Фильтр создается, который дает объединение этих полос пропускания. Для данных временного интервала это вычисляется как расположенные каскадом Фильтры Баттерворта или порядок NF. Значением по умолчанию NF является 5.

    • Для данных временного интервала — полосы пропускания находятся в модулях rad/TimeUnit, где TimeUnit единицы измерения времени данных об оценке.

    • Для данных частотного диапазона — полосы пропускания находятся в единицах частоты (FrequencyUnit свойство) данных об оценке.

    Например, чтобы задать полосу задерживания между ws1 и ws2Использование

    filter = [0 ws1; ws2,Nyqf]
    

    где Nyqf частота Найквиста.

  • Для данных частотного диапазона только может быть задана частотная характеристика фильтра.

    filter = Wf
    

    Здесь Wf вектор возможно комплексных чисел, которые задают частотную характеристику фильтра, так, чтобы вводы и выводы на частоте Z.Frequency(kf) умножаются на Wf(kf). Wf вектор-столбец длины = количество частот в Z. Если объект данных имеет несколько экспериментов, Wf массив ячеек длины = # экспериментов в Z.

Zf = idfilt(Z,filter,causality) задает причинную связь. Для данных временного интервала фильтрация выполняется во временном интервале как причинная фильтрация как значение по умолчанию. Это соответствует последнему аргументу causality = 'causal'. С causality = 'noncausal', непричинный, фильтр нулевой фазы используется в фильтрации (соответствующий filtfilt в продукте Signal Processing Toolbox™).

Для данных частотного диапазона сигналы умножаются на частотную характеристику фильтра. С фильтрами, заданными как полоса пропускания, это дает идеал, фильтрация нулевой фазы (“фильтры кирпичной стены”). Частоты, которые были присвоены нулевой вес фильтром (вне полосы пропускания, или с помощью частотной характеристики) удалены из iddata объект Zf.

Zf = idfilt(Z,filter,'FilterOrder',NF) задает порядка фильтра. Временной интервал просачивается, случай полосы пропускания вычисляется как расположенная каскадом полоса пропускания Баттерворта и фильтры полосы задерживания. Порядки этих фильтров равняются 5 по умолчанию, который может быть изменен на произвольный целочисленный NF.

Это - установившаяся практика в идентификации, чтобы выбрать диапазон частот, где подгонка между моделью и данными сконцентрирована. Часто это соответствует фильтрации полосы пропускания с полосой пропускания по интересным точкам останова в диаграмме Боде. Для идентификации, где возмущение также оценивается, лучше достигнуть желаемого результата оценки при помощи 'WeightingFilter' опция команды оценки, чем только к предварительному фильтру данные. Значения для 'WeightingFilter' совпадают с аргументом filter в idfilt.

Алгоритмы

Фильтр Баттерворта совпадает с butter в продукте Signal Processing Toolbox. Кроме того, фильтр нулевой фазы эквивалентен filtfilt в том тулбоксе.

Ссылки

Ljung (1999), глава 14.

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

|

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