File Exchange

image thumbnail

Fiber Lasers and Amplifiers Design Toolbox

version 1.9 (36 KB) by

Design toolbox allows parameter selection by solving lasers/amplifiers for various L,R,P,lambda etc



View License

** Run "FiberAnalysis()" to start **

This toolbox provides steady-state analysis of both erbium-doped and ytterbium-doped fiber lasers and amplifiers, allowing good design choices to be made for experiment.

Various calculations and simulations are provided that give full understanding of impact of varying parameters such as
- active fiber length
- pump power
- wavelength
- coupler reflectivity (for lasers)
- cavity losses (for lasers)
- signal power (for amplifiers)

A litany of plots can be made, including:
- small signal gain for various wavelengths, fiber lengths, pump powers
- distribution of pump, signal, ASE powers and ion excitation ratios along fiber
- comparison plots for lasers, showing effect of varying parameters R, L, [losses] on laser performance
- comparison plots for amplifiers, showing effect of varying parameters L, Pp, Ps on amplifier performance
- ASE plots for amplifiers, showing power across emission spectrum

This is version 1, so no claims to be perfect, but this work reflects extensive literature exploration and has been validated by comparison with >10 papers, principally:
- Barnard et al, "Analytical Model for Rare-Earth Doped Fiber Lasers and Amplifiers", 1994
- Pask et al, "Ytterbium-Doped Silica Fiber Lasers: Versatile Sources for the 1-1.2um Region", 1995
- Paschotta et al, "Ytterbium-Doped Fiber Amplifiers", 1997
- Kelson and Hardy, "Strongly Pumped Fiber Lasers", 1998
- Bellemare, "Continuous-wave Silica-Based Erbium-Doped Fibre Lasers", 2003
Moreover the numerical solutions in the toolbox have been internally validated by comparison with the analytical solutions, and it agrees with my own experimental results.

So, please let me know if/as you find bugs or mistakes!

Happy designing.

6/14/13 -- Updated FDTD solution method, added support for cladding-pumping
6/17/13 -- Added support for counter-propagating pumping, validated ASE calculations (forward and backward over arbitrary wavelengths)
6/19/13 -- Added spectroscopy functions GetYbSpectrum and GetErSpectrum to the package; inadvertently left out of original
6/26/13 -- Added another stupid supporting file left out of original package
7/8/13 -- Corrected bug in laser power vs reflectance function (applies to linear resonators only).
7/17/13 -- Bug fix to number of points
7/22/13 -- Calculates powers along fiber in lasers: gives snapshot of signal, pump, and ASE power distribution in active fiber

Comments and Ratings (12)

Anik Saha

u are exceptionally talented!! thank u so much

Mr qiancheng

you are really talented. However, if my case include ESA and energy transfer, how to modify the rate equations?
Also, how to solve the propagation equations by MATLAB code, I know simulink does, but I want mathmatical method.

The case for a linear and feedback ring cavity are empty in the LaserNumerical.m function (section : Calculate Laser Performances). Will these types of cavity be available for simulation like the ring cavity in a possible update? Thanks

Luke Rumbaugh

Hi Atul, I think the problem is the "~" character, which has been introduced in recent Matlab versions as a way to ignore function outputs. It is not supported by older versions -- you can simply replace the ~ with "dontCare" or something similar.

Occurrences in the toolbox include AmplifierPerformance.m line 184, and LaserNumerical.m lines 123, 125, and 132.

Thanks for the heads up!

Luke Rumbaugh

Hi Atul, sure, sorry you're having trouble. I haven't seen anyone get that error before ... If you can, please email me and tell me what system you were simulating exactly?
Click on my name and then "Contact author". Thanks!


Atul (view profile)

I was trying to use Fiber Amplifier except for the first two curves, none of the following figures are generated and he following errors comes up:

Warning: Ignoring extra legend entries.
> In legend at 239
  In SmallSignalGain at 179
  In FiberAnalysis>CallDesiredFunctions at 289
  In FiberAnalysis at 85
??? Error: File: AmplifierPerformance.m Line: 184 Column: 3
Incomplete or misformed expression or statement.

Error in ==> FiberAnalysis>CallDesiredFunctions at 294
        [data hFig] = AmplifierPerformance(set);

Error in ==> FiberAnalysis at 85
        [data{ii} hFig(ii)] = CallDesiredFunctions(iiSelections(ii),s);

ans =

    {1x2 cell}

Can you provide some assistance to overcome this issue.

Atul Bhardwaj


very goog


minsow (view profile)


Luke Rumbaugh

Derrek, thanks for pointing that out, the GUI doesn't really have good support for cladding-pumping yet, I'll add that soon.

Meanwhile you can look at "LaserPerformance.m" line 116 and "AmplifierPerformance.m" line 151 and following to manually adjust your overlap parameters GammaP (for the pump) and GammaS (for the signal).



Derrek (view profile)

I have just started using this solver, and I am finding it incredibly useful(update: July 22 2013).

The following comment is with respect to the ytterbium laser option of the program.

It is important in some applications to be able to vary the the cladding-pump/core area ratio. Right now the program appears to pin the E-field/core area ratio to the pump/core area ratio.

It would be nice to include either an input for the pump cladding diameter, or for the overlap ratio so that this can be varied.

Luke Rumbaugh

Looks like the original package didn't have the GetYbSpectrum and GetErSpectrum functions that provide spectroscopy data for ytterbium and erbium fibers.

I.e. the original didn't work -- SORRY!!

An update has been submitted.

At this point, anyone intending to use the toolbox, please redownload the current package.

Luke Rumbaugh

Sorry for the semi-GUI, I'll try to have a real one up soon so you don't have to keep re-entering values.



7/22/13 -- Calculates powers along fiber in lasers: gives snapshot of signal, pump, and ASE power distribution in active fiber


Bug fix, crashed when number of points not specified


Bug fixes


Corrected bug in laser power vs reflectance function (applies to linear resonators only).


Added missing ConvDB2N file.


** GetYbSpectrum and GetErSpectrum are now included**
Added spectroscopy functions which were inadvertently left out of original package


1. Added support for counter-propagating pump, backwards ASE
2. Validated forward- and backward-propagating ASE calculations


1. BVP solution: better speed, accuracy, stability (Explicit FTCS FDTD w/ modified Lax-Wendroff diffusion for 2nd-order accuracy in t, z)
2. support for cladding-pumping (verified by my experiments)
3. various corrections around the toolbox

MATLAB Release
MATLAB 7.12 (R2011a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video