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.ifilteradctoolbox.perfosr/adctoolbox.oversampling.perfosradctoolbox.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.mfor 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-stylelogscaleandsmoothoptions.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_d15throughexp_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_mismatchname.Spectrum plot annotations stay fixed in axes coordinates after subplot and post-plot y-limit changes.
Fixed#
sar_apply_mismatchremains 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_spectrumno 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_mismatchExplicit CDAC weights,
quant_range=(v_min, v_max), sampling noise, comparator noise, and cap mismatch supportUnit 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.mnow 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-examplesEnhanced 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__.pyfile
Fixed#
Version number synchronization across all files
Dynamic versioning in
pyproject.tomlDocumentation 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
sineFit→fit_sine_4paramINLsine→analyze_inl_from_sinespecPlot→analyze_spectrumerrPDF→analyze_error_pdfFGCalSine→calibrate_weight_sineAnd many more...
Module Structure: Consolidated and reorganized for better maintainability
fundamentals: Sine fitting, frequency utils, unit conversions, FOM metricsspectrum: Single-tone, two-tone, polar analysisaout: Analog error analysis (10 functions)dout: Digital calibration (3 functions)siggen: Signal generator with non-idealitiesoversampling: 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 decompositionanalyze_error_spectrum: Error frequency analysisanalyze_decomposition_polar: Polar harmonic visualizationfit_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 deploymentOrganized 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 fittinganalyze_inl_from_sine: INL/DNL from histogram methodanalyze_spectrum: Comprehensive FFT analysisanalyze_error_by_phase: AM/PM error decompositionfit_static_nonlin: Nonlinearity coefficient extractionAnd 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_plotparameter, custom axes supportValidation: 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_4paramCorrected INL/DNL clipping behavior in
analyze_inl_from_sineImproved 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.