This is a demonstration of digital-domain ISI-error correction for a multibit CT DS ADC. Here, the ISI-error model is discrete-time, based on .
The idea was inspired by , where the static and dynamic feedback-DAC noise was corrected by digital error correction. In , thermometer encoder was used in DAC and the number of correction coefficients is 3M, where M is the number of DAC unit-elements.
This demonstration shows that using dynamic element matching DAC encoder (DWA) can reduce the number of lookup-table correction coefficient from 3M to 1, which should make the ISI-error mitigation by digital error correction more viable.
The correction and calibration method demonstrated here is further documented in .
You need Delta-Sigma toolbox to run this demonstration.
 L. Risbo, R. Hezar, B. Kelleci, H. Kiper, and M. Fares, “Digital approaches to ISI-mitigation in high-resolution oversampled multi-level D/A converters,” IEEE J. Solid-State Circuits, vol. 46, no. 12. Dec. 2011.
 M. Runge and F. Gerfers “A Digital Compensation Method Canceling Static and Non-Linear Time-Variant Feedback DAC Errors in Sigma-Delta Analog-to-Digital Converters,” in proc IEEE International Symposium on Circuits and Systems (ISCAS) 2017, May 2017.
 Marko Neitola, "Two-Stage Internal DAC Mismatch Mitigation for Continuous-Time Delta-Sigma Converter, " Submitted on Aug 7th 2019 to IEEE Nordic Circuits and Systems Conference 2019.
Marko Neitola (2019). Multibit CT DS ADC with DWA and ISI-Mitigation (https://www.mathworks.com/matlabcentral/fileexchange/67169-multibit-ct-ds-adc-with-dwa-and-isi-mitigation), MATLAB Central File Exchange. Retrieved .
New version submitted Aug 7th, added the missing file.
Thank you Zhu Hao for sharing this problem.
You can try to circumvent the version problem in Simulink preferences -> Model File Preferences -> uncheck "Do not load models created with a newer version of Simulink"
Thanks for your sharing. Could you help to save as a previous simulink version? I don't have matlab 2018.
Thank you for you comments, Tsanming XIA
Missing m-file "vecqu.m" implements a vector quantizer.
You don't need a vector quantizer with DWA DAC, but it helps generating binary usage vectors at each time instant.
These vectors are used to simulate the dynamic mismatch.
I'm not going to resubmit, but you can copy-paste "vecqu.m":
function sv = vecqu(v,sy)
sv = zeros(N,1);
Very useful design example, but it seems like "y = vecqu(v,sy).'" cannot work, So what's the functional 'vecqu ' means, and can you provide code about vecqu to us.
Thanks and Regards!
Added the missing function vecqu.m
Feature update: Added ISI-error calibration models