Skip to content

Plot the final datapoint correctly based on the waveform, instead of copying the previous one

Explanation of changes

In all plots the final datapoint is now (duration, waveform(duration) instead of (duration, waveform(duration - 1/samplingrate).

This fixes for example the ramp being flat during the last sample. Now it looks like a proper triangle reaching amp.

That does mean the implementations of waveform(t: np.ndarray) should not depend on the length of t or specific (other) values in t. ramp staircase and chirp have been adjusted accordingly. ramp(np.array([10, 2, 4, 1, 7]), ...) will work just fine now for example.

drag should probably also be adjusted (only the mu = t[0] - duration/2 part should just be mu = duration/2, as all t[0] has to be 0 anyway in the current/old implementations). ramp(np.array([10, 2, 4, 1, 7]), ...) will not work fine and never has.
I didn't adjust that as drag is probably the most used waveform, afraid touching it would break things.

Motivation of changes

The final datapoint is actually duration - epsilon, as the pulse is surrounded by 0s. We could change that final 0 to be plotted at duration + epsilon instead of duration. Does not matter too much


Merge checklist

See also merge request guidelines

  • Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer.
  • New code is covered by unit tests (or N/A).
  • New code is documented and docstrings use numpydoc format (or N/A).
  • New functionality: considered making private instead of extending public API (or N/A).
  • Public API changed: added @deprecated and entry in deprecated code suggestions (or N/A).
  • Newly added/adjusted documentation and docstrings render properly (or N/A).
  • Pipeline fix or dependency update: post in #software-for-developers channel to merge main back in or update local packages (or N/A).
  • Tested on hardware (or N/A).
  • CHANGELOG.md for breaking changes and AUTHORS.md have been updated (or N/A).
  • Update Hardware backends documentation if backend interface change or N/A
  • Check whether performance is significantly affected by looking at the Performance metrics results.
  • Windows tests in CI pipeline pass (manually triggered by maintainers before merging).
    • Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline

For reference, the issues workflow is described in the contribution guidelines.

Edited by Leon Wubben

Merge request reports

Loading