gusucode.com > qit_matlab_0.10.0工具箱源码程序 > qit/+seq/scrofulous.m

    function [s] = scrofulous(theta, phi)
% SCROFULOUS  Sequence for fixing errors in pulse length.
%  s = scrofulous(theta [, phi])
%
%  Returns the SCROFULOUS control sequence s for fixing errors
%  in pulse duration (or amplitude).
%
%  The target rotation is \theta_\phi in the NMR notation.
%
%  SCROFULOUS: Short Composite ROtation For Undoing Length Over- and UnderShoot

%! Cummins et al., "Tackling systematic errors in quantum logic gates with composite rotations", PRA 67, 042308 (2003).
% Ville Bergholm 2006-2011


if (nargin < 2)
  phi = 0; % default is R_x
end

th1 = fsolve(@(t) (sin(t)/t -(2/pi)*cos(theta/2)), 0.1);
ph1 = acos(-pi*cos(th1)/(2*th1*sin(theta/2)));
ph2 = ph1 - acos(-pi/(2*th1));

s = seq.nmr([th1, ph1; pi, ph2; th1, ph1]);