Hallo zusammen ich habe einige Fragen zum verfahren des DDS.
Also DDS besitz einen Phasenakkumulator der quasi eine Periode darstellt
(360°) und dies stellt der dar mit 2^n Werten, wobei n = die Anzahl an
bis ist. Also habe ich 2^n / 360 Werte die eine Periode eines SIgnals
darstellen. Soweit so gut, wenn ich nun mit einer Frequenz von 4MHz
arbeiten sollte und mein n = 8 wäre, wäre doch meine niedrigste Frequenz
zum darstellen eines Signals 4MHz / 2^8 = 15625Hz und meine Höchste
Frequenz wäre 2MHz, da laut dem Abtasttheorem das darstellbare Signal
maximal halb so groß (Frequenztechnisch gesehen) sein darf wie die
maximale Frequenz. Liege ich damit soweit richtig?
Stellen wir uns nun vor, dass ich einen Sinus darstellen möchte. Wenn
ich den Phasenakkumulator nun so einstelle, dass er nicht inkrementiert
sonder sich verdoppelt oder sogar verdreifacht, erhöht sich ja auch die
Frequenz mit der mein Sinus ausgegeben wird. Wie berechne ich da denn
die Fehlerquote? Denn wenn ich die Schrittweite meines
Phasenakkumulators erhöhe wird mein Sinussignal doch immer ungenauer
oder täusche ich mich da?
Eine Weitere Frage ist folgende und zwar, das ja mein "Sinussignal"
Zeitdiskret über einen DAC generiert wird, habe ich einen gestuften
Sinus. Mir ist klar ich benötige einen Tiefpassfilter, der mein Signal
glättet. Nehmen wir einfachheitshalber einen RC-Tiefpass-Filter. Wie
muss ich den einstellen, um einen sauberen Sinus zu bekommen? Ändert
sich das nicht von Frequenz zu Frequenz? Oder stelle ich meinen RC so
ein, dass die Grenzfrequenz 2MHz beträgt? Hätte dies dann nicht eine
Dämpfung von 3dB zufolge?
Danke im vorraus für die Hilfe
Frage schrieb:> Also DDS besitz einen Phasenakkumulator der quasi eine Periode darstellt> (360°) und dies stellt der dar mit 2^n Werten, wobei n = die Anzahl an> bis ist. Also habe ich 2^n / 360 Werte die eine Periode eines SIgnals> darstellen. Soweit so gut
Nein, das ist NICHT gut. Du arbeitest auf binärer Logik und die
Erfindung der ollen Babylonier, einen Kreis in 360 Teile aufzuteilen,
mag für deren Zwecke optimal gewesen sein, für deinen ist sie es mit
Sicherheit nicht. Nimm' 256 oder 512 Teile. Das macht sehr vieles sehr
viel einfacher (und vor allem auch: effizienter)...
> wenn ich die Schrittweite meines> Phasenakkumulators erhöhe wird mein Sinussignal doch immer ungenauer> oder täusche ich mich da?
Nö. Das haben diverse Herren vor weit mehr mehr als 100 Jahren schon in
Formeln gegossen. Deren Namen waren Shannon und Nyquist (Reihenfolge
ohne jegliche Wertung der jeweiligen Leistungen). Google-Futter:
Abtast-Theorem.
Und was die Stufen betrifft - diese erfolgen mit der Abtastfrequenz,
unabhängig vom jeweiligen Betrag des Phasensprunges. Hier reicht also
ein fest eingestellter Tiefpaß.
Frage schrieb:> maximal halb so groß (Frequenztechnisch gesehen) sein darf wie die> maximale Frequenz. Liege ich damit soweit richtig?
Ja.
>> Stellen wir uns nun vor, dass ich einen Sinus darstellen möchte. Wenn> ich den Phasenakkumulator nun so einstelle, dass er nicht inkrementiert> sonder sich verdoppelt oder sogar verdreifacht, erhöht sich ja auch die> Frequenz mit der mein Sinus ausgegeben wird.
Nö, du würdest eine arg wilde Phasenmodulation machen, denn dein Phase
würde stark nichtlinear ansteigen.
> Wie berechne ich da denn> die Fehlerquote? Denn wenn ich die Schrittweite meines> Phasenakkumulators erhöhe wird mein Sinussignal doch immer ungenauer> oder täusche ich mich da?
Ich glaube, wir reden aneinander vorbei.
Du meinst vermutlich, wenn man die SCHRITTWEITE des Phasenakkus immer
weiter erhöht, um höhere Frequenzen zu erzeugen, daß es dann immer
weniger Stützstellen für den Sinus pro Periode gibt. Ja, das ist so.
Aber die Wunder der Signalverarbeitung bewirken, daß bei einem korrekten
Ausgangsfilter dennoch ein ziemlich sauberer Sinus rauskommt. Der
Insider wird jetzt zwar EINSPRUCH rufen und was von Nebenlinien im
Spektrum erzählen, aber das sind im wahrsten Sinne des Wortes erstmal
Nebensächlichkeiten.
Im Extremfall von f_aus = 0,5 * f_DDS kommt auch ein astreiner Sinus
raus, auch wenn der nur aus ZWEI Stützstellen pro Periode besteht!
Unglaublich aber wahr! Denn man kann durch passende Filterung aus einem
Rechtecksignal einen astreinen Sinus gleicher Frequenz machen!
> Eine Weitere Frage ist folgende und zwar, das ja mein "Sinussignal"> Zeitdiskret über einen DAC generiert wird, habe ich einen gestuften> Sinus. Mir ist klar ich benötige einen Tiefpassfilter, der mein Signal> glättet.
Rekonstruktionsfilter.
> Nehmen wir einfachheitshalber einen RC-Tiefpass-Filter. Wie> muss ich den einstellen, um einen sauberen Sinus zu bekommen?
Passend zu deiner Taktfrequenz der DDS. Mit einem einfachen RC-Filter
kommst du nicht mal ansatzweise an f_DDS/2 ran, bestenfalls f_DDS/10
oder weniger. Denn so ein einfacher Tiefpaß hat eine viel zu flache
Filterkurve, um die Oberwellen des DACs passend zu glätten bzw. zu
filtern.
> Ändert> sich das nicht von Frequenz zu Frequenz?
Nein, das ist konstant und nur vom konstanten Takt deiner DDS abhängig.
Genauso wie die Filter in jedem Audiogerät, dort ist die
DAC-Ausgabefrequenz auch fest, z.B. die klassischen 44,1kHz des
CD-Standards oder die 96kHz der modernen Dolby-Systeme (jetzt haut mich,
ich bin kein Audioexperte ;-)
> Oder stelle ich meinen RC so> ein, dass die Grenzfrequenz 2MHz beträgt?
So in etwa, nur daß 3dB Dämpfung bei f_DDS/2 ein "bisschen" zu wenig
sind ;-)
Frage schrieb:> Also DDS besitz einen Phasenakkumulator der quasi eine Periode darstellt> (360°) und dies stellt der dar mit 2^n Werten, wobei n = die Anzahl an> bis ist.
Die Anzahl Bits im Phasenakkumulator. Ja.
> Also habe ich 2^n / 360 Werte die eine Periode eines SIgnals> darstellen.
Nein. Du hast 2^n Werte für eine Periode.
> Soweit so gut, wenn ich nun mit einer Frequenz von 4MHz> arbeiten sollte und mein n = 8 wäre, wäre doch meine niedrigste Frequenz> zum darstellen eines Signals 4MHz / 2^8 = 15625Hz und meine Höchste> Frequenz wäre 2MHz, da laut dem Abtasttheorem das darstellbare Signal> maximal halb so groß (Frequenztechnisch gesehen) sein darf wie die> maximale Frequenz. Liege ich damit soweit richtig?
Ja. Allerdings macht man den Phasenakkumulator in der Praxis viel
breiter. Z.B. 32 Bit. Und man muß auch nicht alle 32 Bit davon für die
Lookup-Tabelle des Ausgangssignals nutzen, sondern nur z.B. die obersten
12 Bits.
> Stellen wir uns nun vor, dass ich einen Sinus darstellen möchte. Wenn> ich den Phasenakkumulator nun so einstelle, dass er nicht inkrementiert> sonder sich verdoppelt oder sogar verdreifacht
Dann kriegst du aber keinen Sinus als Ausgangssignal. Für eine bestimmte
(feste) Ausgangsfrequenz mußt du den Phasenakkumulator in jedem
Zeitschritt (bei deinen 4MHz also alle 250ns) um einen bestimmten
(festen!) Wert erhöhen. Für den Wert 1 bekommst du in deinem Beispiel
15.625kHz. Für den Wert 2 wären es 31.25kHz usw. Offensichtlich kannst
du mit einem derart kurzen Phasenakkumulator nur Frequenzen im Raster
von 15125Hz "anfahren".
Aber mit z.B. 32 Bit hättest du selbst bei 100MHz Basistakt eine
Auflösung um die 23mHz (Millihertz).
> Wenn wenn ich die Schrittweite meines> Phasenakkumulators erhöhe wird mein Sinussignal doch immer ungenauer> oder täusche ich mich da?
Du täuschst dich nicht. Wobei "ungenauer" etwas schwammig ist. Du
bekommst immer weniger Stützstellen. Bei der Rekonstruktion des
Sinus-Signals spielt aber der Ausgangsfilter (vulgo:
Rekonstruktionsfilter) eine wesentliche Rolle. Mit einem idealen Filter
reichen 2 Stützstellen pro Periode. Real wird man eher 10 haben wollen.
Zumindest wird dann der Filteraufwand geringer.
Frage schrieb:> Soweit so gut, wenn ich nun mit einer Frequenz von> 4MHz arbeiten sollte und mein n = 8 wäre, wäre doch> meine niedrigste Frequenz zum darstellen eines Signals> 4MHz / 2^8 = 15625Hz
Nein.
Die Phasenberechnung erfolgt i.d.R. mit deutlich größerer
Wortlänge, als man zum Adressieren der Sinustabelle braucht.
Diese Nachkomma-Stellen bewirken, dass z.B. abwechselnd
1 oder 2 Schritte in der Tabelle weitergegangen wird -- im
Mittel sind das also 1.5 Schritte.
Man kann auch Schritte wiederholen, so dass fast beliebig
niedrige Frequenzen möglich sind.
> und meine Höchste Frequenz wäre 2MHz, da laut dem> Abtasttheorem das darstellbare Signal maximal halb so> groß (Frequenztechnisch gesehen) sein darf wie die> maximale Frequenz. Liege ich damit soweit richtig?
Theoretisch ja.
Praktisch kommt man mit vernünftigem Aufwand ungefähr
bis fs/3; das wären im Beispiel 1.3MHz.
> Stellen wir uns nun vor, dass ich einen Sinus darstellen> möchte. Wenn ich den Phasenakkumulator nun so einstelle,> dass er nicht inkrementiert sonder sich verdoppelt oder> sogar verdreifacht, erhöht sich ja auch die Frequenz mit> der mein Sinus ausgegeben wird.
Hat Falk schon erklärt: Den Phasenakku verdoppeln ist nicht
sinnvoll. Was geht: Das Phasenincrement verkleinern oder
vergrößern -- das gibt dann eine Frequenzmodulation.
> Wie berechne ich da denn die Fehlerquote? Denn wenn ich> die Schrittweite meines Phasenakkumulators erhöhe wird> mein Sinussignal doch immer ungenauer oder täusche ich> mich da?
Im Prinzp richtig.
Praktisch macht das nicht viel aus, weil der Frequenzhub
in der Regel nicht so groß ist.
> Eine Weitere Frage ist folgende und zwar, das ja mein> "Sinussignal" Zeitdiskret über einen DAC generiert wird,> habe ich einen gestuften Sinus.
Ja.
> Mir ist klar ich benötige einen Tiefpassfilter, der mein> Signal glättet. Nehmen wir einfachheitshalber einen> RC-Tiefpass-Filter. Wie muss ich den einstellen, um einen> sauberen Sinus zu bekommen?
So, dass alles oberhalb fs/2 (=2MHz) ausreichend unterdrückt
wird.
> Ändert sich das nicht von Frequenz zu Frequenz?
Nein -- das ist ja der Supertrick beim DDS. Der Takt bleibt
ja immer gleich, deswegen bleiben die Störungen im großen
und ganzen auch immer gleich. Dass sich die Nutzfrequenz
ändert, spielt keine große Rolle.
> Oder stelle ich meinen RC so ein, dass die Grenzfrequenz> 2MHz beträgt?
Nein: Du konstruierst das Filter so, dass es bei 2MHz
ausreichend dämpft, also z.B. 60dB (=1:1000). Die
Grenzfrequenz liegt dann bei... was weiss ich... 1.2MHz.
Die höchste nutzbare Frequenz ist dann vielleicht 1.0MHz.
(Die konkreten Zahlen sind aus der Luft gegriffen, um
das Prinzip zu erklären. Die Größenordnung stimmt aber.)
> Hätte dies dann nicht eine Dämpfung von 3dB zufolge?
Klar.
Nyquist ist Theorie -- die gilt unter der Annahme eines
beliebig steilen Filters. Das gibt es aber nicht, daher
muss man von der Nyquist-Frequenz einen Sicherheitsabstand
halten, wenn man eine vernünftige Signalqualität haben will.
Falk B. schrieb:> Im Extremfall von f_aus = 0,5 * f_DDS kommt auch ein astreiner Sinus> raus, auch wenn der nur aus ZWEI Stützstellen pro Periode besteht!> Unglaublich aber wahr!
OMG
Was passiert, wenn die Stützstellen (mehr oder weniger zufällig) gerade
bei 1/4Pi und 3/4Pi liegen (im Falle einer Cos-Tabelle) oder bei 0 und
1/2Pi (im Falle einer Sin-Tabelle)?
Lass' dich begraben. Du bist nicht in der Lage auch nur einfachste
Zusammenhänge zu begreifen und proaktiv zu berücksichtigen.
Klar, das ist der Grenzfall und dementsprechend was besonderes. Wenn man
aber vorgibt, dass er geschehen darf, dann hat man, verdammt noch mal,
auch EXPLIZIT dafür zu sorgen, das auch dann noch das Erwartete
passiert und kann nicht einfach rumtröten, dass es unweigerlich schon
passieren wird. Das zeugt von dramatischer Inkompetenz...