Hallo,
ich hänge schon seit Wochen an meine Projektarbeit, nun hoffe ich hier Lösung zu finden.
Aufgabe:
- Über Soundkarte soll die Signalimpulse (unsaubere sinusformige Signale) mit einstelltbaren Laufzeiten ( z.B 2min, 30 min, 5 Stunden...) eingespeist werden.
- Peaks werden ermittelt ( Amplituden und Zeitpunkte ) dann anschließend als Datenbank gespeichert.
- Von diesem Datenbank soll dann ein Intensitätsdiagram erstellt werden.
Ich habe eine VI (Version 8.5) gebastelt.
Jedoch konnte ich folgende Funktionen noch nicht lösen:
- Wie kann ich die Laufzeit der Signaleinspeisung programieren ?
Vielen Dank im Voraus.
Moin,
du kannst doch mit Sample-Rate und Number of Samples die Zeit bestimmen, die aufgenommen werden soll.
Dann stellst du noch den Sample-Modus von Continuous auf Finite.
--> 2 min = 120 s
--> 120 s * 22050 S/s = 2646000 S
Gruß SeBa
Danke Seba für deine Antwort.
Aber wenn ich die "number of samples" sehr hoch einstellt, dann lauft das programm nicht mehr. Es gibt keine Fehlermeldung raus aber ich kann keine Daten im Graph sehen.
Mein Programm zeigt mir im moment nur die Peaksinformationen, die aktuell auf dem Graph darstellen, jedoch nicht die Peakinformationen von der Signale, die davor eingespeist wurden.
Wie kann ich alle Peakinformationen darstellen und in einem Datei (Texformat ?) speichern ?
Es soll wie eine Art Datenlogger funktionieren.
' schrieb:Aber wenn ich die "number of samples" sehr hoch einstellt, dann lauft das programm nicht mehr. Es gibt keine Fehlermeldung raus aber ich kann keine Daten im Graph sehen.
...
SampleRate * Sampels = Zeit
Bis Zeit rum ist, liest das VI Daten von der Soundkarte ein. Erst wenn alle Samples eingelesen sind, wird das VI beendet und die Daten stehen in deiner Schleife zur Verfügung. Unverzüglich danach startet auch die nächste Iteration.
-> Lies mehrere kurze Blöcke ein und häng die aneinander um das komplette Signal darzustellen.
Gruß SeBa
so, meine Arbeit geht jetzt schneller voran
, ich brauche aber noch etwas Unterstützung von euch für die folgenden Fragen:
- Der Peak Detector gibt mir die Zeitpunkt der Peak in X-Achse nur in indexzahl (Wert von Location abgelesen). Wie kann ich diese zahl in Zeitwert umwandeln ?
- Ich bekomme von Location mit das die aktuelle Block eine Länge von 10000 hat.
+ Was heißt das ? Soll das heißen das ich eine Abtastrate der Signal von 10000 hat, wobei ich aber über "Number of Samples" nur 5000 eingestellt habe.
+ Wie kann ich diese Blocklänge (10000) variieren (z.B nur 3600) ?
- Ich weiß das der Peak Detector nur die Peaks von aktuellen Block ermittelt. Wie kann ich alle Peaks von ganzen Signallänge zusammen speichern, damit jede Peak einen eigene Zeitpunkt hat ?
Vielen Dank
' schrieb:...
- Der Peak Detector gibt mir die Zeitpunkt der Peak in X-Achse nur in indexzahl (Wert von Location abgelesen). Wie kann ich diese zahl in Zeitwert umwandeln ?
...
- Ich weiß das der Peak Detector nur die Peaks von aktuellen Block ermittelt. Wie kann ich alle Peaks von ganzen Signallänge zusammen speichern, damit jede Peak einen eigene Zeitpunkt hat ?
Vielen Dank
Schaust du dir mal die Hilfe zu deinem Peak-VI an. Da steht dann sowas wie
"Die Position auf der Zeitachse wird nach folgender Gleichung ermittelt:"
und
"... Nach dem letzten Datensatz verarbeitet das VI interne Daten. ... Für die Verarbeitung aufeinanderfolgender Daten ..."
Gruß SeBa
Hallo Seba, danke für deine Hilfe bis jetzt.
Könntest du mir diese Frage noch antworten ?
" Ich bekomme von Location mit das die aktuelle Block eine Länge von 10000 hat.
+ Was heißt das ? Soll das heißen das ich eine Abtastrate der Signal von 10000 hat, wobei ich aber über "Number of Samples" nur 5000 eingestellt habe.
+ Wie kann ich diese Blocklänge (10000) variieren (z.B nur 3600) ?"
Ich weiß nicht wo die 10000 herkommt.
Gruß
habs raus gefunden ... die 10000 bezieht sich auf die "number of samples"
Hallo,
als nächstes möchte ich nun die gewonnene Peaks in einem Graph wie unten darstellen
[
attachment=24643]
die graue Stellen sind die Peaks. Jede Peak hat eine Bezugphase zu der Spannungskurve.
Um sie wie oben im Bild darzustellen möchte ich folgendes machen:
- Ich nehme die Peakswerte (Amplitud & Location) von jedem Block auf (Blocklänge werden auf 4000 Samples fest eingestellt).
- Diese Peakswerte werden in Textdatei kontinuelich gespeichert, z.B
Amp (Y): 0,2 0,5 0,3 0,23 0,36 ... 0,1 0,26 0,45 0,22 ...
Loca (X): 132 231 431 1437 3875 ... 132 452 784 1437 ...
- Dann XY Wert von diesem Text auslesen und über ein MixGraph zusammen mit dem Spannungskurve darstellen.
Mein Problem:
- Wie kann ich die Peaks werten von mehrere Blöcke zusammen in einem Datei speichern ?
- Welche Dateiformat ist am besten geeignet ?
- Habt ihr noch einfachere Lösung um die Peakswerte darzustellen ?
Besten Dank im Voraus