Forum: Digitale Signalverarbeitung / DSP / Machine Learning zeitliche Fehler-Akkumulation verhindern


von Tobias (. (Gast)


Lesenswert?

Ein digitale DDS wird verwendet, um einen Steuertakt für ein Zielsystem 
vorzugeben. Die Frequenz beträgt zwischen 100 und 180kHz und bewegt sich 
hin und her. Die DDS wird mit einer Abtastfrequenz von 24MHz erzeugt.

Bei manchen Frequenzen kommt es zu stark hüpfenden Phasenlängen, d.h. es 
kommen z.B. 1030 Takte, dann zweimal 1031 und so fort.

Diese so übertragenen Takte werden in den Empfängern gesampelt und 
ähnlich behandelt, d.h. sie erzeugen weitere Subtakte für ihre 
Komponenten. Die springenden Phasen, führen in den Komponenten zu dann 
Abweichungen von mehreren Takten.

Wie liesse sich das einfach verhindern?

In den früheren Systemen wurden Sinusfrequenzen erzeugt, übertragen und 
analoge PLLs haben diese ausgewertet. Das war genauer.

Die Idee, die auf der Hand liegt, wäre die Taktfrequenzen der 
Prozessoren zu erhöhen. Geht aber auch nicht beliebig.

?

von Egon D. (Gast)


Lesenswert?

Tobias N. schrieb:

> Ein digitale DDS wird verwendet, um einen Steuertakt
> für ein Zielsystem vorzugeben. Die Frequenz beträgt
> zwischen 100 und 180kHz und bewegt sich hin und her.
> Die DDS wird mit einer Abtastfrequenz von 24MHz erzeugt.

Aha.
Das bedeutet, der Tiefpass am Ausgang hat ungefähr
3. Ordnung und eine Grenzfrequenz von ca. 1...2MHz.

Oder?


> Bei manchen Frequenzen kommt es zu stark hüpfenden
> Phasenlängen, d.h. es kommen z.B. 1030 Takte, dann
> zweimal 1031 und so fort.

Hinter dem Tiefpass? Wie geht das?


> Diese so übertragenen Takte werden in den Empfängern
> gesampelt und ähnlich behandelt, d.h. sie erzeugen
> weitere Subtakte für ihre Komponenten. Die springenden
> Phasen, führen in den Komponenten zu dann Abweichungen
> von mehreren Takten.
>
> Wie liesse sich das einfach verhindern?

Indem man nicht jeden programmierbaren Frequenzteiler
hochtrabend als DDS bezeichnet, sondern TATSÄCHLICH
ein DDS-System sach- und fachgerecht implementiert.


> In den früheren Systemen wurden Sinusfrequenzen erzeugt,
> übertragen und analoge PLLs haben diese ausgewertet.
> Das war genauer.

Komisch. Kaum macht man's richtig, schon geht's.


> Die Idee, die auf der Hand liegt, wäre die Taktfrequenzen
> der Prozessoren zu erhöhen. Geht aber auch nicht beliebig.

Nein.
Die auf der Hand liegende Idee ist, sich gegen die
grassierende Digitalitis zu immunisieren und FILTER
an der richtigen Stelle zu verwenden.

von Andi (Gast)


Lesenswert?

Tobias N. schrieb:
> Die springenden Phasen, führen in den Komponenten zu dann
> Abweichungen von mehreren Takten.

Schwer vorstellbar. Was erzeugen denn diese Komponenten aus dem 
Eingangsclock?
Die Phasenabweichung beträgt bei deinem Beispiel unter 1 Promille.

Tobias N. schrieb:
> Wie liesse sich das einfach verhindern?

1) Mit einem FPGA kannst du den Takt um das 10fache erhöhen.
2) Mit DDS IC kannst du einen Sinus erzeugen und dann den Takt mit einem 
Komparator daraus digital bereitstellen.
3) Erzeuge im Prozessor einen Dreieck statt eines Rechtecks. Gib das mit 
einem DAC aus. Weiter wie bei 2).

von Egon D. (Gast)


Lesenswert?

Andi schrieb:

> 1) Mit einem FPGA kannst du den Takt um das
>    10fache erhöhen.
> 2) Mit DDS IC kannst du einen Sinus erzeugen und
>    dann den Takt mit einem Komparator daraus digital
>    bereitstellen.

Um Himmels Willen ja keinen Tiefpass erwähnen!

Das sorgt weiterhin für guten Umsatz bei den schnellen
FPGAs und für Aufträge bei Analog-Consultants.

von Andi (Gast)


Lesenswert?

Egon D. schrieb:
> Um Himmels Willen ja keinen Tiefpass erwähnen!
>
> Das sorgt weiterhin für guten Umsatz bei den schnellen
> FPGAs und für Aufträge bei Analog-Consultants.

Ich halte es für schwieriger den Jitter mit einem Tiefpass 
rauszukriegen, anstatt schon bei der Generierung zu verhindern. 
Besonders bei variablen Frequenzen.


4) Wenn dich der Jitter mehr stört, als der entstehende kleine 
Frequenzfehler, dann kannst du bei einer Software DDS auch den 
Phasenakkumulator jedes mal auf 0 setzen bei jedem Überlauf.

von Egon D. (Gast)


Lesenswert?

Andi schrieb:

> Egon D. schrieb:
>> Um Himmels Willen ja keinen Tiefpass erwähnen!
>>
>> Das sorgt weiterhin für guten Umsatz bei den schnellen
>> FPGAs und für Aufträge bei Analog-Consultants.
>
> Ich halte es für schwieriger den Jitter mit einem
> Tiefpass rauszukriegen, anstatt schon bei der
> Generierung zu verhindern. Besonders bei variablen
> Frequenzen.

Mir ist offen gestanden nicht klar, wieso alle Woche
dieselbe Diskussion geführt werden muss -- nämlich die,
dass die Verwendung hochintegrierter Mixed-Mode-ICs
NICHT dazu führt, dass plötzlich die gewohnten Gesetze
der Systemtheorie nicht mehr gelten.

Selbst Wikipädie weist ausdrücklich darauf hin, dass DDS
nur geeignet ist, BANDBEGRENZTE periodische Signale zu
erzeugen, also z.B. Sinusschwingungen. Rechtecksignale
sind aber NICHT bandbegrenzt, also sind sie für eine
Synthese direkt durch DDS nicht geeignet.

Soweit sehen wir das doch ein, nicht wahr?

Sinus-DDS erzeugt aber KEINEN !! Jitter, sondern
Quantisierungsverzerrungen, die dem Nutzsignal (additiv)
überlagert sind.
Für ein ideales DDS-System kann man zeigen, dass die
Frequenzen der durch diese Quantisierungsverzerrungen
hervorgerufen Nebenwellen alle oberhalb der Nutzfrequenz
liegen, so dass sie durch einen Tiefpass unterdrückt werden
können. Das Ergebnis ist ein (nahezu) spektral reines
Sinussignal, und das kann nun mittels eines Komparators
in ein Rechteck umgewandelt werden.

Aus irgend einem mir nicht bekannten Grund gibt es
aber unter Anfängern, Makern und Halbwissenden ein
ungeschriebenes Gesetz, das besagt, dass alle
Behauptungen über analoge Tiefpässe akademisches
Geschwätz aus dem praxisfernen Elfenbeinturm sind.

von Andi (Gast)


Lesenswert?

Um ein variables Rechtecksignal zu erzeugen reicht eben meistens eine 
vereinfachte Form der DDS, und ich denke das ist das was der TE bisher 
verwendet.

Dabei benutzt man keine Wellentabelle und keinen DAC, sondern gibt 
einfach das MSB des Phasenakkus direkt auf einen Pin aus. Ob man dabei 
noch von DDS sprechen kann? Irgenwie schon, es ist halt nur eine 2 Werte 
Tabelle und ein 1 Bit DAC. Besser wäre der Begriff NCO.

Dass er eine richtige DDS mit Sinus oder Dreieck (spart die 
Wellentabelle) verwenden soll um den Jitter zu vermeiden, war ja genau 
mein Vorschlag. Wenn der DAC sauber funktioniert, und man sowieso ein 
Rechteck per Komparator erzeugt, ist ein Tiefpass nicht unbedingt nötig. 
Eine Hysterese beim Komparator finde ich wichtiger.

von Egon D. (Gast)


Lesenswert?

Andi schrieb:

> Um ein variables Rechtecksignal zu erzeugen reicht
> eben meistens eine vereinfachte Form der DDS, und
> ich denke das ist das was der TE bisher verwendet.

Davon gehe ich auch aus, ja.


> Dabei benutzt man keine Wellentabelle und keinen DAC,
> sondern gibt einfach das MSB des Phasenakkus direkt
> auf einen Pin aus. Ob man dabei noch von DDS sprechen
> kann?

Nur in demselben Sinne, wie ein Logikgatter eine analoge
Schaltung ist: Theoretisch stimmt es in gewissem Sinne;
praktisch führt es die Gedanken in die Irre.


> Irgenwie schon, es ist halt nur eine 2 Werte Tabelle
> und ein 1 Bit DAC. Besser wäre der Begriff NCO.

Ja, zum Beispiel.
Ich würde einfach von einem Frequenzteiler mit
nichtganzzahligem Teilerverhältnis sprechen.

Es gibt mehrere Varianten, so etwas zu implementieren;
die Lösung mit dem DDS-Kern ist eine der Möglichkeiten.
Eine andere funktioniert mit Zählern und vermaschten
Rückkopplungen. Die Technik ist anders, aber das Ergebnis
dasselbe.


> Dass er eine richtige DDS mit Sinus oder Dreieck
> (spart die Wellentabelle) verwenden soll um den Jitter
> zu vermeiden, war ja genau mein Vorschlag.

Ach so, okay.


> Wenn der DAC sauber funktioniert, und man sowieso ein
> Rechteck per Komparator erzeugt, ist ein Tiefpass nicht
> unbedingt nötig.

Das stimmt -- aber schön ist es trotzdem nicht :)

Ein Pi-Filter im Ausgang bringt niemanden um und wirkt
Wunder.

> Eine Hysterese beim Komparator finde ich wichtiger.

von J. S. (engineer) Benutzerseite


Lesenswert?

Egon D. schrieb:
> Um Himmels Willen ja keinen Tiefpass erwähnen!
>
> Das sorgt weiterhin für guten Umsatz bei den schnellen
> FPGAs und für Aufträge bei Analog-Consultants.

Die Frage ist, ob da überhaupt ein TP drin ist.

unn wenn er drin ist, wie er auf die Phasensprünge reagiert. Das 
könnte nämlich genau das Problem sein, warum da ein drift drin ist, den 
man nicht möchte.

von Joe F. (easylife)


Lesenswert?

Egon D. schrieb:
> Aus irgend einem mir nicht bekannten Grund gibt es
> aber unter Anfängern, Makern und Halbwissenden ein
> ungeschriebenes Gesetz, das besagt, dass alle
> Behauptungen über analoge Tiefpässe akademisches
> Geschwätz aus dem praxisfernen Elfenbeinturm sind.

Du sprichst mir aus der Seele.
Meine Stirn ist schon ganz platt geklopft wegen 'der Tiefpass vor dem 
ADC ist quatsch, man kann das heutzutage viel eleganter "hinterher" in 
Software machen'.

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
Noch kein Account? Hier anmelden.