Digitale Interpolation bei DA-Wandlung
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.
- 200kHz-Filter
- Die rote Kurve zeigt den Ausgang, wenn man die DDS-Tabelle direkt ausgeben würde. Das Rekonstruktionsfilter, das auf die Samplefrequenz abgestimmt ist, kann dem groben Verlauf der blauen, linear interpolierten Kurve "zu genau" folgen. Mit einem Vorfilter von 200kHz wird eine neue Kurve gebildet und gedithered ausgegeben (violett). Das Rekonstruktionsfilter nach dem DAC muss nur die HF glätten.