mikrocontroller.net

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


Autor: Cimbom Gs (cimbomgs)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Cimbom Gs (cimbomgs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Cimbom Gs (cimbomgs)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Cimbom Gs (cimbomgs)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: an2or (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/sor...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.