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 tozarrwithxarray. This can run locally or on a remote host (-rargument) runningserve-sensor. -
serve-sensor: Serve access to local compute and radio resources forsensor-sweepon 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
zarrfor 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
condais 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
striqtvirtual 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.