← Back to Projects

Digital Transmission

Python & Signal Processing

Project Overview

I designed this complete digital transmission chain simulator to illustrate the journey of raw data through physical and logical layers. The program is structured into three main phases: Emission, Transmission (Modulation), and Reception.

1. Emission: Conversion of ASCII text to binary, followed by the application of Manchester encoding to ensure frequent transitions, and then NRZI encoding to make the signal polarity-insensitive. The frame is built on the Ethernet model with a preamble, MAC addresses, automatic padding, and CRC-32 fingerprint calculation for integrity.

2. Modulation: The signal is transformed into waves via FSK (Frequency Shift Keying) or ASK (Amplitude Shift Keying), respecting the Shannon-Nyquist theorem.

3. Reception: A robust mathematical approach (dot product) is used to compare the received wave signal against reference models and reconstruct the original message, bit by bit, before verifying the CRC.

Tech Stack

  • Language Python
  • Encoding Manchester & NRZI
  • Modulation FSK & ASK
  • Integrity CRC-32
  • Math NumPy

Key Steps

  • 📡 Ethernet Frame Construction
  • 📡 Noise Simulation
  • 📡 Mathematical Demodulation
  • 📡 Integrity Verification