The algorithms used for analog waveform comparisons can be straightforward.
You can simply traverse all curves in a file and find the matching curve in a reference file. Now compute the difference between 2 curves and integrate the result to obtain the absolute error. Dividing this by the norm of the reference curves yields the relative error.
Although it gets slightly more complex when you look at the details, this is exactly what we do in our waveform comparison utility that comes with our software package.
It is a simple batch utility that also has some additional command-line options. These options allow to limit the number of compared curves and define error thresholds.
The idea behind this tool is to be able to compare two analog waveform files quickly. The comparison can be complete or partial.
This tool allows to quickly implement basic regression tests. These regression test might concern hardware such as analog IPs or software. Software regression tests can be set up to validate one Spice simulator against another.
Homemade Waveform Comparisons
Obviously these tests will not be sufficient if some kind of characteristics have to be extracted before performing any comparison. It will also fail if the curves have to be shifted, re-scaled or limited to an interval of the x-axis.
These more complex tasks will need a little extra work.
However we have a solution here too.
Our waveform parser library can be used to implement all kind of post-processing. This library can be used from C/C++, Python, Matlab, Octave and Tcl.
Various scientific computing libraries for Python, Matlab and Octave make post-processing and comparing waveform data a piece of cake !
Try the evaluation version from our downloads page. This version of our software contains the compare utility. However it works only with a limited number of waveform formats.
If this is not sufficient for you or you plan to use the utility in a professional context, send us an email over the contact form.