Hallo,
ich hoffe ich bin hier im richtigen Forenteil gelandet...
meine Fragen beziehen sich auf die Interpolation von einem
Quadratursignal von einem Sensor. Es geht mir lediglich um das
therotische Verständniss, nicht um irgendeine Art von Umsetzung.
Als Grundlage:
Ich habe 2 Sinus-Siganle 90° phasenverschoben zueinander - also ein Sin
& Cos Signal. Diese möchte ich (linear) Interpolieren.
Zunächst habe ich die beiden Funktionen.
S1=A0*SIN(PHI)
S2=A0*COS(PHI)
wobei A0 die Amplitude sein soll welche bei beiden Signalen gleich ist.
Meiner Recherche nach kann man nun mithilfe des Arkustangens der
Interpolationswert ermittelt werden?! Und zwar so:
PHI=arctan(sin(PHI)/cos(PHI)) [bzw. arctan2]
Da erhalte ich eine "Sägezahnfunktion" als Resultat, welche laut meiner
Recherche von digitalen Interpolationsgeräten umgewandelt wird in
interpolierte Rechtecksignale...
Ziel einer Interpolation ist es ja zu gegeben Messwerten einer Funktion
weitere Stützpunkte zu finden. Ich verstehe nicht warum aus der
"Sägezahnfunktion" mehr Zählschritte von ADC umgewandelt werden können
als von der Sinus- und Cosinusfunktion bzw. wie aus der einen
"Sägezahnfunktion" dann wieder 2 Rechtecksiganel gewonnen werden können.
Hab die Funtionen mal im Anhang dargestellt...
Vielen Dank schonmal!
lg m.s.
m.s. schrieb:> Da erhalte ich eine "Sägezahnfunktion" als Resultat,
Nein, Du erhälst eine Gerade, die vom Arctan immer wieder in das
Intervall [-Pi:Pi[ gemappt wird:
> PHI=arctan(sin(PHI)/cos(PHI))
PHI = arctan(sin(PHI)/cos(PHI)) = arctan(tan(PHI)) mit sin(PHI)/cos(PHI)
= tan(PHI)
Dein PHI ist die Phase und die läuft immer weiter (wird aber meist auf
Vielfache von 2Pi+Rest umgeschrieben).
> wie aus der einen> "Sägezahnfunktion" dann wieder 2 Rechtecksiganel gewonnen werden können.
Jetzt haben wir eine Gerade. Wie man daraus wieder einen Sinus macht,
kriegst Du raus, oder ? (Den Cosinus schaffst Du dann auch ;-)
Grüße
Andreas
ok vielen dank für die antwort, aber der zusammen hang interpolieren
wird mir dennoch nicht klar. heist das jz die geraden haben jz einfach
durch lieare interpolation mehr stützstellen bzw. abtastwerte als der
sinus?
lg m.s.
m.s. schrieb:> aber der zusammen hang interpolieren> wird mir dennoch nicht klar
Das liegt aber eventuell daran, dass Du die Vorgehensweise beim
Interpolieren ganz allgemein noch nicht verinnerlicht hast. Kann das
sein ?
Grüße
Andreas
gut möglich...
bedeutet das das die gerade einfach liear interpoliert wird und man mit
dem arctan einfach nur aus sinus und cosinus eine gerade "modeliert"???
l.g. martin
m.s. schrieb:> gut möglich...
Ich hab auch irgendwie so das Gefühl.
Interpolieren bedeutet doch, dass man einen Messwert hat, den aber nicht
über die unter Umständen aufwändige korrekte Umrechnung in einen anderen
Wert zurückrechnen will.
ich weiß bei einem Messwert von 200 messe ich gerade eine Temperatur von
35°C. Bei einem Messwert von 250 wären es 38°C.
Jetzt ist aber der Zusammenhang zwischen Messwert und tatsächlicher
Temperatur nicht so einfach, dass man da eine einfache Formel angeben
könnte, in die man den Messwert einsetzt und die Temperatur rauskriegt.
Im allgemeinen Fall.
Allerdings liegen meine beiden bekannten Werte nahe genug beeinander, so
dass ich (beispielsweise) so tun kann, als ob sich in diesem Intervall
die Umrechnung näherungsweise wie eine Gerade verhält. Ich rechne daher
einen Messwert von 230 so um
t = (230 - 200)/50*3 + 35 = 36.8°C
und das Ergebnis ist genau genug, selbst wenn ich weiß, dass der
eigentliche Zusammenhang Temperatur und Messwert in Wirklichkeit ein
Polynom 4. Grades ist und ich eigentlich zur Umkehrung dieser Rechnung
ein derartiges Polynom lösen müsste, was alles andere als trivial ist.
m.s. schrieb:> Ich habe 2 Sinus-Siganle 90° phasenverschoben zueinander - also ein Sin> & Cos Signal. Diese möchte ich (linear) Interpolieren.
Du schreibst Unsinn.
Was bittesehr möchtest du denn interpolieren?
Karl Heinz hat es dir (hoffentlich) im Prinzip schon richtig
verklickert: Interpolieren heißt, einen Wert zu ermitteln, der zwischen
zwei Stützstellen liegt.
Zwei Funktionen oder auch zwei Sinussignale kann man nicht
interpolieren, das ist ne sinnfreie Aktion.
Also habe du mal die benötigten Stützstellen und denk dann ans
Interpolieren.
W.S.
ok das folgt ja der einachen gleichung:
y=y1+((y2-y1)/(x2-x1))*(x-x1)
bedeutet das das die arctan-funktion nichts anders ist als die näherung
von sinus und kosinus für einen bestimmten wert von Phi?
l.g. m.s.
So wie ich das sehe, geht es doch um folgendes
Vom Encoder kriegst du die Werte für sin(phi) bzw. cos(phi). Und daraus
müsstest du jetzt kompliziert über acos/asin den Winkel phi ruasrechnen.
Der atan zeigt dir aber eine andere Mögllichkeit auf, weil, was du ja
schon gesehen hast, der zu einer Geraden wird.
Du dividierst den sinus-Wert (vom Sensor) durch den Cosinus-Wert
(ebenfalls vom Sensor) und mit diesem QUaotienten gehst du in die
lineare Gleichung, die die Gerade deines atan-s beschreibt und kriegst
so ganz banal den gesuchten WInkel, der vom Encoder festgestellt wurde.
D.h. anstelle von Arcus-Winkelfunktionen hast du eine Division und
einmal lineare Gleichung.
Das ist das, wo in diesem Zusammnhang für mich der Begriff
'Interpolation' noch am ehesten Sinn macht.
genau das von herr buchegger beschriebene problem ist es - nur soll man
laut diveresn büchern mit der arctan-funktion aus sinus/cosinus der
interpolationswert berechnet werden und bei meinem anwendungsfall geht
es nicht um winkel sondern längenmessung...
die frage is was mahc ich mit dem berechnetn interpolationswert um ne
genauere teilung der sinus/cosinus-signalperiode zu bekommen???
l.g. martin
> Sägezahnfunktion
Du bekommst von atan den Winkel und der steigt halt linear bis 90 und
macht dann im nächsten Quadranten weiter.
Wenn du jetzt die 90 Grad in 4 Grad Schritte mit 1 Grad Kanalauflösung
umwandeln willst:
KanalA=((grad-1)/2)%4
KanalB=(grad/2)%4
Beim Übergang der 90 Grad musst du aufpassen, also eher atan2 verwenden.
Ob man auf 1 grad auflösen kann ohne mussing steps hängt von der
Qualität deines Analogsignals ab.
Warum willst Du denn den Sinus mit Geraden interpolieren? Wenn, dann
bitte abschnittsweise mit der Integration über die richtige Bogenläng.
Die lässt sich ja sehr einfach bestimmen, wenn man sie als
Cosinus=Steigung=Integral schon hat.
soll das heißen ich berechne mit den atan2 den Phasenwinkel der
funktionen bei einem bestimmen punkt(x,y) und den kann ich dann mit
einem bestimmten wert teilen -> was dann die interpolationszahl ergibt?
lg
Viel Zielfuehrender waere das Problem zu beschreiben als
-Context
-Gegeben
-Gesucht
Und nicht einen Weg zu verfolgen, der wenig bis nichts mit dem Problem
zu tun hat.
Also ich kenne in diesem Kontext (von manchen Herstellern auch die
angabe "Interpolationsfaktor" oder so ähnlich). Gemeint ist damit
meistens Folgendes :
Bei einem Weggeber mit Sinus/Cosinus Ausgängen könnte man nur die
Nulldurchgänge auwerten (wenn man nicht AD-Wandeln würde). Also ihn als
Digitalen Weggeber betrachten würde.
Nun biten die Hertseller eine wie auch immer geartetes "Modul" an mit
unterschiedlichen "Interpolationsfaktoren", dies sind jedoch nur zwei
AD-Wandler und nen µC der dadraus zwei Digitale Quadratursignale mit
einer höhren Schrittfrequenz macht.
Da kommen bei einem Faktor von 1024 dann halt 1024 Digitale Perioden
stat einer Analogen Periode raus.
Karl Heinz Buchegger schrieb:> Interpolieren bedeutet doch, dass man einen Messwert hat, den aber nicht> über die unter Umständen aufwändige korrekte Umrechnung in einen anderen> Wert zurückrechnen will.
"Interpolieren" bedeutet für mich immer, statt des korrekt errechneten
Wertes einen ähnlichen zu nehmen, der einfacher berechnet werden kann.
Das ist bei der Auswertung des sin/cos-Verfahrens aber nicht der Fall.
Wenn ich korrekte sin/cos-Werte am Eingang habe, kann ich jeden
beliebigen Zwischenwert in Grad hundertprozentig korrekt ohne Fehler
berechnen. Deshalb ist m.E. hier das Wort "Interpolation" nicht ange-
bracht. Das die echte Berechnung, insbesondere bei digitalen Verfah-
ren, immer einen Restfehler hat, spielt in der Theorie keine Rolle.
Speziell Hersteller, die mit diesem Berechnungsverfahren schon eine
jahrzehntelange Erfahrung haben, schaffen es wohl inzwischen, damit
eine sinnvolle Auflösung von 360/1000° zu erzielen und damit sogar
in den Nanometerbereich vorzudringen. Das gleiche Verfahren wird ja
auch bei Interferrometern benutzt. Dort kommt man dann bei Längen-
messungen bis in den Subnanometerbereich hinein. BTDT
Gruss
Harald
Harald Wilhelms schrieb:> "Interpolieren" bedeutet für mich immer, statt des korrekt errechneten> Wertes einen ähnlichen zu nehmen, der einfacher berechnet werden kann.
Es bedeutet eher, einen Wert zu berechnen, wo kein Stützpunkt in einer
Tabelle vorhanden ist.
http://de.wikipedia.org/wiki/Interpolation_%28Mathematik%29
Am einfachsten ist eine lineare Interpolation. Aber es wird schnell
komplizierter, wenn man eine Interpolation höheren Grades nimmt...
Interpolation kann man auch nutzen, um die Nulldurchgänge genauer zu
bestimmen, als es die zeitliche Auflösung des ADCs bringen sollte. Das
geht deshalb gut, weil der Sinus in der Nähe des Nulldurchgangs ungefähr
dem Argument des Sinus entspricht (also einer Gerade). Wenn ich weiß,
daß der Nulldurchgang im Meßraster zwischen n=1032 und n=1033 liegt,
kann ich durch die Interpolation die zeitliche Auflösung noch deutlich
steigern, wenn mir der Funktionswert bekannt ist.
Ist vielleicht dieser Zusammenhang gemeint?
Viele Grüße
Nicolas
Lothar Miller schrieb:> Es bedeutet eher, einen Wert zu berechnen, wo kein Stützpunkt in einer> Tabelle vorhanden ist.
"Stützpunkt" und "Tabelle" sind für mich eigentlich auch nur Worte,
die aus unserem heute üblichen digitalen Denken resultieren.
Normalerweise ist einme analoge Rechnung immer hundertprozentig
genau ohne irgendwelche Abweichungen. Jede digitale Berechnung
dagegen ist immer nur eine Annäherung.
Gruss
Harald
PS: Also gehen wir alle wieder auf die früher übliche Rechenschieber-
rechnung über. Der ist nämlich zumindest theoretisch genauer wie jeder
Digitalrechner. :-)
Harald Wilhelms schrieb:> Interpolieren
Genau bekannt sind nur die Nulldurchgänge. Aus dem Sinus nun zu
berechnen wo man zwischen den Nulldurchgängen steht ist schätzen , weil
der Sinus keineswegs exakt zur Position passt.