exponenta event banner

Фильтрация данных в командной строке

Простой фильтр полосы пропускания

Использовать idfilt применение полосы пропускания и других пользовательских фильтров к временной или частотной области iddata объект.

Как правило, можно задать любой пользовательский фильтр. Используйте этот синтаксис для фильтрации iddata объект data с помощью фильтра с именем filter:

fdata = idfilt(data,filter)

В простейшем случае можно задать фильтр полосы пропускания для данных временной области, используя следующий синтаксис:

fdata = idfilt(data,[wl wh])

В этом случае w1 и wh представляют низкую и высокую частоты полосы пропускания соответственно.

Можно указать несколько полос пропускания следующим образом:

filter=[[w1l,w1h];[ w2l,w2h]; ....;[wnl,wnh]]

Фильтр является nоколо-2 матрица, где каждая строка определяет полосу пропускания в радианах в секунду.

Определение полосы останова между ws1 и ws2, использовать

filter = [0 ws1; ws2 Nyqf]

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

Для данных временной области фильтрация полосы пропускания представляет собой каскадные фильтры Баттерворта заданного порядка. Порядок фильтров по умолчанию - 5. Фильтр Баттерворта такой же, как butter в продукте Toolbox™ обработки сигналов. Для данных в частотной области выберите указанные части данных для выполнения фильтрации полосы пропускания.

Определение пользовательского фильтра

Использовать idfilt применение полосы пропускания и других пользовательских фильтров к временной или частотной области iddata объект.

Как правило, можно задать любой пользовательский фильтр. Используйте этот синтаксис для фильтрации iddata объект data с помощью фильтра с именем filter:

fdata = idfilt(data,filter)

Можно определить общую систему с одним входом/одним выходом (SISO) для фильтрации данных временной или частотной области. Только для частотной области можно задать (непараметрическую) частотную характеристику фильтра.

Этот синтаксис используется для фильтрации iddata объект data с использованием пользовательского фильтра, указанного filter:

fdata = idfilt(data,filter)

filter может быть также любым из следующих:

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

idm является SISO-идентифицированной линейной моделью или объектом LTI. Дополнительные сведения об объектах LTI см. в документации по Toolbox™ системы управления.

{num,den} определяет фильтр как передаточную функцию как массив ячеек числительных и знаменательных коэффициентов фильтра.

{A,B,C,D} является массивом ячеек матриц состояния и пространства SISO.

В частности, для данных частотной области задается частотная характеристика фильтра:

filter = Wf

Здесь, Wf - вектор вещественных или комплексных значений, определяющих частотную характеристику фильтра, где входы и выходы data на частоте data.Frequency(kf) умножаются на Wf(kf). Wf - вектор столбца длиной, равной числу частот в data.

Когда data содержит несколько экспериментов, Wf - клеточный массив длиной, равной числу экспериментов в data.

Причинно-следственные и некаузальные фильтры

Для данных временной области фильтрация по умолчанию является причинно-следственной. Причинные фильтры обычно вносят фазовый сдвиг в результаты. Использование некаузального фильтра с нулевой фазой (соответствует filtfilt в продукте Signal Processing Toolbox) укажите третий аргумент в idfilt:

fdata = idfilt(data,filter,'noncausal')

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

При подаче заявки idfilt в idfrd объект данных, данные сначала преобразуются в частотную область iddata (см. Преобразование между частотной областью и данными частотного отклика). Результатом является iddata объект.

Связанные темы