This repository hosts a demonstration of the encoder and decoder algorithm as presented in the paper "Semantic Communications for Wireless Sensing: RIS-aided Encoding and Self-supervised Decoding" by Hongyang Du, Jiacheng Wang, Dusit Niyato, Jiawen Kang, Zehui Xiong, Junshan Zhang, Xuemin (Sherman) Shen, accepted by IEEE JSAC.
The paper can be found Here.
To create a new conda environment, execute the following command:
conda create --name invsems python==3.8Activate the created environment with:
conda activate invsemsThe following packages can be installed using pip:
pip install numpy
pip install scipy
pip install scikit-image
pip install torch
pip install torchvision
pip install opencv-python
pip install tqdmPlease pay attention to the torch version, according to your CUDA version. Refer to here.
Set the created env as the runing env.
Run main.py to start the program.
In this demo, we consider the encoding and decoing of wireless signal amplitude information as:
With the decoding process going, the results will be recorded:

After 2 decoding steps, the result is not good:

After 16 decoding steps, the result is quite good:

@article{du2023semantic,
title={Semantic communications for wireless sensing: RIS-aided encoding and self-supervised decoding},
author={Du, Hongyang and Wang, Jiacheng and Niyato, Dusit and Kang, Jiawen and Xiong, Zehui and Zhang, Junshan and Shen, Xuemin},
journal={IEEE Journal on Selected Areas in Communications},
year={2023},
publisher={IEEE}
}As we claimed in our paper, this repository used the codes in the following papers:
PnP-DIP: https://github.com/mengziyi64/CASSI-Self-Supervised
Deep Image Priors: https://github.com/zhaodongsun/pnp_dip
LRS-PnP-DIP: https://github.com/shuoli0708/LRS-PnP-DIPPlease consider to cite these papers if their codes are used in your research.

