This repository contains Jupyter Notebooks for the Mixed-Signal Converters course at the Faculty of Sciences and Technology, NOVA University of Lisbon (FCT-NOVA).
The course covers the systems theory, design, and practical aspects of Nyquist data-rate Digital-to-Analog (DAC) and Analog-to-Digital Converters (ADC). Content on oversampled converters (sigma-delta modulators, noise shaping) is planned for future additions. The notebooks enable:
- Representing and generating signals in the frequency and time domains
- Modeling random noise (uniform, Gaussian distributions)
- High-level and element-level modeling of DAC and ADC architectures
- Spectral analysis of converter outputs (SNR, SFDR, SNDR, THD, ENOB)
signal-converters-notebooks/
├── practical_classes/
│ ├── utils.py # Shared converter modeling utilities
│ ├── fft.py # FFT spectral analysis engine
│ ├── practical_class_1.ipynb ... practical_class_10.ipynb
│ ├── project1_loopunrolled_pipeline_sar_adc.ipynb
│ └── project2_c2c_differential_sar_adc.ipynb
├── docs/
│ ├── index.md # Documentation landing page
│ ├── imgs/ # Circuit diagrams and figures
│ └── reference/ # API reference pages
├── mkdocs.yml # MkDocs configuration
├── justfile # Task runner recipes
└── pyproject.toml
git clone https://github.com/das-dias/signal-converters-notebooks.git
cd signal-converters-notebooks
uv syncuv run jupyter notebook
# or
uv run jupyter labThe project uses MkDocs with Material theme and mknotebooks to render Jupyter notebooks directly into the documentation site.
just docs-serve # Build and serve docs locally at http://localhost:8000
just docs-build # Build static site into site/
just docs-deploy # Deploy to GitHub Pagesjust format # Ruff-format all notebooks and Python files
just lint # Ruff lint (use `just lint-fix` for auto-fix)
just pylint # Pylint notebooks (converts to .py via nbconvert)
just check # Run all checks together- NumPy — Array processing and numerical computation
- SciPy — FFT and signal processing algorithms
- Matplotlib + SciencePlots — Publication-quality plots
- Seaborn — Statistical visualizations
Feel free to clone this repository and expand the existing notes. If you discover issues or bugs, please open an issue. Changes should be submitted via pull request.
- (creator) Diogo André Dias — das.dias@campus.fct.unl.pt
This project is licensed under the MIT License — see the LICENSE file for details.

