This repository provides implementations of various line coding techniques used in communication systems.Line coding is a process of converting digital data to digital signals. This repository is structured into three main categories: 'Bipolar', 'Polar', and 'Unipolar', each containing methods for 'Non-Return-to-Zero (NRZ)' and 'Return-to-Zero (RZ)' coding.
-
-
Bipolar NRZ:
- The signal level alternates between positive and negative values for successive 1s.
- Zero level for 0s.
- More efficient use of bandwidth compared to unipolar line coding.
-
Bipolar RZ:
- Similar to Bipolar NRZ but returns to zero between each bit.
- Provides a clearer timing for synchronization but requires more bandwidth.
-
-
-
Polar NRZ:
- Uses two levels of voltage, positive and negative, to represent binary 1 and 0.
- Does not return to zero between bits, thus more bandwidth efficient.
-
Polar RZ:
- Similar to Polar NRZ but returns to zero between each bit.
- Easier to synchronize but requires more bandwidth.
-
-
-
Unipolar NRZ:
- Uses a single non-zero voltage level to represent binary 1.
- Zero voltage level represents binary 0.
- Simplest form of line coding but can have DC component issues.
-
Unipolar RZ:
- Similar to Unipolar NRZ but returns to zero between each bit.
- Easier to synchronize but requires more bandwidth.
-
The repository is organized into the following directories and files:
-
Bipolar
- Bipolar_RZ.ipynb: Implementation of Bipolar Return-to-Zero (RZ) line coding.
- Bipolar_NRZ.ipynb: Implementation of Bipolar Non-Return-to-Zero (NRZ) line coding.
-
Polar
- Polar_RZ.ipynb: Implementation of Polar Return-to-Zero (RZ) line coding.
- Polar_NRZ.ipynb: Implementation of Polar Non-Return-to-Zero (NRZ) line coding.
-
Unipolar
- UNPolar_RZ.ipynb: Implementation of Unipolar Return-to-Zero (RZ) line coding.
- UNPolar_NRZ.ipynb: Implementation of Unipolar Non-Return-to-Zero (NRZ) line coding.
-
The concepts and explanations of the following article are used:
-
BOOK:
- Computer Network Tanenbaum: This book has been used to teach the concepts of communication systems.
-
You can also refer to the following file to know the performance of each of the implemented methods:
This repository is licensed under the MIT License. See the LICENSE file for more details.