striqt
provides a python-based toolset for rapid prototyping of
bespoke real-time signal analyzers (RTSAs).
Once a striqt
environment is installed and activated, the following scripts are installed into the environment PATH
, so they can be run from any working directory.
-
sensor-sweep
: Acquire and analyze a capture sequence (sweep) according to a YAML input file specification. Output datasets are serialized tozarr
withxarray
. This can run locally or on a remote host (-r
argument) runningserve-sensor
. -
serve-sensor
: Serve access to local compute and radio resources forsensor-sweep
on remote clients.
Detailed usage instructions for each can be discovered with the --help
flag.
This is alpha software. The API may still change without warning.
The API is organized into two python modules that are importable as :
striqt.analysis
- Validated routines to perform real-time signal analysis (RTSA) from complex-valued baseband
- Spectrum and spectrogram evaluation
- Empirical statistical distributions
- Cellular cyclic prefix and synchronization correlators
- Packaging as xarray Dataset objects for easy-to-explore data management
- Archive datasets to
zarr
for local or cloud storage support - Optimized CPU or CUDA GPU compute using full-precision float
striqt.sensor
- Acquire data from sensor hardware according to a configuration file
- Concurrent acquisition, analysis, and archival
- Automated sensor calibration based on the Y-factor technique
The following options require that the host has internet access in order to download dependencies. Installs via local package indexes may require customization that has not been tested.
Installation with radio hardware and GPU support is provided via conda environments. Several variants of a striqt
environment are provided here, targeted at different host computing environments.
- Ensure that
conda
is installed (ormamba
/micromamba
, substituted in what follows) - Clone this repository
- Select a predefined environment based on use-case and hardware:
environments/cpu.yml
: Analyze pre-recorded IQ or run remote control (cross-platform, CPU only)environments/gpu-cpu.yml
: Analyze pre-recorded IQ or run remote control (cross-platform, CPU or CUDA GPU)environments/edge-airt.yml
: Signal acquisition and analysis to run on AirT/AirStack radios
- Create the chosen environment:
conda env create -f <path-to-environment-here.yml>
- Activate:
- IDE: select the
striqt
virtual environment - Command line:
conda activate striqt
- IDE: select the
NOTE: The environment operates on an editable install of the modules and command line tools. As a result, if the location of the cloned source code repository is moved, the conda environment needs to be removed and built again according to the instructions above.
The dependencies, APIs, and CLIs can be installed without radio hardware or GPU support (for post-analysis, plotting, testing, etc.) via pip install
. In order to avoid conflicts with other projects, the recommended practice for this is to install into a python virtual environment.
- Clone this repository
pip install <path-to-repository>
In keeping with the alpha development status of this codebase, documentation is limited.