postpic icon indicating copy to clipboard operation
postpic copied to clipboard

Azimuthal Fourier transform

Open zubairy opened this issue 5 years ago • 5 comments

Postpic version v0.4 run on python 2.7.15 (Anaconda), GCC 7.3.0

Dear developers,

I‘ve seen this repo for a long time but only recently started using it. I found it very convenient for my epoch data processing, especially the fft() calculating the high-harmonic spectrum. I open this issue for wondering that does this fft() can by somehow handling the orbital angular momentum (OAM) spectrum, as described by Eq. (1)-(3) in this reference.

I've tried to transfer the EM field to polar coordinate, and then do the fft(), but seems haven't got the expected OAM spectrum yet.

Regards, Lingang ZHANG

zubairy avatar Apr 15 '19 03:04 zubairy

I had no trouble implementing Eq. (3) from your reference using fft(), see FFT.pdf. Maybe your problem lies elsewhere?

Ablinne avatar Apr 16 '19 12:04 Ablinne

@Ablinne Hi, sorry for response late. Inspired by your comment, these days I tried and got the reasonable azimuth fft spectrum of the field, thanks!

zubairy avatar Apr 19 '19 02:04 zubairy

@zubairy I was wondering if you azimuth fft spectrum of the field is something we should permanently add to postpic. I assume you have used your function by now repeatedly. If its too much work for you to contribute to the postpic codebase directly, you can also add a demo python file or jupyter notebook directly to this issue. So we could discuss if it should be added and where. Thanks a lot!

skuschel avatar Apr 14 '21 10:04 skuschel

Dear Stephan,

Thank you for considering amending this into postpic. I attached a demo python script azimuthal_fft_demo.txt, in which an electric field containing two Laguerre-Gaussian modes (ref to https://doi.org/10.1364/AOP.3.000161) is constructed and then filter one of them out by azimuth fft and inverse fft. We done this by transform the field to polar, do fft in polar coordinate, and then transform back to Cartesian (Issue #203).

As you can see in the demo, this can only process the 2D data. For the 3D field, I use loop to select slices and repeat this process. Please check if my demo file runs correctly and consider if it is worth to be added into postpic.

Regards, Lingang

pp.version: v0.4+150.g59b1823.dirty image

zubairy avatar Apr 16 '21 08:04 zubairy

Dear Lingang, thanks a lot for the script and the plots! Thats pretty interesing. Since there is no 3D version, I will need to see if there is much benefit to add it directly, but it can definitely become an exampe file in https://github.com/skuschel/postpic-examples

Best Regards Stephan

skuschel avatar Apr 16 '21 17:04 skuschel