I must implement Fourier transform in cylindrical co-ordinates. Matlab offer fft function. How can I use this function ?
Asked
Active
Viewed 7,538 times
1
-
Are you working with a 3D transform, or are you dealing with a FT in planes that are symmetric about an axis (as in an optical system with rotational symmetry about an axis)? – Ron Gordon Jan 11 '13 at 10:41
-
Thanks for the response. I'm working with 3D transform. – Ion Caciula Jan 11 '13 at 11:05
-
Isn't this just a Hankel transform? If so, there are fast Hankel transform functions available for Matlab. – AnonSubmitter85 Aug 03 '13 at 00:34
1 Answers
1
Well, for starters, you can write
$$\hat{f}(v_{\rho},v_{\phi},v_z) = \int_0^{\infty} d \rho \rho \int_0^{2 \pi} d \phi \int_{-\infty}^{\infty} dz \: f(\rho, \phi,z) \exp[-i 2 \pi v_{\rho} \rho \cos{(v_{\phi} - \phi)}] \exp{(-i 2 \pi v_z z)} $$
First, perform a F.T. (i.e., matlab fft) in the $z$ variable. Now you can express the result in a Fourier series in $v_{\phi}$ and use a Bessel transform over $v_{\rho}$.
Ron Gordon
- 138,521
-
-
You might write $\bar{f}(\rho, \phi,v_z) = \int_{-\infty}^{\infty} dz : f(\rho, \phi,z) \exp{(-i 2 \pi v_z z)}$. You can do this using the Matlab fft function. Now you are left, for each $v_z$, to do a polar FFT over $(\rho, \phi)$. Scroll to the bottom of this page: http://www.cs.technion.ac.il/~elad/software/ and you will get Matlab code for a polar FFT, and a paper that describes how it is done. – Ron Gordon Jan 11 '13 at 19:17
-
What is connection between $\widehat{f}(vρ,vϕ,vz)$ and $ \overline{f}(ρ,ϕ,vz)$? – Ion Caciula Jan 12 '13 at 04:10
-
-
Thanks for information. I read again and I understood your response. The basic algorithm is: -transform Cartesian coordinates in cylindrical coordinates. In Matlab exist the function car2pol.For X,Y, Z vectors which represent Cartesian coordinates,it's necessary to obtain the cylindrical coordinates (ρ,ϕ,$v_z$). So we write:[ρ,ϕ,$v_z$]=car2pol(X,Y,Z).F is the vector with all values of f(ρ,ϕ,$v_z$). I apply fft to F: G=fft(f); Let be Polar_FFT polar fft function, where we suppose that is implemented. For having the final result I must write: $H=\text{Polar_FFT}(G*exp[−i2πv_ρρcos(v_ϕ−ϕ)])$? – Ion Caciula Jan 12 '13 at 09:55
-
-
-
I have one question I must implement Fourier transform in cylindrical co-ordinates for a simple sinus. How can i express this function in r, theta and z? – Toader Mar 19 '13 at 12:57
-
@Toader: This is not an answer. If you have a separate question, please use the Ask Question link near the upper right of the page. I am converting your answer to a comment on Ron Gordon's answer in case he can help you. – robjohn Mar 19 '13 at 16:11
-
@Toader: I'd like to help you, but I have no idea what you mean by a sinus. I think you mean a sine function, but this is too vague for me to answer. Please open a new question and provide some detail. – Ron Gordon Mar 19 '13 at 16:33
-
@Ron Gordon, Can you please show how to write the Fourier transform in cylindrical coordinates? – Michael Levy Oct 03 '21 at 19:55