- 12V Akku mit 280 Ah bauen         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 35 von 35

Thema: Messwert durch arithm. Mittel stabilisieren

  1. #31
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Anzeige

    Praxistest und DIY Projekte
    sinnvoll sind auch Stückelungen im 2^x Bereich, sprich
    2, 4, 8, 16, 32, 64 etc.
    Das erspart einem u.U. ne menge Rechenzeit, man kann sich das
    Summe/2 sparen indem man einfach shift Summe, right,1 (2, 3, 4, etc.) macht.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  2. #32
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    man könnte ja auch den Mittelwert errechnen (nicht den arrithmetischen) der ist sehr unempfindlich gegen extremwerte ... einfach 100 werte aufzeichnen und den mittelwert bestimmen

    mit nem array kann man das sogar sehr recheneffizient machen wenn der ewrtebereich und die auflösung nicht zu groß gewählt werden ...

  3. #33
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    man könnte ja auch den Mittelwert errechnen (nicht den arrithmetischen) der ist sehr unempfindlich gegen extremwerte ... einfach 100 werte aufzeichnen und den mittelwert bestimmen
    Du meinst so wie das am Anfang des Threads schon mal Beschrieben wurde?

    mit nem array kann man das sogar sehr recheneffizient machen wenn der ewrtebereich und die auflösung nicht zu groß gewählt werden ...
    Womit wir dann wohl endgültig wieder zum Ausgangspunkt des Threads zurückkommen

  4. #34
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    naja nicht ganz, ich habs so verstanden, dass er werte aufzeichnet und dann aufaddiert und durch die anzahl teilen will ?! DAS ist natürlich unperformant

    mir geht es um den echten mittelwert und nicht um das arithmetische mittel wegen der extremwerte .. problematsich ist aber dass der übliche weg zur mittelwertbestimmung über nen sortieralgo geht und das frisst zeit

    ihc hab ne lösung die die auflösung auf den verfügbaren speicher begrenzt

    was ich meine ist z.B. ein array mit 100mal 1byte

    und über dann den index zu arbeiten mit einer einfachen addition um zeit zu sparen, anschließend noch das array durchzählen und man hat seinen mittelwert

    ich erkläre es nochmal mit code, der letze satz geht nur mit viel fantasie

    ein 100er-array für eine angabe von 0-100 Liter ohne komma

    Code:
    unsigned char maray[100];
    
    while(messen)
    {
        marray[getFüllstandInLiter()]++;
        count++;
        if(ausgabe) {
            unsigned in mid = count/2;
            for(int i = 0; i < 100; i++) {
                count-=marray[i];
                if(count < mid) {
                    print(mid);
                    clearArrayAndCounter();
                }
            }
        }
    }

  5. #35
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für die Anwendung im µC ist das eher unpraktisch, da man oft wenig SRAM hat. Vor allem wenn man mehr als 100 mögliche Werte hat.

    Der was hier "echter Mittelwert" genannt wurde ist der Median. Für einige Fälle mit größeren Ausreißern hat das wirklich vorteile, ist aber halt Rechenzeitintensiv und ggf. braicht oft auch viel Speicherplatz.

    Eine Alternative wäre es echte Ausreißer durch einen Plausibilitätstest rauszuschmeißen, und dann den Rest zu mitteln. Wenn die Zahl der Messwerte groß ist, stört es auch kaum, wenn kleinere Ausreißer drin bleiben.

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad