LabVIEWForum.de - Wie kann man "dt" auf die Frequenz umrechnen?

LabVIEWForum.de

Normale Version: Wie kann man "dt" auf die Frequenz umrechnen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen.

Ich habe einen Signalverlauf und möchte die Abtastfrequenz daraus ermitteln.

Versucht habe ich es über f = 1/dt (LabVIEW verunstaltet beim Exportieren die Anschlüsse etwas):

snip09
[attachment=27897]

Nur komme ich so nie auf die Abtastrate, die eingestellt ist.
Um Rundungsfehler handelt es sich meiner Meinung nach nicht, da die Werte zu stark abweichen.

z.B. eingestellt: 1700 Hz, berechnet: 1724,14 Hz

Wie kann ich genau auf die 1700 Hz zurück rechnen?
Ich möchte den Wert mit dem vergleichen, den ich dem DAQmx-Timing-VI zuweise.
Bei mir funktioniert das ganz gut...

[attachment=27899]

In der Hilfe steht noch:

letzter Absatz könnte interessant sein...
Zitat:Anzahl Samples pro Kanal gibt die Anzahl der zu lesenden Samples an. Wenn Sie diesen Eingang offen lassen oder auf -1 setzen, wird die Anzahl der Samples automatisch bestimmt, und zwar je nachdem, ob fortlaufend Samples erfasst werden sollen oder nur eine bestimmte Anzahl.

Bei der fortlaufenden Erfassung von Samples, liest das VI bei der Einstellung dieses Eingangs auf -1 alle Samples aus, die sich gerade im Puffer befinden.

Wenn mit dem Task eine bestimmte Anzahl von Samples erfasst wird und Sie diesen Eingang auf -1 setzen, wartet das VI bis zur Erfassung der angegebenen Anzahl von Samples und liest diese dann aus. Ist die Eigenschaft Alle verfügbaren Werte einlesen TRUE, liest das VI nur die Samples im Puffer aus und wartet nicht bis zum Eintreffen aller Samples.


Gruß SeBa
Hallo SeBa,

ich möchte jedoch die Sample-Anzahl vorgeben beim Einlesen.

Aktuell ist es bei mir so:
Ich erstelle einen Task z.B. mit 50 Hz, 10 Samples (kontinuierlich).
Nun frage ich ab, welche minimale Frequenz die Karte unterstützt. Sind das z.B. 1,6 kHz, korrigiere ich die Sample-Anzahl automatisch auf ca. 320, da bei der Frequenz eine Sample-Anzahl von 10 schnell zum RAM-Überlauf führen würde (1600 * 10 / 50).
Beim Auslesen möchte ich überprüfen, ob die ankommenden Werte mit der Frequenz abgetastet wurden, die eingestell ist. Ist das nicht der Fall, sollen die Werte von 1,6 kHz auf 50 Hz herunter gesampled werden, damit ich ein 50 Hz-Signal erhalte.

Dafür benötige ich das Ganze.
Sind wir immer noch bei deiner NI9237?

Du hast doch selber den Link zu den erlaubten Abtastfrequenzen veröffentlicht:
http://www.labviewforum.de/index.php?s=&am...st&p=101684
http://digital.ni.com/public.nsf/allkb/593...62570DE005F6836

[attachment=27901]

1724 Hz ist erlaubt, 1700 nicht, also rundet DAQmx auf den nächsten erlaubten. Alles paletti...

Gruß, Jens
Ah Mist, da hätte ich aber auch selbst drauf kommen können, danke. Blush
Nachtrag:
Sogar die Nachkommastellen sind korrekt, denn:
[attachment=27902]
und 50000/29 = 1724,13793...
Gruß, Jens
Zwei Anmerkungen:

1.) Zur Ermittlung der wahren Taktrate muß man weder die Waveforms analysieren, noch in Handbüchern nach Formeln suchen. Dafür gibt es im Eigenschaftsknoten "DAQmx Timing" die Eigenschaft "Sample Takt Rate" (lesend)
[attachment=27905]

2.) Du bist hier grundsätzlich auf dem Holweg. Wenn sich eine eingegebene Taktrate außerhalb des Bereiches befindet, den die Karte kann, dann kommt es zum Fehler. Dann ist Fehlerbehandlung angesagt, und nicht Waveform-Untersuchung. Es kommt nämlich gar keine Waverform mehr heraus.
Referenz-URLs