new_walsh_sequence
qctrlopencontrols.new_walsh_sequence(duration, paley_order, pre_post_rotation=False, name=None)
Creates the Walsh sequence.
Parameters
- duration (float) – Total duration of the sequence τ (in seconds).
- paley_order (int) – The paley order k of the Walsh sequence.
- pre_post_rotation (bool , optional) – If
True
, a Xπ/2 rotation is added at the start and end of the sequence. Defaults toFalse
. - name (string , optional) – Name of the sequence. Defaults to
None
.
Returns
The Walsh sequence.
Return type
Notes
The Walsh sequence is defined by the switching function y(t) given by a Walsh function. To define the Walsh sequence, we first introduce the Rademacher function 1, which is defined as
Rj(x):=sgn[sin(2jπx)],x∈[0,1],j≥0.The j-th Rademacher function Rj(x) is thus a periodic square wave switching 2j−1 times between ±1 over the interval [0,1]. The Walsh function of Paley order k is denoted PALk(x) and defined as
PALk(x)=Πj=1mRj(x)bj,x∈[0,1].where (bm,bm−1,⋯,b1) is the binary representation of k. That is
k=bm2m−1+bm−12m−2+⋯+b120,where m=m(k) indexes the most significant binary bit of k.
The k-th order Walsh sequence 2 is then defined by
y(t)=PALk(t/τ)with offset times {tj/τ} defined at the switching times of the Walsh function.
References
[1] H. Rademacher, Math. Ann. 87, 112–138 (1922).
[2] H. Ball and M. J Biercuk, EPJ Quantum Technol. 2, 11 (2015).