LaserPulse
LaserPulse is a class for storing and handling laser pulses.
Pulses can be defined in either time or frequency domain.
Both domains are automatically kept synchronized.
Functionalities:
- Automatic Fourier Transform:
When a pulse is modified in time domain the spectral field is
automatically updated using fft, and vice versa.
- Physical Quantities:
Pulse duration, bandwidth, central frequency, and other properties
of the pulse are automatically calculated.
- Mathematical Operators:
The LaserPulse class supports arithmetic operations, convolutions
and calculation of higher harmonics. By default the operators are
applied in time domain, so for instance p1*p2 is a multiplication
in time domain and a convolution in frequency domain. See the
example files for more information.
- Propagation through media:
The effect of propagation through a transparent medium is supported
via a 'medium' property and a 'propagate' method.
- Pulse Trains:
A LaserPulse object can contain multiple sub-pulses. Pulse
parameters, like central frequency and bandwidth, are calculated
from the average pulse intensity, as they would be measured using a
slow detector. This functionality can be useful for simulating
pulse trains generated by high repetition rate laser sources, for
which the individual pulses often cannot be measured individually.
- Nonlinear optics:
The LaserPulse class makes it easy to simulate most populare pulse
shaping and pulse compression techniques. The example files shows
how to quickly simulate MIIPS, FROG, chirp scan and dispersion
scan.
Requirements:
The LaserPulse class is tested on Matlab R2015a.
Installation:
- Automatic Installation:
From matlab: go to the folder where the LaserPulse is located (for
example 'cd LaserPulseClass') and run the installer script
'install_LaserPulse.m'.
- Manual Installation:
For installing the LaserPulse class, just include its parent
folder in the matlab search path or, alternatively, copy the
'@LaserPulse' folder in a folder which is in the matlab search
path. For using the additional utilities and example files, also
add the 'utilities' and 'examples' folders to the matlab search
path. If the folder with the LaserPulse manual is not present,
generate it using the matlab 'publish' function. See
'install_LaserPulse.m' for an example.
Copyright (C) 2015-2019 Alberto Comin.