An add-on implementation of frequency compensation for qcrypto.
Requirements:
- Python 3.8 and above, running in Linux
gcc
, if runningfreqcd
(preferably in PATH for auto-compilation)
Install the library (alternatively, clone and install locally with pip install -e.
):
pip3 install git+https://github.com/s-fifteen-instruments/fpfind.git
Binaries and scripts will be exposed to the path; commonly used scripts are listed below.
fpfind -t {TIMESTAMPS1} -T {TIMESTAMPS2}
freqcd -X -udF fpipe -f 568 < {TIMESTAMPS}
[costream -V5 ... |] freqservo -V5 -udF fpipe -f 568
parse_timestamps -A1 -X -p {TIMESTAMPS}
- The FFT buffer size is limited to 2**31 bins due to the implicit casting to
int32
performed internally bynp.bincount
on older versions ofnumpy
. This corresponds to a buffer order value upper bounded toq = 31
forfpfind
. To bypass this limitation, supply an alternative implementation fornp.bincount
.
Certain issues may appear when attempting an install on RaspbianOS:
- Importing
numpy
yields the error message statinglibopenblas.so
could not be found (this is the underlying linear algebra library for Numpy); installing thelibopenblas-dev
library fixes this, e.g.apt install libopenblas-dev