Отфильтруйте данные с помощью пользовательских полос пропускания, общих фильтров или Фильтров Баттерворта
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.