The ``production'' approach to anti-aliasing Kirchhoff migration is
for each input trace { apply a suite of high-cut filters to input trace for each output trace { for each depth { determine slope of migration operator; use slope of operator to determine which filtered version of input to use; map (interpolate) input to output } } }Because each input trace gets mapped to lots of output traces, the overhead of the initial high-cut filtering is negligible. Furthermore, most folks do this in the frequency domain and take the opportunity to supersample the trace (by padding with zeros in the frequency domain) so that the mapping in the innermost loop can be done with linear or even nearest neighbor interpolation. Obviously, this approach implies ``semicircle superposition'' instead of ``hyperbola summation''.
Hale might have the best method, but an argument against sinc interpolations is that the sharpness of the cutoff frequency loses relevance in view of arbitrariness of the three parameters that determine it, antialias, s0, and regional dip parameter. An alternate approach is to interpolate the data first with a Fourier method (for accuracy) and then use the triangle method given here (for speed and simplicity).