{"id":1069,"date":"2023-03-10T13:05:10","date_gmt":"2023-03-10T13:05:10","guid":{"rendered":"http:\/\/www.analogflavor.com\/en\/?p=1069"},"modified":"2023-05-08T11:35:39","modified_gmt":"2023-05-08T11:35:39","slug":"analog-waveform-comparisons","status":"publish","type":"post","link":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/","title":{"rendered":"Analog Waveform Comparisons"},"content":{"rendered":"\n<p>The algorithms used for analog waveform comparisons can be straightforward.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>The idea behind this tool is to be able to compare two analog waveform files quickly. The comparison can be complete or partial.<\/p>\n\n\n\n<p>This tool allows to quickly implement basic <a href=\"https:\/\/www.analogflavor.com\/en\/2023\/03\/17\/analog-regression-testing\/\"><strong>regression tests<\/strong><\/a>. 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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-homemade-waveform-comparisons\">Homemade Waveform Comparisons<\/h2>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>These more complex tasks will need a little extra work.<\/p>\n\n\n\n<p>However we have a solution here too.<\/p>\n\n\n\n<p>Our <strong><a href=\"https:\/\/www.analogflavor.com\/en\/bespice\/bespice-wave-parser\/\">waveform parser library<\/a><\/strong> can be used to implement all kind of post-processing. This library can be used from C\/C++, <a href=\"https:\/\/www.python.org\/\">Python<\/a>, <a href=\"https:\/\/www.mathworks.com\/\">Matlab<\/a>, <a href=\"https:\/\/octave.org\/\">Octave<\/a> and <a href=\"https:\/\/www.tcl.tk\/\">Tcl<\/a>.<\/p>\n\n\n\n<p>Various scientific computing libraries for Python, Matlab and Octave make post-processing and comparing waveform data a piece of cake !<\/p>\n\n\n\n<p>Try the evaluation version from our <a href=\"https:\/\/www.analogflavor.com\/en\/bespice\/software-downloads\/\"><strong>downloads page<\/strong><\/a>. This version of our software contains the compare utility. However it works only with a limited number of waveform formats.<\/p>\n\n\n\n<p>If this is not sufficient for you or you plan to use the utility in a professional context, send us an email over the <a href=\"http:\/\/contac\" data-wplink-url-error=\"true\"><strong>contact form<\/strong><\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" src=\"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility-1024x620.png\" alt=\"\" class=\"wp-image-1074\" srcset=\"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility-1024x620.png 1024w, https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility-300x182.png 300w, https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility-768x465.png 768w, https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility-150x91.png 150w, https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility.png 1314w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The executable &#8220;bspwave_compare&#8221; runs in batch mode. Just type &#8220;-h&#8221; to get help and see the available options.<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>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&#8230;<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/\">Continue reading<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":1074,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,5,4],"tags":[],"class_list":["post-1069","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-eda","category-features","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Analog Waveform Comparisons - Analog Flavor<\/title>\n<meta name=\"description\" content=\"Our tools provide a variety of ways to compare waveforms generated by Spice simulators. They are used for example for regression testing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Analog Waveform Comparisons - Analog Flavor\" \/>\n<meta property=\"og:description\" content=\"Our tools provide a variety of ways to compare waveforms generated by Spice simulators. They are used for example for regression testing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/\" \/>\n<meta property=\"og:site_name\" content=\"Analog Flavor\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-10T13:05:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-08T11:35:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1314\" \/>\n\t<meta property=\"og:image:height\" content=\"796\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"gerard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gerard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/\"},\"author\":{\"name\":\"gerard\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#\\\/schema\\\/person\\\/eb53853a8fc51965bfa63ed62aae74f3\"},\"headline\":\"Analog Waveform Comparisons\",\"datePublished\":\"2023-03-10T13:05:10+00:00\",\"dateModified\":\"2023-05-08T11:35:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/\"},\"wordCount\":351,\"publisher\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/bespice-wave-compare-utility.png\",\"articleSection\":[\"EDA\",\"Features\",\"News\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/\",\"url\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/\",\"name\":\"Analog Waveform Comparisons - Analog Flavor\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/bespice-wave-compare-utility.png\",\"datePublished\":\"2023-03-10T13:05:10+00:00\",\"dateModified\":\"2023-05-08T11:35:39+00:00\",\"description\":\"Our tools provide a variety of ways to compare waveforms generated by Spice simulators. They are used for example for regression testing.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/bespice-wave-compare-utility.png\",\"contentUrl\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/bespice-wave-compare-utility.png\",\"width\":1314,\"height\":796},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/2023\\\/03\\\/10\\\/analog-waveform-comparisons\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Analog Waveform Comparisons\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/\",\"name\":\"Analog Flavor\",\"description\":\"Waveform Viewer Technology\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#organization\",\"name\":\"Analog Flavor\",\"url\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/wp-content\\\/uploads\\\/2016\\\/04\\\/cropped-site-icon-af.jpg\",\"contentUrl\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/wp-content\\\/uploads\\\/2016\\\/04\\\/cropped-site-icon-af.jpg\",\"width\":512,\"height\":512,\"caption\":\"Analog Flavor\"},\"image\":{\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/#\\\/schema\\\/person\\\/eb53853a8fc51965bfa63ed62aae74f3\",\"name\":\"gerard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/49b55f2dab50f1b11ad15b4d2e433f3fe6f61bce7528621a6f9ba4cf93c6c55a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/49b55f2dab50f1b11ad15b4d2e433f3fe6f61bce7528621a6f9ba4cf93c6c55a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/49b55f2dab50f1b11ad15b4d2e433f3fe6f61bce7528621a6f9ba4cf93c6c55a?s=96&d=mm&r=g\",\"caption\":\"gerard\"},\"url\":\"https:\\\/\\\/www.analogflavor.com\\\/en\\\/author\\\/gg_admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Analog Waveform Comparisons - Analog Flavor","description":"Our tools provide a variety of ways to compare waveforms generated by Spice simulators. They are used for example for regression testing.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/","og_locale":"en_US","og_type":"article","og_title":"Analog Waveform Comparisons - Analog Flavor","og_description":"Our tools provide a variety of ways to compare waveforms generated by Spice simulators. They are used for example for regression testing.","og_url":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/","og_site_name":"Analog Flavor","article_published_time":"2023-03-10T13:05:10+00:00","article_modified_time":"2023-05-08T11:35:39+00:00","og_image":[{"width":1314,"height":796,"url":"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility.png","type":"image\/png"}],"author":"gerard","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gerard","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/#article","isPartOf":{"@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/"},"author":{"name":"gerard","@id":"https:\/\/www.analogflavor.com\/en\/#\/schema\/person\/eb53853a8fc51965bfa63ed62aae74f3"},"headline":"Analog Waveform Comparisons","datePublished":"2023-03-10T13:05:10+00:00","dateModified":"2023-05-08T11:35:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/"},"wordCount":351,"publisher":{"@id":"https:\/\/www.analogflavor.com\/en\/#organization"},"image":{"@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/#primaryimage"},"thumbnailUrl":"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility.png","articleSection":["EDA","Features","News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/","url":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/","name":"Analog Waveform Comparisons - Analog Flavor","isPartOf":{"@id":"https:\/\/www.analogflavor.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/#primaryimage"},"image":{"@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/#primaryimage"},"thumbnailUrl":"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility.png","datePublished":"2023-03-10T13:05:10+00:00","dateModified":"2023-05-08T11:35:39+00:00","description":"Our tools provide a variety of ways to compare waveforms generated by Spice simulators. They are used for example for regression testing.","breadcrumb":{"@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/#primaryimage","url":"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility.png","contentUrl":"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2023\/03\/bespice-wave-compare-utility.png","width":1314,"height":796},{"@type":"BreadcrumbList","@id":"https:\/\/www.analogflavor.com\/en\/2023\/03\/10\/analog-waveform-comparisons\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.analogflavor.com\/en\/"},{"@type":"ListItem","position":2,"name":"Analog Waveform Comparisons"}]},{"@type":"WebSite","@id":"https:\/\/www.analogflavor.com\/en\/#website","url":"https:\/\/www.analogflavor.com\/en\/","name":"Analog Flavor","description":"Waveform Viewer Technology","publisher":{"@id":"https:\/\/www.analogflavor.com\/en\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.analogflavor.com\/en\/#organization","name":"Analog Flavor","url":"https:\/\/www.analogflavor.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.analogflavor.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2016\/04\/cropped-site-icon-af.jpg","contentUrl":"https:\/\/www.analogflavor.com\/en\/wp-content\/uploads\/2016\/04\/cropped-site-icon-af.jpg","width":512,"height":512,"caption":"Analog Flavor"},"image":{"@id":"https:\/\/www.analogflavor.com\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.analogflavor.com\/en\/#\/schema\/person\/eb53853a8fc51965bfa63ed62aae74f3","name":"gerard","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/49b55f2dab50f1b11ad15b4d2e433f3fe6f61bce7528621a6f9ba4cf93c6c55a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/49b55f2dab50f1b11ad15b4d2e433f3fe6f61bce7528621a6f9ba4cf93c6c55a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/49b55f2dab50f1b11ad15b4d2e433f3fe6f61bce7528621a6f9ba4cf93c6c55a?s=96&d=mm&r=g","caption":"gerard"},"url":"https:\/\/www.analogflavor.com\/en\/author\/gg_admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/posts\/1069","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/comments?post=1069"}],"version-history":[{"count":11,"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/posts\/1069\/revisions"}],"predecessor-version":[{"id":1109,"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/posts\/1069\/revisions\/1109"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/media\/1074"}],"wp:attachment":[{"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/media?parent=1069"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/categories?post=1069"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.analogflavor.com\/en\/wp-json\/wp\/v2\/tags?post=1069"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}