Software and supplementary material for Codebooks with Integral-Split Self-Interference Reduction (CISSIR, pronounced like "scissor"). Please refer to the associated journal paper at IEEE Trans. Wirel. Commun.:
CISSIR extends 5G-NR beamforming with a principled low self-interference (SI) design to enable integrated sensing and communication (ISAC). CISSIR's main features include:
- 🛠️ High versatility: Suitable for hybrid or analog, phased or tapered antenna arrays, even under multipath SI.
- 📝 Theoretical performance guarantees for sensing SNR in the face of analog/mixed-signal distortion.
- ⚡ Better performance1 and faster2 than cutting-edge beam codebooks for full-duplex communication.
- 🔄 Easily (re)usable and extendable
Full Python dependencies in the requirements.txt file, including:
- Sionna 1.2.1
- Tensorflow
- CVXPY
- Pandas
- Seaborn
- Install the requirements with conda or pip. We recommend using a virtual environment for this.
- To execute the notebooks, we recommend adding the project root to the
PYTHONPATHso that the cissir module is accessible everywhere. You can simply create an ad-hoc ipykernel with the properPYTHONPATHby running the following in the project root:
- In Unix:
python -m ipykernel install --sys-prefix --name cissir --display-name "CISSIR (python 3)" --env PYTHONPATH "${PYTHONPATH}:${PWD}"- In Git Bash for Windows:
python -m ipykernel install --sys-prefix --name cissir --display-name "CISSIR (python 3)" --env PYTHONPATH "${PYTHONPATH};$(pwd -W)"Afterwards, you can just execute jupyter lab and run the notebooks with the "CISSIR" kernel.
- cissir - Local Python modules.
- rt - Blender scene files for
Sionna's Ray Tracer.
- Developed with the help of Danial Dehghani.
- cluster - Requirements, scripts and Apptainer recipe for (optional) execution on an HPC GPU Cluster.
- notebooks - Jupyter notebooks demonstrating the code.
- results - Channel and performance results are stored here.
- plots - Generated graphs are stored here.
The code can be directly used through Jupyter notebooks. After adjusting the simulation parameters in cissir/params.py, the notebooks can be run in the following recommended order:
| 1. ray tracing | 2. optimization | 3. simulation | 4. analysis |
|---|---|---|---|
| a. channel | a. tapered_cissir | a. snr_sensing | a. link_level |
| b. phased_cissir | b. si_codebook_comm | b. trade_off | |
| c. lonestar | c. time_complexity | ||
| d. feasibility |
The authors of this work acknowledge the financial support by the Federal Ministry for Research, Technology and Space (BMFTR) in the programme “Souverän. Digital. Vernetzt.” Joint project 6G-RIC (grant numbers: 16KISK020K, 16KISK030). Rodrigo Hernangómez acknowledges BMBF support in the project KOMSENS-6G (grant number: 16KISK121).
The CISSIR logo has been designed by Risto Avramovski.
If you use this software or the results of our work, please cite it as:
@article{hernangomez2025cissir,
title = {{{CISSIR}}: {{Beam Codebooks}} with {{Self-Interference Reduction Guarantees}} for {{Integrated Sensing}} and {{Communication Beyond 5G}}},
author = {Hernang{\'o}mez, Rodrigo and Fink, Jochen and Cavalcante, Renato Lu{\'i}s Garrido and Sta{\'n}czak, S{\l}awomir},
year = {2025},
journal = {IEEE Transactions on Wireless Communications},
issn = {1558-2248},
doi = {10.1109/TWC.2025.3625372},
}