Математические задачи в пакете MathCAD 12



14.3.4. Полосовая фильтрация



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

Алгоритм Полосовой фильтрации приведен в листинге 14.10, а результат его применения показан на рис. 14.23 сплошной кривой. Алгоритм реализует такую последовательность операций:

1. Выставление ноль-линии, т. е. приведение массива данных у к нулевому среднему значению путем его вычитания из каждого элемента у (третья и четвертая строки листинга).

2. Устранение из сигнала у высокочастотной составляющей, имеющее целью получить сглаженный сигнал middle, например, с помощью скользящего усреднения с малым окном w (в листинге 14.10 w=3).

3. Выделение из сигнала middle низкочастотной составляющей slow, например, путем скользящего усреднения с большим окном w (в листинге 14.9 w=7), либо с помощью снятия тренда (см. разд. 14.3.3).

4. Вычесть из сигнала middle тренд slow (последняя строка листинга), тем самым выделяя среднемасштабную составляющую исходного сигнала у.

Листинг 14.10. Полосовая фильтрация



Рис. 14.23. Результат полосовой фильтрации (продолжение листинга 14.10)