Aufsplittung einer Hyperbelfunktion in linearisierte Abschnitte - gute Idee?

Gast #1659756
Moin zusammen,

ich stehe gerade vor einem Problem, hab eine Möglichkeit gefunden, und 
wollte mal hören was ihr davon haltet.

Ich messe die Zeit zwischen zwei Impulsen und ordne dieser Zeit einen 
Wert zu. Der Funktionsverlauf ist hierbei "unglücklicherweise" eine 
Hyperbel. Da ich dank vieler sonstigen Rechnungen nicht Unmengen an 
Rechenzeit zur Verfügung habe, ist es schlecht hier die Division 
einzuführen :(

Also hab ich mir folgendes überlegt:

Ich Teile die Funktion in Abschnitte, die ich dann linearisiere, somit 
umgehe ich zumindest die Division. Das bringt zwar einen 
Ungenauigkeitsaspekt mit sich, doch lässt sich dieser ja mit der 
Abschnittsanzahl regeln.

Nun zum Wertebereich: Der Wertebereich ist ziemlich groß, worauf ich auf 
uint32_t gehen muss.
Die Zeit-Achse reicht hierbei von "180ms" bis 1 800 000ms.
Die zugehörige y-Achse von 1 bis 10 000.

Was haltet ihr von der Idee? - Oder habt ihr vielleicht noch eine 
bessere?
PS: Mein µC ist der Atmega169P (32768Hz Taktung). AVR-GCC 
Programmierung.

Merci beaucoup
Marcel
Gast
Ich fürchte, so viel schneller als eine Division ist der Tabellenzugriff 
und die anschließende Rechnerei auch nicht.
FPU-Hardware verwendet Näherungsverfahren, um die Division zu 
beschleunigen, aber die haben eben auch eine richtig schnelle 
Multiplikation zur Verfügung, was auf dem AVR für 32bit-Zahlen ja nicht 
mehr gilt. Siehe 
http://en.wikipedia.org/wiki/Division_(digital)#Fast_division_methods
Bei komplexen Funktionen wie Sinus, macht das ja auch Sinn.
Aber für 1/n eine Tabelle anzulegen, finde ich schon etwas übertrieben.
Das ist allerdings auch der Grund, warum ich immernoch gerne auf den 
guten, alten 51er zurückgreife - der kann teilen. ;-)


Gruß

Jobst
Gast
Was ist das denn für eine Hyperbel?
Was für ein mathematischer Zusammenhang?

Ein einfaches Beispiel bei dem die Dauer zwischen zwei Impulsen im 
Zusammenhang mit einer gewissen Form von Hyperbel steht, ist der 
zwischen Frequenz und Periodendauer. In diesem Fall wäre es vielleicht 
auch möglichdie Messmethode so zu ändern, das man die Anzahl Impulse 
eines HW- oder SW-Generators (also eines Timerinterrupts) zwischen zwei 
Impulsen zählt. Dann braucht man keine Division mehr. Höchstens noch 
eine Multiplikation.

Liesse sich das in Deinem Fall vielleicht anwenden?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.