| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Цифровой фильтр для временного ряда |
| Автор: DASTAD 15.10.2009, 07:20 |
| Ситуация Есть таблица значений (Time; Value) временного ряда некоторых статистических данных, типа количество заявок, количество отказов, затраты и пр. Есть желание применить к этому ряду фильтр. Я скачал несколько компонент-фильтров нижних частот Калмана, Баттерворта и пр. Результат на рисунке. Синий исходный ряд, красный фильтрованный. Но эти компоненты реализованы так: загоняется ряд целиком, фильтр работает и выдается новый ряд. Причем у нового ряда, несколько (4 или 5 ) первых и последних значений "срезаются". (скрин не самый удачный, но и на нем можно увидеть: небольшой слом и резкий спад вниз в начале и в конце линии) Прошу помощи в создании своего фильтра для временного ряда X[t], t=0..N Хочется получить фильтр в виде алгоритма Y[n] = a0*x[n]+a1*x[n-1]+...+am*x[n-k] + b1*y[n-1]+b2*y[n-2]+...+bk*y[n-1-k]. или Y[n] = SUM ( H[k]*X[n-k]) Фильтр должен брать значения только из "прошлого" Значения ряда X поступют равномерно (раз в минуту, час или в сутки) - по этому значению и предыдущим получить текуще фильтрованное значение Y. Можно пересчитывать коэффициенты фильтра по желанию, скажем основываясь на последних P значениях ряда. У выходного сигнала Y не должно быть сдвига по фазе от X (экстремумы должны совпадать) Подскажите где можно найти метод для получения фильтров в таком виде ? Или готовый алгоритм\компонент для фильтрации в "реальном" времени а не постобработке. Из увиденного больше всего понравился фильтр нижних частот Баттерворта с характеристиками: частота 0,1 Гц PS Собственные знания по цифровым фильтрам отсутсвуют :( Есть под рукой книги Хемминг "Цифровые фильтры", Айфичер "Цифровая обработка сигналов" и несколько медодичек по проектированию фильтров, в том числе и фильтра Баттерворта. |
| Автор: DASTAD 16.10.2009, 20:49 |
| Неужели все цифровые фильтры страдают запаздыванием выходного сигнала? :( |
| Автор: DRUID3 23.10.2009, 07:22 | ||||||||||
??? как так?
Э...
Да...
Противоречит самому понятию - свертка... Нереализуемо... Так и не понял что именно Вам надо, исходник простейшего FIR'а или адаптивный фильтр, но рискну предположить, что таки первое. Googl'им и находим http://www.winfilter.20m.com/. Помимо нахождения значения коэффициентов фильтра эта программа умеет генерировать совершенно неоптимизированные(сдвигом массива "влоб") FIR и IIR фильтры. Но... Для данных поступающих раз в минуту на современных компьютерах - этого бо-о-о-о-олее чем достаточно...
Не поминайте такие термины всуе... |