Skip to content

SchottkySpectroscopyIMP/data-analysis

Repository files navigation

Schottky Data Analysis Framework

This repo's codes efficiently implement a wide spectrum of algorithms useful for Schottky data analyses within the context of Schottky spectroscopy experiments. A selected examples include, but are not limited to, numerical calculation of discrete prolate spheroidal sequence (DPSS), spectral density estimation of Schottky signal, periodogram with different windows, multitaper, and so on.

Presently, it is compatible with wv files (e.g. generated by Rohde & Schwarz FSVR), as well as tiq files (e.g. generated by Tektronix RSA5000B).

Prerequisites

  • Python 3
  • Scipy, Numpy
  • BLAS and LAPACK libraries (essential for matrix computation)
  • pyFFTW (essential for FFT)
  • true-random-number (essential for provoding true random numbers of normal distribution)
  • Matplotlib (optional, only if visualization is needed)

Usage

All the codes are supposed to be imported as modules into a main Python script, or a Jupyter notebook.

  1. dpss.py: generate a list of DPSSs with given length and bandwidth
  2. preprocessing.py: read meta-info from header, and load IQ data into memory
  3. processing.py: spectral density estimation using periodogram or multitaper in 1D and 2D

See Wiki for more explanations about the class methods and arguments.

In addition, this repo is shipped with an extra script synthetic.py for test. By using that, one can produce synthetic wv files with customized artificial signals inside. Common waveforms include sinusoids, rectangular and triangular pulses, etc., as well as stochastic processes, such as autoregressive processes and noise-corrupted sinusoids.

License

This repository is licensed under the GNU GPLv3.