Уведомления

Группа в Telegram: @pythonsu

#1 Июль 28, 2014 19:34:49

NikitaKoshelev
От: Королёв
Зарегистрирован: 2014-07-28
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сглаживание графика (интерполяция или аппроксимация)

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

Прошу помощи в поиске алгоритмов реализации данной задачи

Прикреплённый файлы:
attachment CMZ.7z (381,7 KБ)

Офлайн

#2 Июль 28, 2014 23:31:48

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Сглаживание графика (интерполяция или аппроксимация)

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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июль 28, 2014 23:49:42

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Сглаживание графика (интерполяция или аппроксимация)

http://wiki.scipy.org/Cookbook/Interpolation#head-34818696f8d7066bb3188495567dd776a451cf11
SciPy кажется умеет делать то что вы хотите.

Офлайн

#4 Июль 29, 2014 19:16:16

NikitaKoshelev
От: Королёв
Зарегистрирован: 2014-07-28
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сглаживание графика (интерполяция или аппроксимация)

JOHN_16, это самое простое и естественное действие, задача стояла именно интерполирования...

Отредактировано NikitaKoshelev (Июль 29, 2014 19:17:12)

Офлайн

#5 Июль 29, 2014 19:27:45

NikitaKoshelev
От: Королёв
Зарегистрирован: 2014-07-28
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Сглаживание графика (интерполяция или аппроксимация)

GreyZmeem, спасибо огромное за наводку...

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

        tckp,u = splprep([x, y] ,s=100.0, k=1, nest=-1)
        xnew,ynew = splev(linspace(0, 1, len(y)), tckp)

Отредактировано NikitaKoshelev (Июль 29, 2014 19:31:36)

Прикреплённый файлы:
attachment figure_1.png (94,3 KБ)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version