5.1  Theoretische Grundlagen

Es ist sinnvoll, wenn man einige Grundlagen der Analog-Digital-Wandlung kennt, bevor man die vom MSP430 zur Verfügung gestellten analogen Eingänge nutzt. Ein gutes Buch, das für das weitere Verständnis der signaltheoretischen Grundlagen empfohlen werden kann, ist das Standardwerk ”zeitdiskrete Signalverarbeitung” von Oppenheim et.al.[OSB04].

Bei jeder Messung eines anlogen wert- und zeitkontinuierlichen Signals mit einem A/D-Eingang erhält man systematische Fehler. Die Ursachen dieser systematischen Fehler liegen darin, dass der Wert eines Signals als digitale Repräsentation einer reellwertigen Zahl dargestellt werden muss. Da Rechner und auch A/D-Wandler immer nur eine endliche Zahlendarstellung (z.B. 16 Bit) kennen, ist die Anzahl der darstellbaren Werte begrenzt. Des Weiteren kann bei der A/D-Wandlung das Signal nur zu definierten Zeitpunkten, also nicht mehr zeitkontinuierlich erfasst und gespeichert werden. Das Signal ist damit sowohl wert- als auch zeitdiskret. Bei der Interpretation der Werte eines anlogen Eingangs sollten diese beiden Aspekte immer berücksichtigt werden, da man bei der Analog-Digital-Wandlung immer diesen Informationsverlust hat.

Bild 5.1 skizziert am Beispiel eines zeit- und wertkontinuierlichen Signals ySIG(t) das vom Mikrocontroller auswertbare zeit- und wertdiskrete Signal yAD(t) nach der A/D-Wandlung. Wie man erkennen kann, liegen die Messwerte quantisiert vor. Das heißt, der Wert ändert sich nur an definierten Zeitpunkten (Zeitdiskretisierung) und kann dann auch nur eine begrenzte Menge an möglichen diskreten Werten (Wertdiskretisierung) annehmen.


PIC

Bild 5.1.: (a) Verlauf eines zeit- und wertkontinuierlichen Signals ySIG(t) aufgetragen über der Zeit t, (b) zeit- und wertdiskretes Signal yAD(t) nach der A/D-Wandlung.


Das analoge Signal wird in 2n Stufen (n = Bit-Auflösung des A/D-Wandlers) aufgelöst. Die Wandlung erfolgt immer in Bezug zu den Referenzspannungen des A/D-Wandlers, die die kleinste und größte umsetzbare Spannung darstellen. Somit ist die kleinste darstellbare Spannungsdifferenz ULSB = (Uref+ - Uref-)2n. LSB steht hierbei für die Abkürzung Least Significant Bit und entspricht der niedrigstwertigen Ziffer einer Binärzahl. In den meisten Fällen hat man einen unipolaren A/D-Wandler, dessen kleinste wandelbare Spannung 0V und die größte Spannung Uref beträgt. Bei dem 12-Bit-Wandler des MSP430F1612 mit einer Referenzspannung von 2.5 V beträgt ULSB beispielsweise 0.6mV.

Die theoretische Obergrenze des erreichbaren Signal-zu-Rausch-Verhältnisses SNR (durch n-Bit-Diskretisierung des Wertes) ist etwa 1.76 + 6.02 ndB. Diese Überschlagsrechnung erhält man, wenn man davon ausgeht, dass das Nutzsignal einer Sinusschwingung mit voller Amplitude entspricht. Dessen Effektivwert ist Uref2 1√ --
  2. Das Quantisierungsrauschen entsteht dadurch, dass das reale Signal ja nicht immer genau einer Quantisierungsstufe entspricht, sondern leicht (maximal ULSB2) davon abweicht. Geht man vereinfachend davon aus, dass diese Abweichungen gleichverteilt sind, kann man dieses Rauschen durch ein weißes Rauschen mit der Amplitude ULSB2 approximieren. Dessen Effektivwert entspricht etwa ULSB∘ -
  (12).

Zusammengefasst können wir nun das theoretische Maximum des Signal-zu-Rausch-Verhältnisses mit Gleichung 5.1 bis Gleichung 5.3 berechnen.

               ULSB
URausch,eff  ≈  -√----                                        (5.1)
                  12
USignal,eff  =  -√1--⋅2nULSB                                  (5.2)
               2  2
                          USignal,eff
     SN R   =  20dB log10U----------= 1,76 + n ⋅6,02         (5.3)
                           Rausch,eff

In Realität ist das erreichbare SNR sogar noch etwas schlechter, da die Amplitudenverteilung des Eingangssignals selten konstant der vollen Amplitude entspricht. Bei Musik ist die Amplitudenverteilung z.B. oft durch eine Gaussverteilung um einen Lautstärke-Mittelwert beschreibbar.

Die zeitliche Diskretisierung erfolgt mit der durch den Anwender vorgegebenen Abtastfrequenz Fs = 1∕T0. Jeder A/D-Wandler hat konstruktionsbedingt eine obere Grenze der Abtastfrequenz, die nicht überschritten werden kann. In vielen Fällen ist jedoch nicht einmal der A/D-Wandler sondern die nachfolgende digitale Verarbeitungskette der limitierende Faktor.

Nach dem Nyquist-Theorem muss ein Signal mit mindestens der doppelten Grenzfrequenz des bandbegrenzten Messsignals abgetastet werden, damit im digitalisierten Signal diese Information erhalten bleibt. Oder, anders ausgedrückt, die Abtastfrequenz muss mindestens doppelt so groß wie die größte Frequenz im Messsignal sein. Diese Mindestfrequenz wird Nyquist- oder Shannon-Frequenz genannt:

f  ≥ 2 ⋅f                                 (5.4)
 ab       G

Wird mit geringerer Frequenz abgetastet, als das Nyquist-Theorem dies erfordert, so kann es zu so genannten Aliasing-Effekten kommen, die sich durch dann entstehende Schwebungen bemerkbar machen, siehe Bild 5.2


PIC

Bild 5.2.: Durch Unterabtastung entstehende Schwebung, die im Original nicht enthalten ist.


In einem solchen Fall ist die zeitliche Information auf Dauer verloren und das Signal kann nicht mehr korrekt rekonstruiert werden. Bild 5.3 skizziert den Fall der Abtastung mit doppelter Grenzfrequenz (a) und den Fall der Unterabtastung (b) im Frequenzbereich. Der Aliasing-Effekt, also die Überlappung der abgetasteten Spektren des Messsignals, ist dabei im Frequenzspektrum (b) deutlich zu erkennen.


PIC

Bild 5.3.: Frequenzspektrum eines abgetasteten Messsignals und dessen Rekonstruktion im Frequenzbereich für (a): Abtastung nach dem Nyquist-Theorem und (b): Unterabtastung


In der Praxis muss man immer damit rechnen, dass auch spektrale Anteile jenseits der Nyquist-Frequenz im Signal enthalten sind. So ist kein Nutzsignal wirklich streng bandbegrenzt und auch Rauschen ist immer vorhanden. Durch Einsatz eines so genannten Anti-Aliasing-Filters kurz vor dem Eingang des A/D-Wandlers kann man die Amplitude der möglichen Störungen jedoch auf Werte unterhalb der Auflösungsgenauigkeit begrenzen. Wichtige Eingangsparameter für den Filterentwurf sind hier die maximale Signalfrequenz Fmax und die Abtastfrequenz Fs. Bei Fmax soll das Nutzsignal noch ohne Dämpfung durchgelassen werden. An der Stelle Fs - Fmax muss das Signal um 20log 2n = n 20log 2 n 6dB gedämpft werden. Dies ist damit so weit abgeschwächt, dass das niedrigste Bit des Wandlers ab dieser Frequenz nicht mehr durch das gefilterte Signal beeinflusst werden kann. Der Abstand von Fs und Fmax voneinander nimmt hierdurch wesentlichen Einfluss auf Ordnung und Architektur des eingesetzten Anti-Aliasing-Filters. Je näher beide beieinander liegen, desto steilflankiger (und damit komplexer) muss das entsprechende Anti-Aliasing-Filter ausgelegt werden. Um den Hardware-Aufwand für das Filter zu verringern, sollte deshalb immer mit möglichst großer Frequenz abgetastet werden. Für das Design und die Hardware-Realisierung analoger Anti-Aliasing-Filter sei hier das Buch von Tietze-Schenk [TSG02] empfohlen.

Eine schnellere Abtastung als nötig trägt zudem zu einer größeren Genauigkeit der Messwerte bei. Das Quantisierungsrauschen ist gleichverteilt im Bereich 0Fs2. Bei einer Verteilung der Rauschleistung auf einen größeren Frequenzbereich durch Oversampling (Fläche unter der Kurve bleibt gleich, Bild 5.4) kann das SNR durch nachfolgende digitale Filterung weiter erhöht werden (es werden ja nur das Quantisierungsrauschen und die Störungen weggefiltert).


PIC

Bild 5.4.: Verteilung der Rauschleistung durch Oversampling und Verbesserung des SNR durch digitale Filterung


Im Idealfall führt dies zu einer Verbesserung des SNR um 3dB pro Verdopplung der Abtastrate. Will man die Auflösung eines n-Bit-A/D-Wandlers auf m Bit erhöhen, muss man also dafür mit 4(m-n)-facher Frequenz abtasten. Um Beispielsweise die Auflösung des eingebauten 10-Bit-Wandlers auf 12 Bit zu erhöhen, ist somit eine 16-fache Überabtastung notwendig. Damit man in den Gewinn der höheren Auflösung kommt, muss man anschließend mit einem digitalen Filter die höheren spektralen Anteile ausfiltern. Im Anschluss daran kann dann zusätzlich noch die Abtastfrequenz auf eine niedrigere Samplefrequenz verringert werden (sog. Downsampling ). Dies reduziert den Datenstrom und schont die Rechenressourcen der nachgeschalteten Signalverarbeitung.

Der digitale Filterentwurf ist ein eigenes Thema und soll in diesem Buch nicht weiter vertieft werden. Ausführlich kann man dieses zum Beispiel im Buch von Oppenheim [OSB04] nachlesen. An dieser Stelle sei nur eine sehr einfache Filterung ausgeführt, der so genannte Mittelwertfilter. Jedes Sample des reduzierten Datenstroms wird dabei aus dem Mittelwert mehrerer Originalsamples gebildet. Bleiben wir bei dem Beispiel des 10-Bit-Wandlers, müssen wir also 4(12-10) = 16 A/D-Werte summieren. Da jeder einzelne A/D-Wert 10 Bit breit ist, ist die Summe der A/D-Werte 14 Bit breit:

210 ⋅16 = 16384 = 214                          (5.5)

Die untersten beiden Bits haben keinen weiteren Informationsgehalt und können nach Division durch den Oversampling-Faktor (hier im Beispiel 2n-m) entfernt werden. Alternativ kann man statt einer Division auch einfach das Ergebnis durch n-m Rechts-Shifts berechnen, vorausgesetzt der Oversampling-Faktor ist eine Zweierpotenz. Das Prinzip des Oversamplings wird in Pseudocode in Listing 5.1 verdeutlicht.

int oversampling() 
{ 
  int sum, i, sum12; 
  sum = 0; 
  for(i=1;i<=16;i++) { 
    sum += ADWert(); // Summiere alle 10-Bit-A/D-Werte 
    } 
  // In sum ist nun eine 14 Bit breite Summation 
  // der A/D-Werte abgelegt. 
  // Berechne aus dem 14 Bit breiten einen 12 Bit breiten Wert: 
  sum12 = sum / 4;     // alternativ: sum12 = sum>>2; 
  return sum12;        // Rückgabe von sum12 
}
Listing 5.1: Oversampling Pseudo-Code

Gleichzeitig zur Mittelwertbildung erfolgt in diesem Pseudocode auch eine Reduktion der Abtastfrequenz. Streng genommen bedarf es hier eines Aliasing-Filters mit entsprechender Flankensteilheit, der durch die Mittelwertbildung (als FIR-Filter mit gleichen Koeffizienten interpretierbar) nicht gegeben ist. Sieht man einen analogen Aliasing-Filter vor, entworfen für die niedrigere Abtastfrequenz, muss nur noch das Abtastrauschen im digitalen Aliasing-Filter entsprechend bedämpft werden, was durch den Mittelwert-FIR-Filter aber ausreichend gelingt.

Die Anwendung von Oversampling bedeutet nicht immer, dass die Messung tatsächlich besser wird. Der MSP430 verfügt über A/D-Wandler mit einer Auflösung von 10 Bit bzw. 12 Bit. Für die meisten praktischen Anwendungen reicht diese Auflösung aus. In realen Anwendungen muss das analoge Signal-zu-Rausch-Verhältnis erst einmal besser als diese Auflösung werden (immerhin > 72dB, das heißt bei 1V Signal-Vollausschlag weniger als 0.2mV Rauschen! Nur mit den teuersten Oszilloskopen kann man so etwas überhaupt darstellen), bevor sich die Investition in einen höher auflösenden Wandler überhaupt lohnt. Meist ist die schaltungstechnische Auslegung der Sensoren und der Messkette diesbezüglich wesentlich kritischer. Darüber hinaus lässt sich beim MSP430 mit Hilfe der Referenzspannung die Größe einer Quantisierungsstufe exakt auf die auftretenden Spannungspegel einstellen, was gleichermaßen die real erreichbare Genauigkeit und Auflösung des Wandlers steigert.