STM32 (nicht F4): Implementierung trigonometrischer Funktionen

Gast #3545098
Lesenswert?
• ▲
▼
Was ist die schnellste Methode sin/cos auf einem STM32 ohne FPU (=> in 
Fixpunktarithmetik) zu berechnen? CORDIC oder ein anderes Verfahren?

Wenn ich das richtig sehe braucht Cordic für 16bit mindestens 96 add/sub 
und 32 shifts, dazu den Schleifenoverhead, Speicherzugriff und 
letztendlich auch die Fallunterscheidung für die Bereiche.

Ich vermute also, dass andere Approximationen schneller sind, besonders 
mit "single cycle" Multiplikation?

In der CMSIS gibt es ja ein paar Funktionen dafür, von denen jede aber 
anders implementiert ist und verglichen mit CORDIC alle recht viel 
Speicher brauchen. Aber liege ich richtig damit, dass die Entwickler des 
Prozessors diesen auch am besten kennen und damit die optimale Lösung 
haben?
#3545198
Lesenswert?
• ▲
▼
Am schnellsten geht das mit einem Polynom, wenn der Prozessor eine 
schnelle 32x32 Multiplikation kann. Das soltte der ARM können. 
Alternativ mit Tabelle und quadratischer Interpolation.

Cordic ist nur dann schneller, wenn der Prozessor keinen 
Hardware-Multiplizierer mit der gewünschten Wortbreite hätte.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.