Continue to Site

# How to determine SFDR, SNR, SNDR of ADC with LTSpice

Status
Not open for further replies.

#### kickbeer

##### Full Member level 3

Hello,

The standard SFDR is 48dBc. What does it mean, when SFDR is higher than 48dBc or lower than that value?

Thank you very much

Regards,
Kickbeer

SFDR is defined as the ratio of the RMS value of the carrier frequency to the RMS value of the next largest noise or harmonic distortion component.

### kickbeer

Points: 2
noise sfdr

so, does that mean the higher the SFDR, the better it is?? Because the higher the noise, SFDR will be lower

kickbeer said:
so, does that mean the higher the SFDR, the better it is??

Correct. SFDR is a measure o linearity.

kickbeer said:
Because the higher the noise, SFDR will be lower

I do not know what you mean.

### kickbeer

Points: 2

I'm simulating my ADC with LTSpice. I took this from an article:
"To determine a system’s SFDR, apply a sine wave to your ADC input and use an appropriate sample rate.Then run an FFT and examine the spectral output. You can see the fundamental frequency and “spurs” from harmonics of the test signal and system components. I recommend you make this test at several sine-wave frequencies and sample rates."

Do you know, how many times(minimum) should we apply sine-wave with different frequencies?

ltspice maxim

May you should take at least 20 experiments with different values.
The requirements about the experiments/simulations depend on the test goals.

Also here you have some explanations:
https://en.wikipedia.org/wiki/Spurious-free_dynamic_range

But the term and the source seem to me controversial.

wiki sfdr

Petre Petrov said:
May you should take at least 20 experiments with different values.
The requirements about the experiments/simulations depend on the test goals.

Also here you have some explanations:
https://en.wikipedia.org/wiki/Spurious-free_dynamic_range

But the term and the source seem to me controversial.

I just have designed a 8-bit folding and interpolating ADC. In order to check the static performance, i have put a ramp input signal and found out that there is no missing codes. Now i want to know test the dynamic performance for example the SFDR at simulation level. I really don't have idea how to record all the data and use it in matlab. I don't know if it is easy or not because i am matlab beginner. I think all the article in Maxim website are for fabricated chip. I really need help because i am stuck at this point. Thy very much

rms ltspice

you need to figure out how your simulator can write text data to a file (I have never used LTSpice so I cannot help you here) then you can use matlab to read the text file in and create a data vector that will be processed by an fft function to give you the adc output spectrum.
Once you have the spectrum, you can calculate the SNR, THD, SFDR, and so forth...
The learning curve might be a little steep but knowing the basics is fundamental in circuit design...

### kickbeer

Points: 2
ideal sfdr of a dac

You will do a transient simulation, assume sampling with a 500MHz clock, fsampling is 2ns. For 8-bit performance 256 data points is sufficient for FFT. Do a minimum 256*2ns (512ns) transient simulation. Input sinus frequency should be (127/256)*500M. 256 is FFT points 127 is a prime number. For this case input frequenccy is near Nyquist frequency, you can decrease it. After tran sim use Cadence's dft calculator function. If you are using other tools there should be fft function similar.

### kickbeer

Points: 2
V
Points: 2
sndr from dft

ozgura2 said:
You will do a transient simulation, assume sampling with a 500MHz clock, fsampling is 2ns. For 8-bit performance 256 data points is sufficient for FFT. Do a minimum 256*2ns (512ns) transient simulation. Input sinus frequency should be (127/256)*500M. 256 is FFT points 127 is a prime number. For this case input frequenccy is near Nyquist frequency, you can decrease it. After tran sim use Cadence's dft calculator function. If you are using other tools there should be fft function similar.

Is there no need to connect my ADC with ideal DAC or something else? Can i just use my ADC alone? Look at this **broken link removed**

JoannesPaulus said:
you need to figure out how your simulator can write text data to a file (I have never used LTSpice so I cannot help you here) then you can use matlab to read the text file in and create a data vector that will be processed by an fft function to give you the adc output spectrum.
Once you have the spectrum, you can calculate the SNR, THD, SFDR, and so forth...
The learning curve might be a little steep but knowing the basics is fundamental in circuit design...

Hi Joannes,

Have you ever worked with Matlab before? i have just found a Matlab Code to convert .raw waveform file into compatible matlab data. i have successfully converted the .raw data(output of my ADC) into matlab compatible data. but now, i don't know how to use the data to calculate parameter like SNR, SNDR, and SFDR..I really have no idea at the moment

I use binary weighting of digital output data at Cadence calculator like (BIT<7>*2^7+BIT<6>*2^6...) Of course you can use an ideal DAC also. DFT will sample discrete points of this summed data.

### kickbeer

Points: 2
ltspice for chip design

ozgura2 said:
I use binary weighting of digital output data at Cadence calculator like (BIT<7>*2^7+BIT<6>*2^6...) Of course you can use an ideal DAC also. DFT will sample discrete points of this summed data.

Can you show me the snapshot of your simulation result? And what type of ADc you have designed?

Status
Not open for further replies.