Seite 1 von 1

Chebyshev Approximation

Verfasst: 27. Februar 2011, 01:20
von Triton
Hatte mal u.a. einen exakten Sinus und Cosinus (und Arkustangens) gebraucht und eine Weile daran rumgeschraubt (bzw. mach ich immer wieder mal).

2*Pi ist rausdividiert, also das Makro berechnet Cos(2*pi*x) für x aus dem Intervall -.5 bis .5. (Bin immer froh, wenn keine Pis in der Struktur rumturnen, und der Wrap ist einfacher).

Ein Trick bei dem hier ist das Ausnutzen einer Symmetrie, das Umklappen an den Peaks (der Betrag macht das oben, hab ewig dran gesessen, das Compare&Routing rauszubekommen). Theoretisch kann man damit schon mit 5 Monomen eine Genauigkeit von <1E-8 erreichen, allerdings müsste man dann alle Parameter gesondert, also nicht über QuickConst (die nach 4 Stellen voll ist), reingeben. So wie ich das mal geprüft hab, sind aber alle 6 im Reaktor angezeigten Nachkomma-Stellen bei dieser Implementierung genau.

Mit noch 3 zusätzlichen Additionen + 3 Multiplikationen (also Order 8 statt 5) kann man rein rechnerisch 1E-15 als Fehler unterschreiten (müsste aber jeden Parameter superexplizit eingeben).

Cosinus (x*2*pi) von -.5 bis +.5
Bild

Cosinus (mit Wrapping und normaler Werteeingabe zwischen -pi und +pi):

Bild

Sinus (x*2*pi) von -.5 bis +.5:

Bild

---

Um an die Polynome zu kommen, hab ich länger gebraucht, bis ich auf dieses Script gestoßen bin:
http://metamerist.com/cheby/example38.htm

Re: Chebyshev Approximation

Verfasst: 27. Februar 2011, 07:45
von herw
eine Ergänzung zur Linkangabe für theoretisch interessierte:
http://de.wikipedia.org/wiki/Tschebyscheff-Polynom

ciao herw

Re: Chebyshev Approximation

Verfasst: 28. Februar 2011, 15:49
von Triton
Hier ist das Teil noch mal in eine eigene Audio-CoreCell gestopft.

Der Cosinus geht komischerweise einfacher umzuklappen als der Sinus, obwohl bei beiden der Sinus von -pi/2 bis +pi/2 approximiert wird. Der maximale Fehler müsst rund um 1E-6 liegen.

Grüße vom Jan

Re: Chebyshev Approximation

Verfasst: 17. März 2011, 14:40
von Rampensau
Die Annäherung ist erstaunlich elegant und zumindest in Reaktor der Taylorannäherung vorzuziehen.
Jedoech ist die mathematische Herleitung nicht ganz so infach wie Taylor. Ich wüsste jetzt nicht wie ich ne andere Funktion per Chebyshev annähere. Also noch nicht verstanden... Hatte ich ja auch noch nicht in Mathe. :roll:

Re: Chebyshev Approximation

Verfasst: 21. März 2011, 13:04
von Triton
Ehrlich gesagt check ich von der Approximationsform selbst fast gar nix (Numerik ist mir ein Grusel), also ich könnt sie nicht per Hand bauen und war deshalb so froh, dieses Script entdeckt zu haben (bisschen modifiziert hab ich das bei mir noch, damit Copy&Paste direkt in den Reaktor rübber etwas schneller geht).

Wo ich ganz froh bin, ist, dass das Umklappen des Sinus in eine Halbwelle ohne Routing klappt.