Dynamic Time Warp

From ChipWhisperer Wiki
Jump to: navigation, search

Dynamic Time Warp gives the ability to automatically resyncronize traces. This uses the Dynamic Time Warp (DTW), which was suggested in the paper Elastic Alignment. The result is something like the following, showing traces going from unaligned to aligned, where sections of "dead space" are detected:


The DTW algorithm has one parameter that can be adjusted. The radius describes how wide the search should be: with a larger radius, the DTW process will allow larger gaps in the synchronized traces. The maximum allowed gap does not increase one-to-one with the radius, but in general a larger radius will produce a better match with a slightly longer processing time.

Important Notes

Every time the redraw happens, the entire realignment is run. To avoid this you should set the Trace Cache module as a preprocessing module immediately after the "Dynamic Time Warp". Be sure to enable that module first on the Preprocessing Module tab. The results should be the DTW is only run when needed, and not EVERY time you redraw traces.


You can specify further modules after the trace cache, for example a digital filter. If you adjust the settings of the digital filter (or any other module after the cache), traces will be read from the cache instead of the DTW process rerunning. If you adjust settings of a module infront of the cache (such as a digital filter before the DTW process) the cache is invalidated and the DTW process runs again.

Known Issues

  • Current progress bar is nonsensical, and only present to give you some idea of processing status.