Skip to content

A free and open-source (FOSS) Python class to exctract the refractive index and absorption coefficient from time traces of a THz Time Domain Spectrometer (THz-TDS).

License

Notifications You must be signed in to change notification settings

puls-lab/phoeniks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

phoeniks

This project is licensed under the terms of the GNU General Public License v3.0 or later.

ALPHA-RELEASE (Test at your own risk)

phoeniks stands for

PULS hands-on optimized extraction of $\textbf{n}-\textbf{i}\cdot \textbf{k’s}$

and aims to be an easy to use software, where a reference and sample trace from a THz-Time Domain Spectrometer (THz-TDS) can be inserted and refractive index and absorption coefficient of the sample under test can be extracted. It is free and open-source software (FOSS) and written in Python. It is focused on numerical extraction with minimal knowledge about the sample and (currently) supports one layer/interface.

It is developed by Tim Vogel, PhD student at the Photonics and Ultrafast Laser Science (PULS) at the Ruhr-University Bochum, Germany.

It is not developed in a vacuum, but I want to credit many fruitful discussions with Ioachim Pupeza, Romain Peretti, Andrew Burnett, Nicholas Greenall, and Milan Öri about THz-Time Domain Spectrometer, providing tips & tricks how to extract the refractive index and absorption coefficient.

There is no manual yet, but you can find this series of YouTube tutorials hopefully helpful:

YouTube - Tutorial - How to download and install 00

Phoeniks - Tutorial - How to download and install 00

YouTube - Tutorial - Basic Extraction - Example 01

Phoeniks - Tutorial - Basic Extraction - Example 01

Credits:

This program is based, in its first version, on the Matlab code from Ioachim Pupeza. Pupeza et al. introduced to limit the number of echos for a more realistic transfer-function as well as the spatially variant, moving average filter (SVMAF):

Ioachim Pupeza, Rafal Wilk, Martin Koch.

„Highly Accurate Optical Material Parameter Determination with THz Time-Domain Spectroscopy“.

Optics Express 15, Nr. 7 (2007): 4335.

https://doi.org/10.1364/OE.15.004335

Part of the code were inspired by the excellent publications from the work group around Romain Peretti, which take a more qualitatively look on the inverse problem to extract the refractive index or, more general, the dielectric function of the sample under test:

Romain Peretti, Sergey Mitryukovskiy, Kevin Froberger, Mohamed Aniss Mebarki, Sophie Eliet, Mathias Vanwolleghem, Jean-Francois Lampin.

„THz-TDS Time-Trace Analysis for the Extraction of Material and Metamaterial Parameters“.

IEEE Transactions on Terahertz Science and Technology 9, Nr. 2 (2019): 136–49.

https://doi.org/10.1109/TTHZ.2018.2889227

The group also developed a software with a graphical user interface called fit@TDS, which allows to explore different dielectric functions and how they fit to the measurement data:

https://github.com/THzbiophotonics/Fit-TDS

Nelly is another package, written in Matlab, which is focused to solve multi-layer problems, since it can create a transfer-function on-the-fly. It is developed in the Schmuttenmaer/Neu-group at the University of Yale:

Uriel Tayvah, Jacob A. Spies, Jens Neu, Charles A. Schmuttenmaer.

„Nelly: A User-Friendly and Open-Source Implementation of Tree-Based Complex Refractive Index Analysis for Terahertz Spectroscopy“.

Analytical Chemistry 93, Nr. 32 (2021): 11243–50.

https://doi.org/10.1021/acs.analchem.1c02132

Nelly can be found under:

https://github.com/YaleTHz/nelly

The knowledge about refractive index extraction was also expanded by Nicholas Greenall, who wrote his thesis in the work group from Andrew Burnett.

Nicholas Robert Greenall.

„Parameter Extraction and Uncertainty in Terahertz Time-Domain Spectroscopic Measurements“.

(2017) PhD thesis, University of Leeds.

https://etheses.whiterose.ac.uk/19045/

Pixel art logo created at midjourney.com

TODO:

  • Credit all people who helped to develop this program
  • Pick a suitable open-source license
  • Upload first program which runs
  • Supply examples with artifical material
  • Supply examples with real measurements
  • Supply a manual/handbook, explaining the code (why is it doing what)

About

A free and open-source (FOSS) Python class to exctract the refractive index and absorption coefficient from time traces of a THz Time Domain Spectrometer (THz-TDS).

Topics

Resources

License

Stars

Watchers

Forks

Languages