LaserPulse is a simple Matlab toolbox for nonlinear and ultrafast optics. It can be used to simulate propagation through optical media, and pulse compression techniques (e.g. FROG, G-MIIPS).
More information can be found here: http://albeco.github.io/LaserPulse/
A concise overview and example code can be found here: http://albeco.github.io/LaserPulse/manual/laserpulse_overview.html
Alberto Comin (2019). albeco/LaserPulse (https://www.github.com/albeco/LaserPulse), GitHub. Retrieved .
added live script examples
added support for linear propagation in transparent media
added setter and getter methods for timeUnits, frequencyUnits, centralFrequency, arrivalTime, groupDelay, groupDelayDispersion, instantaneousFrequency
added property phaseOffset
several bugs fixed
changed GitHub repository name from LaserPulseClass to LaserPulse
added test files
version 1.0.1 : added support for mathematical operators in both time and frequency domain; added example files with simulations of interferometric FROG and MIIPS; fixed some bugs (especially for the method disp())