How to do a hankel transform on a matrix in Matlab?

4 views (last 30 days)
I want to implement a polar fourier transform in Matlab. This is my code so far:
P = phantom('Modified Shepp-Logan',256);
Theta = 0:1:179;
P_radon = radon(P, Theta);
A = fftshift(fft(P_radon,size(P_radon),1),1);
B = fft(A,[],2);
Now I have to do an hankel trasform on the matrix B in radial direction (the radial components are the 2nd dimension of the matrix B).
But I don't know how to do this trasform when my input argument is a matrix. Online I only found some solutions, when the input argument is a vector. Can somebody please help me?
Thank you very much!

Answers (1)

Yazan on 16 Dec 2021
The Hankel transform (HT) of a vector is a vector and of a matrix is, naturally, a matrix. You mentioned that in your application, the HT should be applied along the 2nd dimensions of the matrix, meaning that for each row (I assume) separately. So you already answered the question: apply the HT along each row of B separately to get a matrix as an output.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by