Takte der arctan Fkt und andere

Gast #253362
hallo,

ich will ne winkelauswertung eines drehgebers realisieren.

das kann  man über eine nachlaufsteuerung und einem zähler realiseren
oder aber durch direkte berechnung des

winkel=> arctan=sin(x)/cos(x) aus den resolversignalen.

wenn man sich für die zweite variante entscheidet, stellt sich die
frage wie lange (wieviel taktzyklen) ein dsp dafür braucht.
danach würde sich auch die auswahl des eventuellen dsp's richten, wenn
es nicht bei dieser einen berechnung bleiben soll.

woher weiß man generell wie solche prozessoren bestimmte rechenbefehle
ausrechnen?
arctan kann man zum beispiel in einer reihe entwickeln, so dass dann
nur noch addition und multiplikation übrig bleibt, was ein dsp gut
rechnen kann. macht dies ein auf dsp zugeschnittener compiler?
also leute mit erfahrung werden über die frage lachen, würde mich
dennoch für tips und hinweise bedanken...

danke

gruß alex
Gast #253363
arctan=sin(x)/cos(x)

Nicht wirklich ...

Ein gängiger DSP benötigt dafür genauigkeitsabhängig keine 100 Takte.
Typische Taktfrequenzen liegen zwischen 80 ... 400MHz. Basisfunktionen
werden z.T. mitgeliefert (je nach Hersteller).
Gast #253364
Hallo,

wenn Du z.B. nen AVR (uC, nicht mal DSP) in C programmierst und
atan2((double)y,(double)x) benutzt, werden die benötigten Routinen aus
einer library zugelinkt, das kostet 1k codesize pi*Daumen, Berechnung
dauert auch, muß man sich aber nicht um Reihenentwicklungen etc.
kümmern, selbst ein solch kleiner 8-Bitter kann das gut, wenn man Zeit
und Platz hat.

Den ersten Teil der Frage verstehe ich nicht richtig
(tan(x)=sin(x)/cos(x), was issn nen Resolver), ich habe aber ne prima
C-Routine, die Dir aus zwei 16-Bit y,x den Winkel dazwischen als
16Bit-Zahl berechnet, recht schlank und ohne Multiplikationen, wenn die
nützt, kann ich die posten.

Cheers
Gast #253365
"recht schlank und ohne Multiplikationen"

Lass mich raten, das Cordic-Verfahren?

Sobald die reale Hardware über einen Multiplizierer verfügt ist diese
Variante im Vergleich zu Reihe usw. nicht mehr praktikabel ...
Auf FPGAs u.Ä. hat sie jedoch ihre Berechtigung.

Eine Reihenentwicklung wird in den gängigen Bibliotheken eher nicht
verwendet. Besser ist es, mittels der Methode der kleinsten Quadrate
ein Polynom "durch" charakteristische Punkte der Ursprungsfunktion zu
legen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.