This project involves implementing a Line Coding Encoder and Scrambler with a digital data generator. The assignment includes the generation of a random data sequence, encoding using various line coding schemes (NRZ-L, NRZ-I, Manchester, Differential Manchester, AMI), and optional scrambling using B8ZS or HDB3. The code also identifies the longest palindromic sequence in the generated data.
This is a Line Encoder GUI implemented using PySimpleGUI, Matplotlib, and NumPy. It provides an interface for encoding and decoding various line encoding schemes.
- Initialize random input data.
- Enter custom input data.
- Encode and decode data using various line encoding schemes.
- Display the encoded and decoded data.
- Plot graphs for input, encoded, and decoded data.
- Polar NRZ-L
- Polar NRZ-I
- Manchester
- Polar RZ
- AMI
- Scrambling AMI B8ZS (Bipolar with 8 zero substitution)
- Differential Manchester
- Scrambling AMI HBD3 (High-Density Bipolar 3 Zeros)
- PCM (Pulse Code Modulation)
- Delta Modulation
- Launch the GUI.
- Initialize random input or enter custom input.
- Encode the data using a selected encoding scheme.
- Optionally, decode the encoded data.
- Visualize the input, encoded, and decoded data using the "Show Graph" button.
-
Ensure you have Python installed on your machine.
-
Clone the repository:
git clone https://github.com/tusharv01/Line_Coder.git
-
Navigate to the project directory:
cd Line_Coder
-
Run the main program:
python LineEncoder.py
or using the LineEncoder.ipynb file:
jupyter notebook
Navigate to the .ipynb file and run the cells.
-
Follow the on-screen prompts to input preferences for data generation, encoding, and scrambling.
THANK YOU!