MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Основы работы в Curve Fitting Toolbox \ Curve Fitting Toolbox

В оглавление книги \ К предыдущему разделу \ К следующему разделу

Основы работы в Curve Fitting Toolbox

1.3.10. Сглаживание и фильтрация данных

Если данные сильно зашумлены, то имеет смысл произвести их сглаживание. Однако следует иметь ввиду, что сглаживание данных приводит к тому, что стандартное предположение относительно нормального распределения ошибки не будет выполняться. Поэтому сглаживание обычно применяется для получения информации о возможном выборе типа параметрической модели, а сам процесс подбора параметров параметрической модели проводят для исходных (несглаженных) данных.

Сглаживание производится по нескольким расположенным подряд данным, причем их число обычно подбирается экспериментально.

В Curve Fitting Toolbox реализовано три способа сглаживания:

Все эти способы сглаживания производятся в диалоговом окне Data на вкладке Smooth. Окно Data открывается нажатием на кнопку Data в основном окне приложения cftool.


Вкладка Smooth окна Data для сглаживания данных

В раскрывающемся списке Original data set выбирается множество данных (которое надо создать при импорте данных из рабочей среды MATLAB, см. разд. Окно приложения cftool. Импорт данных в приложение cftool).

В строке ввода Smoothed data set вводится имя, которое будет присвоено сглаженным данным.

В раскрывающемся списке Method выбирается один из способов сглаживания.

В строке Span задается число соседних точек, по которым производится сглаживание (для взвешенной локальной регрессии можно задавать меньшее единицы число, оно воспринимается как процент от общего числа точек, используемых для сглаживания).

Для фильтра Савицкого-Голея требуется задание степени полинома для локальной регрессии, степень задается в строке ввода Degree.

Сглаженные данные можно визуализировать (кнопка View), переименовать (кнопка Rename), удалить (кнопка Delete) и сохранить в глобальной переменной рабочей среды MATLAB (см. разд. Экспорт сглаженных данных).

Метод скользящего среднего

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

где 2N + 1 - число точек, выбираемых для сглаживания, т.е. слева и справа от текущей точки выбирается по N точек (ясно, число точек, участвующих в сглаживании, должно быть нечетным). Данные, расположенные в точках, близких к границам отрезка, не сглаживаются, т.к. не хватает точек справа или слева от текущей, в которой в данный момент производится сглаживание. Ниже на рисунках приведены исходные зашумленные данные

x=0:0.002:5;
y=x.*sin(3*x)+2*randn(size(x));

сглаженные с N = 33 точками и сглаженные с N = 191 точкой. Красная линия соответствует незашумленным данным


Левый график - зашумленные данные (синим) и незашумленные (красным)
Средний график - сглаженные с N = 33 (зеленым) и незашумленные (красным)
Правый график - сглаженные с N = 191 (зеленым) и незашумленные (красным)

Взвешенная локальная регрессия (lowess и loess)

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

где d(xk) - расстояние от xk до наиболее удаленной точки из набора. Т.е. наибольший вес (равный единице) будет у yk, а наименьший (равный нулю) у данных, расположенных на границах набора. Распределение весов для некоторой точки внутри интервала, где заданы данные, и на краях, показано на следующем графике:


Значения весов для взвешенной локальной регрессии (красными маркерами обозначены точки ), в которых заданы данные

После выбора весов сглаженное значение находится при помощи локальной взвешенной регрессии с определенными выше весами , причем в зависимости от выбора пользователя в раскрывающемся списке Method на вкладке Smooth окна Data делается различная регрессия

  • для Lowess - линейная регрессия;
  • для Loess - квадратичная регрессия.

Кроме опций Lowess и Loess в раскрывающемся списке Method на вкладке Smoothing в окне Data есть еще Robust Lowess и Robust Loess. Эти способы менее чувствительны по отношению к выбросам, поскольку выбор весов осуществляется за несколько итераций, на каждой из которых более удаленным от регрессионной кривой (найденной на предыдущей итерации) точкам назначаются меньшие веса, а если точка сильно удалена, то она вовсе исключается при выполнении локальной линейной или квадратичной регрессии на следующей итерации.

На приведенных ниже графиках представлен результат сглаживания данных с использованием 10% от всех точек и 20% от всех точек.

x=0:0.002:5;
y=x.*sin(3*x)+2*randn(size(x));

Красная линия соответствует незашумленным данным


Левый график - зашумленные данные (синим) и незашумленные (красным)
Средний график - сглаженные с 10% от всех точек (черным) и незашумленные (красным)
Правый график - сглаженные с 20% от всех точек(зеленым) и незашумленные (красным)

Фильтр Савицкого-Голея

В фильтре Савицкого-Голея степень полинома, применяемого для локальной регрессии, может быть выше, чем в предыдущем способе сглаживания, при этом выполняется невзвешенная локальная регрессия. Число соседних данных (задаваемое в строке ввода Span) для сглаживания в точке должно быть нечетное, а степень полинома (задаваемая в строке ввода Degree) меньше, чем число соседних данных.

Этот способ фильтрации хорошо подходит для зашумленных сигналов, в которых при сглаживании требуется сохранить высокие частоты. При повышении степени полинома, применяемого в локальной регрессии, лучше воспроизводятся узкие и высокие пики.

В оглавление книги \ К предыдущему разделу \ К следующему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика