[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hankel (Fourier-Bessel) Transform
Georg.Pabst@nrc.ca (Georg Pabst) writes:
>Hi,
>I'm looking for the Hankel (Fourier-Bessel) Transform, i.e.,
>int(0,infinity) f(t)*BesselJ(t*r)t dt being implemented in IDL.
>There is a paper "Siegman A. 1980. Quasi fast Hankel transform. Opt.
>Lett. 1, 13-15" and one can also find the code in Fortran or C...
>Thanks,
>Georg
Here's an old program that I think might be what you need.
Bill Thompson
FUNCTION HANKEL,F
;
; This function returns the Hankel transform of the argument.
;
S = SIZE(F)
IF S(0) NE 1 THEN BEGIN
PRINT,'*** Variable must be a one-dimensional array, name= F, routine HANKEL.'
RETURN,F
ENDIF
;
X = INDGEN(F)
K = ( 2. * !PI / FLOAT(N_ELEMENTS(X)) ) * X
SC = 0.*X + 1.
IF N_ELEMENTS(SC) GT 3 THEN BEGIN
SC(0) = 3.D0 / 8.D0
SC(1) = 7.D0 / 6.D0
SC(2) = 23.D0 / 24.D0
ENDIF
;
H = BES0( K # X ) # ( K * F * SC )
;
RETURN,H
END