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-by-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