mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP linear Interpolieren mit mehreren Parametern


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte eine Fkt. Wert = F(a,b,c,d,e,f) mit mehreren Parametern 
linear interpolieren. Mit einem Parameter ist das ja kein Problem, 
findet man ja genügend Infos im Netz. Mit mehreren Parametern habe ich 
bis jetzt leider
noch nix brauchbares gefunden. Kann doch eigentlich nicht so wild sein, 
oder?
Habt ihr ne gute Adresse?

Gruss
Dirk

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ab drei Parametern kann man sich das im dreidimensionalen Raum nicht 
mehr vorstellen.

Ich hab das auch mal versucht, nur zweidimensional, aber als kubisch 
angenäherte Gerade  - nein umgekehrt eine Näherungs-Potenzfunktion bis 
zur dritten Potenz zu finden für zwei Parameter, also eine krumme Fläche 
im Dreidimensionalen (mit Matlab gezeichnet).
Vorgegeben war eine Tabelle, ich wollte es als analytische Funktion 
haben, um es als Programm oder Tabellenkalkulations-Blatt berechnen zu 
können, es ging um eine Filterberechnung.

Nacheinander annähern war die Lösung, erst die vier Koeffizienten jeder 
Geradengleichung wenn man einen Parameter festhält, und anschließend 
eine Näherungsfunktion für die Kurve die die Koeffizienten bilden.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in deinem Fall n-1 Parameter festhalten und den einen 
interpolieren, dann den nächsten usw.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Totales Differenzial und gut.

Autor: Matthias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
nennt man wohl "Taylorreihenentwicklung mit mehreren Variablen"..
guckst du Anhang unter Punkt 8.4.2, auf Seite48.. Da gibts ne Formel...

Aber im Prinzip ist es genau das, was  Christoph Kessler (db1uq) 
sagte...

Noch Fragen?

Autor: Rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Damit wir uns verstehen. Interpolieren heisst die Funktion ist in den 
Stuetzstellen exakt und interpoliert dazwischen. Eine Taylorreihe, die 
abgebrochen wird hingegen ist approximierend. Dh nur in einem Punkt 
falls ueberhaupt exakt, sonst nur in der Naehe. Approximationen machen 
auch Sinn wenn die Daten nicht exakt sind, sonder ein gewisses Rauschen 
enthalten. Besser in moeglichst vielen Punkten eine gute Funktion als in 
nur wenigen eine sehr Gute.

Autor: Interpolator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mal klarstellen, was du interpolieren willst?
Bei einer Koordinate ist die Interpolation zwischen F(x1) und F(x2):
F(t*x1+(1-t)*x2).
In deinem Fall zwischen F(a1,b1,...) und F(a2,b2,...):
F(t*a1+(1-t)*a2,t*b1+(1-t)*b2,...).

Da braucht man nix bullshitten von wegen Differential oder Taylorreihe.

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'lineare Algebra' heißt die Disziplin. Für ne lineare Interpolation 
bestimmt man die Parameter 'a' und 'b' der linearen Gleichung y=a*x+b 
mit den bekannten Stützstellen (x,y). Dann setzt man beliebige x ein und 
interpoliert linear. Das funzt für beliebige Dimensionalität von x und 
y. Für x und y eindimensional braucht man 2 Stützstellen, das is ne 
Gerade. Für x,y 4-dimensional (damit man sich das auf keinen Fall 
vorstellen kann) braucht man 5 Stützstellen. Angehängt ein Matlab 
script, das das beispielhaft macht. Als Funktionswert der Interpolation 
in der letzten Zeile kommt '42' raus. Das kommt zwar bei allen wichtigen 
Rechnungen immer raus, in diesem Falle ist das Beispiel aber 
entsprechend gewählt.

math rules!
Gute Nacht
Detlef


x1=[1 2 2 3]; y1=-14.575;
x2=[1 2 2 4]; y2=2;
x3=[4 3 2 1]; y3=3;
x4=[1 4 3 2]; y4=4;
x5=[4 2 3 1]; y5=5;
%x*c+b=y;
M=[x1;x2;x3;x4;x5];
M=[M ones(5,1)];
c=inv(M)*[y1;y2;y3;y4;y5];

[1.5 2.5 3.5 4.5 1]*c

Autor: Ingenieur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hast Du aber keine stetige Funktion mehr, das wird aber in vielen 
technischen Anwendungen benötigt. Oft ist eine Approx besser - besonders 
weil die Werte, die angenähert werden müssen, sowieso nur ungenaue 
Messwerte sind. Du brauchst eine mehrdimensionale Ausgleichsfunktion!

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast will linear interpolieren. Meine Einlassung zeigte, wie man linear 
interpoliert. Punkt.

Von stetiger Funktion, Genauigkeit und mehrdimensionaler Ausgleichsfkt. 
war in der Frage nicht die Rede. Natürlich kannst Du auch die 
quadratische Fkt. y=a*x*x+b*x+c für mehrdimensionale x,y fitten oder 
mehrdimensionale splines machen, oder was auch immer, das ist glatt, 
toll, und macht Spaß! Gefragt war das nicht.

Cheers
Detlef

Autor: BaaA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Gast will linear interpolieren. Meine Einlassung zeigte, wie man linear
>interpoliert. Punkt.

Nein. Deine Einlassung zeigt, wie man eine Ebene durch mehrere Punkte 
legt. Diese Einlassung hättest du besser ausgelassen, weil sie nichts 
mit der Interpolation mehrerer Parameter zu tun hat.

Die kann man alle unabhängig voneinander interpolieren, und das ist 
nichts anderes als in Fall eines einzigen Parameters. Was der Gast 
sicherlich nach Interpolators Einlassung auch bemerkte, weshalb er sich 
nicht weiter hier niedergelassen hat.

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Diese Einlassung hättest du besser ausgelassen,

finde ich nicht, würde ich nochmal tun.

>>weil sie nichts mit der Interpolation mehrerer Parameter zu tun hat.

Nein!?! Magst Du Dich erklären?

Cheers
Detlef

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin jetz da drin.
http://www.elektronik-projekt.de/index.php
Gruss Holger.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.