Hallo zusammen, ich habe hier eine PC-Software, die Messwerte über RS232 von einer MCU einliest. Es gibt in dieser PC-Software eine Filterfunktion in der man Samples von 16, 32, 64, 128 und 256 einstellen kann. Laienhaft vermute ich, daß der PC "gruppenweise" einen Mittelwert bildet, wie z.B.: (m1 +m2 ...+16) / 16. Lieg ich da richtig? Wenn ja, wie nennt man die Filterung/Mittelwertbildung? Könnte man diese Berechnung in einem mega128(mit C) unterbringen? Schönen Gruß Kunz
Also eine Mittelwertbildung nennt man einfach Mittelwertbildung. Was deine Software genau tut, kann man nur erraten, vielleicht ist es ja eine Mittelwertbildung.
arithmetischer Mittelwert!?
>Könnte man diese Berechnung in einem mega128(mit C) unterbringen?
ja.
Naja N Werte addieren und dann die Summe durch N teilen (Mittelwertbildung) ist jetzt nicht gerade sehr anspruchsvoll für einen µC.
Du siehst zu viel Fernsehen: mdr :-) Welchen Namen man dafür verwenden könnte: punktueller ... ? Vielleicht ist Dir aber mit einem gleitenden Mittelwert besser gedient, der immer über die z.B. letzten 10 Werte gebildet wird, indem der zehntletzte Wert von der Mittelwertsumme abgezogen und der aktuelle Wert addiert wird. Das bedingt, daß man Speicher für die zehn letzten Werte bereitstellen muß (Ringpuffer). Die Mittelwertsumme/Anzahl der Einzelwerte ist dann der Mittelwert, der aber zeitlich in der Vergangenheit liegt.
Die Mittelwertbildung ist die einfachste Form eines FIR-Tiefpassfilters ( FIR= finite impulse response). http://de.wikipedia.org/wiki/FIR-Filter
Danke für eure Antworten! Ich wurde stuzig, weil ich bisher davon ausging, daß bei der Mittelwertbildung N u.U. nach Unendlich geht. Hier ist es aber wohl so, daß nur die letzten Samples(N)(16,32,64, usw.) berücksichtigt werden. Mit Michaels Vorschlag hab ich jetzt erstmal zwei Alternativen. Schönen Gruß Kunz p.s. > Du siehst zu viel Fernsehen: mdr :-) Aber Fernsehen bildet doch - naja, manchmal.
da gäbe es noch den 'gleitenden Mittelwert', der bildet immer über die letzten n Werte den Mittelwert. Vorteil ist dann das trotzdem mit jedem Takt ein Messwert ausgegeben werden kann, Signaländerungen gehen nur zu 1/n in das Ausgangssignal ein.
Man kann auch eine andere Art Mittelwert nutzen: Neuer_Mittel = (Alter_Mittel * 10 + Neuer_Wert) / 11 (z.B. dieser berücksichtigt alle vergangenen Werte. Ich glaube die Kurve ist gleich der eines RC-Tiefpasses.)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.