В предыдущих разделах была рассмотрена фильтрация
двух типов: быстрых вариаций сигнала (сглаживание) и его медленных вариаций (снятие тренда). Иногда требуется выделить среднемасштабную составляющую сигнала, уменьшив как более быстрые, так и более медленные его компоненты. Одна из возможностей решения этой задачи связана с применением полосовой фильтрации на основе последовательного скользящего усреднения.
Алгоритм полосовой фильтрации реализует такую последовательность операций:
1. Приведение массива данных yi (на
рис.1 они показаны кружками) к нулевому среднему значению путем его вычитания из каждого элемента
yi.
2. Устранение из сигнала y высокочастотной составляющей, имеющее целью получить сглаженный сигнал middle, например, с помощью скользящего усреднения с малым окном w (в
примере с w=3).
3. Выделение из сигнала middle низкочастотной составляющей slow, например, путем скользящего усреднения с большим окном w (в
примере w=7), либо с помощью снятия тренда.Тренд
slow показан на рис.1 пунктиром.
4. Вычесть из сигнала middle тренд slow, тем самым выделяя среднемасштабную составляющую исходного сигнала y.
Результат полосовой фильтрации
приведен на рис.1 в виде сплошной кривой.
Рис.1. Результат полосовой фильтрации