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

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

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

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

fdata = idfilt(data,filter)

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

fdata = idfilt(data,[wl wh])

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

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

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

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

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

filter = [0 ws1; ws2 Nyqf]

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

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

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

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

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

fdata = idfilt(data,filter)

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

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

fdata = idfilt(data,filter)

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

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

idm является SISO-идентифицированной линейной моделью или объектом LTI. Для получения дополнительной информации об объектах LTI см. документацию по Control System 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 объект.

Похожие темы