Metadata-Version: 2.4
Name: digicommpy
Version: 2.0.1
Summary: Companion code for Digital Modulations using Python
Author: Mathuranathan Viswanathan
License: MIT License
        
        Copyright (c) 2026 Mathuranathan Viswanathan
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/mathuranathanv/digicommpy
Project-URL: Source, https://github.com/mathuranathanv/digicommpy
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.11
Requires-Dist: matplotlib>=3.8
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Dynamic: license-file

# digicommpy

Companion code for *Digital Modulations using Python* by Mathuranathan Viswanathan.

The package holds the routines the chapters run: test signals, passband and baseband modems, error rates, synchronization, equalizers, RF impairments, OFDM, MIMO, and coding. A few chapters also include a short check script that reruns the printed listings.

Released under the MIT License. See [LICENSE](LICENSE).

## Install

Python 3.10 or newer. NumPy, SciPy, and Matplotlib are installed with the package.

```bash
pip install digicommpy==2.0.1
```

That is release 2.0.1. It is the same code as 2.0.0, and it is the release whose project page carries this description. After it installs, `import digicommpy` works from any directory. Do not add the folder with `sys.path`.

From a checkout of this repository, install the local tree with `pip install -e .`.

## Chapters

Each folder under `digicommpy/` is one part of the book.

| Folder | Chapter |
|---|---|
| `signals` | 1. Essentials of Signal Processing |
| `passband` | 2. Passband Modulators and Demodulators |
| `baseband` | 3. Complex Baseband Modems |
| `performance` | 4. Uncoded Performance |
| `sync` | 5. Synchronization Essentials |
| `equalize` | 6. Equalization |
| `impair` | 7. RF Impairments |
| `ofdm` | 8. OFDM |
| `mimo` | 9. MIMO, an Introduction |
| `coding` | 10. From Uncoded Error Rates to Coded Ones |

`chapter1`, `chapter2`, `chapter4`, `chapter5`, and `chapter6` are check scripts for those chapters. Chapters 3, 7, 8, 9, and 10 have no separate check script. The functions those chapters call live in the folders in the table.

Tested with NumPy 1.24 or newer, SciPy 1.11 or newer, and Matplotlib 3.8 or newer.

## Checks

From a checkout:

```bash
pip install -e ".[dev]"
pytest
```

That command reruns the numerical checks for every chapter. Release 2.0.1 passed them.
