Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2...

39
1 Digitizers and dynamic range Reinoud Sleeman ORFEUS Data Center sleeman @ knmi.nl IRIS / ORFEUS Workshop Understanding and Managing Information from Seismological Networks 28 Feb – 4 Mar 2005, Palmanova, Italy

Transcript of Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2...

Page 1: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 2: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

2

IRIS / workshop 2005

Page 3: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

3

IRIS / workshop 2005

Seismograph system

Page 4: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

4

IRIS / workshop 2005

Page 5: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 6: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

6

IRIS / workshop 2005

Noise shaping

xi

siui

eiq(ui)

iii

iii

iii

euuq

usu

uqxs

+=

+=

!=

!!

)(

)(

11 )()( 11 !! !+=iiiieexuq

)2()( 211 !!! +!+=iiiiieeexuq2-nd order:

Page 7: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

7

IRIS / workshop 2005

0 (Hz) 32000

PS

D n

ois

e

Assumption: quantization noise is white noise

Page 8: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

8

IRIS / workshop 2005

1-bit ADC: quantization error spectrum (oversampling factor 2)

No feedback

First order feedback

demo

Page 9: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

9

IRIS / workshop 2005

Oversampling factor: 2

Analog input

Digital “pulse train” output

0

1

Page 10: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

10

IRIS / workshop 2005

Oversampling factor: 5

0

1

Analog input

Digital “pulse train” output

Page 11: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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”

?

Page 12: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 13: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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=

Page 14: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 15: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

15

IRIS / workshop 2005

Page 16: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 17: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

17

IRIS / workshop 2005

DemonstrationJava application

of a delta-sigma modulator

Page 18: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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)

Page 19: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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)

Page 20: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 21: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 22: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 23: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 24: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 25: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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):

Page 26: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

26

IRIS / workshop 2005

PSD of self-noise Q4120measured with common STS-2 vertical signal (@ 20 sps)

Page 27: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

27

IRIS / workshop 2005

PSD of self-noise Q4120measured with common STS-2 vertical signal (@ 20 sps)

55.124.7bit23.6bitmodel

1)(

fPSDPSDfPSD !+=

Page 28: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

28

IRIS / workshop 2005

Page 29: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

29

IRIS / workshop 2005

Page 30: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 31: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

31

IRIS / workshop 2005

Page 32: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

32

IRIS / workshop 2005

Page 33: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

33

IRIS / workshop 2005

Datalogger data processing

32000 Hz

Page 34: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

34

IRIS / workshop 2005

Q4120 + STS-2 100 Hz

Q4120 + STS-2 40 Hz

KNMI + STS-1 40 Hz

Page 35: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

35

IRIS / workshop 2005

Minimum phase, causal

Linear phase, acausal

Zero phase, acausal

constant time shift

Page 36: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 37: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

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

Page 38: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

38

IRIS / workshop 2005

Polynomial root finding

Page 39: Digitizers and dynamic range - Iris Data Services, Inc. · Py2y3 / Py1y3 = H2 / H1 P y2y2 / P y1y2 = H2 / H1 + N2 · N2 * / P y1y2 = P y2y3 / P y1y3 + P n2n2 / P y1y2 P n2n2 = P y2y2

39

IRIS / workshop 2005

random noise addition