Aufsplittung einer Hyperbelfunktion in linearisierte Abschnitte - gute Idee?

Gast #1659756
Lesenswert?

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 #1663006
Lesenswert?

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
Gast #1663146
Lesenswert?

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

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