Digital linear modems: M-PSK and M-QAM.
The main idea is to develop a Python module that allows replacing related to digital linear modulations MatLab/Octave functions and objects. This project is inspired by CommPy open-source project.
See: Basics of linear digital modulations (slides).
Released version on PyPi:
$ pip install ModulationPy==0.1.4To build by sources, clone from github and install as follows::
$ git clone https://github.com/kirlf/ModulationPy.git
$ cd ModulationPy
$ python3 setup.py install- M-PSK: Phase Shift Keying
- M-QAM: Quadratured Amplitude Modulation
where M is the modulation order.
- To show signal constellation use
plot_const()method:
from ModulationPy import PSKModem, QAMModem
import numpy as np
PSKModem(4, np.pi/4, gray_map=True, bin_input=True, soft_decision = False, bin_output = True).plot_const()
QAMModem(16, gray_map=True, bin_input=False, soft_decision = False, bin_output = False).plot_const()- To modulate and demodulate use
modulate()anddemodulate()methods.
[EXAMPLE in progress]