29.03.2014, 14:15
(Dieser Beitrag wurde zuletzt bearbeitet: 29.03.2014 14:35 von jg.)
Beitrag #1
|
Adeaphon
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Mar 2014
2013
2014
EN
23xxx
Deutschland
|
Logarithmische Signaldarstellung
Hallo,
ich versuche mich gerade an einer Autokorrelation eines FCS.
Aus der Messdiode kommt ein 1D-Signal welches Zeitpunkte beinhaltet an denen Photonen detektiert worden sind. Über ein NI USB-6210 Messegerät gelangen die Daten in LabVIEW. Nun habe ich eine .vi geschrieben welche die Daten sammeln, verarbeiten und logarithmisch mir die Autokorrelation darstellen soll.
Ideal sollte es so aussehen:
Nun sieht meine Kurve so aus:
Ich habe die .vi und einen Datensatz zur Veranschaulichung meines Ansatzes mal hochgeladen
FCS.zip (Größe: 328,91 KB / Downloads: 290)
Hat jemand einen Tip woran es liegen könnte?
Ich glaube der Datenstrom in die Autocorrelationsfunktion stimmt noch nicht ganz. Eigentlich müsste aus der x-Achse ein Zeitverlauf sein, bisher sind es aber nur die Datenpunkte. Aber ich habe keine richtige Idee wie ich die zeitliche Abfolge vorbearbeiten sollte um sie dann korrelieren zu können.
EDIT jg: externe Links gelöscht
|
|
|
29.03.2014, 14:29
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Logarithmische Signaldarstellung
Bitte Anhänge und Screenshots hier im Forum hochladen (vgl. LVF-Regeln)
Danke, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
31.03.2014, 08:48
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2014 08:51 von GerdW.)
Beitrag #3
|
GerdW
______________
Beiträge: 17.467
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Logarithmische Signaldarstellung
Hallo Adeaphon
Zitat:Ich habe die .vi und einen Datensatz zur Veranschaulichung meines Ansatzes mal hochgeladen
Schön wäre ein VI ohne DAQ und nur ein Datensatz zum Probieren. So hat man 4 komische BMPs und 4 zugehörige Textdateien und darf sich irgendetwas davon aussuchen…
Was für Werte erwartest du, wenn du sowas hier autokorrelierst?
Zitat:Eigentlich müsste aus der x-Achse ein Zeitverlauf sein, bisher sind es aber nur die Datenpunkte
Die Autokorrelations-Funktion bekommt nur Datenpunkte geliefert und gibt auch nur solche aus. Die Zuordnung zu einer Zeitachse musst du selbst erledigen, z.B. durch Nutzung des Waveform-Datentyps zur Darstellung oder durch entsprechende Skalierung der X-Achse…
P.S.: Ist dir schon einmal aufgefallen, dass deine BMPs bei Konvertierung nach PNG nur noch ca. 1% des Speicherplatzes benötigen würden?
|
|
|
31.03.2014, 09:48
Beitrag #4
|
Adeaphon
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Mar 2014
2013
2014
EN
23xxx
Deutschland
|
RE: Logarithmische Signaldarstellung
Hallo GerdW,
danke für deine Antwort
(31.03.2014 08:48 )GerdW schrieb: Schön wäre ein VI ohne DAQ und nur ein Datensatz zum Probieren. So hat man 4 komische BMPs und 4 zugehörige Textdateien und darf sich irgendetwas davon aussuchen…
Ich hatte die VI hochgeladen in der Art wie ich sie gerade nutze. Inwiefern man den DAQ-Block entfernen kann für das hochladen hier muss ich schauen.
(31.03.2014 08:48 )GerdW schrieb: Was für Werte erwartest du, wenn du sowas hier autokorrelierst?
Der Datensatz zum autokorrelieren soll "Gesamte Messung" sein, die anderen Graphen und Datensätze waren nur zur Veranschauung mit hochgeladen.
Der verwendete Datensatz ist die Dunkelzählrate der APD. Messungen mit Fluoreszenzproben werde ich heute versuchen, sobald der Strahlengang fertig ist.
(31.03.2014 08:48 )GerdW schrieb: Die Autokorrelations-Funktion bekommt nur Datenpunkte geliefert und gibt auch nur solche aus. Die Zuordnung zu einer Zeitachse musst du selbst erledigen, z.B. durch Nutzung des Waveform-Datentyps zur Darstellung oder durch entsprechende Skalierung der X-Achse…
Ähnliches wie du es gemacht hast habe ich auch probiert. Indem ich mir ein Array erstellt habe mit dem Datenstrom aus der Korrelation und der absoluten Messzeit.
Nur ist diese Zeit eigentlich auch nicht die Zeit die ich haben möchte auf der Achse. Eigentlich möchte ich das Tau der Autokorrelation auf der x-Achse haben. Gibt es eine Möglichkeit das intern verwendete Tau der Autokorrelation abzugreifen für die x-Achse?
So sollte es am Ende aussehen:
Der untere Graph stellt ein Äquivalent zu meinem Histogramm dar und der obere Graph soll die Darstellung der Autocorrelation sein. Nur benötige ich dann für die x-Achse eben das Tau welches in der AutoCorr-VI von Labview genutzt wurde.
|
|
|
31.03.2014, 10:00
Beitrag #5
|
GerdW
______________
Beiträge: 17.467
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Logarithmische Signaldarstellung
Hallo Adaephon,
Zitat:Eigentlich möchte ich das Tau der Autokorrelation auf der x-Achse haben.
Das schöne an der LabVIEW-Hilfe ist, dass sie wirklich jede Funktion (auf der Palette) erläutert. So auch die Autokorrelation!
Und das findet man in der Hilfe zur Autokorrelation:
Wie ich oben schon einmal sagte: Wenn man eine Zeitachse haben will, muss man ein Waveform erstellen…
|
|
|
31.03.2014, 16:18
Beitrag #6
|
Adeaphon
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Mar 2014
2013
2014
EN
23xxx
Deutschland
|
RE: Logarithmische Signaldarstellung
Danke dir GerdW erneut,
ich denke ich habe eine Lösung gefunden mit der Autokorrelation.
Nachdem heute der Strahlengang des Mikroskop auch fertig wurde und ich die erste Messung mit Fluoreszenz machen konnte habe ich aber festgestellt, dass das Programm zu träge ist. Während bei der Dunkelzählrate nur um die 200 Photonen pro Sekunde als Datensatz durch die APD eingespeist wurden, werden bei deiner echten Messung ca. 20.000 Ausschläge pro Sekunde an Messdaten reinkommen.
Anscheinend ist dafür die For-Schleife wohl etwas ungeeignet. Gibt es eine Möglichkeit effizienter die ankommenden Daten aufzusummieren?
Hier ein Bild des Blockdiagramms:
Aus dem DAQ Assistant kommen die Daten herein in der Form
Code:
0 0,00547058
1 0,0173921
2 0,00982199
3 0,0153614
4 0,000336637
5 0,00874105
6 0,00462859
Und sollen aufaddiert werden zu dieser Form
Code:
0 0,00159556
1 0,0100051
2 0,0113959
3 0,0124638
4 0,0172748
5 0,0245763
6 0,0305095
So das ich ein 1D-Array habe welches die Anzahl an Anschlägen zusammen mit den Zeitpunkten der Messung habe.
Für kleine Durchsätze reicht die For-Schleife, aber für die Große leider nicht.
Gibt es bei LabVIEW eine effiziente Möglichkeit das zu realisieren?
|
|
|
31.03.2014, 16:28
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2014 16:40 von GerdW.)
Beitrag #7
|
GerdW
______________
Beiträge: 17.467
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Logarithmische Signaldarstellung
Hallo Adeaphon,
wenn du ein VI angehangen hättest statt eines Bildes, dann könnte ich daran Änderungen vornehmen…
Deine FOR-Loop ist ineffizient programmiert, insbesondere die BuildArray-Funktionen versauen dir die Performance.
Schneller sollte es so funktionieren:
Autoindizierung an Ein- und Ausgang!
Außerdem solltest du es vermeiden, deine "Gesamtmessung" in einem riesigen Array zu sammeln, das macht dir diese Schleife immer langsamer! Und auf einem Graph kannst du sowieso keine 20k Punkte pro Sekunde erkennen!
Ansonsten:
Es ist bei "schnellen" Messungen immer hilfreich, DAQ und Datenauswertung mit dem Producer-Consumer-Schema in (mindestens) 2 parallele Schleifen aufzuteilen!
P.S.:
Irgendwie passen die gezeigten Beispielwerte nicht zum gezeigten Programmcode - oder ich kann nicht mehr addieren…
|
|
|
31.03.2014, 17:04
Beitrag #8
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Logarithmische Signaldarstellung
Misst du überhaupt richtig - bzw. was genau willst du messen? Aktuell steht dein DAQ-Assi auf langsame Periodenmessung.
Was für ein Signal deine APD (Avalanche Photo Diode)?
Gruß, Jens
P.S.: Du erreichst mehr Leute, wenn du nicht so mit spezifischen Abkürzungen um dich schmeißt und die Leute mit nimmst. Fluoreszenz Korrelationsspektroskopie (FCS) & APD mögen im Biologie Bereich bekannt, aber für die meisten hier dürften das unbekannte Begriffe sein.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
31.03.2014, 17:26
Beitrag #9
|
Adeaphon
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Mar 2014
2013
2014
EN
23xxx
Deutschland
|
RE: Logarithmische Signaldarstellung
Danke für die beiden Antworten.
Das Bild des Blockdiagramms ist das der im Startpost angehängten Datei. Ich hatte nur ein Bild hochgeladen, dass ihr nicht unbedingt die VI öffnen müsst. Ich dachte das würde es euch erleichtern.
Die Additionen der Beispiele waren nur herausgegriffen GerdW
Es sollte nur verdeutlichen, dass die ankommenden Signale Zeitabstände zwischen Counts sind. Die Photodiode misst zu Zeitpunkt a ein Photon, zum Zeitpunkt b wird das nächste Proton gemessen, die Information aus der Diode ist nun der Zeitabstand zwischen den beiden gemessenen Photonen.
Das die ganze Messung nicht in einem Array landet wäre sogar sehr hilfreich. Ich möchte gern noch Abschnitte Histogrammieren. Zum Beispiel die Daten aus einer Sekunde Messzeit.
In der Ursprünglichen VI hatte ich das schon implementiert indem die letzten 100 Photonenzeitabstände histogrammiert wurden Aber leider ist die erste Schleife ja zu ineffizient. Da muss ich dann noch einmal ran.
Ich hab erst seit 3 Tagen nun mit LabVIEW zu tun, entschuldigt bitte wenn viele Ding eventuell trivial sind.
Hier ist die die VI:
FCS.vi (Größe: 88,54 KB / Downloads: 260)
Jens, natürlich hast du recht. Ja, APD bezeichnet eine Avalanche Photo Diode und FCS Skepktroskopie. Bei der APD/ Diode handelt es sich um eine Diode der Serie PDM
Gemessen werden sollte schon kontinuierlich, gern aber mit einem Hardware-Buffer sofern das Seitens NI-6210 Geräts möglich ist.
|
|
|
31.03.2014, 18:00
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Logarithmische Signaldarstellung
Zur Klarstellung: Deine APD liefert digitale Pulse, und du willst die Anzahl der Pulse pro Zeiteinheit ermitteln? Oder brauchst du wirklich zu jedem Puls den genauen Zeitpunkt?
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
| |