-         

Ergebnis 1 bis 3 von 3

Thema: brauch hilfe bei datenerfassung/speicherung/verarbeitung

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.378

    brauch hilfe bei datenerfassung/speicherung/verarbeitung

    Anzeige

    situation:
    mehere winkelwerte von 0-360 grad mit 1-2 nachkommastellen (wollt sie in integer verpacken 36000 = 360,00) müssten als ein boxplot ausgegeben werden .... im moment werden es wohl nicht mehr als 20 werte pro boxplot werden ....

    problem:
    erfassung des median und der quartilgrenzen

    derzeitige lösung:

    ist sehr grob und unschön ... array von 360 bytes, für jeden winkelwert (dabei ignorier ich einfach die nachkommastellen) den ich messe erhöh ich den countwert an der indexposition

    also wert = 185.91 -> array[185] += 1;

    anschliessend steppe ich durch das array und mithilfe der anzahl der erfassten werte kann cih median und quartilgrenzen zügig ermitteln ... problem dabei der speicherverbrauch ... das ganze soll auf nem Atmega8 laufen der hat nur2k ram und ich ignorier hier sträflich die nachkommastelle!!!

    hat jemand vielleicht noch anreize wie ich die daten effektiver speichern kann ?!

    ne verkette liste und Qsort fallen wahrscheinlich flach ... das wird bestimmt nicht unerheblich groß im speicher !

    PS: beim boxplot werden median (mittlerer wert einer datenreihe != mittelwert) und die quartilgrenzen (also die grenzwerte der 4 viertel aller messwerte ausgegeben) sehr aussagekräftig im bezug auf quantität von werten und fehlern und qualität der messreihe bzw. extremwerte/fehlern

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Idee wird sein, die werte zu sortieren. Im zweifelsfall auch mit Qsort. Bei allerdings nur etwa 20 Werten kann man auch noch bulbblesort nehmen. Da braucht man praktisch keinen extra Speicher und bei so wenig elementen ist auch Bubblesort noch recht effektiv. Wenn man die daten als Messwerte nacheinander kreigt, kann man die neuen Werte auch direkt an der passenden Stelle in die Liste einfügen. Mit einer Binären Suche könnte das sogar etwas effektiver sein als Bubblesort.

    In die 2 K Speicher passen immerhin rund 1000 Werte, das ist gar nicht so wenig, und wenn man mehr Werte, wäre der erste Schritt wohl einfach mehr Speicher (Mega168 statt Mega . Wenn man laufend einsortiert könnte man eventuell ein ganz paar der größten und kleinsten Werte verwerfen. Man riskiert dann aber, das man bei sehr ungleich verteilten Werten auch ein paar werte verwirft, die man Später tatsächlich noch braucht. Bei wirklich zufälligen Werten sollte die Gefahr bei über 500 Werten doch ziehmlich gering sein. Dieser Fall wäre dann ein starkes Indiez dafür das die Werte einen eindeutigen Trend haben.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.378
    in 2k speicher bekomme ich NIE 1000 werte unter ... variablen für andere operationen, mind. 2 pointer pro wert wenn ich ne liste nehmen sollte gleitkomma berechnungen ........

    die rechenzeit ein array zu sortieren wäre irrwitzig

    ich habs jetzt so gelöst, dass ich 20-50 werte sammle, erwartungswert und vertrauensbereich berechne, dann ein array von 100 bytes nehme, die mitte des array ist der erwartungswert, die grenzen stellen den vertrauensbereich dar, alle werte die ausserhalb liegen werden nur gezählt und der maximalwert gespeichert, so bekomm ich ne gute aussage über fehler und einen gut aufgelösten boxplot ... der vertrauensbereich und erwartungswert werden immer neu berechnet

    n anderer mega wird schon kompliziert, ich brauch auf jeden fall die 24PDIP größer auf keinen fall und kleiner kann ich demjenigen der die platine bauen muss nicht zumuten ...

    ich hab für n array mit 360 werten ne ermittlungszeit von ~290µS gemessen, morgen werd ich mal schauen was ne einfach bzw. doppelt verkette liste an zeit und speicher braucht

    PS: es geht um nen lebensdauertest, da wird immer zwischen 2 zuständen gewechselt und dann das ergebnis gemessen, hin und wieder können totalfehler entstehen bei dem kein wertewechsel entsteht und sonst sind nur gewisse schwankungen zu erwarten ... später dann ein trend und abschliessend die zerstörung ^_^ ... zur laufzeit soll man trends schon erkennen können, anhand steigender streuung oder fallender erwartungswerte
    aber dabei soll eben auch sowas wie totalfehler den mittelwert nicht beeinflussen aber sie sollen auch nicht von der statistik verschluckt werden

    problem ist eben die kommunikationsschnittstelle, also wenn ich mehr als 5 werte (ohne ausreisser oder totalfehler) gemessen habe werde ich sie als boxplot darstellen, so kann mein datenpaket maximal 16bytes groß werden aber bis zu 100 messwerte beinhalten, wenn ich schneller messen sollte als ich abrufen kann

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •