Coherent Optics Propagation and Modeling

Fourier optics based propagation and modeling of complex and arbitrary optical fields
491 Downloads
Updated 23 Jul 2020

This set of tools, all in base MATLAB, mainly provide the ability to describe and propagate a multitude of different distributions common in laser optics. The main use is for the modeling of coherent laser combination in regularly tiled arrays and propagation through free space. However, there is also the ability to model: arbitrary tiling, Gaussian, Hermite-Gaussian, Laguerre-Gaussian fields. Additionally there is a custom genetic algorithm (GA) that can be used to optimize or reconstruct initial fields based on simulated propagated fields or on real world camera images.

This toolbox is structured into two custom classes: beamPropagation2D and genAlgBeamProp. The former holds all of the field definition and propagation functions and the latter holding the GA functions. Each also hold basic plotting tools to quickly explore created fields.

Compatibility Note: Though it says you need 2018b onward to use this, that is mainly for small changes to function notation. I believe the last major update that is used is 2016b as local functions are used. It is not guaranteed to work but should be relatively easy to understand what is going wrong and fix.

Cite As

Randy Lemons (2024). Coherent Optics Propagation and Modeling (https://github.com/slaclab/CCPM/releases/tag/1.0.0), GitHub. Retrieved .

Lemons, Randy, and Sergio Carbajo. "Reconstruction and Optimization of Coherent Synthesis by Fourier Optics Based Genetic Algorithm." arXiv preprint arXiv:2005.13671 (2020).

MATLAB Release Compatibility
Created with R2019b
Compatible with R2018b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.