Chebyshev Approximation

Fragen und Antworten, Beispiele

Moderator: herw

Antworten
Benutzeravatar
Triton
synthesist
Beiträge: 58
Registriert: 1. August 2010, 17:22
Wohnort: Gießen
Kontaktdaten:

Chebyshev Approximation

Beitrag 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
Benutzeravatar
herw
moderator
Beiträge: 3122
Registriert: 13. März 2006, 18:28
Wohnort: Dortmund

Re: Chebyshev Approximation

Beitrag von herw »

eine Ergänzung zur Linkangabe für theoretisch interessierte:
http://de.wikipedia.org/wiki/Tschebyscheff-Polynom

ciao herw
Benutzeravatar
Triton
synthesist
Beiträge: 58
Registriert: 1. August 2010, 17:22
Wohnort: Gießen
Kontaktdaten:

Re: Chebyshev Approximation

Beitrag 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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
Rampensau
meister
Beiträge: 192
Registriert: 6. Dezember 2009, 20:32

Re: Chebyshev Approximation

Beitrag 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:
Benutzeravatar
Triton
synthesist
Beiträge: 58
Registriert: 1. August 2010, 17:22
Wohnort: Gießen
Kontaktdaten:

Re: Chebyshev Approximation

Beitrag 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.
Antworten