5.0 | 6 ratings Rate this file 57 Downloads (last 30 days) File Size: 136 KB File ID: #13371

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 (9)
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?

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

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

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.

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:

12 Mar 2007 Eunmi Choi

Thank you!

Contact us