Математический форум Math Help Planet
http://mathhelpplanet.com/

Как произвести сглаживание графика
http://mathhelpplanet.com/viewtopic.php?f=22&t=52293
Страница 1 из 1

Автор:  96BlueWater [ 29 дек 2016, 01:34 ]
Заголовок сообщения:  Как произвести сглаживание графика

Изображение

Если вводить эти коды, точнее параметры: G:=cspline(U(T,X,P),T)
f(U(T,X,P)):=interp(G,U(T,X,P),T)
то spline и interp выделяются красными.
уменьшить шаг не получится, т.к. график изменится и будет соответственно не правильным.
Как произвести сглаживание?

Автор:  michel [ 29 дек 2016, 10:00 ]
Заголовок сообщения:  Re: Как произвести сглаживание графика

У Вас функция изначально гладкая, но на графике выводится всего 6 точек. Увеличьте число точек, которое задается диапазоном для переменной i, а ещё лучше задайте вывод без указания точек (переменной i): просто задайте по оси ординат U(T,0.3,70), при этом по оси абсцисс задайте пределы от 300 до 600 (иначе по умолчанию пределы будут от -10 до 10)

Автор:  BoxMuller [ 14 янв 2017, 14:37 ]
Заголовок сообщения:  Re: Как произвести сглаживание графика

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

- есть методика, называется "кепстральное сглаживание спектра", она сохранит вершины и не привнесет лага
здесь описана: http://recherche.ircam.fr/anasyn/schwar ... nvelo.html

- можно попробовать медианное сглаживание (но сначала взять точек больше)

Так или иначе придется увеличить количество точек.

Можно увеличить количество точек не исказив графика, тупо отразить существующий с большим разрешением.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/