Hallo allerseits.
Ich bin gerade dabei, das "Waveform"-Dateiformat (.wfm) der
Rigol-Oszilloskope auseinanderzupflücken und bin damit eigentlich auch
schon recht weit gekommen (Das Projekt auf
http://wfmreader.sourceforge.net/ kenne ich, da fehlen allerdings noch
ein paar Sachen).
Allerdings fehlt mir eine entscheidende Information um die Daten
wirklich interpretieren zu können und da stehe ich gerade auf dem
Schlauch und zwar ist das die Samplerate der gespeicherten Daten.
Ich habe Testdaten mit einem Rigol DS1102CD aufgenommen, das ist ein
100MHz-Oszi mit 400MSa/s.
Ich habe vier Bytes im Header gefunden (ab Offset 0x64), in denen
höchstwahrscheinlich die Information zur Samplerate drin steht, kriege
die aber nicht interpretiert (die 8 Bytes danach geben die Länge eines
divs in Picosekunden an). Vielleicht hat hier ja eine Idee, wie die
Informationen da drin stecken:
Ich habe hier bei vier versch. Beispiele die abgedeckte Zeitspanne am
Oszilloskop abgelesen und kann daraus auf die Samplerate rückwärts
errechnen. Das würde ich mir gerne ersparen.
Alle folgenden Beispiele haben 524288 Samples
500us -5.243 .. 5.2430ms 0.00002ms 50MHz 20 BC 3E 4C
5
200us -2.622 .. 2.6140ms 0.00001ms 100MHz 20 BC BE 4C
Was ist der Zusammenhang zwischen der Bytefolge und entweder Samplerate
oder Zeit/Sample? Diese Angabe brauche ich, um einem Sample in den
gespeicherten Daten eine Zeit zuordnen zu können. Ich kann zwar lesen
wie groß ein div beim Sampeln war, das nutzt mir aber nix, weil ich ja
nicht weiß, wieviele divs die Aufzeichnung enthält...
Viele andere Zahlenangaben sind mit 2, 4 oder 8 Bytes gespeichert, und
dann mit Little-Endian. Allerdings komme ich mit diesem Ansatz auf
keinen grünen Zweig.
Fällt jemandem hier ein Zusammenhang auf?
Vielen Dank,
Simon
Duh, das war ein dicker Schlauch.
Die 32 Bit sind schlicht und einfach single-prescision Floats, die die
Samplingrate darstellen - ein Freund hat mich da gerade mit der Nase
drauf gestoßen...
Danke fürs Problemanhören :-)
Viele Grüße,
Simon