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
http://www.elektronik-labor.de/AVR/DDSGenerator.htm Diesen Artikel habe ich vor Jahren geschrieben. Viel Spaß.
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...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.