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!
@ 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
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
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.