' schrieb:Hatte jetzt wenigstens eine Screenshot erwartet, wo genau im Code du das mit Timer-Wert machst...
Ich hab das VI jetzt nicht hier. Das VI aus Beitrag #3 ist ein vereinfachtes Beispiel.
Ich werde das morgen früh nochmal selber testen und wenn ich es reproduzieren kann posten. Beim FFT mittel ich 5 Mal, Hann-Fenster, RMS. Außerdem wird noch die Medianfrequenz berechnet.
Gruß dimitri
So sieht das bei mir aus mit den Laufzeiten der Iterationen:
[
attachment=22581]
[
attachment=22582]
Entweder dauert's 2 ms oder 100-102 ms (unteres Diagramm). Ganz komisch.

[
attachment=22583]
PS Mittelung beim FFT hab ich mal ausgemacht.
Gruß dimitri
Dank der Erkenntnisse aus
diesen thread habe ich jetzt eine sehr genaue Ahnung was dieses seltsame Verhalten hervorgerufen hat. Und zwar war der Task den ich initialisiert habe ein Gemisch aus dem was ich im "Mearuement & Automation" definiert habe und dem was ich "zu Fuß" mit den DAQ VIs definiert habe. Beim Parameter "Samples to read" war im "Mearuement & Automation" der Wert 100 eingestellt, während ich im DAQmx Read VI 64 angegebn habe. Ich vermute mal stark, dass sich LV (wenn der im DAQRead angegebene Wert kleiner ist) dann nicht entscheiden kann. Kurz gesagt ich hab' Murks gebaut.
Nachdem die Initialisierung jetzt gescheit von statten geht, sind die Iterationszeiten so gut wie konstant.
Vielen Dank für die Aufmerksamkeit und einen schönen Abend noch.
Beste Grüße dimitri
Jetzt ist mir klar, wieso es bei mir keine Probleme gab. Da ich deinen MAX-Task nicht hatte, hab ich den für meine Versuche rausgeschmissen.
Und du hast was gelernt, besser alles selber in LV programmieren, dieser Mischmasch mit schon vordefinierten Tasks aus dem MAX führt eher zu Ärger.
Gruß Jens
Hallo Leute,
da ich ein ähnliches Problem habe, hänge ich das hier mal mit an.
Ich benutze das VI FFT-Spektrum (Betrag-Phase) und möchte meine FFT mit der eines UPV Audio Analyzers von R&S vergleichen.
Um ein auswertbares Ergebnis zu erhalten wird die FFT hier im Betrieb immer über 5 oder 10 Blöcke gemittelt.
Im Handbuch des UPV steht dazu nur:
"
Normal: Die angegebene Zahl von FFT-Zyklen wird
durchgeführt, die Teilergebnisse addiert und dann
durch diese Zahl geteilt. Das Ergebnis erscheint
erst nach Ablauf aller "k" Zyklen.
Fernsteuerbefehl:
SENSe[1]:FUNCtion:FFT:AVERage:MODE"
Alternativ lässt sich hier noch "OFF" oder "Exponential" einstellen und natürlich die Anzahl der gemittelten Spektren.
Das VI FFT-Spektrum (Betrag-Phase) bietet ebenfalls eine Mittelwertbildung, wenn man sich das Beispiel aus der "Ausführlichen Hilfe" ansieht, erkennt man das auch über komplette Spektren-Blöcke gemittelt wird.
Allerdings werden hier 3 verschiedene Modi angeboten:
1 Vector averaging
2 RMS averaging
3 Peak hold
HIER habe ich die genaue Beschreibung der Modi gefunden, werde daraus aber nicht ganz schlau. Welche davon ist den der Standard?
Leider steht im Handbuch des UPV nicht mehr dazu dabei, deshalb gehe ich davon aus das es eine Methode der Mittelwertbildung geben muss die standardmäßig am häufigsten verwendet wird. Sonst hätte Rhode & Schwarz doch mehr dazu angegeben?
Hallo domi,
R&S haben doch die "normale" Mittelwertberechnung beschrieben (Werte aufsummieren und durch ihre Anzahl dividieren).
Die beim LabVIEW-FFT möglichen Methoden werden in der Hilfe beschrieben - und sind eben nicht "normale" Mittelwertberechnungen…
In der Hilfe werden auch Vorteile der einzelnen Methoden genannt.
Was du jetzt genau haben willst, musst du anhand deiner Anforderungen definieren…
Okee vielen Dank schonmal GerdW
schade ich hatte gehofft mit einem dieser Modi eine vergleichbare Mittelwertbildung einstellen zu können.
Verstehe nicht wieso die normale Mittelwertbildung nicht integriert wurde

naja dann bastel ich mir eben selbst was.
Hallo domi,
Zitat:Verstehe nicht wieso die normale Mittelwertbildung nicht integriert wurde
Weil es so einfach ist, eine bestimmte Anzahl Spektren zu addieren und durch diese Anzahl zu dividieren?
Normalerweise ja, aber bei meinem schon etwas größeren Programm wird das etwas schwieriger oder ich denke einfach gerade falsch. Jedenfalls werden zwischen dem einlesen der verschiedenen FFT Blöcke noch 3 andere Cases in der Whilschleife durchlaufen und der DAQ-Read ist in einem anderen Case wie die FFT.
Ach wäre jedenfalls sauberer mit der entsprechenden Einstellung geworden

Hallo domi,
man erstellt sich ein kleines subVI, welches eine Waveform und ein "N" entgegennimmt und einen Mittelwert über N Waveforms ausspuckt…