Diskussion:Sinus berechnung

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Hallo,

wieviele Multiplikationen brauchst Du, um einen beliegen Wert zu bestimmen?# Wenn Dein Eingabe FOrmat wie bei linearer Näherung: http://www.mikrocontroller.net/articles/AVR_Arithmetik/Sinus_und_Cosinus_(Lineare_Interpolation) High Byte = ganzzahliger Winkel in Grad Low Byte = Vielfach von 1/256 Grad also Dein DX ist

 dx=DX*math.pi/2.0/n              | * Konstante 1
 dx2=dx**2                        |             1
  si=sin[k]*(1.0-0.5*dx2)         |             2
  co=sin[n-k]*dx*(1.0-1.0/6.0*dx2)|             3
  return (si+co)/float(div)       | *Konstante  1

Sind 8 Multiplikationen und 5 Konstante Aber wie http://www.mikrocontroller.net/articles/Benutzer:Gjlayde schon schrieb. Wofür braucht man das noch. Lineare Näherung ist wesentlich schneller und Cordic wäre auch für Attiny's ohne Mul Befehle geeignet und überhaupt, wer braucht diese Genauigkeit.

Ein ATxmega könnte ja 12-Bit Sinus-Schwingungen auf seinem DAC ausgeben mit fast 500.000 Werten in der Sekunde bei 32 Mhz 20 Khz also mit 25 Stützstellen.