Sie sind auf Seite 1von 17

Technische Universität Berlin

Fakulät IV
Institut für Energie und Automatisierungstechnik
Fachgebiet Elektronische Mess- und Diagnosetechnik

Praktikum Grundlagen der elektronischen Messtechnik


Betreuer: Daniel
WS 2018/19

Versuchsprotokoll
Versuch 8
Digitale Messkette 2

Alfredo Chavez (385212)


Hedii Jalloulli (367313)
Meriem Jabri(396132)

23. Januar 2019


Inhaltsverzeichnis

1 Einleitung 1

2 Theoretische Aufgaben 1
2.1 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2 Entwurf eines Aliasing-Filters . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.3 DNL eines Analog-Digital-Umsetzers . . . . . . . . . . . . . . . . . . . . . 1
2.4 INL eines Analog-Digital-Umsetzers . . . . . . . . . . . . . . . . . . . . . . 2
2.5 Störspannungsunterdrückung . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.5.1 Vorteil des Dual-Slope-Integrierers . . . . . . . . . . . . . . . . . . . 2
2.5.2 Berechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Praktische Aufgaben 3

4 Praktische Aufgaben 3
4.1 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2 Aliasingfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.3 ADU-Histogramm-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.4 Störspannungsunterdrückung . . . . . . . . . . . . . . . . . . . . . . . . . 8

5 Zusammenfassung 10
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

1 Einleitung

2 Theoretische Aufgaben

2.1 Aliasing

Worum handelt es sich bei Aliasing? Wie kann es vermieden werden?


Ist die Abtastkreisfrequenz nicht hoch genug, werden Spektralanteile des um die Abtastkreis-
frequenz ω0 liegenden Spektrums in den Originalbereich zurückgefaltet (Spiegelfrequenzen).
Durch diese Signalfaltung wird das Originalspektrum verfälscht (Aliasing). Um diese zu ver-
meiden sollten wir die Anti-Aliasing-Filter benutzen , da die Erohung der Abtastrate ist wegen
begrenzten technischen Moglichkeiten nicht moglich

2.2 Entwurf eines Aliasing-Filters

Wie muss ein Aliasing-Filter entworfen werden? Warum spielt dabei auch die
Auflösung (Bitanzahl) des AD-Umsetzers eine Rolle ?
Es muss gelten
f0
A( ) ≥ 20 ∗ log(2N − 1)
2

und
ω0 ≥ 2 ∗ ωm

Da die Auflosung des ADU die Abtastfrequenz beeinflust spielt es eine wichtige Rolle . Es
gilt fur die Filterordnung

∆A 1
m= = N
∆f (2 − 1) ∗ ∆f

2.3 DNL eines Analog-Digital-Umsetzers

Was ist die differentielle Nichtlinearität eines AD-Umsetzers und wie kann sie
messtechnisch bestimmt werden?
Die differenzielle Nichtlinearität ist die Abweichung der Stufenbreite von ihrem idealen Wert

1
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

(1 LSB). Übersteigt die differentielle Nichtlinearität an einer Quantisierungsstufe den Wert


eines LSB, so wird der zugehörige Ausgangswert nicht ausgegeben und als ”missing co-
de”bezeichnet.

Hauf igkeit(Stuf e)
DN L = −1
Hauf igkeit(soll)

2.4 INL eines Analog-Digital-Umsetzers

Was ist die integrale Nichtlinearität eines AD-Umsetzers?


Die integrale Nichtlinearität ist die maximale Abweichung zwischen der Funktion, die durch
die Mitten der Quantisierungsstufen des realen ADU gelegt wird, und der Geraden durch die
ideale Kennlinie.

2.5 Störspannungsunterdrückung

2.5.1 Vorteil des Dual-Slope-Integrierers

Welchen Vorteil hat der Dual-Slope-Integrierer, bei der Verarbeitung eines der
Messgröße Ux überlagertem Störsignals us?

Der Dual-Slope-Wandler ist relativ langsam (typ. 20 ms pro Umwandlung) und wird vor al-
lem in Digitalvoltmetern eingesetzt. Durch das Verfahren heben sich Messfehler, die durch
Bauteiltoleranzen verursacht werden, auf, wodurch der Dual-Slope-Konverter gute Auflösung
und Linearität (16 Bit und mehr) bietet. Trotzdem ist er preisgünstig und außerdem leicht
anzuwenden, da er aufgrund seiner integrierenden Eigenschaften Artefakte bei der Messung
unterdrückt

Wie kann die Integrationszeit Ti für die 1. Phase des Dual-Slope-Integrierers be-
stimmt werden, sodass idealerweise das Störsignal vollständig unterdrückt wird?
1
R Ti
U1 (Ti ) = − RC t0
Ue

2
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

2.5.2 Berechnung

Bestimmen Sie für Fall 1 und Fall 2 aus den Mittelwert des Storsignalsus und die
Störspannungsdämpfung S.

uS
s = −20log( )
u
cS
mit
−cuS
uS = (cos(ωS Ti + φ) − cos(φ))
ωS Ti

Fall 1 ;
u(t) = 0, 3sin(2πfS Ti − φ) + 5V
Der Mittelwert des Storsignals :
uS = 0, 063

Die Storspannungsdampfung :

S = 13,46 dB
Fall 2 :
Die MIttelwert kann man direkt ablesen . Diese ist gleich null . Daraus folgt das die Stor-
spannungsdampfung S unendlich ist.

3 Praktische Aufgaben

4 Praktische Aufgaben

4.1 Aliasing

Die Effekte von Aliasing bei der digitalisierung eines rechteckigen Signales mit einem Grund-
frequenz von 10 kHz, bei verschiedenen Abtastfrequenzen ist in Abb 1 zu sehen.

3
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

Aliasing

Abtastrate = 4000 Hz Abtastrate = 10000 Hz Abtastrate = 12500 Hz


0.8 0.8 0.8
Spannung [V]

Spannung [V]

Spannung [V]
0.6 0.6 0.6
0.4 0.4 0.4
0.2 0.2 0.2
0.0 0.0 0.0
0 250 500 750 1000 1250 1500 1750 2000 0 1000 2000 3000 4000 5000 0 1000 2000 3000 4000 5000 6000
Frequenz [Hz] Frequenz [Hz] Frequenz [Hz]
Abtastrate = 15000 Hz Abtastrate = 17500 Hz Abtastrate = 20000 Hz
1.00
0.8
0.75 0.75
Spannung [V]

Spannung [V]

Spannung [V]
0.6
0.4 0.50 0.50
0.2 0.25 0.25
0.0 0.00 0.00
0 1000 2000 3000 4000 5000 6000 7000 0 2000 4000 6000 8000 0 2000 4000 6000 8000 10000
Frequenz [Hz] Frequenz [Hz] Frequenz [Hz]
Abtastrate = 25000 Hz Abtastrate = 30000 Hz Abtastrate = 35000 Hz
0.8 0.8
1.0
Spannung [V]

Spannung [V]

Spannung [V]
0.6 0.6
0.4 0.4 0.5
0.2 0.2
0.0 0.0 0.0
0 2000 4000 6000 8000 10000 12000 0 2000 4000 6000 8000 100001200014000 0 2500 5000 7500 10000 12500 15000 17500
Frequenz [Hz] Frequenz [Hz] Frequenz [Hz]
Abtastrate = 40000 Hz
0.8
Spannung [V]

0.6
0.4
0.2
0.0
0 2500 5000 7500 1000012500150001750020000
Frequenz [Hz]

Abbildung 1: Aliasing Effekt bei verschiedenen Abtastfrequenzen

Die Aliasing Effekt wäre relativ groß, wegen der Einflüsse des Abtaste theorems.
Die negativen Effekte von Aliasing können mithilfe von einem Low Pass Filter vermieden wer-
den, um den Frequenzspektrum zu reduzieren, und ihn auf die Abtastefrequenz anzupassen.

4.2 Aliasingfilter

Wie man in Abb. 2 sehen kann, helfen die Aliasingsfilter die ungewünschte Frequenzen zu
reduzieren.

4
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

Aliasing

fs = 44000 Hz ohne aliasing fs = 44000 Hz mit aliasing


1.4 0.012
1.2 0.010
1.0 0.008
Spannung [V]

Spannung [V]
0.8
0.006
0.6
0.004
0.4
0.2 0.002

0.0 0.000
0 5000 10000 15000 20000 0 5000 10000 15000 20000
Frequenz [Hz] Frequenz [Hz]

fs = 10000 Hz ohne aliasing fs = 10000 Hz mit aliasing


1.6
0.012
1.4
1.2 0.010
Spannung [V]

1.0

Spannung [V]
0.008
0.8 0.006
0.6
0.004
0.4
0.2 0.002
0.0 0.000
0 1000 2000 3000 4000 5000 0 1000 2000 3000 4000 5000
Frequenz [Hz] Frequenz [Hz]

Abbildung 2: Vergleich vom Spektrum der Signalen mit und ohne Antialiasingfilter

4.3 ADU-Histogramm-Test

Den Histogramm eines Dreiecksignales wurde aufgenommen. Es tratt aber ein großes Problem
auf: Bei der Messung wurde die Messkarte nicht richtig eingestellt, und statt Codes zu
speichern wurden die Spannungswerte direkt gespeichert. Es wurde versucht eine Funktion
zu machen die einem Codewert jedem Wert der Messung zuzuordnet, es klappte aber nicht.
Für die folgenden Histogrammen wurden die sortierten ersten 127 Werte als Referenz benutzt.

5
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

ADU HIstogramm
5000

4000
Absolutehaeufigkeit

3000

2000

1000

0
0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2
Spannungswert

Abbildung 3: Histogramm

6
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

Bar Diagramm von ADU Histogramm


5000

4000
Absolutehaeufigkeit

3000

2000

1000

0
0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2
Spannungswert

Abbildung 4: Bar Histogramm

4.4 Störspannungsunterdrückung

In Abb. 5 und Abb. 5. Kann man das Ergebnis der Störspannungsdämpfung eines Störsignals,
die mithilfe von dem Funktionsgenerator und das Programm LabVIEW generiert wurde. In
Abb. 7 ist den Maximalen Fehler zu sehen.

7
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

Stoerspannungsdampfung
50

40
Stoerungsdampfung [dB]

30

20

10

0
101 102
Frequenz [Hz]

Abbildung 5: Störspannungsdämpfung als Funktion der Störfrequenz fs

8
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

normierte Stoerspannungsdampfung
50

40
Stoerungsdampfung [dB]

30

20

10

0
0.1 1.0 10.0
normierte Frequenz

Abbildung 6: Störspannungsdämpfung als Funktion von fs ∗ Ti

9
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

0.75

0.50
Maximale Fehler [%/100]

0.25

0.00

0.25

0.50

0.75

0 2 4 6 8 10 12
Normierte Frequenz in fs* Ti

Abbildung 7: Maximaler Fehler

Literatur

http://www.vias.org/mikroelektronik/adcd ualslope.html

5 Verwendeter Code
4 import numpy as np
5 import matplotlib . pyplot as plt
6 import mdt
7 import os
8
9 freq = {}

10
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

10 file_names = []
11 for filen in os . listdir ( " . " ) :
12 if filen . endswith ( " . npy " ) :
13 file_names . append ( filen )
14 def sort_name ( elem ) :
15 return int ( elem . split ( ’. ’) [0])
16
17 file_names . sort ( key = sort_name )
18
19 for filen in file_names :
20 freq [ filen . split ( ’. ’) [0]] = np . load ( filen )
21
22 # fig , axes = plt . subplots (3 ,4 , sharex = True )
23 fig = plt . figure ()
24 fig . suptitle ( ’ Aliasing ’)
25 subplts = {}
26 counter = 1
27 for key , val in freq . items () :
28 spec = mdt . spectrum ( val [0] , int ( key ) )
29 subplts [ key ] = fig . add_subplot (4 ,3 , counter )
30 subplts [ key ]. set_title ( ’ Abtastrate = {} Hz ’. format ( key ) )
31 subplts [ key ]. plot ( spec [0] , spec [1])
32 subplts [ key ]. grid ()
33 subplts [ key ]. set_xlabel ( ’ Frequenz [ Hz ] ’)
34 subplts [ key ]. set_ylabel ( ’ Spannung [ V ] ’)
35 counter += 1;
36
37 # f = freq [0]. items ()
38 # spec = mdt . spectrum ( f [0] , f [1])
39 # ax = fig . add_subplot (3 ,4 ,1)
40 # ax . plot ( spec [0] , spec [1])
41 plt . subplots_adjust ( hspace =0.52)
42 plt . show ()

Listing 1: benutzter Code

4 import numpy as np
5 import matplotlib . pyplot as plt
6 import mdt
7 import os
8
9 freq = {}
10 file_names = []

11
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

11 for filen in os . listdir ( " . " ) :


12 if filen . endswith ( " . npy " ) :
13 file_names . append ( filen )
14 def sort_name ( elem ) :
15 return int ( elem . split ( ’. ’) [0])
16
17 # file_names . sort ( key = sort_name )
18
19 for filen in file_names :
20 freq [ filen . split ( ’. ’) [0]] = np . load ( filen )
21
22 # fig , axes = plt . subplots (3 ,4 , sharex = True )
23 fig = plt . figure ()
24 fig . suptitle ( ’ Aliasing ’)
25 subplts = {}
26 counter = 1
27 for key , val in freq . items () :
28 s_rate = int ( key . split ( ’2 ’) [1][:5])
29 mit = key . split ( ’2 ’) [1][5:]
30 spec = mdt . spectrum ( val [0] , int ( key . split ( ’2 ’) [1][:5]) )
31 subplts [ key ] = fig . add_subplot (2 ,2 , counter )
32 subplts [ key ]. set_title ( ’ fs = {} Hz {}
aliasing ’. format ( s_rate , mit ) )
33 subplts [ key ]. plot ( spec [0] , spec [1])
34 subplts [ key ]. grid ()
35 subplts [ key ]. set_xlabel ( ’ Frequenz [ Hz ] ’)
36 subplts [ key ]. set_ylabel ( ’ Spannung [ V ] ’)
37 counter += 1;
38
39 # f = freq [0]. items ()
40 # spec = mdt . spectrum ( f [0] , f [1])
41 # ax = fig . add_subplot (3 ,4 ,1)
42 # ax . plot ( spec [0] , spec [1])
43 plt . subplots_adjust ( hspace =0.52)
44 plt . show ()

Listing 2: benutzter Code

4 # -* - coding : utf -8 -* -
5 """
6 Spyder Editor
7
8 This is a temporary script file .

12
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

9 """
10
11 import mdt
12 import numpy as np
13 import matplotlib . pyplot as plt
14 # %%
15 # aduhist = mdt . dataRead ( amplitude =2 , samplingRate =40000 , duration
= 10 , channels =[3] , resolution = 7 , outType = ’ volt ’)
16 aduhist = np . load ( ’ aufgabe4 . npy ’)
17
18
19
20 anzahl , bins , tmp = plt . hist ( aduhist [0] , np . sort ( aduhist [0][1:127]) )
21 plt . title ( ’ ADU HIstogramm ’)
22 plt . xlabel ( ’ Spannungswert ’)
23 plt . ylabel ( ’ A b so l u te h a eu f i gk e i t ’)
24 plt . savefig ( ’ auf3 . pdf ’)
25
26 plt . clf ()
27 plt . title ( ’ Bar Diagramm von ADU Histogramm ’)
28 plt . xlabel ( ’ Spannungswert ’)
29 plt . ylabel ( ’ A b so l u te h a eu f i gk e i t ’)
30 plt . bar ( np . sort ( aduhist [0][1:126]) ,
anzahl , width =0.01 , edgecolor =(0 ,0 ,0) )
31 plt . savefig ( ’ auf3_bar . pdf ’)
32
33
34
35 # anzahl , bins , tmp = plt . hist ( aduhist [0] ,127)
36 # %%

Listing 3: benutzter Code

4 # -* - coding : utf -8 -* -
5 """
6 Spyder Editor
7
8 This is a temporary script file .
9 """
10
11 import mdt
12 import numpy as np
13 import matplotlib . pyplot as plt

13
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

14 # %%
15 # aduhist = mdt . dataRead ( amplitude =2 , samplingRate =40000 , duration
= 10 , channels =[3] , resolution = 7 , outType = ’ volt ’)
16 aduhist = np . load ( ’ aufgabe4 . npy ’)
17
18
19
20 anzahl , bins , tmp = plt . hist ( aduhist [0] , np . sort ( aduhist [0][1:127]) )
21 plt . title ( ’ ADU HIstogramm ’)
22 plt . xlabel ( ’ Spannungswert ’)
23 plt . ylabel ( ’ A b so l u te h a eu f i gk e i t ’)
24 plt . savefig ( ’ auf3 . pdf ’)
25
26 plt . clf ()
27 plt . title ( ’ Bar Diagramm von ADU Histogramm ’)
28 plt . xlabel ( ’ Spannungswert ’)
29 plt . ylabel ( ’ A b so l u te h a eu f i gk e i t ’)
30 plt . bar ( np . sort ( aduhist [0][1:126]) ,
anzahl , width =0.01 , edgecolor =(0 ,0 ,0) )
31 plt . savefig ( ’ auf3_bar . pdf ’)
32
33
34
35 # anzahl , bins , tmp = plt . hist ( aduhist [0] ,127)
36 # %%

Listing 4: benutzter Code

4 import numpy as np
5 import matplotlib . pyplot as plt
6 from matplotlib . ticker import ScalarFormatter
7
8 data = np . loadtxt ( ’ auf4 . txt ’ , delimiter = None )
9 xdata = np . array ([ x [0] for x in data ])
10 ydata = [ x [1] for x in data ]
11
12 plt . semilogx ( xdata , ydata )
13 plt . grid ( which = ’ both ’)
14 plt . title ( ’ S t o e r s p a n n u n g s d a m p f u n g ’)
15 plt . xlabel ( ’ Frequenz [ Hz ] ’)
16 plt . ylabel ( ’ S toerun gsdamp fung [ dB ] ’)
17 plt . savefig ( ’ auf4 . pdf ’)
18

14
Alfredo Chavez ,Hedii Jalloulli , Meriem Jabri Versuchsprotokoll Versuch 8

19 plt . clf ()
20 plt . title ( ’ normierte S t o e r s p a n n u n g s d a m p f u n g ’)
21 plt . xlabel ( ’ normierte Frequenz ’)
22 plt . ylabel ( ’ S toerun gsdamp fung [ dB ] ’)
23 plt . semilogx ( xdata /50 , ydata )
24
25 formatter = ScalarFormatter ()
26 formatter . set_scientific ( False )
27 plt . gca () . xaxis . s e t_ m a jo r _ fo r m at t e r ( formatter )
28
29 plt . grid ( which = ’ both ’)
30 plt . savefig ( ’ auf4_norm . pdf ’)
31
32 Fmaxp = (2.1/2) * np . sinc ( xdata * np . pi *.02)
33 Fmaxn = -(2.1/2) * np . sinc ( xdata * np . pi *.02)
34 plt . clf ()
35 plt . grid ()
36 plt . xlabel ( ’ Normierte Frequenz in fs * Ti ’)
37 plt . ylabel ( ’ Maximale Fehler [ % /100] ’)
38 plt . plot ( xdata /50 , Fmaxp )
39 plt . plot ( xdata /50 , Fmaxn )
40 plt . savefig ( ’ auf4_fehl . pdf ’)

Listing 5: benutzter Code

15