Back to Projects

Peer-to-Peer SDR Communication System

Completed
Completed: 2024
Software Defined Radio
GNU Radio & RTL-SDR

Project Overview

Developed a peer-to-peer Software Defined Radio (SDR) communication system using GNU Radio and RTL-SDR hardware. This project demonstrates wireless data transmission between two computers using software-defined radio technology, implementing the complete signal processing chain from modulation to demodulation in software.

The system showcases the power and flexibility of SDR technology, where traditional hardware radio components are replaced by software implementations, enabling rapid prototyping and experimentation with different communication protocols and modulation schemes.

Project Implementation

The complete system setup showing GNU Radio flowgraph and the project team during demonstration:

GNU Radio System Setup

GNU Radio Flowgraph
Complete signal processing chain implementation showing modulation, transmission, reception, and demodulation blocks.

Project Team

Project Team
Team members showcasing the P2P SDR communication system during project demonstration.

Key Features

Bidirectional Communication

Full-duplex peer-to-peer data transmission between two SDR devices

Digital Modulation

Implementation of various modulation schemes (BPSK, QPSK, FSK)

GNU Radio Framework

Visual signal processing using GNU Radio Companion flowgraphs

Real-Time Processing

Live signal transmission and reception with minimal latency

System Architecture

Hardware Components

  • RTL-SDR Dongles: Two RTL2832U-based USB SDR receivers for signal transmission and reception
  • Antennas: Dipole or monopole antennas tuned to the operating frequency
  • Host Computers: Two laptops/PCs running GNU Radio software
  • USB Cables: High-quality USB connections for stable data transfer

Software Stack

  • GNU Radio: Open-source SDR framework for signal processing
  • GNU Radio Companion: Visual flowgraph design tool
  • RTL-SDR Drivers: Device drivers for RTL2832U chipset
  • Python: Backend scripting for custom signal processing blocks
  • Operating System: Linux (Ubuntu/Debian recommended for SDR)

Signal Processing Chain

Transmitter Path

  1. Data Source: Text input or file data to be transmitted
  2. Encoding: Convert data to binary format
  3. Modulation: Apply digital modulation (BPSK/QPSK/FSK)
  4. Filtering: Root-raised cosine pulse shaping filter
  5. Up-conversion: Frequency translation to RF carrier
  6. RTL-SDR Sink: Transmit via SDR hardware

Receiver Path

  1. RTL-SDR Source: Receive RF signal via SDR hardware
  2. Down-conversion: Frequency translation to baseband
  3. Filtering: Matched filter for pulse shaping recovery
  4. Timing Recovery: Symbol synchronization
  5. Demodulation: Recover digital data from modulated signal
  6. Decoding: Convert binary to readable data format
  7. Data Sink: Display or save received data

Technical Implementation

Modulation Schemes Implemented

  • BPSK (Binary Phase Shift Keying): Simple 2-state phase modulation for robust communication
  • QPSK (Quadrature Phase Shift Keying): 4-state modulation for higher data rates
  • FSK (Frequency Shift Keying): Frequency modulation for frequency-selective channels

Error Handling & Synchronization

  • Carrier Synchronization: Phase-locked loop (PLL) for carrier recovery
  • Symbol Timing Recovery: Mueller and Muller clock recovery algorithm
  • Frame Synchronization: Preamble detection for packet alignment
  • Error Detection: CRC checksums for data integrity verification

Key Learnings

  • SDR Fundamentals: Deep understanding of software-defined radio architecture and signal flow
  • Digital Communications: Practical implementation of modulation, demodulation, and synchronization
  • GNU Radio Proficiency: Experience with flowgraph design and custom block development
  • Signal Processing: Real-world application of DSP concepts (filtering, FFT, sampling)
  • RF Transmission: Challenges of wireless communication (noise, interference, multipath)
  • Debugging RF Systems: Using spectrum analyzers and waterfall plots for troubleshooting
  • Protocol Design: Implementing packet structure and error handling mechanisms

Technologies Used

GNU Radio RTL-SDR Python Digital Signal Processing BPSK/QPSK/FSK Software Defined Radio Wireless Communication Linux

Applications & Extensions

  • Amateur Radio: Digital modes for ham radio communication
  • IoT Communications: Low-power wireless sensor networks
  • Emergency Communications: Disaster recovery communication systems
  • Research & Education: Teaching platform for wireless communications
  • Protocol Development: Rapid prototyping of new communication standards

Future Enhancements

  • OFDM Implementation: Orthogonal Frequency Division Multiplexing for higher throughput
  • Adaptive Modulation: Dynamic modulation scheme selection based on channel conditions
  • Encryption: AES encryption for secure communications
  • Multi-hop Networking: Mesh network topology for extended range
  • GUI Development: User-friendly graphical interface for non-technical users
  • Mobile Integration: Android SDR app for portable communication