📡 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

  1. 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}$

Flowgraph of Image Transfer developed in GNU Radio
  1. Binary Data Stream Transmission
    • ✅ Simulation
    • ✅ Physically
  • Modulation Scheme : 2-GFSK
  • Evaluation Metric : Bit Error Rate (BER)

with forward error correction.

Flowgraph of Bit Stream Transfer developed in GNU Radio
  1. 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)
Flowgraph of Audio Transfer developed in GNU Radio

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

Sample Page from User Interface developed using Streamlit

We used Streamlit to interface our project with GRC flow graphs and python files generated by them.

  1. Clone the repository:

     git clone https://github.com/SasikaA073/CDP-communication-system
     cd CDP-communication-system
     cd ST_Webapp
    
  2. Install venv

     sudo apt-get update
     sudo apt-get install python3-venv
    
  3. Create a Python virtual environment named “gnu”:

     python3 -m venv gnu
    
  4. Activate the virtual environment:

     source gnu/bin/activate
    
  5. Install the required Python packages from the requirements.txt file:

     pip3 install -r requirements.txt
    
  6. Run the following to start the interface

     streamlit run Home.py
    

4. Contributors (Team RadioHeads)

Team Radio Heads