|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:14 pm
филтрация .... или по скоро .... апроксимация
| Автор |
Съобщение |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 филтрация .... или по скоро .... апроксимация
каква е идеята, ясно е че за да се подобри точноста се вземат няколко отчета после се търи средно аритметично, това е най-лесния начин, но не е и най-надеждният. Приналичие на шум или възможност за отклонения ми се струва доста по точно ще е ако се позлва алгоритъм толерантен към съвпадения. Каква е идеята, в поредицата 12,23,23,45,10,22,21,23 ако вземем средно аритметичното ще получим 22.375, но ако имаме алгоритъм който е толерантен към съвпадения, в зависимост от границата която се зададе можем да получим доста по точен резултат, примерно той ще използва само 23,23,22,23 или 23,23,22,21,23 и в двтаа случая резултат ще бъде 22,75 или 22.4 което е доста по тоно от осреднението. Още повече че осреднението горе дава сравнително точен резултат тъй като 45 като отклонение в + компенсира 12 и 10 като отклонение в -.
Та някой правил ли е нещо подобно. Имам няколко идеи, най-простат е да се напрви филтър който да орязва пиковете, ма ми се върти и нещо друго в главата дето не мога да го усмислия още.
|
| Нед Окт 15, 2006 10:45 am |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Ако може и аз да се включа, въпреки че няма опит точно с такъв метод.
Така ... на какъв принцип се правят замерванята по INT или периодично, аок е периодично и сложиш един външен филтър/елементи , то когато имаш мерене ще измериш какво ?
Т.е филтъра какво ще прави като има пик - не го пуска и шунтира или не знам , опитвам се да си го представя, но си мисля ще измериш 0 или F-ове  поне както го виждам аз.
ако е по INT проблем нямаш , защото филтъра не пуска, защото има пик и чак като пусне ще има външно събите и мерене.
Може да се направи и по-грубо , а може би е по-хубаво.
От филтъра още един "извод" към пин за външен инт, но това вече е страшно
--
Затова си мисля, че е най-добре не с външен филтър, ами програмно да се указвате тези горници , ака после да се филтрира програмно резултатите и да се вземат за средно-алгебрично изчисление само миналите програмният филтър 
|
| Нед Окт 15, 2006 11:26 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Добре е да се отрежат показанията, където ADC явно е извън границите. Добре е да се следи скоростта на нарастване на сигнала е когато е над определена граница, измерването да се отреже. И най-накрая се прави средно аритметично.
|
| Нед Окт 15, 2006 11:53 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ами значи то това е в сила в повечето случаи, но в конкретния не става въпрос за директно измерване, резултата се получава след доста калкулации, но естествено това е свързано със входни величини. Значи имам измерване на разстояние, което по принцип стана доста добре по една комбинирана методика, но тук таме се получават отклонения над-допустимото, фактори много, въздушно течение някакво, случайно ехо, има от какво да станат. Целта е да речем от 10 измервания да взема усреднена стойност.
Най-простия вариант е с средноаритметично. Това е яснокак става. След това може да се направи филтър по делта L да речем, и всичко кето е извън определена граница да не се взема. И то всъщност тов акеото ми е хрумнало за момента е нещо подобно. Виждам го така реализирано :
всяко число се сравнява с останалите, и му се прави индекс, който индекс се инкрементира ри всяки съвпадение, като за съвпадение се разбира отклонение в определени граници.
След това на всички индекси намирам средноаритметичното, и за усредняването вземам само тези числа чийто индекс е равен или по голям от средно аритметичния. По този начин ще влязат само тези стоности които са най-близо една до друга. Този начин си има и недостатъци, примерно акоима две или три групи числа с сравнително еднаква повтаряемост, то резутата ще бъде средноаритметичен на тези групи. В моя случай не очаквам да с еполучи нещо такова, за момента иам стабилни дани около една стойност с малки отклонения, като смущенията да ги наречем са единични с голямо отклонение.
Именно голямото отклонение ме възспира от просто осредняване или използване на просто делта L. Динамичния диапазон не е малък, реално резултата може да бъде от 200 до 2000, и при измерване около 200 понякога се случва да има резултат 600-800 дори 1000.Резулат е реален, в смисъл реално с еполучава такова отражение от нещо, или просто там сигнала е по силен в определен момент, и естествено корелацията прихваща именно тази част. Та с осредняване или диференциране, това отклонение може да окаже съществено влияние, дори при 10 отчета е въможно така да измести критериите че да няма нито един резултат който да мине филтъра.
|
| Нед Окт 15, 2006 12:07 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
Решението е медианна филтрация, последвана от средно аритметично. Първо отстраняваш n на брой най-малки и най-големи резултата, след което на останалите правиш средно аритметично.
_________________ Две плюс две е приблизително равно на четири. Факт!
|
| Нед Окт 15, 2006 12:16 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ами това звучи точно като изплзване на отклонение, правиш средноаритметично на всички, и после по него определяш кои са големите, и кои малките, или искаш да кажеш че просто намираш най големиа махаш, следващия най-голям махаш, така и с малките и каквото остане му правиш средно аритметично.
Ако е това второто, звучи добре, но може би се получав адобър резултат про достатъчно на брой отчети, при 10 ...... ако махна 3 от горе 3 от долу .... това което ще остане дали няма да е далеч от истината. Може да се пробва де.
|
| Нед Окт 15, 2006 12:21 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
И двата подхода си приличат, но при твоя първото средното аритметично ще се виляе от случайни големи флуктуации. Вероятно при голям брой измервания резултатите от двата метода ще са идентични. Това , което ти предлагам е с по-прост алгоритъм и е проверено не само от мене. Използва се на много места, където са възможни големи външни смущения. Идеята е с медианната филтрация да се орежат смущенията, а със средното аритметично - шума. Може да се стигне и до крайност - да се използва само медианна филтрация. Резултатите вероятно пак ще са удовлетворителни.
За ултазвуков далекомер ли става въпрос?  Надявах се да е оптичен.
_________________ Две плюс две е приблизително равно на четири. Факт!
|
| Нед Окт 15, 2006 12:31 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ултразвуков, оптиния е доста сложен при тези малки разстояния и нужнта точност.
Това със осредняването опредлено ще повлияе лошо, аз затов ане го позлвам. Това което предлагаш е добра идея, но ми се струва че е добра при повеко налични данни, не при 10 отчета.
Това което аз си мисля е следното :
Да вземем поредицта : 12,23,12,32,16,25,22,27,16
В тази поредица дори се откроява повече от едно повторение,но найотчетливо е това около 23.
Какво правим
Всяко число го сравняваме с останалите, и увеличаваме индкса му всеки път когто е в границата +/- 10%, така за индексите се получава :
1,2,1,0,1,3,1,0,1
Тук мисля да взема средно аритметично на всички индекси различни от 0, кето е ~ 1.43, и тук вече да взема само тези стойности които имат по голям индекс, а това са втора = 23 и шеста = 25, тук вече вземам средно аритметично което е 24.
Наблюдавайки резултатите до момента, това е един доста тежък случай като за далекомера, много отчети с различни стойности, релано това не би било реално измерване може би, ли измерванена предмет който не е в покой. На пръв поглед близки резултати са 23,25,22,27, чиято осреднена стойност дава 24.25 което е близо до получената 24.
Числата са случайно взето, нароно добавих още числа които да с еповтарят по два пъти за да видя какво ще се получи. Мисля да позлвам това или модифицирано по някакъв начин.
|
| Нед Окт 15, 2006 1:34 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Мии сетих се нещо, което ти вече полуспомена, но лошо няма да го кажа и в този вид:
//от лаб. по физика в ТУ-то  го знам, не че е и кой знае какво, дано свърши работа.
имаме измерване Xi , което се явява или Xo (реалната стойност - т.е идеалното измерванева) , или Xo + грешка , Xо - грешка.
Ето как ни карат да изчисляваме грешката и да достигаме Xо. / това се учи в профилирана подготовка физика в 8-12кл, но *, така че може да е нищо ново , но аз да го кажа може да ви дойде идея.
---
такаа:
правиме n на брой изчисления. (10 най-често)
правим Xср = Сума ( Xi) от i=1 до n (тука трудно ще набухам формула, трябваше май в rtf/doc да го дам , но карай ще ме разберете.
Прави се deltaXi на всяко
след това ВСЯКО се вдига на квадрат deltaXi
т.е получаваме ( deltaXi)^2
след това се прави сумата на (deltaXi)^2
на всичко т.е и нека тази сума я кръсти за по-кратко Z
След това се търси deltaXсредно (не Xср !!! тук много колеги се бъркат).
което е = +/- [ корен квадратен от (сумата Z / (n-1).n ) ]
т.е при 10 замерваня -> (n-1).n = 9
Xo = Xср +/- deltaXср
Това се нарича метод на средната стойност  Поне така го записахме
Аз си му викам метод на грешката  хаха
защото нон стоп се говори за грешка и ми писва тази дума.
Дано съм помогнал, въпреки че си мисля че сега ще се появят мнооооогооо усмивки и коментари:
"когато това го учехме , ти ..."
ее каквоо да се прави
---
* - аз бях в такъв профил, обаче нали знаете , че сега в БГ се правят овеце , а не хора => ака промениха ми учебният план от проф. -> само ЗП (задължителна подготовка) по физика, е*ати простотията, как да е. 
|
| Нед Окт 15, 2006 1:47 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ами да, горе долу схванах, по подобен начин ми работи единт от филтрите в измерващия алгоритъм, мже би ще стане и за крайния резултат ... за отфилтрация ... трябва д афидя какво ще излезе.
п.с. т.е. не е точно филтър това което работи така, по скоро подчертава динамиката, малко число на квадрат дава мако число докато голиамо на квадрат доста по голиамо от резултат от малкото, т.е. отношението на квадрат ..
|
| Нед Окт 15, 2006 1:52 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Ами да ти кажа въпреки архаичните бази за опитите като гледам справочниците ги докарваме резултатите.
Т.е измерванята
Не че съм проверявал много - 1 , 2пъти, но лично на мен ми направи впечатление.
/за 12г в обр. система съм имал сигурно 3или4 опита по физика като само 1 мога да нарека сериозен и то със преко сили.
/иначе човек като има интерес сам се образова. не че физиката е на 100% нужна, но е по-лесно като я знаеш за някои неща около електрониката и прочие, и прочие
сори за лирическото отклонение
ще кача после един протокол да видиш сметките , че така гадно са обяснени формулите.
edit: по-отношение на пс-а ти - ако съм те разбрал правилно не е същот, значи аз тъкмо сядам и да уча днес , та по-късно ще довърша един протокол и тамън ще ти го пратя. да видиш баш сметките 
|
| Нед Окт 15, 2006 1:55 pm |
|
 |
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 1:31 pm Мнения: 3849
|
Тони и на мен това с индексите ми беше пьрвата идея, която ми мина през главата. Но сега като се поразрових в записките ми по математика имам друго предложение.
Използваш т.н. "интервал на доверие" за да определиш, кои са стойностите, които ти пречат.
Алгоритьмьт е следния:
Нека предположим, че си провел 10 измервания и резултатите изглеждат така:
N
1. 200
2. 210
3. 280
4. 250
5. 800
6. 600
7. 100
8. 280
9. 190
10. 230
Ако ги представиш графично ще видиш, че 3 от тях излизат от облака на често срещаните стойности. Т.е. при средно аритметичо ти бьркат много работа.
Какво правиш:
|
| Нед Окт 15, 2006 2:08 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Хмммм, това звучи доста интернсо , виж не се бях сетил, а преди няма и седмица точно гледах подобен статистически метод но в малко по друг аспект. Мерси за инфото, ще направя малко експерименти 
|
| Нед Окт 15, 2006 2:16 pm |
|
 |
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 1:31 pm Мнения: 3849
|
Постовете на the_real_maniac са пуснати докато сьм пишел моя. Става вьпро за един и сьщ метод, варианта който ти предлагам е малко по-разширен, откьм статистическата сигурност, прецени дали имаш нужда от подобна корекция. Ако имаш вьзможност пусни като си готов малко информация на кой метод си се спрял. Може да ти хрумне и нещо по-подходящо. Успех!
|
| Нед Окт 15, 2006 2:17 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Тони не знам как е при твоята ситуация но при някои системи възникват пулсации. И в някои системи тези пулсации са приблизително с еднаква продължителност.
Разгледай си сигнала които дискретизираш да видиш дали не е това твоя случай. В такъв случай по добър алгоритъм е следене на скороста на нарастване или намаляване и при надвишаване нормалната стойност махаш от сметките отчети от преди момента и отчети след този момент. Така се изключва изобщо влиянието на пулсацията върху резултата.
Не е чак токова рядък случай смущенията да са от тоя тип така че си струва да провериш.
|
| Нед Окт 15, 2006 2:26 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: Google [Bot] и 6 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|