File Exchange

image thumbnail


version 1.0.1 (600 KB) by Laurent NEVOU
Optical Tranfer Matrix Solver


Updated 05 Apr 2021

From GitHub

View Version History

View license on GitHub

This program is computing the reflexion and transmission of a multi layer structure using the Transfer Matrix Method (TMM). It allows to get the field distribution inside the structure.
Three structures are proposed:
-> Bragg mirror
-> Fabry-Perot cavity
-> VCSEL structure

Cite As

Laurent NEVOU (2021). Light_WaveTransmission1D (, GitHub. Retrieved .

Comments and Ratings (13)

Daniel Hoare

Bernard Liu

Mehmet AY

J.K Ji

Laurent NEVOU

It isn t too complicated but one has to do it properly so that everything is working together...

1) In the main code: "WaveTransmission1D_Main.m", section Discretisation, you have to make "n" and "nt" wavelength dependent according to your need.
-> "n" will still have the same shape
-> "nt" will a 2D matrix [number of layer , wavelength length] => size(nt)=[3,N]. N= length(lambda)
2) in the loop over lambda, when you call the function TMM_f, you have to take "nt"=nt(:,l) to select the layer index at the right wavelength
3) That should be it!

Chirag Patil

Hi Laurent,
Thanks for sharing this code.
How can I go about to find the transmission of a dispersive Fabry-Perot resonator, i.e, index changes as a function of wavelength?

kors Atsua

Alright, thanks. Will look it up.

Laurent NEVOU

not sure...
May be check "The Abeles matrix method"

kors Atsua

It appears this algorithm is purely matrix approach and does not make use of the fresnel reflection/transmission coefficient, or can this somehow be incorporated through the incident boundary condition? I ask this because, I want to determine angular dependence as well as the polarization (TE/TM). Thanks in advance.

kors Atsua

Laurent NEVOU

Igor A. Sukhoivanov and Igor V. Guryev
Photonic Cristals: Physical and Practical Modeling
Chap3: Fundamentals of Computation of Photonic Crystal Characteristics

kors Atsua

Hi Laurent,
Thank you for this resource. Apart from the wike link you provided up there, is there any other resources you followed in developing this algorithm? The code does not have enough comment on it and so it makes it difficult to adapt it for ones needs. Could you please give me any other resources you used in developing this?

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!