Professional Documents
Culture Documents
Introduction To Delta-Sigma Adcs: Course Goals
Introduction To Delta-Sigma Adcs: Course Goals
Lecture 1
INTRODUCTION TO
DELTA-SIGMA ADCS
Richard Schreier
richard.schreier@analog.com
Trevor Caldwell
trevor.caldwell@utoronto.ca
Course Goals
ECE1371 1-2
Logistics
• Format:
Meet Mondays 3:00-5:00 PM
except Feb 4 and Feb 18
12 2-hr lectures
plus proj. presentation
• Grading:
40% homework
60% project
• References:
Schreier & Temes, “Understanding ∆Σ …”
Johns & Martin, “Analog IC Design”
Razavi, “Design of Analog CMOS ICs”
Lecture Plan:
ECE1371 1-3
ECE1371 1-4
NLCOTD: Level Translator
VDD1 > VDD2, e.g.
• Constraints: CMOS
1-V and 3-V devices
no static current
ECE1371 1-5
What is ∆Σ?
• ∆Σ is NOT a fraternity
It is more like a way of life…
• Simplified ∆Σ ADC structure:
f
fs ⁄ 2 First alias band is very close
OSR = 3: Wide transition band
f
fs ⁄ 2 Alias far away
ECE1371 1-8
How Does A ∆Σ ADC Work?
• Coarse quantization ⇒ lots of quantization error.
So how can a ∆Σ ADC achieve 22-bit resolution?
• A ∆Σ ADC spectrally separates the quantization
error from the signal through noise-shaping
1
t
t –1
A ∆Σ DAC System
1
t
–1
ECE1371 1-10
Why Do It The ∆Σ Way?
• ADC: Simplified Anti-Alias Filter
Since the input is oversampled, only very high
frequencies alias to the passband. These can often
be removed with a simple RC section.
If a continuous-time loop filter is used, the anti-alias
filter can often be eliminated altogether.
• DAC: Simplified Reconstruction Filter
The nearby images present in Nyquist-rate
reconstruction can be removed digitally.
+ Inherent Linearity
Simple structures can yield very high SNR.
+ Robust Implementation
∆Σ tolerates sizable component errors.
ECE1371 1-11
Highlights
(i.e. What you will learn today)
1 1st- and 2nd-order modulator structures and
theory of operation
2 Inherent linearity of binary modulators
3 Inherent anti-aliasing of continuous-time
modulators
4 Spectrum estimation with FFTs
ECE1371 1-12
Background
(Stuff you already know)
• The SQNR* of an ideal n-bit ADC with a full-scale
sine-wave input is (6.02n + 1.76) dB
“6 dB = 1 bit”
• The PSD at the output of a linear system is the
product of the input’s PSD and the squared
magnitude of the system’s frequency response
5 MHz
ECE1371 1-14
Simple (-Minded) Solution
• Only connect the MSBs; leave the LSBs hanging
16 MSBs 8
DAC
@50 kHz LSBs
8
5 MHz (or 50 kHz)
20 us
Time
ECE1371 1-15
Spectral Implications
Frequency
25 kHz
Quantization Noise
@ 8-bit level
⇒ SQNR = 50 dB
ECE1371 1-16
Better Solution
• Exploit oversampling: Clock fast and add dither
16 8
DAC
@50 kHz 8
8 @ 5 MHz
dither spanning 5 MHz
one 8-bit LSB
DAC Output
16-b Input Data
Time
ECE1371 1-17
Spectral Implications
• Quantization noise is now spread over a broad
frequency range
Oversampling reduces quantization noise density
2.5 MHz
OSR = ---------------------- = 100 → 20 dB
25 kHz
Frequency
25 kHz 2.5 MHz
In-band quantization noise power
= 1% of total quantization noise power
⇒ SQNR = 70 dB
ECE1371 1-18
Even More Clever Method
• Add LSBs back into the input data
16 8
DAC
@50 kHz @ 5 MHz 8
z–1
5 MHz
DAC Output
16-b Input Data
Time
ECE1371 1-19
Mathematical Model
• Assume the DAC is ideal, model truncation as
the addition of error:
E = –LSBs
U V = U + (1–z–1)E
z-1 –E
Shaped
Quantization Noise
Frequency
25 kHz 2.5 MHz
In-band quantization noise power
is very small, 55 dB below total power
⇒ SQNR = 105 dB!
ECE1371 1-21
Y
U Q V
z-1 E
z-1
Y V
V(z) = Y(z) + E(z)
Y(z) = ( U(z) – z-1V(z) ) / (1–z-1)
⇒(1–z-1) V(z) = U(z) – z-1V(z) + (1–z-1)E(z)
1
≅ ω 2 for ω « 1
0
0 0.1 0.2 0.3 0.4 0.5
Normalized Frequency (f /fs)
• The total noise power increases, but the noise
power at low frequencies is reduced
ECE1371 1-24
In-band Noise Power
• Assume that e is white with power σ e2
i.e. S ee (ω) = σ e2 ⁄ π
• The in-band noise power is
ωB ωB
σ e2
N 02 =
∫0
H (e jω) 2 S ee (ω)dω ≅ ------
π ∫
0
ω 2 dω
π π 2 σ e2
• Since OSR ≡ ------- , N 0 = ------------- ( OSR ) –3
2
ωB 3
• For MOD1, an octave increase in OSR increases
SQNR by 9 dB
1.5-bit/octave SQNR-OSR trade-off.
ECE1371 1-25
A Simulation of MOD1
0
Full-scale test tone
–20
SQNR = 55 dB @ OSR = 128
dBFS/NBW
–40
Shaped “Noise”
–60
–80 20 dB/decade
NBW = 5.7x10–6
–100
10–3 10–2 10–1
Normalized Frequency
ECE1371 1-26
CT Implementation of MOD1
• Ri/Rf sets the full-scale; C is arbitrary
Also observe that an input at fs is rejected by the
integrator— inherent anti-aliasing
Integrator Latched
Comparator
Rf C
Ri
u y D Q v
DFF
clock CK QB
ECE1371 1-27
MOD1-CT Waveforms
u=0 u = 0.06
1 1
v v
–1 –1
y0 y0
0 5 10 15 20 0 5 10 15 20
Time Time
ECE1371 1-29
z-1 z-1
z-1
E
U 1 1
Q V
z−1 z−1
-1 -2 NTF (z ) = ( 1 – z –1 ) 2
STF (z ) = z –2
ECE1371 1-31
NTF Comparison
0
NTF(e j2πf ) (dB)
−20
MOD1
−40
MOD2
−60
MOD2 has twice as much
−80 attenuation at all frequencies
−100
10–3 10–2 10–1
Normalized Frequency
ECE1371 1-32
In-band Noise Power
• For MOD2, H (e jω) 2 ≈ ω 4
∫
ωB
• As before, N 02 = H (e jω) 2 S ee(ω)dω and
0
S ee(ω) = σ e2 ⁄ π
π 4 σ e2
• So now N 02 = ------------- ( OSR ) –5
5
With binary quantization to ±1,
∆ = 2 and thus σ e2 = ∆ 2 ⁄ 12 = 1 ⁄ 3 .
Simulation Example
Input at 75% of FullScale
1
Time Domain
–1
0 50 100 150 200
–0
Frequency Domain
Simulated Noise Density
–20
–40
–60 Predicted Noise Density
–80 Agreement is fair
1024-point FFT
–100
0 0.25 0.5
ECE1371 1-34
Simulated MOD2 PSD
Input at 50% of FullScale
0
–20
SQNR = 86 dB
@ OSR = 128
–40
dBFS/NBW
100
SQNR (dB)
80
MOD2
60
Predicted SNR
Simulated SNR
40
MOD1
20
0
–100 –80 –60 –40 –20 0
Input Amplitude (dBFS)
ECE1371 1-36
SQNR vs. OSR
120
100
MOD2
(Theoretical curve assumes
-3 dBFS input)
SQNR (dB)
80
60
MOD1
(Theoretical curve assumes
0 dBFS input)
40
20
Predictions for MOD2 are optimistic.
Behavior of MOD1 is erratic.
0
4 8 16 32 64 128 256 512 1024
ECE1371 1-37
Sine
Wave
MOD1
Slow
Ramp
MOD2
Speech
ECE1371 1-38
MOD1 + MOD2 Summary
• ∆Σ ADCs rely on filtering and feedback to
achieve high SNR despite coarse quantization
They also rely on digital signal processing.
∆Σ ADCs need to be followed by a digital decimation
filter and ∆Σ DACs need to be preceded by a digital
interpolation filter.
• Oversampling eases analog filtering
requirements
Anti-alias filter in and ADC; image filter in a DAC
• Binary quantization yields inherent linearity
• CT loop filter provides inherent anti-aliasing
• MOD2 is better than MOD1
15 dB/octave vs. 9 dB/octave SNR-OSR trade-off.
Quantization noise more white.
Higher-order modulators are even better.
ECE1371 1-39
NLCOTD
1V
1V
3V → 1V: 3V
3V
3V
1V → 3V: 3V
3V 3V
3V 3V
ECE1371 1-40
Homework #1
Create a Matlab function that computes MOD2’s output
sequence given a vector of input samples and exercise your
function in the following ways.
1 Verify that the average of the output equals the input for
DC inputs in [–1,1].
2 Produce a spectral plot like that on Slide 35.
3 a) Construct a SQNR vs. input amplitude curve for
OSR = 128 for amplitudes from –100 to 0 dBFS.
b) Determine approximately how much the interstage
gain and feedback coefficients need to shift in order
to have a significant (~3-dB) impact.
4 Compare the in-band quantization noise of your system
with a half-scale sine-wave input against the relation
given on Slide 33 for OSR in [23,210].
ECE1371 1-41
MOD2 Expanded
E
U z 1 V
Q
z−1 z−1
Difference Equations:
v ( n ) = Q (x 2(n))
x 1 ( n + 1 ) = x 1(n) – v (n) + u (n)
x 2 ( n + 1 ) = x 2(n) – v (n) + x 1(n + 1)
ECE1371 1-42
Example Matlab Code
function [v,x] = simulateMOD2(u)
x1 = 0;
x2 = 0;
for i = 1:length(u)
v(i) = quantize( x2 );
x1 = x1 + u(i) - v(i);
x2 = x2 + x1 - v(i);
end
return
function v = quantize( y )
if y>=0
v = 1;
else
v = -1;
end
return
ECE1371 1-43
0.5 v
(v–u) x 1000
0
–0.5
–1
–1 –0.5 0 0.5 1
u
ECE1371 1-44
Example Spectrum
Nfft = 2^10;
ftest = 2;
t = 0:Nfft-1;
u = 0.5*sin(2*pi*ftest/Nfft*t); % Has ftest cycles in Nfft points
v = simulateMOD2(u);
U = fft(u);
V = fft(v);
f = linspace(0,1,Nfft+1); f=f(1:Nfft);
semilogx(f,dbv(U),'m', f,dbv(V),'b');
figureMagic([1e-4 0.5],[],[],[-80 80],10,2);
80
60 Peak at +50dB?
dB (?)
40
20
0
–20
–40
–60
–80 –4 –3 –2 –1 Normalized
10 10 10 10 Frequency
ECE1371 1-45
h N – 1(n) y N – 1(N ) = X ( N – 1 )
How To Do Smoothing
1 Average multiple FFTs
Implemented by MATLAB’s psd() function
2 Take one big FFT and “filter” the spectrum
Implemented by the ∆Σ Toolbox’s logsmooth()
function
• logsmooth() averages an exponentially-
increasing number of bins in order to reduce the
density of points in the high-frequency regime
and make a nice log-frequency plot
ECE1371 1-48
Smoothed Spectrum
0
–20
–40
–60
dBFS
–80
d e
eca
–100
/d
d B
–120
40
–140
–160 –4 –3 –2 –1
10 10 10 10
Normalized Frequency
ECE1371 1-49
• Assume e is white
1-sided PSD: S ee(f ) 0.5
σ e2 = ∫0 S ee(f ) df
f ⇒ S ee(f ) = 2σ e2
0 0.5
• Multiply S ee(f ) by NTF (e j 2πf ) 2 to get the PSD of
the shaped error
ECE1371 1-50
Simulation vs. Theory
20
Simulated Spectrum
0
Theoretical Q. Noise?
–20
–40
dBFS
–60
–80
–100
“Slight”
–120 Discrepancy
–140 (~40 dB)
–160 –4 –3 –2 –1
10 10 10 10
Normalized Frequency
ECE1371 1-51
–10
N = 26
–20
N = 28
Ŝ x ′(f)
–3 dB/
N = 210
octave
–30
N = 212
–40
0 0.25 0.5
Normalized Frequency, f
ECE1371 1-53
Observations
• The power of the sine wave is given by the
height of its spectral peak
• The power of the noise is spread over all bins
The greater the number of bins, the less power there
is in any one bin.
• Doubling N reduces the power per bin by a factor
of 2 (i.e. 3 dB)
But the total integrated noise power does not
change.
ECE1371 1-54
So How Do We Handle Noise?
• Recall that an FFT is like a filter bank
• The longer the FFT, the narrower the bandwidth
of each filter and thus the lower the power at
each output
• We need to know the noise bandwidth (NBW) of
the filters in order to convert the power in each
bin (filter output) to a power density
• For a filter with frequency response H (f ) ,
∫
NBW
H (f ) 2 df
H (f )
NBW = ---------------------------
- f
H (f 0) 2 f0
ECE1371 1-55
∫ H (f ) 2 = ∑ h(n) 2 = N [Parseval]
∫
H (f ) 2 df
∴NBW = ---------------------------
- =
N
------
- =
1
----
H (f 0) 2 N2 N
ECE1371 1-56
Better Spectral Plot
20
Simulated Spectrum
0
Theoretical Q. Noise
–20
dBFS/NBW
–40
–60
–80
4
–100
passband for
--- NTF (f ) 2 ⋅ NBW
OSR = 128
3
–120
Normalized Frequency
ECE1371 1-57
SQNR Calculation
• S = power in the signal bin
• QN = sum of the powers in the non-signal in-
band noise bins
⇒ Using MATLAB to perform these calculations for
the preceding simulation yields SQNR = 84.2 dB
at OSR = 128
‡. dbp(x ) = 10log10(x ).
ECE1371 1-58
SQNR vs. Amplitude
100
15A 2 ( OSR ) 5
-----------------------------------
-
SQNR (dB) 80 2π 4
60
40
20
Simulation
0
Theory
–20
–100 –80 –60 –40 –20 0
Signal Amplitude (dBFS)
ECE1371 1-59
a1 a2
100
SQNR (dB)
80
60
40 Theory
Simulation
20 3
2 24 25 26 27 28 29 210
OSR
ECE1371 1-61
Windowing
• ∆Σ data is usually not periodic
Just because the input repeats does not mean that
the output does too!
• A finite-length data record = an infinite record
multiplied by a rectangular window:
w (n) = 1 , 0 ≤ n < N
Windowing is unavoidable.
• “Multiplication in time is convolution in
frequency”
Frequency response of a 32-point rectangular window:
0
–10
–20
–30
–40
dB
–50
–60 Slow roll-off ⇒ out-of-band Q. noise may appear in-band
–70
–80
–90
–100
0 0.125 0.25 0.375 0.5
ECE1371 1-62
Example Spectral Disaster
Rectangular window, N = 256
40
0
dB
–20
Actual ∆Σ spectrum
–40
W (f ) ⁄ w 2
Windowed spectrum
–60
0 0.25 0.5
Normalized Frequency, f
ECE1371 1-63
–30
–40
W (0 )
W (f )
–50
–60 Hann
–70
–80
Hann2
–90
–100
0 0.125 0.25 0.375 0.5
Normalized Frequency, f
ECE1371 1-64
Window Properties
Window Rectangular Hann† Hann2
w (n ) , 2πn 2
1 – cos -----------
2πn 1 – cos -----------
n = 0, 1, …, N – 1 1 N -------------------------------
N
-
-------------------------------- 2
( w (n) = 0 otherwise) 2
Number of non-zero
1 3 5
FFT bins
w 2
2 = ∑ w (n) 2 N 3N/8 35N/128
W (0) = ∑ w (n) N N/2 3N/8
w 22
NBW = ---------------2- 1/N 1.5/N 35/18N
W (0)
†. MATLAB’s “hann” function causes spectral leakage of tones located
in FFT bins unless you add the optional argument “periodic.”
ECE1371 1-65
Window Length, N
• Need to have enough in-band noise bins to
1 Make the number of signal bins a small fraction
of the total number of in-band bins
<20% signal bins ⇒ >15 in-band bins ⇒ > 30 ⋅ OS
2 Make the SNR repeatable
N = 30 ⋅ OSR yields std. dev. ~1.4 dB.
N = 64 ⋅ OSR yields std. dev. ~1.0 dB.
N = 256 ⋅ OSR yields std. dev. ~0.5 dB.
• N = 64 ⋅ OSR is recommended
ECE1371 1-66
Good FFT Practice
[Appendix A of Schreier & Temes]
• Use coherent sampling
Need an integer number of cycles in the record.
• Use windowing
A Hann window works well.
• Use enough points
N = 64 ⋅ OSR
• Scale the spectrum
A full-scale sine wave should yield a 0-dBFS peak.
• State the noise bandwidth
For a Hann window, NBW = 1.5 ⁄ N .
• Smooth the spectrum if you want a pretty plot
ECE1371 1-67
ECE1371 1-68