📡 Communication Design Project
Point-to-point wireless network developed using GNU Radio with Blade-RF and interfaced with Streamlit
Communication System Design
Contents
1. Overview
A point-to-point digital wireless communication system implemented with GNU Radio to transmit and receive
- Image
- Bit Stream
- Real-time audio
using devices such as Blade-RF.
2. Our Approach
- Image Transmission
- ✅ Simulation
- ✅ Physically
- Modulation Scheme : 2-FSK
- Evaluation Metric : Mean Squared Error (MSE) between the transmitted Image(T) and Received Image(R)
-
MSE for Monochrome image of size MxN is defined as
MSE $= \frac{1}{M \cdot N} \sum_{i=1}^{M} \sum_{j=1}^{N} [T(i,j) - R(i,j)]^{2}$
- Binary Data Stream Transmission
- ✅ Simulation
- ✅ Physically
- Modulation Scheme : 2-GFSK
- Evaluation Metric : Bit Error Rate (BER)
with forward error correction.
- Voice Transmission (Real Time voice captured from MIC / Recorded voice clip)
- ✅ Simulation
- ✅ Physically
- Modulation Scheme : 2-GFSK
- Evaluation Metric : Based on the Quality of the Received Voice (Evaluated by Hearing it)
3. Project Setup
NOTE : You have the option to directly refer to the GRC files that contain the relevant flowgraphs. It is not mandatory to set up the Interface.
3.1 GNU Radio
GNU Radio is an open-source toolkit for software-defined radio development. It provides signal processing blocks to build versatile radio systems, including sophisticated in wireless communication systems.
Refer to their documentation on how to set up GNU Radio on your device along with bladeRF driver installation.
Prefered : Linux Environment
We attempted driver installation in a Windows environment, but configuring the drivers proved challenging. It's recommended to opt for a Linux OS for a smoother GNU Radio installation.
3.2 GUI Setup
We used Streamlit to interface our project with GRC flow graphs and python files generated by them.
-
Clone the repository:
git clone https://github.com/SasikaA073/CDP-communication-system cd CDP-communication-system cd ST_Webapp
-
Install venv
sudo apt-get update sudo apt-get install python3-venv
-
Create a Python virtual environment named “gnu”:
python3 -m venv gnu
-
Activate the virtual environment:
source gnu/bin/activate
-
Install the required Python packages from the
requirements.txt
file:pip3 install -r requirements.txt
-
Run the following to start the interface
streamlit run Home.py