Closed kaanaksit closed 2 years ago
The steps required to complete this work is as follows:
wide_window_angular_spectrum
inside odak.wave.classical
that can be found in here. If you go through this script, you will see that there are many other definitions like rayleigh_sommerfeld
or angular_spectrum
. They can be inspirational for the implementation.Wide-window Angular Spectrum
, just like the one below to propagate_beam
within the same script.
https://github.com/kunguz/odak/blob/8d3237478e7b7d22877e2f26a41c7cba9b3babc5/odak/wave/classical.py#L37Wide-window Angular Spectrum
in this line:
https://github.com/kunguz/odak/blob/8d3237478e7b7d22877e2f26a41c7cba9b3babc5/test/test_beam_propagation.py#L12
You can also visualize the outcome by removing the commenting from those lines within the same test script:
https://github.com/kunguz/odak/blob/8d3237478e7b7d22877e2f26a41c7cba9b3babc5/test/test_beam_propagation.py#L36-L43Odak
.Remember that I add each contributors name to THANKS.txt and to the bibliography that can be found in odak.bib as well. So that when this library gets cited, you get your academic credit for it :)
According to this paper, although bandlimited angular spectrum method is valid for a wider propagation range compared to angular spectrum method, the accuracy of bandlimited angular spectrum method would decrease when the propagation distance is larger than 40 times the wavelength. The same paper explains the reasoning as follows: the band limits of a filter that avoids the aliasing is chosen according to the propagation distance of a beam, and in the large distances, the chosen limits are degrading the accuracy of the calculation. With respect to strict solution, this paper claims a superior accuracy, replicating it would be helpful in the long run.