Digitale Interpolation bei DA-Wandlung

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Nutzen und Zweck

Bei der Ausgabe digitaler Werte auf DA-Wandlern besteht praktisch immer das Problem, dass die Bitbreite des errechneten Wertes nicht zur Auflösung des Wandlers passt. Daher müssen oft Bits aufgefüllt, abgeschnitten und gerundet werden.

Am Beispiel einer DDS in einem FPGA soll erklärt werden, wie beides zum Einsatz kommt.

Wesentlich bei einer DDS ist die oft begrenzte Auflösung der Stützstellen, während für den Wandler eine größere Auflösung zur Verfügung steht. Daher zeigt der Wandler mehr Treppen, als nötig, weil keine Zwischenpunkte vorhanden sind. Um dem zu begegnen, können die groben Stufen ausgangsseitig der DDS interpoliert werden. Dies kann einfach linear oder mit einem komplexeren Interpolationsfilter gemacht werden, wobei die Möglichkeit besteht, die Filterparameter der auszugebenden Frequenz anzupassen.

Damit entsteht ein 'internes' Rekonstruktionsfilter, welches die Treppen der DDS interpoliert und gleichzeitig auch einen durchaus feineren Verlauf aufweisen kann, als der Wandler ihn abbilden könnte.

Um diese Freiheit auf den nun gröberen DAC zu übertragen, bedient man sich wiederum des Ditherings.


Beispiele

Nachfolgend wird eine DDS-Tabelle (gelbe Werte) für "krumme" Phasenwerte, die nicht genau abgebildet werden können, linear interpoliert (blau) und auf einem DAC mit 2 Bit mehr Auflösug ausgegeben. Die Frequenz liegt deutlich unter der Abtastfrequenz, wodurch Stufen sichtbar sind.

Links