Berechnung Tuning Word (Nachkommastellen)

Gast #732743
Lesenswert?

Hallo

ich habe eine Frage zu einer Berechnung des Tuning Words für einen DDS 
Baustein.
Das TuningWord errechnet sich ja wie folgt:
                          2^32
TuningWord =  fout  *   -----------------
                         SystemClock

Da der SystemTakt konstant bleibt habe ich mir einen eine Konstante 
deklariert. (2^32 / Systemtakt)
Diese Konstante multipliziere ich jetzt mit der Frequenz (fout) und 
erhalte das Tuning Word. Jedoch ist die Konstante ja mit 
Nachkommastellen versehen. Was gibt es für Möglichkeiten den 
Rundungsfehler möglichst gering zu halten?

Danke euch!
#732752
Lesenswert?

@ MArtin (Gast)

>ich habe eine Frage zu einer Berechnung des Tuning Words für einen DDS
>Baustein.

Das Thema hatten wir vor kurzem erst SEHR ausführlich.

>Nachkommastellen versehen. Was gibt es für Möglichkeiten den
>Rundungsfehler möglichst gering zu halten?

Ja, Festkommaarithmetik.

Beitrag "Frage zur C Syntax"
Beitrag "Re: Frage zur C Syntax"

Jaja, als Workaround kann/muss man auf dem AVR Fliesskomma nehmen, 
allerdings verliert man dann gut 9 Bits Auflösung.

MFG
Falk
#732754
Lesenswert?

Was spricht gegen Festkommaarithmetik?

Wie breit ist fout bzw. SystemClock?
Wie genau muss das sein?

Du kannst z.B.

                          2^(32+n)
TuningWord =  (fout  *   -----------------) / 2^n
                         SystemClock

berechnen. n wird einfach so gewählt, dass deine Konstante beim 
kleinsten Möglichen Takt nicht zu groß wird.

"/ 2^n" ist natürlich eine Shift-Operation

Gruß

Kai

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren