Skip to content

Communication system for a point-to-point network developed with GNU Radio & user interface with Streamlit using Blade-RF devices

Notifications You must be signed in to change notification settings

Jazoolee/CDP-communication-system

 
 

Repository files navigation

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

  1. Binary Data Stream Transmission
    • Simulation
    • Physically
  • Modulation Scheme : 2-GFSK
  • Evaluation Metric : Bit Error Rate (BER)
  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)

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.

  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)


Alt text

About

Communication system for a point-to-point network developed with GNU Radio & user interface with Streamlit using Blade-RF devices

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • Other 0.3%