Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2...
Transcript of Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2...
1
IRIS / workshop 2005
Digitizers and dynamic range
Reinoud SleemanORFEUS Data Centersleeman @ knmi.nl
IRIS / ORFEUS WorkshopUnderstanding and Managing
Information from Seismological Networks
28 Feb – 4 Mar 2005, Palmanova, Italy
2
IRIS / workshop 2005
3
IRIS / workshop 2005
Seismograph system
4
IRIS / workshop 2005
5
IRIS / workshop 2005
Oversampled Delta-Sigma A/D Digitizer(one-bit noise shaping converter)
Comperator: ADC or quantizerFeedback: average of y follows the average of xIntegrator: accumulates the quantization error e over timePulse train: pulse density representation of xOversampling: increase of resolution
6
IRIS / workshop 2005
Noise shaping
xi
siui
eiq(ui)
iii
iii
iii
euuq
usu
uqxs
+=
+=
!=
!!
)(
)(
11 )()( 11 !! !+=iiiieexuq
)2()( 211 !!! +!+=iiiiieeexuq2-nd order:
7
IRIS / workshop 2005
0 (Hz) 32000
PS
D n
ois
e
Assumption: quantization noise is white noise
8
IRIS / workshop 2005
1-bit ADC: quantization error spectrum (oversampling factor 2)
No feedback
First order feedback
demo
9
IRIS / workshop 2005
Oversampling factor: 2
Analog input
Digital “pulse train” output
0
1
10
IRIS / workshop 2005
Oversampling factor: 5
0
1
Analog input
Digital “pulse train” output
11
IRIS / workshop 2005
Very high sampling rate ADC with very poor resolution (1 bit)
• Feedback quantization error reduction
What is the relation with “dynamic range”
and “resolution”
?
12
IRIS / workshop 2005
Clip level
Instrument noise level
Frequency
Ampl
itude
Dynamic range / resolution
Gain ranging:High dynamic range,Low resolution
No gain ranging:High dynamic range,High resolution
Dynamic range is frequency dependent
13
IRIS / workshop 2005
Quantization:
Variance of error:
Dynamic range:(Benett, 1948)
Number of quantization levels:
xxqe != )(
[ ] !!"
"#
$
$#
"=%
"=#=
2/
2/
2222
12
1)()( deedeepxxqerms
!!"
#$$%
&'=
2
2
log10rms
rms
e
sSNR
nA2
2=
!
02.676.112/
2/log10
2
2
!+=""#
$%%&
'
(!= n
ASNR
6 dB per bit
Dynamic range of a digitizer – some theory:
⇒
2/22As
rms=
14
IRIS / workshop 2005
!!"
#$$%
&'=
)(
)(log10)(
min
max
fPSD
fPSDfSNR
!!
"
#
$$
%
&''=
Nyquistf
APSD
1
2log10
2
max
!!
"
#
$$
%
&'
('=
NyquistfPSD
1
12log10
2
min
rel. to 1 V2/Hz
Vpp
: peak-to-peak input inVn: number of bitsF
nyt : Nyquist frequency
!!
"
#
$$
%
&
''((
)
*++,
-'.
!!"
#
$$%
&''=
Nyquist
n
pp
Nyquist
pp
f
V
f
VSNR
12
1
2log10
1
2log10
22
15
IRIS / workshop 2005
16
IRIS / workshop 2005
Improved dynamic range and high resolution at a lower effective sampling rate
Very high sampling rate ADC with very poor resolution (1 bit)
• Feedback quantization error reduction• Oversampling higher resolution• Bitstream averaging + decimation low sample rate
17
IRIS / workshop 2005
DemonstrationJava application
of a delta-sigma modulator
18
IRIS / workshop 2005
How to measure the dynamic range of a datalogger
shorten the input and the record self noise
• ratio of maximum peak amplitude and clip level
• specify frequency band:
(RMS noise) / (RMS full scale sine)
• PSD graph, as function of the frequency
common input signal
• PSD graph (cross spectral analysis)
19
IRIS / workshop 2005
Q4120: Vpp = 40 V ⇒ Vrms = 14.1 V
dt = 0.05 s
0.01 – 8 Hz: RMS noise 0.8 uV (measured)
143.8 dB
rel to 1 V 2 / Hz
at 20 sps
Shortened inputs:
Dynamic range = (RMS noise) / (RMS full scale sine)
20
IRIS / workshop 2005
Q4120: Vpp = 40 V ⇒ Vrms = 14.1 V
dt = 0.05 s
0.01 – 8 Hz: RMS noise 0.8 uV (measured)
143.8 dB
rel to 1 V 2 / Hz
at 20 sps
Shortened inputs:
Dynamic range = (RMS noise) / (RMS full scale sine)
02.676.112/
2/log10
2
2
!+=""#
$%%&
'
(!= n
ASNR 23.7 bits
21
IRIS / workshop 2005
Cross spectral analysisLinear noise-model
h1
h2
h3
x
y1 = x ⊗ h1 + n1
y2 = x ⊗ h2 + n2
y3 = x ⊗ h3 + n3
n1
n2
n3
Assumptions
(1) ∫ x·n1 = ∫ x·n2 = ∫ x·n3 = 0
(2) n1, n2 and n3 are uncorrelated
22
IRIS / workshop 2005
Auto/Cross correlation
y1 = x ⊗ h1 + n1
y2 = x ⊗ h2 + n2
y3 = x ⊗ h3 + n3
Y1 = X · H1 + N1
Y2 = X · H2 + N2
Y3 = X · H3 + N3
⇔
corr (y1,y1) ⇔ Y1 ·Y1* = X ·X* · H1 · H1* + N1 · N1* =
= Pxx · H1 ·H1* + Pn1n1 = = Py1y1 (Auto Power Spectrum)
Y1 ·Y2* = X ·X* · H1 · H2* + N1 · N2* =
= Pxx · H1 ·H2* + Pn1n2 = = Py1y2 (Cross Power Spectrum)
corr (y1,y2) ⇔
Time domain Frequency domain
23
IRIS / workshop 2005
Py1y1 = Y1 ·Y1* = X ·X* · H1 · H1* + N1 · N1*
Py1y2 = Y1 ·Y2* = X ·X* · H1 · H2* + N1 · N2*
Py1y3 = Y1 ·Y3* = X ·X* · H1 · H3* + N1 · N3*
Py2y2 = Y2 ·Y2* = X ·X* · H2 · H2* + N2 · N2*
Py2y3 = Y2 ·Y3* = X ·X* · H2 · H3* + N2 · N3*
Py3y3 = Y3 ·Y3* = X ·X* · H3 · H3* + N3 · N3*
Py2y3 / Py1y3 = H2 / H1
Py2y2 / Py1y2 = H2 / H1 + N2 · N2* / Py1y2 = Py2y3 / Py1y3 + Pn2n2 / Py1y2
Pn2n2 = Py2y2 – [Py1y2/Py1y3] · Py2y3
24
IRIS / workshop 2005
Pn1n1 = Py1y1 – [Py1y3/Py2y3] · Py2y1
Pn2n2 = Py2y2 – [Py1y2/Py1y3] · Py2y3
Pn3n3 = Py3y3 – [Py3y2/Py1y2] · Py3y1
Cross power spectrum of outputs 1 and 3
Power spectrum of 3td
digitizer-noise
25
IRIS / workshop 2005
• 50 % overlapping time sections (of 2048 samples at 20 Hz)
• tapering (Hanning window)
• auto/cross correlation
• Fourier transform
• averaging over the number of time sections
PSD estimation (Welsh, 1978):
26
IRIS / workshop 2005
PSD of self-noise Q4120measured with common STS-2 vertical signal (@ 20 sps)
27
IRIS / workshop 2005
PSD of self-noise Q4120measured with common STS-2 vertical signal (@ 20 sps)
55.124.7bit23.6bitmodel
1)(
fPSDPSDfPSD !+=
28
IRIS / workshop 2005
29
IRIS / workshop 2005
30
IRIS / workshop 2005
PSD in dB 10 · log(m^2/s^4/Hz)
PSD = RMS2/BW@1000 sec: RMS = 212 dB
PSD = 180 dB
From: Wielandt
31
IRIS / workshop 2005
32
IRIS / workshop 2005
33
IRIS / workshop 2005
Datalogger data processing
32000 Hz
34
IRIS / workshop 2005
Q4120 + STS-2 100 Hz
Q4120 + STS-2 40 Hz
KNMI + STS-1 40 Hz
35
IRIS / workshop 2005
Minimum phase, causal
Linear phase, acausal
Zero phase, acausal
constant time shift
36
IRIS / workshop 2005
• FIR coefficients (polynomial coefficients) - Quanterra
• polynomial root finding (Jenkins/Traub, Muller, Newton) -
Octave, Markus Lang, Mathematica
• replace maximum phase roots by minimum phase roots ( c → 1/c* )
• get minimum phase equivalent FIR coefficients - Octave
• apply correction filter - Scherbaum
Removing acausal effects of the zero phase FIR filter
37
IRIS / workshop 2005
!=
"#=M
m
mkmk xay0
IIR filter: relation between coefficients and poles/zeros
)()(0
zXzazY
M
m
m
m!!="
=
#
time domain
z-domain
( )
( )!
!
"
"
=
#
=
#
=
#
=
#
$#$
$#$
=
$
$
==K
k
k
M
m
m
K
k
k
k
M
m
m
m
zdb
zca
zb
za
zX
zYzH
1
1
0
1
1
0
0
0
1
1
)(
)()(
:ma filter coefficients
:mc Roots of polynomial (zeros)
Ts
ez
!=complex variable:
:md Roots of polynomial (poles)
Numerator coefficients
Denominator coefficients
38
IRIS / workshop 2005
Polynomial root finding
39
IRIS / workshop 2005
random noise addition