What are the most important specs of sigma-delta ADC?

Status
Not open for further replies.

sehun1119

Junior Member level 1
Joined
Sep 30, 2004
Messages
17
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
191
arriving at specs for sigma delta adc

Hi, all

I am new to tesing area of sigma-delta modulator based ADC.

To start, I would like to ask any of you what general specificatons or measurements are for sigma-delta ADC.

Up to now, I found them to be SNR, ENOB, THD, SINAD, frequency response, INL and DNL.

I managed to find a way of getting SNR and ENOB information using FFT from output bit stream of sigma-delta, but I have not been able to find a way for the rest.

First, it would be very appreciated if there are some other important specs rather than I said above.

Then, I would like to ask you if you could point out how to measure the other specs.

My last question is about INL and/or DNL. (I am not actually familiar with DNL)
I understand the concept of INL and how to measure INL for the other ADC except the sigma-delta ADC.
However, sigma-delta ADC outputs 1-level bit stream, and I wonder how to measure or calculate INL for that sigma-delta ADC.

Any help or comments would be very appreciated.
 

signal=(n/sum(w))*sinusx(vout(1:n).*w,f,n);

are you using this for adc design or using the adc in a system design.

For ADC design you would also require the
filter responses
ADC clock frequency
ADC gain response
....

For system design all you need is SINAD
 

sinusx.m

we also use FFT from output bit stream of sigma-delta to measure the performance. I don't think there are better method for the measment. The specification you mentioned is adequate. maybe the application requirement should be considered. for example, the clock jitter requirement of ADC .
 

Thank you for quick replies, brmadhukar,renwl.

I am using sigma-delta modulation for ADC design only for now, but I would may modify it for some other system level designs.

One more question regarding SNR and SINAD and/or SNDR.

What is the main difference between SINAD and SNDR?

As a start point, I downloaded SDT toolbox from mathwork.com and simulated it.

This toolbox includes and uses "sinusx" function file to extract the signal, and then it obtains noise by subtracting signal from data stream output of modulator.

sinusx.m is as follows below.
------------------------------------------------------------------------------------------
function outx = sinusx(in,f,n)
%
% Extraction of a sinusoidal signal
%
sinx=sin(2*pi*f*[1:n]);
cosx=cos(2*pi*f*[1:n]);
in=in(1:n);
a1=2*sinx.*in;
a=sum(a1)/n;
b1=2*cosx.*in;
b=sum(b1)/n;
outx=a.*sinx + b.*cosx;

-------------------------------------------------------------------------------------------

Then, in another file, it obtains noise part as follows:
---------------------------------------------------------------------------------------------
signal=(N/sum(w))*sinusx(vout(1:N).*w,f,N); % Extracts sinusoidal signal
noise=vout(1:N)-signal; % Extracts noise
% vout is output from modulator, w=hann window funciton
----------------------------------------------------------------------------------------------

Here are additional questions.

Is noise that I could obtain from above only noise or noise+distortion ?
If it is noise, how could I obtain distortion?
If it is noise+distortion, how could I obtain distortion from noise?

Other than those, I would really thank you if you could tell me how distortion calculation or measurements can be performed.

I am also wondering how "sinusx.m" is working.

Is output of "sinusx.m" the same as the input signal to SDM or the signal that is obtained from output of modulator after digital filter?

I am guessing signal part should be the same as the input signal
if "noise = output - signal", but in the simulation, those two singals are not the same but slightly different, even though it is said that the noise is extracted.
Is it because of the fact that even digital filter cannot construct the origital input signal 100% ?

If you could let me know what the output of "sinusx.m" is and how this function works, it would be very appreciated.

Again, thank you so much for your replies, and I hope I could get any answers.

Appreciate a lot for sharing your valuable knowledge and time.
 

SINAD and SNDR is the same thing. sometimes we will measure THD+N. it's 1/SNDR.
The data from the adc will include noise and distortion. and this can be found out by FFT.
distortion is only relative to the harmonics of the input signal.
 
hi, sehun1119
First , sinux program works fine, you can use it to extract the sinusoid signal from output bitstream of SDM output. You can obtain input signal accord with following two ways:
(1)find the max power point of sequence after FFT, then you can add the continuous 3 point(assume hann window you use) to obtain input signal power.
(2) a short cut of doing this is: If you input signal frequency is (fbin/N)*Fs,
so signal bins will be (fbin+[-1:1]; fbin is a odd number, such as 7,11..etc, N is FFT points.

after doing above, you can obtain the distortion and noise power by subtracting input signal power from total power.
The distortion frequency will be appear at 2*fin+3*fin+....
you can easily find its' power.,

Good luck
 
Thank you all for your replies.

I have other questions if you do not mind, especially for caosl.

Now, I guess the signal that is extracted by using "sinusx.m" is just a sinusoid signal from output bitstream of SDM.

However, the toolbox uses this sinusoid signal to obtain "noise" as follows:

[noise] = [output bitstream of SDM] - [sinusoid signal].

I guess [noise] above is somewhat "noise component" + "distortion component",
but please correct me if I am wrong. If I am correct, I guess I can find harmonic distortions using input signal.

However, I do not understand how it works. Why do we not do this:

noise = [output bitstream of SDM] - [input signal]

where [input signal] is the one using in Simulink which is applied to the SDM with the amplitude of (0.5-pi/OSR) and its specific frequency.

[Output bitstream of SDM] should include [input signal] + [noise], where [noise] here is the sum of noise and distortion components.

When I use the real input siganl to the SDM for getting noise, SNR and ENOB get bad, but if I use the extracted signal from "sinusx.m", it is fine as expected.

Could "caosl" or anybody explain to me about what I do not understand of ?

Thank you so much,
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…