The code base for the DySPAN'26 accepted paper
@inproceedings{tung2026rise,
title={{RISE}: Real-time Image Processing for Spectral Energy Detection and Localization},
author={Tung, Chung-Hsuan and Qi, Zhenzhou and Chen, Tingjun},
booktitle={2026 IEEE International Symposium on Dynamic Spectrum Access Networks (DySPAN)},
year={2026},
organization={IEEE}
}The RISE release contains:
- A local copy of the RISE-modified Savannah C++ real-time streaming and sensing pipeline.
- Two Python reference scripts for offline reshaping and visualization:
reference/reshape_dumpped_iq.pyandreference/visualize.py. - RFSynth integration configs under
external/rfsynth/config/.
RFSynth is an external dependency and is not redistributed in this repository. See external/rfsynth/README.md for project references, the tested RFSynth commit, and config usage.
- An Intel CPU that supports AVX-512 for the current Savannah build configuration.
- FlexRAN SDK or ACC100 accelerator support may be required by Savannah's LDPC paths, although RISE does not use LDPC decoding directly.
- Python and Pipenv for the reference scripts.
- MATLAB R2021b or later plus the RFSynth-required toolboxes if generating synthetic RF inputs with RFSynth.
See the included Savannah README for detailed Savannah dependencies.
Run the following command to build the real-time processing system.
cd savannah
mkdir build
cd build
cmake .. -DTIME_EXCLUSIVE=True -DMAT_OP_TYPE=AVX512Confirm that CMake reports TIME_EXCLUSIVE: True and MAT_OP_TYPE: AVX512.
The AVX-512 and LDPC-related dependencies are inherited from Savannah and are not fundamental to the RISE sensing algorithm.
Go to savannah/src/agora/sensing/dosensing_freq.cc and choose the mode to be streamer or processor.
Note that two options cannot be enabled at the same time due to the timing constraints.
DumpToFile(tag); // savannah dumps the sensed data to files
// imag_proc_partition(tag); // savannah performs image processing with task partition and dumps bounding boxes in csv filesmakeInstall the Python reference-script dependencies:
cd reference
pipenv install # install the python packagesEnter the virtual environment before running reference scripts:
cd reference
pipenv shell # enter the virtual environment-
(Optional) Generate input signals with RFSynth.
Use a separately obtained RFSynth checkout and one of the RISE configs in
external/rfsynth/config/. See external/rfsynth/README.md. -
Copy the generated signals to the streaming/processing system.
Some examples are included in the target folder.
cp /path/to/generated/<file_id>.{32cf,json} savannah/files/experiment/
-
Update the config file for savannah.
In
savannah/files/config/ci/tddconfig-sim-sensing.json, update the following field:/* The id used to generate data from RFSynth */ "sensing_file_id": "<file_id>",
-
Ensure the output folder exists and is empty:
savannah/files/sensing.mkdir savannah/files/sensing rm -rf savannah/files/sensing/* -
Open two terminals and run the sender and sensor separately but simultaneously.
cd savannah ./savannah.sh -x -s # run the sensor first
cd savannah ./savannah.sh -u -s # run the sender
-
The output files containing bounding boxes and the region of each subband processor in
.csvwill reside insavannah/files/sensing. An example file content can be:frame_start,frame_end,symbol_start,symbol_end,subcarrier_start,subcarrier_end,num_box 0,19,0,70,0,511,26 left,top,right,bottom 259,39,266,47 ...
Note that to generate the bounding boxes,
imag_proc_partition(tag)indosensing_freq.ccneeds to be enabled.
For offline visualization, enable DumpToFile(tag); in dosensing_freq.cc and
run the reference scripts under reference/. Savannah writes raw IQ samples as
.bin files under savannah/files/sensing.
-
Reshape the dumped IQ samples.
cd reference pipenv shell python reshape_dumpped_iq.py -
Visualize the sensing results.
cd reference pipenv shell python visualize.py
The intermediate image-processing results are plotted under reference/figs/.
For questions or collaboration inquiries, please contact:
- Chung-Hsuan Tung (chunghsuan.tung@duke.edu)
This project is released under the Apache 2.0 License.
This project builds upon the Savannah SDR framework developed by the RENEW project.