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