Mittelung im Oszilloskop

Hallöchen!
Ich habe hier im Labor ein digitales Oszilloskop (LeCroy LC684DXL).
Ich weiß, daß es mit 8-Bit-AD-Konvertern ausgestattet ist. Man kann
nun von einer Spannungskurve mehrere Samples aufnehmen, die dann im
Scope zu einer Mittelwert-Kurve gemittelt werden.
Meine Frage ist, wie diese Mittelung stattfindet. Laut Handbuch
besteht die Mittelungskurve aus 16-Bit-Werten. Das würde bedeuten,
daß es nach 256 Samples u.U. zum Überlauf kommt und z.B. die
16-Bit-Werte um ein Bit geshiftet werden müßten (also halbiert).
Aber das ist nur unsere naive Vorstellung. Weiß irgendwer, mit
welchem Verfahren gemittelt wird? Vielen Dank!
Tschö,
Torsten.
Reply to
Torsten Bronger
Loading thread data ...
Bei einer laufenden Mittelung, die da wohl arbeitet, werden ja die Zwischenergebnisse angezeigt, daher kann nicht einfach aufaddiert werden. Somit fällt Dein Problem weg.
Bei einer normalen linearen Mittelung gibst Du die Anzahl n vorher ein. Dann gilt bei Meßwerten x1..xn und Anzeigewerten a1..an
a[1] = x[1] a[2] = (a[1]+x[2])/2 a[3] = (2*a[2]+x[3])/3 a[4] = (3*a[3]+x[4])/4
==> a[n] = ((n-1)*a[n-1]+x[n])/n
Bei Erreichen von n wird gestoppt oder von vorn begonnen. Natürlich spürst Du auch hier irgendwann die 8bit-Auflösung beim Dividieren.
Es gibt aber auch die exponentielle Mittelung, wo man gar nichts eingeben muß, da wird einfach das bisherige Ergebnis fröhlich mit dem aktuellen Wert gemittelt, normalerweise fifty/fifty, manchmal kann man aber auch die Gewichtung g im Bereich 0..1 eingeben:
a[n] = g*a[n-1] + (1-g)*x[n]
Viele Grüße Steffen
Reply to
Steffen Buehler
Hallöchen!
Steffen Buehler writes:
... und ziemlich massiv. Bei 4 Samples geht der allererste Wert mit (laut deiner Rechnung) mit 3/4*(2/3*(1/2*x[1])) in die Rechnug ein. Da sich die relativen Fehler addieren, ist das natürlich ungleich schlimmer als 1/4*x[1]. Daher glaube ich nicht, daß das Scope es so macht.
Tschö, Torsten.
Reply to
Torsten Bronger
(16bit meinte ich natürlich.)
Ich habe die Firmware zu einem Scope geschrieben, die so arbeitete, und alle waren zufrieden. Sagen wir mal, x[1] sei 50000, dann kommen nur noch Nullen. 50000 durch 4 ist 12500.
Dann schaun mer mal:
50000/2 = 25000 25000*2 = 50000 50000/3 = 16666 16666*3 = 49998 49998/4 = 12499
Gaanz so schlimm ist's auch nicht, oder? Wenn man viel Zeit und Takt hat (damals nicht, war ein 12-MHz-68000 und Assembler), kann man die Zwischenergebnisse auch mit float speichern und die gerundeten int-Werte anzeigen.
Viele Grüße Steffen
Reply to
Steffen Buehler
Torsten Bronger schrieb:
Was Steffen darstellt, ist die übliche Mittelung mit einem digitalem Tiefpass. Das funktioniert einwandfrei, auch mit 8 Bit.
Wenn deine Eingangswerte 8bit breit sind, kannst du sie über 256 Werte mitteln ((n-1)*a[n-1]+a{n]), bevor es einen Überlauf gibt (intern mit 16bit gerechnet). Außerdem ist es nur ein Rechenschritt, z.B. bei 4 Samples:
a[neu] = (3*
a[alt] + x[neu])/4
Alfred
Reply to
Alfred Gemsa
Hallöchen!
Alfred Gemsa writes:
Nunja, bei vier Samples und x[1] = 9 würde x[1] mit 1 (statt mit 2) in den Mittelwert eingehen. Wenn ich erst alles addiere und dann dividiere, mache ich weniger Fehler, und trotzdem kann ich Zwischenergebnisse abgreifen.
Und was passiert ab 256 Samples?
Tschö, Torsten.
Reply to
Torsten Bronger
Steffen Buehler :
Es gibt auch den gleitenden Mittelwert. Da werden m-Messwerte zwischengespeichert und der jeweils jüngste dem Mittelwert dazuaddiert und der älteste abgezogen.
a(n) = a(n-1) - x(n-m) + x(n) Mittelwert = a(n)/m und die Zwischenspeicherung: x(n-m) = x(n-m+1) x(n-m+1) = x(n-m+2) ... x(n-1) = x(n)
M.
Reply to
Matthias Weingart
Am Sat, 25 Mar 2006 12:59:42 UTC schrieb Matthias Weingart :
Oder so, wenn der Speicherbereich endlich ist:
Sammel = Sammel + neu neu = letzter Messwert aus = Sammel / ANZ ANZ = Filterkonstante Sammel = Sammel - aus aus = gemittelter Wert
(keine Haftung bei Tippfehlern ...)
Ade
Reinhard
Reply to
Reinhard Forster

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.