Chebyshev Approximation

Fragen und Antworten, Beispiele

Moderator: herw

Chebyshev Approximation

Beitragvon Triton » So 27. Feb 2011, 02:20

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
Triton
synthesist
 
Beiträge: 58
Registriert: So 1. Aug 2010, 18:22
Wohnort: Gießen

Re: Chebyshev Approximation

Beitragvon herw » So 27. Feb 2011, 08:45

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

ciao herw
Benutzeravatar
herw
moderator
 
Beiträge: 3044
Registriert: Mo 13. Mär 2006, 19:28
Wohnort: Dortmund

Re: Chebyshev Approximation

Beitragvon Triton » Mo 28. Feb 2011, 16:49

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
Dateianhänge
CoSinus.zip
Sinus und Cosinus
(5.98 KiB) 169-mal heruntergeladen
Benutzeravatar
Triton
synthesist
 
Beiträge: 58
Registriert: So 1. Aug 2010, 18:22
Wohnort: Gießen

Re: Chebyshev Approximation

Beitragvon Rampensau » Do 17. Mär 2011, 15:40

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
Rampensau
meister
 
Beiträge: 192
Registriert: So 6. Dez 2009, 21:32

Re: Chebyshev Approximation

Beitragvon Triton » Mo 21. Mär 2011, 14:04

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.
Benutzeravatar
Triton
synthesist
 
Beiträge: 58
Registriert: So 1. Aug 2010, 18:22
Wohnort: Gießen


Zurück zu MODULE UND MAKROS (core)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron