4.4 | 7 ratings Rate this file 40 Downloads (last 30 days) File Size: 136 KB File ID: #13371 Version: 1.0

Hankel transform



13 Dec 2006 (Updated )

Efficient implementations of the Hankel transform and the inverse Hankel transform, respectively.

| Watch this File

File Information

The Hankel transform of order n transforms rotationally symmetric inputs in a computationally efficient manner. In particular, the Hankel transform of order 0 is equivalent to the two-dimensional Fourier transform of a rotationally symmetric input. This package contains four implementations of the Hankel transform and the inverse Hankel transform, respectively.

"hat" and "ihat" perform the Hankel transform of order n with a direct integration using a matrix product. "ht" and "iht" perform the Hankel transform of order 0 by integrating the Bessel kernel a priori. "dht" and "idht" implement the quasi-discrete Hankel transform of integer order n. And, last but not least, "fht" and "ifht" implement the quasi fast Hankel transform of order n.

For more implementation details, please refer to the online documentation at


MATLAB release MATLAB 6.0 (R12)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (13)
22 Aug 2015 Ahmed Fasih

Actually, author is currently at EPFL: http://documents.epfl.ch/users/l/le/leuteneg/www/MATLABToolbox/HankelTransform.html

Comment only
22 Aug 2015 Ahmed Fasih

Link from Wayback Machine: https://web.archive.org/web/20071228033933/http://ioalinux1.epfl.ch/~mleutene/MATLABToolbox/HankelTransform.html folks, this is why you should put your code on Github. Or something.

Comment only
15 Aug 2015 Pradeep Kumar

ya d given link is not working n file do't open..

17 Jul 2015 Kyle Wilkin

The link for implementation details is not working. Does anyone have an updated link?

Comment only
26 Jun 2014 Ruibin Liu

Hi, I used a=[1 0 0 0 0 0 0] as the signal vector and tested it with hat.m just as b=hat(a), and the result is b=[0.5554 0.5554 0.5554 0.5554 0.5554 0.5554 0.5554]. But the inverse transform c=ihat(b) gives out c=[0.3198 0.1040 -0.0382 0.0163 -0.0057 0.0006 0.0005]. Why is that? Why c is not equal to a?

Comment only
15 May 2014 Spencer

Hi Xuesong. The "Undefined function" is because Matlab will not add folders titled "private" to the search path. Perhaps the name of that folder should be changed.

18 Mar 2014 NN

NN (view profile)

Great Submission, it helped quite a bit.

22 Aug 2013 Xuesong Hu

Hi, when I run the code, it returned to this error "Undefined function 'frdr' for input arguments of type 'double'". Does anyone know how to fix that?

Thank you very much in advance.

12 Apr 2013 Toader

Toader (view profile)

I studied hat.m and ihat.m functions. They work fine if the order it's very small, but the more I increase the order it's not working properly. Why?
Thank you.

Comment only
14 Jun 2012 Michael

Seems to work nicely, but what is the scaling for (the absolute value of) the output for ht.m?

25 Jan 2012 Nicolas Grisouard  
19 Mar 2009 John Ferguson

Update for documentation:

Comment only
12 Mar 2007 Eunmi Choi

Thank you!

Contact us