Difference between revisions of "File format:Tektronix WFM"

From sigrok
Jump to navigation Jump to search
(add resources, link to Tektronix manual and github repos)
 
Line 3: Line 3:


== Header ==
== Header ==
TODO The table may need an update, Tektronix documents at least three file format versions, with some fields added and others changing data types in more recent versions.


{| border="0" class="alternategrey sigroktable sortable"
{| border="0" class="alternategrey sigroktable sortable"
Line 108: Line 110:
  y = data[i] * vertgain / 25 / 256 + vertoffset - vertposition * vertgain
  y = data[i] * vertgain / 25 / 256 + vertoffset - vertposition * vertgain
  x = (i - (reclength*trigpos/100)) * horizscaleperpoint
  x = (i - (reclength*trigpos/100)) * horizscaleperpoint
== Resources ==
* [https://download.tek.com/manual/Waveform-File-Format-Manual-077022011.pdf Tektronix instructions] on the WFM file format
* [https://github.com/MorganAskins/tektronix_wfmreader github Morgan Askins wfm reader]
* [https://github.com/vongostev/tekwfm2 github Pavel Gostev wfm2 reader]


[[Category:File format]]
[[Category:File format]]

Latest revision as of 19:38, 2 June 2022

The Tektronix WFM format is a special format used by the Tektronix TDS series scopes. It uses less space than the CSV/Matlab export functions provided.

Header

TODO The table may need an update, Tektronix documents at least three file format versions, with some fields added and others changing data types in more recent versions.

Bytes Field
0 - 1 Magic bytes
2 - 5 Format code
6 Length of data, unsigned integer (so far always 4)
7 - 11 Number of bytes following
12 - 15 Another magic
16-20 Length of header + data (big endian, signed integer)
21 - 28 Vertical position (double)
29 - 36 Horizontal position (double)
37 - 43 Vertical zoom (double)
44 - 51 Horizontal zoom (double)
52 - 53 Acquisition mode (signed integer, currently unknown)
54 - 55 Min max (unknown)
56 - 63 Duration in seconds (double)
63 - 64 Vertical coupling (signed integer)
65 - 66 Horizontal unit (signed integer)
67 - 74 Horizontal time per point (double)
75 - 76 Vertical unit (signed integer)
77 - 84 Vertical offset (double)
85 - 92 Vertical position (double)
93 - 100 Vertical gain (double)
101 - 105 Record length (unsigned integer)
106 - 107 Trigger position (signed integer), possibly in points
108 - 109 Header version (signed integer)
110 - 111 Sampling density (??) (signed integer)
112 - 113 Burst segment length (signed integer)
114 - 115 Waveform source (signed integer)
116 - 121 3x Video 1 (signed integer)
122 - 129 Video 2 (double)
130 - 131 Video 3 (signed integer)
131 - 163 Preamble (???)

Data

Waveform data. Length of this segment is stored in Record length.

To reconstruct the waveform use the following:

y = data[i] * vertgain / 25 / 256 + vertoffset - vertposition * vertgain
x = (i - (reclength*trigpos/100)) * horizscaleperpoint

Resources