A C++ project that simulates and visualizes digital line coding schemes commonly used in physical layer communication.
It supports encoding binary data using Unipolar NRZ, Polar NRZ-L, Bipolar AMI, and Manchester encoding techniques, and generates waveform data for visualization via Gnuplot.
- Encode user input binary strings using:
- Unipolar NRZ
- Polar NRZ-L
- Bipolar AMI
- Manchester Encoding
- Generates data files (
.dat) for waveform plotting - Prints Gnuplot script to visualize encoded waveforms
- Demonstrates concepts of inheritance, polymorphism, and abstract classes in C++
Gnuplot-generated waveform for 10101 using Manchester encoding:
- C++
- Gnuplot (for waveform plotting)
- Command-line interface
-
Compile the code:
g++ LineCodingVisualizer.cpp -o linecoder
-
Run the program: ./linecoder
-
Follow prompts to enter binary data and choose the encoding scheme.
-
Copy the printed Gnuplot script into a .gnu file (e.g., plot.gnu) or paste into terminal if Gnuplot is installed.
-
Generate waveform image: gnuplot plot.gnu
signal.dat → voltage levels over time line_coding_waveform.png → final waveform image Gnuplot script for visualization
This project is © 2025 Anushka Gupta.
