Free Optics Project

Accurate Numerical Simulation of Short Fiber Optical Parametric Amplifiers

(SSFM for CNLSE with PMD)

This page was created to host and distribute under a   creative commons license   a series of Matlab codes developed to simulate non-linear propagation in optical fibers with PMD and used to generate all the gain spectra shown in:

M.E. Marhic, A.A. Rieznik, G. Kalogerakis, C. Braimiotis and, H.L. Fragnito, “Accurate Numerical Simulation of Short Fiber Optical Parametric Amplifiers,” Optics Express, Vol. 16, No. 6, 3610-3622 (2008) .   Abstract and pdf   


These codes solve the coupled generalized non-linear Schrödinger equation (C-NLSE) describing light propagation in an optical fiber with random birefringence, through a symmetrized Split-Step Fourier Method (SSFM) algorithm developed specifically for this purpose and introduced in the above article. The random parameters are generated according to the so called second Wai-Menyuk method [2]. The only nonlinear effect included in the simulated propagations is the nonlinear refraction originated from third-order susceptibility, as usual. We do not include Raman, self-stepening or Brilluoin scattering.  

In opposition to all commercially available softwares and to the coarse-step method used to simulate PMD in long-haul communications systems, (1) this SSFM does not neglect the ellipse-rotation terms (also called coherent-coupling terms) to simulate the non-linear propagation [1] and (2) a fine-step algorithm known as the Wai-Menyuk Method (WMM) is used to generate the random birefringence parameters in a fine-step scale.

Download and Installation

Click here to download the codes

You must save the compressed folder called “” in your computer. When you extract them, four folders will be created inside the folder Accurate_Short_Fiber_Simulations, namely:

(1) Examples: here are the Matlab files you need to run to generate the different figures.

(2) Solvers_NLSE_with_PMD: Matlab functions applying the SSFM for solving the C-NLSE. Two solvers are available here, considering or not the ellipse rotation terms in the C-NLSE.

(3) Visularizers: Matlab functions used to plot the results at the output of the propagations.

(4) Saved_Files: randomly generated parameters used to generate some of the graphs of the article (Figures 1, 3, and 6). They are called from some of the Examples as pseudo-random parameters, so the the graph generated by the code when you run it is the same as the associated one in the article.

We used as the starting point for these codes the ssprop software developed by Thomas Murphy and collaborators and available   here .
Running the code

All the Figures in the article can be generated by simply opening and running the matlab code with the respective name in the folder Examples you just downloaded (the Fig6a.m file, for instance, automatically generates, when run, the gain spectra shown in Figure 6(a)).  

Note that the files inside the other folders are used only when running the Examples, and should not be run by themselves. Of course, you can open the functions inside these folders to study their structure. In fact all the codes are well commented, so we hope you can follow their algorithm, and use them for educational or research purposes. You can also change the simulation parameters to investigate how they affect the gain spectra.

Note also that all folders you extracted from the compressed file you downloaded must be included in the Matlab path (Files -> Set Path -> Add with Sub-Folders).

One of the random process as the one used for the generation of Figures 4(a),(b), and (c) can be run by changing the variable “realizations” from 100 to 1 in the example Fig4d.m.

The simulations generating each Figure lasted around 40 seconds in our Pentium IV, Windows XP machine. The only one simulation that took one hour and a half or so was “Fig4d.m”, because 100 realizations were performed.

All these codes were saved using Matlab 7.0 and Windows XP, so we are not sure whether it will work properly when using earlier versions or others operational systems or hardware.
Previous Works

The   ssprop software   developed by Thomas Murphy and his team at the Photonic Research Laboratory at the University of Maryland inspired this project and the matlab codes they developed to solve the scalar non-linear Schroedinger Equation were used as the original seed for the development of our codes for the coupled equations.


The author of these codes is  Andrés Anibal Rieznik . If you have inquiries about the codes, do not hesitate to send me an e-mail. It would be a pleasure to answer you and help to improve these codes according to your research or educational purposes.

[1] M. E. Marhic, A. A. Rieznik, H.L. Fragnito, and L. G. Kazovsky, “Accurate Modeling of Fiber OPAs with Nonlinear Ellipse Rotation Terms in the Split-Step Fourier Method,” Proceedings of the Optical Amplifiers and Applications Conference 2006, Whistler, Canada, June 25-28 (2006), paper JWB35.  pdf

[2] P.K. Wai and C.R. Menyuk, "PMD, decorrelation, and diffusion in optical fiber with randomly varing birefringence," J. Lightwave Technol., 12, 148-157 (1996).