In this repository you can find various implementations of linearisation methods (LM) that are being investigated with the aim of improving the accuracy of digital-to-analogue converters (DACs). The methods are first and foremost evaluated for the application to a custom integrated circuit (IC), attempting to co-optimise the performance of the linearsiation method and the IC design simultaneuously. More about this project can be found on the project group's website: https://pinacl.ux.uis.no/.
The latest results have been published in the paper titled "Improving the Accuracy of Digital-to-Analogue Converters (DACs). The paper was accepted for publication as an open access publication in Measurement: Sensors. The paper was presented at the Technical Committee, 4 of IMEKO (IMEKO TC4 - Measurement of Electrical Quantities) at The XXIV IMEKO World Congress 2024, organised by the PTB, the Physikalisch-Technische Bundesanstalt, held in Hamburg, Germany, on 26 - 29 August 2024. For details regarding the modelling of the DACs and implementation of the linearisation methods (LM), please refer to the paper.
This repository contains the implementation of 7 linearisation methods (LM) which are as follows:
- PHYSCAL - Physical level Calibration
- NSDCAL - Noise shaping with Digital Calibration
- PHFD - Periodic High-Frequency Dithering
- SHPD - Stochastic High-Pass Dithering
- DEM - Dynamic Element Matching
- MHOQ - Moving Horizon Optimal Quantiser, or Model Predictive Control (MPC)
- ILC - Iterative Learning Control
A summary of the latest results can be found in this repository at results/results.md.
The code in this repository is dependent on the libraries listed below:
numpy
scipy
matplotlib
statistics
itertools
math
Optimization solver
gurobi
To run simulations, open run_me.py
and:
- Choose quantiser configuration
- Choose linearisation methods