[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