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
).
Python 3
Scipy
,Numpy
BLAS
andLAPACK
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)
All the codes are supposed to be imported as modules into a main Python
script, or a Jupyter
notebook.
dpss.py
: generate a list of DPSSs with given length and bandwidthpreprocessing.py
: read meta-info from header, and load IQ data into memoryprocessing.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.
This repository is licensed under the GNU GPLv3.