Fakulät IV
Institut für Energie und Automatisierungstechnik
Fachgebiet Elektronische Mess- und Diagnosetechnik
Versuchsprotokoll
Versuch 8
Digitale Messkette 2
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
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
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
Hauf igkeit(Stuf e)
DN L = −1
Hauf igkeit(soll)
2.5 Störspannungsunterdrückung
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
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]
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
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]
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
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
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]
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
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
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 ()
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
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 # %%
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 # %%
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 ’)
15