Changelog#

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

Version 0.9.0 (Latest)#

Release Date: 2026-06-11

Oversampling Parity Release - adds MATLAB-compatible oversampling entry points, noise-shaping examples, and a MATLAB noiseshape helper.

Added#

  • Python MATLAB-compatible oversampling APIs:

    • adctoolbox.ifilter / adctoolbox.oversampling.ifilter

    • adctoolbox.perfosr / adctoolbox.oversampling.perfosr

    • adctoolbox.ntfperf / adctoolbox.oversampling.ntfperf

  • New 10_oversampling/ Python example group for noise-shaped spectra, in-band extraction, NTF theory, and performance-vs-OSR sweeps.

  • MATLAB matlab/src/noiseshape.m for lightweight noise-shaped quantization signal generation, with a MATLAB smoke test.

Changed#

  • ADC_Signal_Generator.apply_noise_shaping() accepts custom NTF coefficients.

  • sweep_performance_vs_osr() supports MATLAB-style logscale and smooth options.

  • extract_freq_components() validates real-valued inputs and normalized passbands in [0, 0.5].

  • CI runs oversampling unit tests and the 10_oversampling/ example scripts.

Version 0.8.3#

Release Date: 2026-05-26

Example Output Cleanup Release - keeps SAR calibration examples focused on figures and avoids writing CSV side artifacts.

Changed#

  • SAR digital-debug examples now save PNG figures only; intermediate Monte Carlo and sweep statistics remain in memory for plotting instead of being written to CSV files.

  • Example console messages no longer advertise CSV side outputs.

Version 0.8.2#

Release Date: 2026-05-25

SAR Calibration Examples Release - adds focused SAR mismatch and foreground-calibration examples, and refines SAR mismatch modeling.

Added#

  • New SAR digital-debug examples: exp_d15 through exp_d18.

  • sar_apply_cap_mismatch, a Pelgrom/unit-cap-scaled SAR CDAC mismatch helper with optional explicit capacitor unit counts.

Changed#

  • SAR examples and bundled skill docs now use the explicit sar_apply_cap_mismatch name.

  • Spectrum plot annotations stay fixed in axes coordinates after subplot and post-plot y-limit changes.

Fixed#

  • sar_apply_mismatch remains available with its legacy per-weight gaussian perturbation semantics for backward compatibility.

Version 0.8.1#

Release Date: 2026-05-24

Spectrum Plot Calibration Patch - aligns Python windowed spectrum bin heights with MATLAB plotspec.m.

Fixed#

  • Python spectrum plotting now uses MATLAB-style RMS window power scaling, so coherent Hann full-scale tones report the center bin below 0 dBFS while the full main-lobe sum remains 0 dBFS.

  • compute_spectrum no longer applies an extra ENBW division to integrated signal power after window RMS scaling.

  • Virtuoso-style spectrum plots use the same raw dBFS noise-line convention as the standard plotter.

Version 0.8.0#

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.