refactor dac and adc
combined three sections to one
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
|
||||
Sehen wir uns im Folgenden die Funktion des A/D-Umsetzers genauer an. Aus der Lektion Abtasttheorem wissen wir, dass wir, um die Information eines Signals ohne Informationsverluste abtasten zu können, mindestens mit etwas mehr als der doppelten Frequenz, die unser abzutastendes Signal enthält, abtasten müssen. Nun empfangen wir über eine Antenne in der Regel allerlei Signale - auch solche, die sich über der maximalen Frequenz, die wir verarbeiten wollen, befinden. Was passiert nun, wenn solche Signale auf den A/D-Umsetzer treffen? Rufen wir uns hierzu noch einmal das Beispiel mit der Fliege, die durchs Bild fliegt, ins Gedächtnis. Diese Signale können aufgrund der hierfür zu niedrigen Abtastfrequenz nicht mehr erfasst werden und erscheinen in unseren Samples als fehlerhaft erfasste Frequenzen. Diese nennen sich auch Aliases (zu Deutsch in etwa Pseudonyme). Ein Signal leicht oberhalb der maximalen Eingangsfrequenz würde als Alias mit einer Frequenz leicht unterhalb der maximalen Eingangsfrequenz unseres A/D-Umsetzers erscheinen und somit ein Signal darstellen, das es eigentlich gar nicht gibt. Um dies zu verhindern, müssen wir vor dem Eingang des A/D-Umsetzers ein Antialiasing-Filter (in der Regel ein Tiefpassfilter oder Bandpassfilter) schalten, so dass unerwünschte Frequenzen, die zu Aliases führen könnten, wirksam unterdrückt werden, bevor das Signal den A/D-Umsetzer erreicht.
|
||||
|
||||
Der A/D-Umsetzer benötigt für seine Aufgabe zudem einen Taktgenerator, welchen man auch Abtastratengenerator nennt, damit er in zeitlichen Abständen Samples des Eingangssignals generieren kann, die er dann als digitalen Datenstrom an weitere Teile einer Schaltung weitergeben kann. Die Taktrate kann fest eingestellt sein oder durch Kontrollinformationen z. B. von einem Mikrocontroller gesteuert werden.
|
||||
|
||||
[question:AF620]
|
||||
|
||||
Da ein A/D-Umsetzer stets mit einer begrenzten Zahl an möglichen digitalen Werten, welche die Größe des analogen Eingangssignals darstellen können, arbeitet, erfolgt die Erfassung der Amplitudenwerte in Stufen. Wir erinnern uns an das Beispiel mit dem Dimmer und Stufenschalter zuvor. Dadurch, dass das analoge Eingangssignal nun nur in bestimmten Stufen erfasst werden kann, kommt es zu Quantisierungsfehlern.
|
||||
|
||||
[question:AF607]
|
||||
|
||||
Die Anzahl der möglichen Stufen eines A/D-Umsetzers wird auch als dessen Auflösung bezeichnet. Man gibt diese Anzahl oft in Bit ($\unit{\bit}$) an. Kann ein Umsetzer $\num{256}$ Stufen (beispielsweise von $\num{-128}$ bis $\num{+127}$) unterscheiden, hat er $\qty{8}{\bit}$. Ein $\qty{16}{\bit}$-Umsetzer kann bereits $\num{65536}$ Stufen unterscheiden. Hierbei werden in der Regel die Hälfte der Werte für den positiven Signalbereich und die andere Hälfte der Werte für den negativen Signalbereich verwendet.
|
||||
|
||||
[question:AF608]
|
||||
|
||||
Eine weitere wichtige Eigenschaft eines A/D-Umsetzers besteht darin, das Eingangssignal möglichst exakt zu erfassen und dabei Fehler in den Zeitabständen zwischen einzelnen Samples zu vermeiden. Entscheidend hierfür ist ein möglichst stabiler Abtastratengenerator, der einen exakten zeitlichen Takt für den A/D-Umsetzer erzeugt. Leider ist dies technisch oft mit hohem Aufwand verbunden, weshalb es immer zu einem geringen Unterschied zwischen den Signalflanken des Takts kommen kann. Dies nennt man auch Jitter (zu Deutsch in etwa Zittern). Im Ergebnis führt dies zu zusätzlichem Rauschen im Abtastergebnis (dem digitalen Datenstrom) des A/D-Umsetzers.
|
||||
|
||||
[question:AF621]
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
|
||||
%%% TODO diese beiden textblöcke müssen verbunden werden.
|
||||
|
||||
|
||||
Wie zuvor schon kurz angesprochen, muss vor dem A/D-Umsetzer ein entsprechendes Filter zur Unterdrückung von Signalanteilen höherer Frequenzen eingefügt werden. Man nennt ein solches Filter auch Antialiasingfilter. Als Filtertypen können hier sowohl Tiefpassfilter als auch Bandpassfilter Anwendung finden. Das Filter muss hierbei so beschaffen sein, dass Signalanteile, die sich oberhalb der halben Sampling-Frequenz befinden, wirksam unterdrückt werden. Wir erinnern uns, dass für die Abtastung eines Signals mehr als die doppelte Abtastfrequenz der zu erfassenden Signalfrequenz erforderlich ist.
|
||||
|
||||
[question:AF622]
|
||||
[question:AF623]
|
||||
[question:AF623]
|
||||
|
||||
|
||||
|
||||
Aus der Lektion zum Abtasttheorem wissen wir, dass ein Signal mit einer ausreichend hohen Abtastrate abgetastet werden muss. Über eine Antenne empfangen wir jedoch in der Regel viele unterschiedliche Signale – auch solche mit Frequenzen oberhalb des Frequenzbereichs, den wir eigentlich verarbeiten wollen.
|
||||
|
||||
Treffen solche Signale auf den A/D-Umsetzer, obwohl seine Abtastrate für diese Frequenzen nicht ausreichend ist, können sie als andere, nicht tatsächlich vorhandene Frequenzen im digitalen Signal erscheinen. Diese werden als *Aliase* bezeichnet.
|
||||
|
||||
Um dies zu verhindern, wird vor dem Eingang des A/D-Umsetzers ein *Antialiasing-Filter* eingesetzt. Dabei handelt es sich in der Regel um einen Tiefpass- oder Bandpassfilter, der unerwünschte Frequenzen unterdrückt, bevor das Signal den A/D-Umsetzer erreicht.
|
||||
|
||||
Der A/D-Umsetzer benötigt außerdem einen Taktgenerator, den man auch als Abtastratengenerator bezeichnet. Dieser legt fest, zu welchen Zeitpunkten das Eingangssignal abgetastet wird. Der A/D-Umsetzer erzeugt daraus einen digitalen Datenstrom, der anschließend von weiteren Teilen der Schaltung verarbeitet werden kann. Die Taktrate kann fest eingestellt sein oder beispielsweise durch einen Mikrocontroller gesteuert werden.
|
||||
|
||||
[question:AF620]
|
||||
@@ -1,7 +0,0 @@
|
||||
A/D- und D/A-Umsetzer werden in SDR-Empfängern und Transceivern an verschiedenen Stellen eingesetzt. Analoge Eingangssignale werden durch einen A/D-Umsetzer digitalisiert, anschließend digital verarbeitet, und dann mittels eines D/A-Umsetzers wieder in analoge Signale zur weiteren Verarbeitung oder Ausgabe rekonstruiert. Hierbei ist es natürlich möglich, dass ein Eingangssignal aufgrund seiner Größe nicht den vollen Wertebereich des A/D-Umsetzers und des anschließenden D/A-Umsetzers ausschöpft. Entsprechend wird dieses Signal dann auch nur auf einen kleineren Wertebereich der möglichen digitalen Stufen abgebildet. Ebenfalls denkbar ist, dass das Eingangssignal höhere Werte als der maximale Wertebereich des A/D- oder D/A-Umsetzers annehmen kann. In diesem Fall wird ein A/D-Umsetzer das Signal nur bis zur maximalen Eingangsspannung des Umsetzers korrekt abbilden können. Höhere Werte können dann nur noch mit dem Maximalwert des A/D-Umsetzers abgebildet werden. Man spricht in diesem Fall auch von Clipping (zu Deutsch Beschneidung) des Signals. Dies äußert sich in abgeschnittenen Anteilen in den maximalen Bereichen des Signals, die als Gerade mit dem maximalen Wert des A/D-Umsetzers verlaufen.
|
||||
|
||||
Je höher die Auflösung eines A/D-Umsetzers und D/A-Umsetzers ist, desto "feiner" können Signalamplitudenwerte digital abgebildet und auch rekonstruiert werden. Eine niedrige Auflösung führt im Gegensatz dazu, dass Signale gestuft abgetastet bzw. rekonstruiert werden.
|
||||
|
||||
[question:AF613]
|
||||
[question:AF612]
|
||||
[question:AF614]
|
||||
@@ -0,0 +1,67 @@
|
||||
Sehen wir uns nun genauer an, wie analoge Signale in digitale Werte und digitale Werte wieder in analoge Signale umgesetzt werden. Dazu werden *A/D-Umsetzer* (Analog-Digital-Umsetzer) und *D/A-Umsetzer* (Digital-Analog-Umsetzer) verwendet.
|
||||
|
||||
Ein A/D-Umsetzer tastet ein analoges Eingangssignal zu bestimmten Zeitpunkten ab und erzeugt daraus digitale Zahlenwerte, die anschließend von weiteren Teilen einer Schaltung verarbeitet werden können.
|
||||
|
||||
Da ein A/D-Umsetzer nur mit einer begrenzten Anzahl möglicher digitaler Werte arbeitet, kann er die Amplitude eines analogen Eingangssignals nur in bestimmten Stufen erfassen. Wir erinnern uns dabei an das zuvor verwendete Beispiel mit Dimmer und Stufenschalter. Liegt der tatsächliche Wert zwischen zwei möglichen Stufen, muss er einer davon zugeordnet werden. Dadurch entsteht ein *Quantisierungsfehler*.
|
||||
|
||||
[question:AF607]
|
||||
|
||||
---
|
||||
|
||||
Die Anzahl der möglichen Stufen eines A/D-Umsetzers wird als dessen *Auflösung* bezeichnet. Sie wird häufig in Bit ($\unit{\bit}$) angegeben. Kann ein Umsetzer beispielsweise $\num{256}$ unterschiedliche Werte unterscheiden, besitzt er eine Auflösung von $\qty{8}{\bit}$, denn mit $\qty{8}{\bit}$ lassen sich $\num{256}$ verschiedene Werte darstellen. Ein $\qty{16}{\bit}$-Umsetzer kann bereits $\num{65536}$ unterschiedliche Werte unterscheiden.
|
||||
|
||||
Bei Signalen, die sowohl positive als auch negative Werte annehmen können, wird typischerweise ein Teil dieser Werte für den positiven und ein Teil für den negativen Signalbereich verwendet.
|
||||
|
||||
Die Abbildung [ref:a_adc_4bit] zeigt ein Sinussignal, das durch einen A/D-Umsetzer mit einer Auflösung von $\qty{4}{\bit}$ digitalisiert und anschließend wieder in ein analoges Signal umgesetzt wurde. Die Abbildung [ref:a_adc_12bit] zeigt dasselbe Sinussignal, das jedoch durch einen A/D-Umsetzer mit einer Auflösung von $\qty{12}{\bit}$ digitalisiert und anschließend wieder in ein analoges Signal umgesetzt wurde. Man erkennt deutlich, dass die zusätzlichen $\qty{8}{\bit}$ zu einer wesentlich feineren Auflösung führen (um Faktor 256 besser), sodass das rekonstruierte Signal dem ursprünglichen Sinussignal bereits sehr nahe kommt.
|
||||
|
||||
<margin>
|
||||
[picture:300:a_adc_4bit:Sinussignal digitalisiert durch einen 4-Bit-A/D-Umsetzer und anschließende D/A-Umsetzung]
|
||||
[picture:299:a_adc_12bit:Sinussignal digitalisiert durch einen 12-Bit-A/D-Umsetzer und anschließende D/A-Umsetzung]
|
||||
</margin>
|
||||
|
||||
[question:AF608]
|
||||
|
||||
Eine weitere wichtige Eigenschaft eines A/D-Umsetzers ist die zeitliche Genauigkeit der Abtastung. Die einzelnen Samples sollten möglichst exakt in den vorgesehenen zeitlichen Abständen aufgenommen werden. Dazu ist ein möglichst stabiler Abtastratengenerator erforderlich.
|
||||
|
||||
In der Praxis können die tatsächlichen Abtastzeitpunkte jedoch geringfügig von den idealen Zeitpunkten abweichen. Diese zeitlichen Schwankungen werden als *Jitter* bezeichnet. Jitter kann zu zusätzlichen Fehlern und damit zu zusätzlichem Rauschen im digitalisierten Signal führen.
|
||||
|
||||
[question:AF621]
|
||||
|
||||
---
|
||||
|
||||
Der Gegenspieler des A/D-Umsetzers ist der *D/A-Umsetzer*. Er erzeugt aus einem digitalen Datenstrom beziehungsweise aus digitalen Samples wieder ein analoges Signal.
|
||||
|
||||
Auch ein D/A-Umsetzer kann nicht beliebig viele unterschiedliche Ausgangswerte erzeugen. Wie beim A/D-Umsetzer besitzt er eine bestimmte Auflösung in Bit und damit nur eine endliche Anzahl möglicher Ausgangswerte.
|
||||
|
||||
[question:AF609]
|
||||
|
||||
Ein D/A-Umsetzer kann außerdem nur Spannungen innerhalb eines bestimmten Wertebereichs erzeugen, beispielsweise von $\qty{0}{\volt}$ bis $\qty{1}{\volt}$ oder von $\qty{-2}{\volt}$ bis $\qty{2}{\volt}$.
|
||||
|
||||
Bei einem linear arbeitenden D/A-Umsetzer sind die möglichen Ausgangswerte gleichmäßig über diesen Spannungsbereich verteilt. Besitzt ein D/A-Umsetzer beispielsweise eine Auflösung von $\qty{4}{\bit}$, stehen
|
||||
|
||||
$\num{2^4}=\num{16}$
|
||||
|
||||
mögliche Stufen zur Verfügung.
|
||||
|
||||
Verteilen sich diese auf einen Spannungsbereich von $\qty{0}{\volt}$ bis $\qty{1}{\volt}$, gibt es zwischen den $\num{16}$ Stufen insgesamt $\num{15}$ Zwischenschritte. Die Schrittweite beträgt daher
|
||||
|
||||
$\frac{\qty{1}{\volt}}{16-1}\approx\qty{67}{\milli\volt}.$
|
||||
|
||||
[question:AF611]
|
||||
[question:AF610]
|
||||
|
||||
---
|
||||
|
||||
A/D- und D/A-Umsetzer werden beispielsweise in SDR-Empfängern und Transceivern eingesetzt. Analoge Eingangssignale werden zunächst durch einen A/D-Umsetzer digitalisiert und anschließend digital verarbeitet. Soll daraus wieder ein analoges Signal entstehen, werden die digitalen Werte mit einem D/A-Umsetzer zurück in analoge Spannungswerte umgesetzt.
|
||||
|
||||
Dabei kann es vorkommen, dass ein Eingangssignal nur einen kleinen Teil des verfügbaren Wertebereichs eines A/D-Umsetzers nutzt. In diesem Fall wird entsprechend auch nur ein Teil der verfügbaren digitalen Stufen verwendet.
|
||||
|
||||
Umgekehrt kann ein Eingangssignal den maximalen Wertebereich eines A/D-Umsetzers überschreiten. Werte oberhalb der maximal erfassbaren Eingangsspannung können dann nicht mehr korrekt dargestellt werden und werden nur noch mit dem maximal möglichen Wert abgebildet. Dieser Effekt wird als *Clipping* bezeichnet. Im Signalverlauf erscheinen die betroffenen Bereiche dadurch abgeschnitten.
|
||||
|
||||
Auch ein D/A-Umsetzer kann keine Ausgangsspannung außerhalb seines vorgesehenen Wertebereichs erzeugen.
|
||||
|
||||
Je höher die Auflösung eines A/D- oder D/A-Umsetzers ist, desto feiner können unterschiedliche Amplitudenwerte digital dargestellt beziehungsweise wieder in analoge Spannungswerte umgesetzt werden. Bei einer geringen Auflösung stehen dagegen nur wenige mögliche Stufen zur Verfügung, sodass die Abstufungen deutlicher sichtbar werden.
|
||||
|
||||
[question:AF613]
|
||||
[question:AF612]
|
||||
[question:AF614]
|
||||
@@ -1,9 +0,0 @@
|
||||
Gehen wir nun etwas genauer auf den Gegenspieler des A/D-Umsetzers - den D/A-Umsetzer - ein. Der D/A-Umsetzer erzeugt aus einem in digitalen Daten vorliegenden Datenstrom (Samples) wiederum ein analoges Signal. Hierbei kann der D/A-Umsetzer natürlich ebenso wie der A/D-Umsetzer nicht beliebig genaue Amplituden-Werte erzeugen, sondern hat genau so wie der A/D-Umsetzer eine maximale Auflösung (in Bits). Hierdurch gibt es ebenfalls wieder eine endliche Anzahl von analogen Signalwerten, die der D/A-Umsetzer erzeugen kann. Die Anzahl der möglichen Stufen errechnet sich wie schon zuvor beschrieben beim A/D-Umsetzer.
|
||||
|
||||
[question:AF609]
|
||||
|
||||
Ein D/A-Umsetzer kann immer nur Spannungen in einem bestimmten Spannungsbereich (z. B. von $\qty{0}{\volt}$ bis $\qty{1}{\volt}$ oder von $\qty{-2}{\volt}$ bis $\qty{2}{\volt}$) generieren. Hierbei verteilt sich die Anzahl der vorbeschriebenen Stufen (Auflösung des D/A-Umsetzers) bei einem linear arbeitenden D/A-Umsetzer (linear bedeutet hier, dass der Abstand zwischen den einzelnen Stufen immer gleich ist) auf den Spannungsbereich. Hat der D/A-Umsetzer z. B. eine Auflösung von nur $\qty{4}{\bit}$, so haben wir $\num{16}$ mögliche Stufen. Diese verteilen sich dann z. B. auf einen Spannungsbereich (Wertebereich) von $\qty{0}{\volt}$ bis $\qty{1}{\volt}$. Um die Schrittweite zwischen zwei Stufen zu errechnen, muss man den Spannungsbereich nur durch die Anzahl der möglichen Zwischenschritte teilen. Achtung: Bei $16$ Stufen gibt es nur $15$ Zwischenschritte. Dies ergibt z. B. bei unserem vorgenannten Beispiel einen Abstand (Schrittweite) von $\frac{\qty{1}{\volt}}{16 - 1} \approx \qty{67}{\milli\volt}$.
|
||||
|
||||
[question:AF611]
|
||||
[question:AF610]
|
||||
|
||||
Reference in New Issue
Block a user