Forum: Digitale Signalverarbeitung / DSP / Machine Learning Kehrwert im DSP


von Philipp M. (matei)


Lesenswert?

Hallo,

ich möcht im DSP dividieren. Das brauch aber mehrere Rechenschritte, 
daher wollt ich fragen ob und wie ich den Kehrwert in C programmieren 
kann?

Philipp

von Udo S. (urschmitt)


Lesenswert?

Ich glaube ich versteh dich nicht ganz.
ich würde blauäugig sagen:
y = 1/x;

von Philipp M. (matei)


Lesenswert?

Ok, vielleich blöd gefragt.
Ich möchte die Division vermeiden und mochte durch z.B. ein Bitshifting 
oder Änderung der Bitreinfolge den Kehrwert einer Zahl bilden, wenn das 
möglich ist, und dann diese multiplizieren.
Erhoffe mir eine Zeitersparnis, durch weniger Rechenoperationen.

Philipp

von dito (Gast)


Lesenswert?

Du könntest alle Kehrwerte in einer Lookup-Tabelle speichern. Anders 
geht's glaube ich nicht.

von Detlef _. (detlef_a)


Lesenswert?


von Floh (Gast)


Lesenswert?

Philipp M. schrieb:
> Erhoffe mir eine Zeitersparnis, durch weniger Rechenoperationen.

Das klingt wieder nach Optimierungsrennen mit dem Compiler.
Aber so als Vorschlag:
Statt
a / b
rechnest du
a * (c / d)
wobei c / d = 1 / b (zumindest ungefähr)
Durch geschickte Wahl von d lässt sich die Division dann durch 
rechtsschieben ersetzen (Potenz von 2).
:-)

von Udo S. (urschmitt)


Lesenswert?

Ich denke mal daß die Division (von was eigentlich) im Compiler schon 
recht optimal umgesetzt worden ist (Speziallösungen siehe die vorherigen 
Posts)
Ich denke daß Du da nicht viel rausholen kannst.
Das Bottleneck ist meistens nicht da wo man es vermutet :-)
Viel Erfolg beim Suchen.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Udo Schmitt schrieb:
> Ich denke mal daß die Division (von was eigentlich) im Compiler schon
> recht optimal umgesetzt worden ist

Das Problem ist dass sich der Compiler exakt an den C-Standard halten 
muss, und dadurch in seiner Optimierung eingeschränkt ist.

Manche DSPs haben Befehle für Logarithmus/Exponentialfunktion (mit 
eingeschränkter Genauigkeit), damit lässt sich ein Kehrwert effizient 
berechnen.

von Philipp M. (matei)


Lesenswert?

Vielen Dank für die Anregungen.

Werd mal ein bisien ausprobieren. Sitz aber grad noch an einem anderem 
Problem.

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
Noch kein Account? Hier anmelden.