|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 7:10 am
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Параболична интерполация - що е то?
| Автор |
Съобщение |
|
juzisound
Ранг: Почетен член
Регистриран на: Съб Май 27, 2006 12:37 pm Мнения: 647 Местоположение: с. Згалево
|
 Параболична интерполация - що е то?
Още от заглавието става ясно...
Налага ми се за едно проектче да направя параболична интерполация по 3 точки - и да намеря най-ниската част от параболата описана от тях.
Сега с думи прости:
Имам масив от 24 /за сега/ сензора - които са наредени под формата на плъзгач - slider. С пръст можеш да пипнеш едновременно най-малко 3 сензора - тоест по всяко време имам резултата от трите "най-много" докоднати сензора. Те естествено са съседни. Сега - според стойностите на трите сензора - трябва да определя най-ниската точка от парабола описана от тях.
Защо точно парабола - ами защото четох за разни комерсиални проекти и открих, че това е начина по който се правело. Идеята е, че имам много повече от 24 резултата - тоест искам да генерирам плавен резултат от движението на пръста с много повече от 24 точки - колкото са сензорите.
Къде е проблема - ами къде - музикант съм - и съм учил математика до 8-ми клас. Предполагам това обеснява доста...
Предполагам, че ще мога да си му спретна някакво си мое алгоритъмче, което в крайна сметка ще свърши работата, ама ми се иска да опитам поне да го направя както трябва.
Всякак помощ е от полза
Това ще го смята PC така че няма проблем със сметките...
|
| Съб Юли 25, 2009 10:31 am |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Ами параболата е равнинно множество от точки, което означава, че всяка точка се описва с две координати - Х, У. Хубаво Х ти е номера на сензора, ами У? Ако сензорите се някакви аналогови, може да ползваш тяхната стойност за У, но ако са цифрови, май ще трябва да разкажеш още от идеята и да помислим  Иначе интерполация по три точки на парабола не е нищо сложно. Знаеш, че функцията е от вида f(x) = ax^2 + bx + c и имаш три двойки координати, с които заместваш и се получава система с 3 неизвестни и 3 уравнение, нищо сложно. А след това, най-ниската точка е - D / 4 a, където D e дискриминантата на f(x) = 0. А може и да го сметнеш и като f(- b/2 a), а можеш и естествено с първа производна  Разбира се всички тези методи работят само ако а > 0, защото иначе нямаш най-ниска точка. Надявам се да съм помогнал, но пак не виждам втората координата на точките.
|
| Съб Юли 25, 2009 1:40 pm |
|
 |
|
juzisound
Ранг: Почетен член
Регистриран на: Съб Май 27, 2006 12:37 pm Мнения: 647 Местоположение: с. Згалево
|
Ами сензорите са цифрови - но всеки може да има стойности от 0% за недокоснат до 100 процента за най-много докоснат. Значи аз знам кои сензори 3 сензора от всички са най-докоснати. Обикновено средния от тях е с най-голяма стойност за докосване - а тия около него са с по-малки. Един вид - трябва да меря отклонение на ляво или на дясно от най докоснатия сензор - по стойностите на съседните. Нещо такова. Ма ми се струва, че с параболата ще стане най-добре.
|
| Съб Юли 25, 2009 3:31 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Е без математика над 8-и клас няма да стане, но е лесно.
През 3 точки можеш да прекараш полином от 2-и ред и да му сметнеш минимума
(или максимума, което ти трябва или каквото има, де). В крайна сметка се стига до смятане на детерминанта
2 на 2 или като там му се казваше на такова, а бе няколко прости сметки са.
Но има известно учене на следосмокласна математика дотам - неголямо според
мене и сякаш задължително, едва ли би те затруднило и вероятно би си струвало
усилието за справящ се с техниката човек като тебе.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Съб Юли 25, 2009 4:05 pm |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Не се изразих добре май  Идеята е, че изхода от датчика не трябва да е бинарен (докоснат или недокоснат), което при теб е изпълнено, така че си готов да дерзаеш. Номера на датчика си го разгледай като Х координата, а пък стойността му като У. И ето ти трите точки, с които като заместиш в горната функция и се получава лесна система. И след това си търсиш екстремума по някой от методите, които споменах по-горе. Иначе смятам, че наистина ще ти е полезно да вземеш един учебник примерно 12клас за профилирана подготовка, където са разказани тези неща, а другия вариант е някой университетски учебник, но там не мога да ти препоръчам нищо, защото тази година ще ми е първата като студент. Но трябва да имаш предвид, че сигурно ги има тези неща още по лесно развити примерно с матрици и детерминанти както спомена tgi, но за там трябва да имаш по ясна представа за математиката.
|
| Съб Юли 25, 2009 5:47 pm |
|
 |
|
juzisound
Ранг: Почетен член
Регистриран на: Съб Май 27, 2006 12:37 pm Мнения: 647 Местоположение: с. Згалево
|
Като знам колко неща съм научил, че и после забравил... едва ли ми е тепърва време да сядам сега да я уча пуста математика. То не е едно да не знам - или да си припомня.
Аз вече съм си направил една примерна постановка - на хартия де, която изглежда ще работи - а и ще може да се смята от някакъв контролер, щото това в крайна сметка може и на контролер да отиде някога.
Направил съм нещо такова:
Определям кой ми е най докоснатия сензор и после правя нещо като тежнения на тия около него, които в крайна сметка според позицията си и степента на докосване, преместват резултата на-най докоснатия сензор на горе или долу.
В крайна сметка ще излиза май точно това което ми трябва - и като че ли с доста по малко сметки отколкото с тая интерполация. Може би ще трябва малко донастройване, но иначе гледайки из нета примери за параболична интерполация, струват ми се много трудоемки за процесора. Много сметка много нещо...
Пък Вие казвате, че било лесно...
Или аз гледам не дето трябва - или...
|
| Съб Юли 25, 2009 6:10 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Според мен си направи първо хардуера и после почвай с екперимвнти по софтуера. При твоето задание ми се струва, че винаги средния от трите сензора ще е с най-голяма (най-малка стойност). Като начало сложи едно средно аритметично на трите и виж как ще се държи. В последствие можеш да прецизираш нещата.
|
| Съб Юли 25, 2009 8:27 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
това с тегловното преместване което сам си си измислил е добро, ако го изпълниш както трябва, не ти трябва парабола.
моята препоръка: сумираш индексите на трите "най-докоснати" датчика
всеки умножен по собствената си степен на докосване. делиш получената сума на сумата от трите степени на докосване. това е оптималния вариант на тегловно сумиране.
|
| Съб Юли 25, 2009 9:55 pm |
|
|
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|