Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich nehme mit einer Zeilenkamera Spektren auf und Werte diese mit LabVIEW aus. Dabei "sehe" ich im Signalverlaufsgraphen auf der X-Achse die Pixel Nr. und auf der Y-Achse den jeweiligen 12bit Intensitätsmesswert. Bis hier hin alles gut.
Nur jetzt möchte ich gerne eine Umrechnung von Pixel # in Wellenlänge einbinden.
Dazu habe ich schon 2 Cursor in das Diagramm eingefügt und mit dessen Werten und definierten Wellenlängen aus Literatur möchte ich die x-Achse neu skalieren.
Ein Beispiel: untersucht wird eine Helium-Lampe dessen Spektrallinien bekannt sind.
Diese Wellenlängen-Werte werden dann zusammen mit den Cursorwerten an den Peakpositionen zu neuen X-Wellenlängen-Werten berechnet.
Mit Hilfe von Formeln in einem Sub VI werden diese berechnet.
Dies dient dann dazu, um später die Wellenlängen abhängige Absorption von bestimmten Medien zu untersuchen.
Deshalb muss die Kalibrierung mit bekannten Wellenlängen, der Helium Lampe, erfolgen.
Mein Problem nun:
Wie bringe ich die alten "Y-Intensitäts-Werte" mit den neuen "X-Wellenlängen-Werten" zusammen in ein Diagramm, oder besser noch in das selbe?
Ich hoffe ich konnte mein Problem verständlich erklären, ansonsten schreibt alle Fragen die ihr habt, mögen sie noch so banal sein.
Einen Signalverlaufsgraphen kannst du bspws mit der "Buendelfunktion" einmal einen Startwert X0, die Schrittweite dX und das Wertearray uebergeben - Problem hierbei ist nur, dass du fuer das gesamte Array das du angibst die gleiche Schrittweite hast, was dir ws net viel helfen wird.
Wenn die Schrittweite bei deinem Y-WerteArray gleich bleibt, kannst weiterhin mit einem Signalverlaufsgraphen arbeiten, wenn das nicht der Fall ist steig auf den XY Graphen um!
Ad Werte kopieren:
Die einfachste Moeglichkeit ist es, von deinem Graphen ein Property Node (Blockdiagramm - Rechtsklick Maus auf das Anzeigeelement - Erstelle - Eigenschaftsknoten)... In diesem Eigenschaftsknoten suchst nach dem Eintrag "Wert" (diesen kannst auf schreiben und lesen umschalten (ebenfalls wieder mit rechtsklick auf das property node))
So kannst bspws bei einem Signalverlaufsgraphen als auch bei einem XY Graphen neue Werte schreiben...
ich habe das in einer Anwendung für unseren Detektorbauer mit einem XY-Graphen gelöst.
Halt nur nicht in Wellenlänge, sondern in eV.
Man positioniert zwei Cursor auf bekannte Werte und gibt dazu die neuen X-Werte an. der Rest der Skala wird dann linear berechnet.
hier ein Beispiel.
Die eingabe der neuen Werte für die X Achsennormierung habe ich per Controls gelöst. Drumherum noch ein paar hübsche Schalter, und freie Cursor wahl und schon gefällt es auch dem Kunden.
Was für eine Art von Spektrometer hast Du denn da gebaut? Ich meine wie separierst Du nach den Wellenlängen? Nimmst Du dazu ein Biprisma oder einen Kristall? In beiden Fällen ist nämlich die Funktion die einem Kanal (Ort) eine Wellenlänge zuordnet NICHT linear! Dies gilt nur genähert!
Hab auch mal an nem Kristall Diffraktionsspektrometer programmiert, daher der Tip. Wenn Dich die genaue Formel interessiert sag bescheid!
Zu Deinem ursprünglichen Problem: Hör auf die anderen und nimm XY-Graph, dann ist das kein Problem mehr!
Das ist schon ne ganze Weile her, dass ich das gemacht habe. Das Spektrometer hing damals an nem 286er-Messrechner, da war nix mit LabVIEW! :-)
Den CCD-CHIP wird mal wohl nur noch in Technik-Museen finden :-)