Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Търся библиотека или насока за сплайн/spline
http://mcu-bg.com/mcu_site/viewtopic.php?f=14&t=14126
Страница 1 от 2

Автор:  Ники [ Вто Окт 27, 2015 10:40 am ]
Заглавие:  Търся библиотека или насока за сплайн/spline

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

Рядко ползвам PCпрограмиране и е било на делфи.

В нета не намерих кой знае какво, а и не можах да се ориентирам в новите среди има ли готови библиотеки за това.

Автор:  bobihot [ Пон Ное 02, 2015 3:12 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

На Лазарус програмирам и там си ги има няколко вида вградени сплайни в програмата в зависимост какво търсиш.
Има BSpline и CubicSpline вградени- ползвал съм и 2-та вида според нуждите. В общият случай за бързи процеси бавят и може да не могат, според компа. Но бавни-разредени сигнали доста добре ги запълват, или изглаждат силно зашумени.
ПС
BSpline са за изглаждане на зашумени сигнали,
CubicSpline са за запълване на редки измервания.

Автор:  TheWizard [ Пон Ное 02, 2015 8:13 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

За тракер графика ли питаш
до колкото помня spline беше крива между две точки

Автор:  DanielDimov [ Пон Ное 02, 2015 9:23 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

в wingdi.h има стандартна функция PolyBezier която рисува криви на Безие

Автор:  ДедоБоре [ Пон Ное 02, 2015 9:51 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

ники,
имай предвид, че всякакви заобляния на начупена линия могат да заблудят/изкривят визуалната интерпретация на измерването. да, красиви са, обаче ако не са подпряни с подходяща статистическа обработа на данните, на много места няма да са верни.

така че, предиви да може да се вижда и "грозния" резултат с начупена линия или дори само точни - там поне е ясно какво точно се вижда.
какво мериш?

Автор:  ps66 [ Пон Ное 02, 2015 10:40 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

сплайн-на е интерполация а не "заглаждане", така че си помисли какво точно искаш !

хубаво нещо за "заглаждане" на "ръбати" неща са калман филтрите

Автор:  ToHu [ Пон Ное 02, 2015 11:51 pm ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

Случай Дедо да нямаш проблеми, зависи разбира се и от семпъл рейта, ако е достатъчно висок спрямо сигнала както и да заглаждаш все ще стане, иначе както Дедо казва може да получиш много красива неверна графика .. и понеже е красива този който я гледа няма и да се змаисли че си я загладил. Ако вижда един скок от 150% като права линия може и да се сети че релано може и да не е точно така, ама като му сложиш една мазна крива може да си помисли че мериш достатъчно точно за да изглежда така и да се води по това, пък какво е било остава един съвсем друг въпрос.

Автор:  bobihot [ Вто Ное 03, 2015 1:51 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

На Лазарус вградените, които съм ползвал в графиката серии се представяха много добре.
На Делфи преди във вградената графика- стандартният TeeChart нямаше изглаждане. Имаше в Про версията-платената извън лиценза към Делфи. Бях им сътрудничил и ми бяха дали код но само за 2010 версията. След това спрях да ползвам Делфито, че нямам лиценз и имах вирусни проблеми със следващите версии, вкл в самата инсталация нямаше вируси, но в генерираните програми си ги слагаше- явно бяха подменили библиотеки.
Та TeeChart тогава му беше лошо според мен организирано заглаждането- трябваше да имаш начупена графика и да й кажеш да я заглади. Може и да са го оправили? Може и за в някои случаи да е по-добре.

Автор:  ToHu [ Вто Ное 03, 2015 9:12 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

Абе това може да е дърво точно заради това което писахме по горе. Дори и при добри скопове ми се е случвало между двете да няма нищо общо, а там хората би трябвало да знаят какво правят.

Автор:  DanielDimov [ Вто Ное 03, 2015 11:06 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

Явно става въпрос за време-диаграма. Идват ми следните идеи:

ако става въпрос за една единствена време-диаграма за която имаш стойностите - може да я направиш в Excel и да включиш опцията "Smoothed line" в опциите на серията

ако става въпрос за програмно генериране на време-диаграми - ако данните са ти много нагъсто - можеш да направиш някакво заглаждане на сигнала или с low-pass филтър или със средна стойност на последните N стойности;

ако данните са ти много нарядко и изрисуването с прави линии изглежда грозно - чак тогава нещата опират до някакви криви които да изгладят цялата линия - има много методи за това, като най-простия за реализация е косинусовата интерполация:
Код:
double CosineInterpolate(double y1, double y2, double mu)
{
   double mu2;
   mu2 = (1 - cos(mu * PI)) / 2;
   return (y1 * (1 - mu2) + y2 * mu2);
}


където y1 и y2 са двете стойности между които ще интерполираш, а mu е стойност между 0 и 1 съответстваща на разстоянието по оста x между двете стойности

Автор:  ДедоБоре [ Вто Ное 03, 2015 11:36 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

интерполацията е приложима само, когато ЗНАЕШ формата на сигнала.
ако ИСКАШ да видиш синусоида, 3 точки и безие крива ти е достатъчко, за да нарисуваш супер-прецизна синусоида.
обаче, ако точките на измерване са 3, ти нарисуваш синусоида, сигнала може да е триъгален, правоъгълен, дори може да не е периодичен.

затова е вредно да се прави интерполация при измерване, защото нищо не знаеш какво има между точките. теоретчно, ако следиш сигнала статистически, вадиш първа и втора производна, би могъл да се досетиш за формата на сигнала и да го нарисуваш правилно. обче няма да видиш спайкове, сложни сигнали (модулирани или съставни).

просто си направи много семпъли и ги вържи с прави. всякакаво заобляне би могло да заблуди.

ps66,
не бъркай интерполация на данни и итеративен интрполационен алогоритъм (за крива, примерно)

Автор:  ps66 [ Вто Ное 03, 2015 11:54 am ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

ДедоБоре написа:
ps66,
не бъркай интерполация на данни и итеративен интрполационен алогоритъм (за крива, примерно)


нищо не бъркам, за разлика от философите по форумите !

Автор:  ДедоБоре [ Вто Ное 03, 2015 12:17 pm ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

ти пък се засягаш...

аз не се въприемам като последна инстанция. въпроса наистина е интересен, в известна степен наистина е философски 8)
все пак с удоволствие ще чуя аргументите за плюсовете на интерполация на (липсващи) данни от измерване на неизвестен сигнал.
не говоря за интерполация на известна функция.
---
човек на стари години неизменно придобива склонност към философстване. и за разлика от мистиката и митологията, философията разчита на по-рационална аргументация. в този смисъл, при добре развита аргументация, винаги съм склонен да си променя мнението по даден въпрос.

Автор:  bobihot [ Вто Ное 03, 2015 9:13 pm ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

ДедоБоре написа:
ти пък се засягаш...
все пак с удоволствие ще чуя аргументите за плюсовете на интерполация на (липсващи) данни от измерване на неизвестен сигнал.
не говоря за интерполация на известна функция.


За сега няколко годишните опити са успешни- При семплиране с АЦП пред него трябва да има нискочестотен филтър да реже по-високите честоти и практически се семплира на 2+ по-висока честота от максималната за сигнала.

Автор:  ToHu [ Вто Ное 03, 2015 9:58 pm ]
Заглавие:  Re: Търся библиотека или насока за сплайн/spline

Ако сигнала е известен .... филтър ако ще и от 20 ред не е тов акоето ни се иска да бъде ... т.е. пак опираш до това знаем ли какво мерим или не ... тук няма философия а факти. За всеки алгоритъм може да се измислят купища сигнали които така ше се разминат с това което ще излезе от алгоритъма че ще се чудиш дали това му е подадено на входа. Тук не казваме че не е възможно, или че не става, казваме че има ограничения и когато с еправи трябва да занеш какво мериш, т.е. какво очакваш като сигнали.

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