Hallo,
eine kurze Frage, Ich verstehe wie Direkte Digitale Synthese
funktioniert. Jedoch wenn ich die Frequnez meines z.B. Sinussignals
veränder, wird das SIgnal dann Frequenz dann Moduliert? Also bezeichnet
man das dann als modulation?
Das Einprägen einer Information auf ein Trägersignal bezeichnet man als
Modulation. Es gibt verschiedene Arten von Modulationen. Die Information
kann durch Änderung von Frequenz, oder Signalamplitude oder
Phasenveränderung, ... aufgeprägt werden.
Wenn Du natürlich nur am Signalgenerator von Hand auf eine andere
Frequenz drehst, dann ist das keine Modulation, sondern einfach eine
Frequenzänderung.
Das Thema hatten wir aber erst gerade im Forum!
Ja und da liegt ja mein Problem. Ich gehe von einem Digitalen
Funktionsgenerator aus, der sein Signal (egal ob rechteck, Sinus, etc.)
per DDS generiert. Da der Digitale Funktionsgenerator das SIgnal mit
seinem eigenen Takt abtastet und verändert, müsste es doch eine
Frequenzmodulation sein, wenn ich mich nicht täusche?!?
> Da der Digitale Funktionsgenerator das SIgnal mit> seinem eigenen Takt abtastet und verändert, müsste es doch eine> Frequenzmodulation sein, wenn ich mich nicht täusche?!?
Du redest wirr. Nimm erstmal ein Baldrian.
Püschologe schrieb:> Du redest wirr. Nimm erstmal ein Baldrian.
Er hat sogar Recht, weil die Abtastfrequenz nie zur Erzeugten passt,
also immer eine Art Störspektru reinmoduliert wird.
Gute Nacht!
Frage schrieb:> Ja und da liegt ja mein Problem. Ich gehe von einem Digitalen> Funktionsgenerator aus, der sein Signal (egal ob rechteck, Sinus, etc.)> per DDS generiert. Da der Digitale Funktionsgenerator das SIgnal mit> seinem eigenen Takt abtastet und verändert, müsste es doch eine> Frequenzmodulation sein, wenn ich mich nicht täusche?!?
Der DDS hat nur eine Tabelle mit zeitdiskreten Werten des zu
erstellenden Signals (z.Bsp. Sinus) im Speicher und geht mit einem
Zeiger im Systemtakt durch die Tabelle, schreibt den jeweiligen Wert in
einen DAC und das war es.
Da wird nichts moduliert sondern nur eine "Welle" ausgegeben.
Die Modulation entsteht doch erst wenn Du mit einem zweiten Signal diese
ausgegeben Welle veränderst. Und in dieser Wellenänderung steckt die
Information die übertragen werden soll, das ist dann die Modulation. Bei
der Demodulation wird dann aus dieser Veränderung der Trägerwelle die
Information zurück gewonnen.
Ahh Ok ich habe meinen Fehler erkannt. Tut mir an dieser Stelle leid für
die Verwirrung... war wohl ein starker anfall vom Weihnachtsfieber ^^
Ich hätte trotzdem noch eine Frage zum DDS. Stellen wir uns einen
Phasenakkumulator mit 10 Bit vor und die Grundfrequenz des
Phasenakkumulators zum abarbeiten seiner Liste beträgt 1MHz. Also
beträgt die Frequenz eines Signals, mit Schrittweite 1, 976,5625HZ. Ich
habe es bisher so verstanden, das die Schrittweite immer eine Ganze Zahl
sein muss, damit wäre die Auflösung der Frequenz des DDS Abhängig von
dem Phasenakkumulator. Gerade eben habe ich eine Arbeit gelesen, in der
man die Schrittweite um 0.5 erweitert hat. Wenn dies Möglich ist und dem
DDS erlaubt ist, kann man doch eine beliebig genaue Frequenz erzeugen,
oder täusche ich mich da?
>Also>beträgt die Frequenz eines Signals, mit Schrittweite 1, 976,5625HZ. Ich>habe es bisher so verstanden, das die Schrittweite immer eine Ganze Zahl>sein muss, damit wäre die Auflösung der Frequenz des DDS Abhängig von>dem Phasenakkumulator.
Nein, der Gag am DDS-Verfahren ist genau der, dass es keine ganze Zahl
sein muss.
Wenn man Töne im Hörbereich damit erzeugt merkt man aber, dass es
hörbare Artefakte gibt. Generell kann man sagen: Je höher die
Abtastfrequenz gegenüber der gewünschten Ausgabefrequenz, desto weniger
Artefakte.
Frage schrieb:> Ich> habe es bisher so verstanden, das die Schrittweite immer eine Ganze Zahl> sein muss..
..und damit liegst du grundfalsch.
Die Schrittweite eines DDS ist IMMER eine gebrochene Zahl im Bereich
0 < Schrittweite < 0.5
So herum wird das was. Und wenn genug Schritte aufaddiert worden sind,
so daß der Phasenakku überläuft, dann wird das gerade "übergelaufene"
Bit einfach weggeschmissen. Genau so, wie du beim Aufaddieren von 1.25
Grad auf deinen Winkelmesser, der gerade 359 Grad anzeigt, nicht 360.25
Grad angezeigt kriegst, sondern 0.25 Grad.
Klaro?
W.S.
W.S. schrieb:> Die Schrittweite eines DDS ist IMMER eine gebrochene Zahl im Bereich>> 0 < Schrittweite < 0.5
öömmmm, ich dachte der Schrittweitenakku eines DDS hätte die
Auflösung der (seiner) charakteristischen Bitbreite, und somit
müsste die Schrittweite eines DDS minimal ein Bit, und maximal
die Bitbreite, also (2 hoch n)-1 sein (n = Bitbreite)?
W.S. schrieb:> eine gebrochene Zahl
Wie soll eine gebrochene Zahl in einem Register drinstecken?
Geht nicht ... nur durch Kunst-Darstellung.
Halb Wissender schrieb:> Wie soll eine gebrochene Zahl in einem Register drinstecken?
Das ist ein Streit um Betrachtungsweisen.
ein Zahlenbeispiel: der Phasenakkumulator hat 16 Bit.
Ein Phasenincrement von 0x0080 würdest du als Ganzzahlenwert von 128
betrachten.
W.S. betrachtet das selbe Phasenincrement als Bruchteil des
Phasenakkumulators, also 2^7 / 2^16 = 1 / 512 (d.h. nach 512
Phasenadditionen ist eine Periode um)
Für manche Spezialanwendungen mit sehr genauen Frequenzanforderungen
gibt es tatsächlich auch Sinusgeneratoren, die mit gebrochenen Zahlen
angesteuert werden (z.B. in diesem DAC, um die Mischerfrequenz im
GHz-Bereich exakt einstellen zu können):
https://www.analog.com/media/en/technical-documentation/data-sheets/AD9176.pdf
Dort wird das Phasenincrement durch X+A/B angegeben, wobei jeder der
Werte 48 Bit breit ist. (siehe S. 59)
Halb Wissender schrieb:> öömmmm, ich dachte der Schrittweitenakku eines DDS hätte die> Auflösung der (seiner) charakteristischen Bitbreite, und somit> müsste die Schrittweite eines DDS minimal ein Bit, und maximal> die Bitbreite, also (2 hoch n)-1 sein (n = Bitbreite)?
Du denkst eben NICHT. Das ist das Problem.
Betrachte doch mal ein Byte. (Für C-Leute ein uhintachtunterstrichtee)
Das sind erstmal nur 8 Bits, die da so herumlungern.
Zur Zahl wird das erst, wenn du den Bits eine Wertigkeit zuordnest.
Als normaler Halbwissender denkt man, OK - das Bit ganz rechts in der
Ecke hat den Wert 1 und folglich hat das Bit links daneben den Wert 2
und so fort, bis du beim Bit mit dem Wer 128 angekommen bist.
Aber diese ganze Zuordnung ist reine Willkür deinerseits.
Du könntest auch sagen: OK, das Bit ganz links soll den Wert 1 haben,
folglich das Bit rechts daneben den Wert 1/2, dann 1/4 dann 1/8 und so
weiter. Dann hast du ne gebrochene Zahl, mit der du von 0 bis 1.995 (so
etwa) zählen kannst.
Und für eine echt gebrochene Zahl ordnest du dem Bit ganz links den Wert
0.5 zu. Damit kannst du dann von 0 bis 0.995 (etwa) zählen. Genau DAS
macht man beim DDS. Das Phaseninkrement wird mit jedem Takt dazu addiert
und wenn dabei der Akku überläuft, dann ist eben eine Periode um. Der
Phasenwinkel im Akku bleibt dabei immer im Bereich 0 .. kleiner 1
Verstehe das mal richtig: Am Rechenwerk für Addition und Subtraktion
ändert sich dadurch GARNICHTS. Aber für das Multiplizieren ändert sich
etwas: Die Bitbreite, die sich ja beim Multiplizieren verdoppelt, tut
dies bei Integerzahlen nach links, also in Richtung MSB - aber bei echt
gebrochenen Zahlen verdoppelt sie sich nach rechts, also in Richtung LSB
und kann dadurch problemlos weggekürzt werden, ohne die Zahl wieder in
die richtige Bitposition verschieben zu müssen.
Wichtig ist so etwas bei DSP und FPGA's.
W.S.
Die WS-Variant solle dann wohl auch bedeuten, die Sinus-Tabelle hat
nicht 1024 Einträge, sondern nur einen, der aber in 1024 Teile gebrochen
wurde.
Und warum sollte man zum (fixed-Point 10.22) Phase-Akku nur Werte
kleiner 0,5 addieren dürfen? Ob das der Hersteller der AD98nn-Serie
schon weiß?
BTW, Winkel zwischen 0 und (fast) 1, gängig wären 0..359 Grad, 0..2Π.
Oder eben 0..1023, wenn's die HW vereinfacht.
Frage schrieb:> Ahh Ok ich habe meinen Fehler erkannt. Tut mir an dieser Stelle leid für> die Verwirrung... war wohl ein starker anfall vom Weihnachtsfieber ^^>> Ich hätte trotzdem noch eine Frage zum DDS. Stellen wir uns einen> Phasenakkumulator mit 10 Bit vor und die Grundfrequenz des> Phasenakkumulators zum abarbeiten seiner Liste beträgt 1MHz. Also> beträgt die Frequenz eines Signals, mit Schrittweite 1, 976,5625HZ.
So ein Phase-Akku hat Real eher 32Bit, von denen man die obersten 10
verwendet, um die Sinus-Tabelle auszulesen. Man kann dann auch 1/2^22
jede μs draufaddieren und damit die Frequenz in den mHz-Bereich
auflösen. Dann wird eben in der Tabelle ganz lange der gleiche Wert
ausgegeben.
Carl D. schrieb:> Dann wird eben in der Tabelle ganz lange der gleiche Wert> ausgegeben.
... was man tunlichst vermeiden sollte. Wie das gelöst wird, habe ich im
Artikel Dithering dargestellt.
Jürgen S. schrieb:> ... was man tunlichst vermeiden sollte.
Was man aber nicht wirklich vermeiden kann. Dithern ist dabei auch nur
ein Versuch, die beschränkte Bitbreite des DAC etwas zu erweitern - Peak
gegen Jittern tauschen, gelle?
Besser wäre es allemal, gleich einen DAC mit größerer Bitbreite zu haben
- wenn man den denn kriegen KÖNNTE.
Aber in gewissen Grenzen geht das: Viele HF-Bastler hatten sich so einen
chinesischen Modul mit nem AD9850 gekauft - in der Hoffnung, damit einen
guten HF-Generator zu haben. Denkste! Die haben nur 10 Bit an
DAC-Auflösung. Weitaus besser ist es, etwas mehr Geld zu investieren und
einen AD9951 zu kaufen. Der löst 14 Bit auf und das ist schon eine viel
bessere Klasse.
Carl D. schrieb:> BTW, Winkel zwischen 0 und (fast) 1, gängig wären 0..359 Grad, 0..2Π.> Oder eben 0..1023, wenn's die HW vereinfacht.
Und du hast offensichtlich garnichts verstanden. Lies meinen Beitrag
einfach noch einmal und versuche, selbigen zu verstehen.
Tip:
Die Bits in einem DDS haben die Wertigkeiten
Vollkreis/2
Vollkreis/4
Vollkreis/8
Vollkreis/16
usw. je nach Bitbreite des Phasenakkus.
Lies dazu einfach auch mal die Doku zu einem der üblichen DDS-Chips.
Dort findest du z.B. (bei einem 32 Bit Phasenakku)
Frequenz = Taktfrequenz * (Phaseninkrement / 4294967296)
Und der Ausdruck in der Klammer ist eben eine echt gebrochene Zahl, also
kleiner als 1.
Kapito?
W.S.
W.S. schrieb:> Jürgen S. schrieb:>> ... was man tunlichst vermeiden sollte.>> Was man aber nicht wirklich vermeiden kann. Dithern ist dabei auch nur> ein Versuch, die beschränkte Bitbreite des DAC etwas zu erweitern - Peak> gegen Jittern tauschen, gelle?
Das "Jittern" - also ein Phasenrauschen - erzeugt aber ein passend
moduliertes Signal, wie du weißt, welches tiefpassgefiltert einen
"analogen" Mittelwert zwischen den Stufen ergibt und damit die Auflösung
tatsächlich erhöht.
Das funktioniert deshalb, weil die DDS ein TPF haben muss, das auf die
Abtastfrequenz abgestimmt sein muss. Mithin wird ein PDM-Signal, wie es
der DAC selbst auch tut, sofern es ein Delta-Sigma ist (... was er in
der Regel ist).
Der Unterschied zu einem "richtigen" DAC mit einer entsprechenden (aber
dann sehr viel höheren) Auflösung ist der, dass zweimal Rauschspektren
entstehen und diese gefaltet werden, was dazu führt, dass man mehr im
unteren, wahrnehmbaren Bereich unerhalb der Grenzfrequenz des Filters
hat.
Das ist aber im Ausmaß erheblich kleiner, als das Störspektrum, das die
Phasensprünge aufwirft.
http://www.96khz.org/oldpages/limitsofdds.htm
W.S. schrieb:> Carl D. schrieb:>> BTW, Winkel zwischen 0 und (fast) 1, gängig wären 0..359 Grad, 0..2Π.>> Oder eben 0..1023, wenn's die HW vereinfacht.>> Und du hast offensichtlich garnichts verstanden. Lies meinen Beitrag> einfach noch einmal und versuche, selbigen zu verstehen.
Wend meinst.
Es gibt halt mehrere Sichtweisen und deine versteh ich.
Nur nicht umgekehrt.
>> Kapito?>