Changelog#

For the complete changelog with detailed version history, see the CHANGELOG.md file in the repository.

Version 0.8.0 (Latest)#

Release Date: 2026-05-18

SAR + Spectrum Robustness Release - behavior-model API cleanup, stronger FFT side-bin handling, and MATLAB data-generation parity updates.

Added#

  • ADC behavioral models submodule:

    • sar_convert / sar_reconstruct / sar_ideal_weights / sar_apply_mismatch

    • Explicit CDAC weights, quant_range=(v_min, v_max), sampling noise, comparator noise, and cap mismatch support

    • Unit coverage for ideal SAR ENoB, quant-range scaling, sampling noise, comparator noise, and cap mismatch

  • Spectrum side-bin regression coverage:

    • Added near-Nyquist SAR FFT-length example

    • Added tests for finite axis handling and side-bin defaults

  • MATLAB data generation scripts for sinewave non-idealities, SAR dout, pipeline dout, jitter sweeps, and batch generation

Changed#

  • Spectrum helpers now use safer automatic side-bin defaults and more robust noise-floor display handling near edge cases

  • matlab/src/plotspec.m now handles Nyquist-bin cases more robustly

Version 0.4.0#

Release Date: 2025-12-18

Documentation Release - Complete Sphinx documentation overhaul with algorithm guides.

Added#

  • Complete Documentation Overhaul:

    • 15 detailed algorithm documentation pages with Python API

    • Updated installation guide emphasizing adctoolbox-get-examples

    • Enhanced quickstart guide with learning path

    • All API reference docs updated to Python snake_case naming

Changed#

  • Documentation Structure:

    • Installation guide shortened, git clone moved to bottom

    • Quickstart restructured to start with basic examples (exp_b01, exp_b02, then exp_s01)

    • Used actual code from examples instead of synthetic snippets

    • Emphasized "Learning with Examples" throughout documentation

Removed#

  • Deleted 13 obsolete MATLAB-named algorithm documentation files

  • Removed obsolete src/__init__.py file

Fixed#

  • Version number synchronization across all files

  • Dynamic versioning in pyproject.toml

  • Documentation links and references updated to v0.4.0

Version 0.3.0#

Release Date: 2025-12-18

Major Refactoring Release - Complete Python architecture modernization with 45 examples.

Breaking Changes#

  • API Naming: All functions converted from MATLAB camelCase to Python snake_case

    • sineFitfit_sine_4param

    • INLsineanalyze_inl_from_sine

    • specPlotanalyze_spectrum

    • errPDFanalyze_error_pdf

    • FGCalSinecalibrate_weight_sine

    • And many more...

  • Module Structure: Consolidated and reorganized for better maintainability

    • fundamentals: Sine fitting, frequency utils, unit conversions, FOM metrics

    • spectrum: Single-tone, two-tone, polar analysis

    • aout: Analog error analysis (10 functions)

    • dout: Digital calibration (3 functions)

    • siggen: Signal generator with non-idealities

    • oversampling: NTF analysis

  • Return Values: All functions now return dictionaries instead of tuples for clarity

New Features#

  • 45 Ready-to-Run Examples (up from 21) across 6 categories:

    • 01_basic/ - Fundamentals (2 examples)

    • 02_spectrum/ - FFT-Based Analysis (14 examples)

    • 03_generate_signals/ - Non-Ideality Modeling (6 examples)

    • 04_debug_analog/ - Error Characterization (13 examples)

    • 05_debug_digital/ - Calibration & Redundancy (5 examples)

    • 07_conversions/ - Conversions (5 examples)

  • Enhanced Error Analysis:

    • analyze_error_by_phase: AM/PM decomposition

    • analyze_error_spectrum: Error frequency analysis

    • analyze_decomposition_polar: Polar harmonic visualization

    • fit_static_nonlin: Extract k2/k3 coefficients

  • Expanded Fundamentals Module:

    • Comprehensive unit conversions (dB, power, voltage, frequency, NSD)

    • FOM calculations (Walden, Schreier)

    • Noise/jitter limit calculations

    • Data validation utilities

  • CLI Improvements:

    • adctoolbox-get-examples: One-command example deployment

    • Organized output directory structure

Documentation#

  • Complete Documentation Overhaul:

    • All algorithm docs updated to Python API

    • 15 detailed algorithm documentation pages

    • Removed 13 obsolete MATLAB-named docs

    • Updated installation guide with emphasis on examples

    • Enhanced quickstart guide with learning path

  • New Algorithm Documentation:

    • fit_sine_4param: IEEE Std 1057/1241 sine fitting

    • analyze_inl_from_sine: INL/DNL from histogram method

    • analyze_spectrum: Comprehensive FFT analysis

    • analyze_error_by_phase: AM/PM error decomposition

    • fit_static_nonlin: Nonlinearity coefficient extraction

    • And 10 more detailed guides

Improvements#

  • Better API Consistency: All analyze functions follow pattern: analyze_*(..., show_plot=True)

  • Clearer Returns: Dictionary returns with self-documenting keys

  • Enhanced Plotting: Optional plotting with show_plot parameter, custom axes support

  • Validation: Input validation with clear error messages

  • Type Hints: Added to core functions for better IDE support

Bug Fixes#

  • Fixed frequency estimation edge cases in fit_sine_4param

  • Corrected INL/DNL clipping behavior in analyze_inl_from_sine

  • Improved numerical stability in weight calibration

Version 0.2.4#

Legacy release with MATLAB-style naming conventions.

Features#

  • 21 ready-to-run examples

  • Analog output analysis (9 diagnostic tools)

  • Digital output analysis (6 tools)

  • Dual MATLAB and Python implementations

  • Full documentation

Previous Versions#

For historical version information, please refer to the CHANGELOG.md file.