Changelog

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

Version 0.4.0 (Latest)

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.