Skip to content

functions-lab/rise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RISE: Real-time Image Processing for Spectral Energy Detection and Localization

arXiv:2603.20481 License

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}
}

Overview

The RISE release contains:

  1. A local copy of the RISE-modified Savannah C++ real-time streaming and sensing pipeline.
  2. Two Python reference scripts for offline reshaping and visualization: reference/reshape_dumpped_iq.py and reference/visualize.py.
  3. 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.

Prerequisites

  • 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.

Build

Run the following command to build the real-time processing system.

cd savannah
mkdir build
cd build
cmake .. -DTIME_EXCLUSIVE=True -DMAT_OP_TYPE=AVX512

Confirm 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 files
make

Install the Python reference-script dependencies:

cd reference
pipenv install # install the python packages

Enter the virtual environment before running reference scripts:

cd reference
pipenv shell # enter the virtual environment

Usage

  1. (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.

  2. 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/
  3. 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>",
  4. Ensure the output folder exists and is empty: savannah/files/sensing.

    mkdir savannah/files/sensing
    rm -rf savannah/files/sensing/*
  5. 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
  6. The output files containing bounding boxes and the region of each subband processor in .csv will reside in savannah/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) in dosensing_freq.cc needs to be enabled.

Offline Visualization

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.

  1. Reshape the dumped IQ samples.

    cd reference
    pipenv shell
    python reshape_dumpped_iq.py
  2. Visualize the sensing results.

    cd reference
    pipenv shell
    python visualize.py

The intermediate image-processing results are plotted under reference/figs/.

Author and Contact

For questions or collaboration inquiries, please contact:

License

This project is released under the Apache 2.0 License.

Acknowledgment

This project builds upon the Savannah SDR framework developed by the RENEW project.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors