Skip to content

eielsen/DAC-Linearisation

Repository files navigation

Comparison of various linearisation techniques for Digital-to-Analogue Converters

  1. Introduction
  2. Linearisation Methods
  3. Results
  4. Dependencies
  5. Simulation

Introduction

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.

Linearisation methods

This repository contains the implementation of 7 linearisation methods (LM) which are as follows:

  1. PHYSCAL - Physical level Calibration
  2. NSDCAL - Noise shaping with Digital Calibration
  3. PHFD - Periodic High-Frequency Dithering
  4. SHPD - Stochastic High-Pass Dithering
  5. DEM - Dynamic Element Matching
  6. MHOQ - Moving Horizon Optimal Quantiser, or Model Predictive Control (MPC)
  7. ILC - Iterative Learning Control

Results

A summary of the latest results can be found in this repository at results/results.md.

Dependencies

The code in this repository is dependent on the libraries listed below:

numpy
scipy
matplotlib
statistics
itertools
math    

Optimization solver

gurobi

Simulation

To run simulations, open run_me.py and:

  1. Choose quantiser configuration
  2. Choose linearisation methods

About

Digital-to-analogue converter linearisation methods for simulation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •