Ultrafast Optics Pulse Propagation Simulation

version 1.0.1, February, 2009.

This is a simple implementation of a split-step fourier numerical solver for the non-linear schrodinger equation for MATLAB. It uses 4th order Runge-Kutta for the non-linear operator in the time domain and the analytical, frequency domain solution for dispersion via the half-step method. In summary, it does a half step of dispersion, a full step of non-linear and another half-step of dispersion.

A list of simulated effects includes: dispersion, self-phase modulation, self-steepening and Raman gain. Raman gain is also implemented using the harmonic oscillator model, if chosen, for large-bandwidth pulses.

Please note that this software is in the early stages of development and has not been verified against experimental results. It is provided only for educational purposes. Eventually, it should become more mature and useful for a larger variety of simulations. For example, it does not currently have any adaptive step size techniques, gain/loss or polarization dependent gain/loss. Please stay tuned.

If you find mistakes, make improvements or have comments, please e-mail me at my e-mail address. I will try to incorporate suggestions into future versions of the code.

2D View 3D View

comp_pulse.html : Simple attempt to compress the output by applying a chirp.
dAdz.html : The non-linear, time-domain operator for the NLSE.
fdiff.html : Takes the derivative of a vector/pulse in the frequency domain.
fiber_test.html : Parameters to perform a suite of tests to compare simulations results with Agarwal's Nonlinear Fiber Optics book.
fwhm.html : Measures the rough full-width half-maximum pulse width.
nlsim.html : Master loop for running the NLSE solver
nlsim_script.html : Entry point and master script for calling/starting the simulation. Run this script to execute simulation.
plot_results.html : Plots the output of the simulation.

Or you can download the entire package here.

Update log:
cnpic