1

I must implement Fourier transform in cylindrical co-ordinates. Matlab offer fft function. How can I use this function ?

1 Answers1

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
  • Can you give me an example to verify the code? – Ion Caciula Jan 11 '13 at 18:54
  • 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
  • They are Fourier transforms over the $z$ coordinate. – Ron Gordon Jan 12 '13 at 04:12
  • 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
  • $*$ is scalar product – Ion Caciula Jan 12 '13 at 09:57
  • Yes, that's right. – Ron Gordon Jan 12 '13 at 10:24
  • 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