CommPy Documentation Index¶
Welcome to CommPy documentation! This guide helps you find what you need.
Quick Navigation¶
For New Users¶
- Start here: Getting Started Guide
- Learn concepts: User Guide
- See examples:
examples/directory in repository - Ask questions: GitHub Discussions
For Developers¶
- API Reference: API.md
- Contributing: CONTRIBUTING.md
- Module structure: Check
src/commpy/directory - Testing:
tests/directory
For Specific Tasks¶
| Task | Document | Section |
|---|---|---|
| Install CommPy | GETTING_STARTED.md | Installation |
| Learn modulation | USER_GUIDE.md | Modulation & Demodulation |
| Simulate channels | USER_GUIDE.md | Channel Models |
| Generate waveforms | USER_GUIDE.md | Waveform Generation |
| Find function details | API.md | Use Ctrl+F to search |
| Measure BER | GETTING_STARTED.md | Tutorial 2 |
| Contribute code | CONTRIBUTING.md | Development Guidelines |
| Error correction (FEC) | GETTING_STARTED.md | Tutorials 7-8 |
| Generic M-QAM/M-PSK + soft demod | GETTING_STARTED.md | Tutorial 9 |
| OFDM | GETTING_STARTED.md | Tutorial 10 |
| Source coding / channel capacity | GETTING_STARTED.md | Tutorial 11 |
| Queuing theory | GETTING_STARTED.md | Tutorial 12 |
| Monte-Carlo BER simulation with CIs | GETTING_STARTED.md | Tutorial 13 |
| Read/write SigMF or raw IQ files | GETTING_STARTED.md | Tutorial 13 |
| Runnable end-to-end scripts | examples/ directory |
one file per feature + capstone |
Documentation Files¶
📖 Main Documentation¶
README.md¶
Purpose: Overview and quick start Contains: - Feature summary - Installation instructions - Quick start examples - Module structure overview - Basic API reference - Example code snippets
When to read: - First time using CommPy - Want overview of capabilities - Looking for installation help
GETTING_STARTED.md¶
Purpose: Beginner-friendly tutorials Contains: - Installation verification - Basic concepts explained - 13 hands-on tutorials - Common patterns - Troubleshooting guide - Quick reference cheat sheet
When to read: - New to digital communications - Want step-by-step examples - Need to troubleshoot issues - Looking for quick reference
Tutorials included: 1. Simple modulation & demodulation 2. Bit error rate (BER) simulation 3. Channel comparison 4. Different modulation schemes 5. IQ waveform generation 6. Reproducible results with RNG 7. Error correction with Hamming codes 8. Convolutional coding + Viterbi decoding 9. Generic M-QAM/M-PSK with soft-decision demodulation 10. OFDM 11. Source coding with Huffman codes 12. Queuing theory 13. Monte-Carlo BER simulation & SDR file I/O
API.md¶
Purpose: Complete API documentation Contains: - All public functions/classes - Parameter descriptions - Return value specs - Code examples - Use cases - Type hints
Organized into sections: - Modulation (BPSK, QPSK, ASK, PSK-8, OOK) - Channels (BSC, BEC, AWGN) - Information Theory (Shannon entropy) - Waveforms (IQWaveform) - Utilities (Prime field, math functions)
When to read: - Looking up specific function - Need parameter details - Want type information - Seeing code examples
USER_GUIDE.md¶
Purpose: Comprehensive conceptual guide Contains: - Theory explanations - Visual constellation diagrams - When to use each scheme - Detailed parameter guidance - Practical applications - Best practices - Real-world examples
Sections: 1. Introduction 2. Modulation & Demodulation (detailed explanations) 3. Channel Models (theory + code) 4. Information Theory 5. Waveform Generation 6. Practical Applications 7. Best Practices
When to read: - Want to understand concepts deeply - Choosing which modulation to use - Need guidance on parameters - Looking for practical examples - Want performance guidance
CONTRIBUTING.md¶
Purpose: Guide for contributors Contains: - Setup instructions - Code style guidelines - Documentation standards - Testing requirements - PR process - Code review guidelines - Documentation examples
When to read: - Want to contribute to CommPy - Fixing a bug - Adding a feature - Writing documentation - Improving the library
Learning Paths¶
Path 1: "I Want to Get Started Quickly"¶
- Read: README.md - Overview (5 min)
- Install CommPy (2 min)
- Read: GETTING_STARTED.md - Quick Start (10 min)
- Run: Tutorial 1 - Basic modulation (10 min)
- Try: Run Tutorial 2 - BER simulation (15 min)
Total: ~40 minutes
Path 2: "I Need to Understand Digital Communications"¶
- Read: USER_GUIDE.md - Introduction (10 min)
- Read: USER_GUIDE.md - Modulation section (30 min)
- Run: GETTING_STARTED.md - Tutorials 1-3 (30 min)
- Read: USER_GUIDE.md - Channel Models section (20 min)
- Run: GETTING_STARTED.md - Tutorial 2 (20 min)
Total: ~2 hours
Path 3: "I Want to Use CommPy for Research"¶
- Read: README.md (5 min)
- Read: USER_GUIDE.md - All sections (2 hours)
- Read: API.md - Reference your specific modules (30 min)
- Create simulation script using patterns from USER_GUIDE.md (1 hour)
- Run and refine simulation (varies)
Total: ~4 hours + simulation time
Path 4: "I Want to Contribute Code"¶
- Read: CONTRIBUTING.md - Full document (30 min)
- Set up development environment (15 min)
- Read: README.md - Module structure (10 min)
- Explore:
/src/commpy/source code (30 min) - Start contributing! (varies)
Total: ~1.5 hours + development time
Document Quick Reference¶
By Topic¶
Modulation: - Overview: README.md - Tutorial: GETTING_STARTED.md Tutorial 1 - Deep dive: USER_GUIDE.md - Modulation section - API: API.md - Modulation classes
Channels: - Overview: README.md - Tutorial: GETTING_STARTED.md Tutorial 3 - Deep dive: USER_GUIDE.md - Channel Models section - API: API.md - Channels class
BER Simulation:
- Tutorial: GETTING_STARTED.md Tutorial 2
- Practical example: USER_GUIDE.md - Application 1
- Reference: API.md - Search for awgn
Waveforms: - Example: GETTING_STARTED.md Tutorial 5 - Deep dive: USER_GUIDE.md - Waveform Generation - API: API.md - IQWaveform class
SDR Interop & Link Simulation: - Tutorial: GETTING_STARTED.md Tutorial 13 - Deep dive: USER_GUIDE.md - SDR Interoperability & Link Simulation - API: API.md - SDR Interoperability / Link-Level Simulation sections
Best Practices: - Quick tips: GETTING_STARTED.md - Common Patterns - Detailed guide: USER_GUIDE.md - Best Practices - Code standards: CONTRIBUTING.md - Code Style
Type Hints & Docstrings: - Examples: CONTRIBUTING.md - Documentation section - Code style: CONTRIBUTING.md - Code Style section
Using the Documentation¶
Finding Information¶
Using GitHub: - Search docs/ folder for keywords - Use repository search feature - Check README.md for quick answers
Using Text Editor: - Open all docs in VS Code - Use Ctrl+Shift+F for full-text search - Open specific section links
Common Searches:
"how to modulate" → GETTING_STARTED.md Tutorial 1
"SNR" → USER_GUIDE.md, API.md
"example" → GETTING_STARTED.md, README.md
"parameters" → API.md
"reproduce" → GETTING_STARTED.md Tutorial 6
Getting Help¶
Documentation Not Clear?¶
- Check GETTING_STARTED.md - Troubleshooting section
- Search API.md for specific function details
- Look at example in README.md
- Open GitHub issue with question
Want to Report a Bug?¶
- Check GETTING_STARTED.md - Troubleshooting
- Search existing GitHub issues
- Create new issue with details from CONTRIBUTING.md - Reporting section
Want to Contribute?¶
Start with CONTRIBUTING.md - Getting Started section
Documentation Maintenance¶
Last Updated: March 2026
Covered CommPy Version: 0.1.2+
Sections Status:
- ✅ Installation - Current
- ✅ Core API - Current
- ✅ Examples - Current
- ✅ Tutorials - Current
- ✅ Advanced topics - Current
Feedback¶
Have suggestions for improving documentation? - Submit issues on GitHub - Create pull requests with improvements - Provide feedback in discussions
Related Resources¶
External Resources¶
- NumPy: https://numpy.org/doc/
- Matplotlib: https://matplotlib.org/
- Digital Communications: [Your recommended textbooks]
Example Projects¶
Examples can be found in the examples/ directory of the repository.