Forum: Digitale Signalverarbeitung / DSP / Machine Learning Median-Funktion für die Mittelwertbildung


von Cimbom G. (cimbomgs)


Angehängte Dateien:

Lesenswert?

Hi,

für eine Mittelwertbildung will ich die Median-Funktion einsetzen.
Jetzt wollte ich mal fragen, wie Median genau funktioniert.
gehen wir von 5 Werten aus, wie würde die Median-Funkiton vorgehen um 
die Mittlung zu bilden?

ist es richtig, dass die Werte sortiert werden und danach einfach der 
Mittlere-Wert (in dem Beispeil dann der Wert an der 3. Stelle) genommen 
wird?
Ist es das was Median macht?

So wie auf dem Bild zu sehen ist, bekomme ich kontinuirlisch einen 
Messwert. Die Zahl wird in eine Array gespeichert. Jedesmal wenn ich 
unten angekommen bin, springe ich auf den Anfang. Die Median-Funktion 
wird nach der 5. Messung eingesetzt und danach bei jeder Messung, weil 
ich immer 5 Werte in mein Array besitze.

Ist es eine gute Lösung, nach jeder Messung "Median" zu bilden?


Gruß
Cimbom

von Karl H. (kbuchegg)


Lesenswert?

Cimbom Gs wrote:
> Hi,
>
> für eine Mittelwertbildung will ich die Median-Funktion einsetzen.
> Jetzt wollte ich mal fragen, wie Median genau funktioniert.
> gehen wir von 5 Werten aus, wie würde die Median-Funkiton vorgehen um
> die Mittlung zu bilden?

http://de.wikipedia.org/wiki/Median#Median_einer_Stichprobe

> ist es richtig, dass die Werte sortiert werden und danach einfach der
> Mittlere-Wert (in dem Beispeil dann der Wert an der 3. Stelle) genommen
> wird?
> Ist es das was Median macht?
>
> So wie auf dem Bild zu sehen ist, bekomme ich kontinuirlisch einen
> Messwert. Die Zahl wird in eine Array gespeichert. Jedesmal wenn ich
> unten angekommen bin, springe ich auf den Anfang. Die Median-Funktion
> wird nach der 5. Messung eingesetzt und danach bei jeder Messung, weil
> ich immer 5 Werte in mein Array besitze.
>
> Ist es eine gute Lösung, nach jeder Messung "Median" zu bilden?

Kommt drauf an. Wenn dir der zusätzliche Sortierschritt beim
Einfügen eines Messwerts nichts ausmacht.

von Cimbom G. (cimbomgs)


Lesenswert?

ich hatte den Artikel vorher gelesen, aber wo ich noch mal hinschaue 
dann sehe ich bei den Beispielen genau das, was ich hier als Frage 
gestellt habe.

Also sortiere ich alles der Größe nach und sage mein "Median" ist in der 
Mitte.

Danke

von Cimbom G. (cimbomgs)


Lesenswert?

Karl heinz Buchegger wrote:
> Kommt drauf an. Wenn dir der zusätzliche Sortierschritt beim
> Einfügen eines Messwerts nichts ausmacht.

ja gut aber bei nur 5 Werten macht doch eine zusätzliche Sortierschritt 
nichts aus oder?

Welche Lösung würdest Du vorschlagen, wenn der zusätzliche Schritt was 
ausmachen würde?

von Karl H. (kbuchegg)


Lesenswert?

Cimbom Gs wrote:
> Karl heinz Buchegger wrote:
>> Kommt drauf an. Wenn dir der zusätzliche Sortierschritt beim
>> Einfügen eines Messwerts nichts ausmacht.
>
> ja gut aber bei nur 5 Werten macht doch eine zusätzliche Sortierschritt
> nichts aus oder?

Habs jetzt nicht konkret analysiert. Aber aus dem Bauch heraus
würde ich mal sagen, dass die Sortiererei mindestens 60 bis 70%
der Laufzeit deiner Medianbestimmung ausmacht.

Wie gesagt: Kommt auf deine Timing Vorgaben an. Wenn eine leicht
erhöhte Laufzeit kein Problem ist.

Zudem verbrauchst du ja auch noch mehr Speicher. Die 5 Werte
müssen ja in sortierter Form auch irgendwo gespeichert werden.

>
> Welche Lösung würdest Du vorschlagen, wenn der zusätzliche Schritt was
> ausmachen würde?

Ich würde mal abschätzen, ob ich die Ausreisser nicht mit anderen
Mitteln in den Griff kriege. Um beim Beispiel von Wikipedia zu
bleiben. Wenn mein geschätzeter Mittelwert der Gehälter in einer
Firma irgendwo in der Nähe von 2000 Euro liegt, dann fliegt eine
Stichprobe von 60000000 Euro (weil du der Boss von Porsche bist) aus
der Berechnung des Mittelwerts raus, weil er über einer Grenze von
sagen wir mal 10000 Euro liegt.

Andere Möglichkeit:
Je größer die Anzahl der Stichproben, desto geringer ist der Einfluss
von Aussreisern.

Andere Möglichkeit:
Analoge Messgrößen ändern sich im Regelfall nicht von einer
Hunderstelsekunde zur nächsten um mehrere Zehnerpotenzen.
Wird sowas detektiert, dann wird das wohl ein Ausreisser sein
und wird nicht eingerechnet.

von Cimbom G. (cimbomgs)


Lesenswert?

Karl heinz Buchegger wrote:
> Zudem verbrauchst du ja auch noch mehr Speicher. Die 5 Werte
> müssen ja in sortierter Form auch irgendwo gespeichert werden.

so wird es auch gemacht. bevor ich mit der Sortierung beginnne, lege ich 
die Werte in einem Temp-Array ab und sortiere in dem Temp-Array mit 
Bubble-Sort die Zahlen nach der Größe. Wenn ich weiß dass ich nur 5 
Werte habe, dann kann ich sofort sagen dass Temp-Array[2] mein Median 
ist :-)

Danke für deine Hilfe!

von an2or (Gast)


Lesenswert?

Hallo Cimbom!

> Karl heinz Buchegger wrote:
> > Zudem verbrauchst du ja auch noch mehr Speicher. Die 5 Werte
> > müssen ja in sortierter Form auch irgendwo gespeichert werden.
>
> so wird es auch gemacht. bevor ich mit der Sortierung beginnne,
> lege ich die Werte in einem Temp-Array ab und sortiere in dem
> Temp-Array mit Bubble-Sort die Zahlen nach der Größe. Wenn ich
> weiß dass ich nur 5 Werte habe, dann kann ich sofort sagen dass
> Temp-Array[2] mein Median ist :-).

Für derart kleine Array-Grössen (5 Werte) kannst du alle cleveren 
Median-Algorithmen vergessen und ein getrimmtes Sortiernetzwerk 
gebrauchen. Für den 5-er Array ist das z.Bsp. hier beschrieben:

http://www.cs.uky.edu/~lewis/essays/algorithms/sortnets/sort-net.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.