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!
Welche Aussage stimmt, wenn die Anzahl der Mittelwerte auf z.B. 5 steht?
1) Das VI teilt den ankommenden Signalblock in 5 Intervalle und mittelt diese Sprektren.
2) Das VI wartet bis 5 Blöcke angekommen sind und mittelt dann diese Spektren. Wenn dem so sei, was wird dann angezeigt wenn noch keine 5 Blöcke angekommen sind?
(Ich gehe stark davon aus, dass 1) stimmt. Bin mir aber unsicher)
Und gehe ich recht in der Annahme, dass wenn ich gezielt 5 Blöcke à 512 Samples gemittelt haben möchte (unabhängig von der Größe des eingehenden Signalblocks), ich das Stückeln des Signals sowie die Mittelwertbildung selbst bauen muss und es nicht mit den verfügbaren Einstellungen zu realisieren ist?
Gruß dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Ich führe hier einfach mal meinen Monolog weiter. Vielleicht hat jemand die gleiche Frage.
Aussage 1) ist falsch, denn so eine Vorgehensweise der Mittelung hätte eine Reduktion der Datenmenge und damit eine Reduktion der Auflösung des Spektrums zur Folge. Dem ist aber nicht so. Schickt man 64 Samples rein kommt ein Spektrum mit 32 Werten heraus. Wie erwartet. Hätte man (ich) auch früher drauf kommen können. Diese VIs mitteln also nur dann, wenn sie auch kontinuierlich mit Signalblöcken gefüttert werden.
So 100% bin ich aber dem Mitteln immer noch nicht auf die Spur gekommen:
folgende Konstelation: Blöcke à 64 Samples (Samplingrate 1kHz), Anzahl der Mittelwerte 5. Demnach wird das Spektrum von einem Zeitfenster von 5x64 Samples dargestellt. 320 ms sind nicht viel, demnach müsste das Spektrum auf Änderungen auch schnell reagieren können. Tut es aber nicht. Bis eine signifikante Änderung (Offset rein/raus) im Signal, ihre vollständige Wirkung im Spektrum gezeigt hat, vergehen 4-5 Sekunden.
Ist also auch Aussage 2) falsch und die Anzahl der Mittelwerte bezieht sich garnicht auf die Anzahl der verwendeten Blöcke? Aber worauf bezieht sich diese Anzhal dann?
In der Hilfe steht: Anzahl der Mittelwerte gibt an, wie viele Mittelwerte zur RMS- und Vektor-Mittelung verwendet werden sollen. Beim Gewichtungsmodus "Exponentiell" ist die Mittelwertbildung fortlaufend. Beim Gewichtungsmodus "Linear" wird die Mittelwertbildung nach Erreichen der angegebenen Anzahl der Mittelwerte beendet.
Ich will niemand mit dem Thema nerven nur muss ich eben ganz genau wissen was ich da für ein Spektrum erhalte; bzw. welchen Teil des Signals dieses dargestellte Spektrum representiert.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Mittelwertbildung bei FFT-Spektren
Cool. Hoffentlich gibt's irgendwann am Ende Deines Monologs 'ne Lösung, weil .
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
13.11.2009, 23:32 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2009 23:34 von Lucki.)
Kleine Vorabinformation:
Mit der Mittelwertbildung bist Du auf dem Holzweg.
1.) Bei der Mittelwertbildung handelt sich hier um den Mittelwert des Frequenzspekrums bei mehrfachem Aufruf des VIs.
Hintergrund ist die Tatsache, daß die hohen Frequnzanteile eines Frequenzspektrums häufig so schwach sind, daß sie duch das Rauschen des Originalsignals f(t) stark verfälscht werden. Mehrfache Messung des gleichen Signal und Mittelwertbildung verbessert das Signal-Rauschverhältnis.
Die Mittelwertbildung könnte entweder im Zeitverlauf erfolgen, indem der Signalverlauf f(t) mehrfach übereinandergelegt wird, oder aber es werden, wie hier geschehen, mehrere Frequenzspektren gemittelt.
2) Es handelt sich hier um eine gleitende Mittelwertbildung, D.h. es findet keine Datenredunktion statt derart, daß z.B. bei Mittelwertbildung 10 immer 10 Verläufe zu einem einzigen zusammengenfast werden. Das Ausgangssgignal der 10. Messung entspricht dem Mittelwert der Messsungen 1-10, das Ausgangssignla der 11. Messung entspricht dem Mittelwert der Messungen 2-11 usw.
Bei Gewichtung "exponentiell" handelt es sich um Glättung wie bei einem RC-Glied. Das geht einfacher und schneller, allerdings ist das ein IIR-Filter, d.h die Werte aus der Vergangenheit werden nie ganz vergessen, obwohl sie exponentiell abnehmend gewichtet sind.
Zitat:Cool. Hoffentlich gibt's irgendwann am Ende Deines Monologs 'ne Lösung, weil
Genau das habe ich befürchtet und wollte es vermeiden :blush:Beim Pokern würde man sagen: "Ich hab mich hier selbst geleveled."
Also Lucki hat mir die Frage im Prinzip beantwortet. Die entscheidende Info bzw. Bestätigung für mich war: "...bei mehrfachem Aufruf des VIs."
Ich hatte einfach den Vermutung, dass wenn die Pakete, die pro VI-Aufruf reinkommen, sehr klein sind, dass dann das Spektrum auch ziemlich schnell auf Signalveränderungen reagieren müsste. Mein Eindruck, dass das Spektrum zu langsam reagiert war wohl falsch und ich hatte da zuviel reininterpretiert.
Seid bedankt für die Aufmerksamkeit.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
17.11.2009, 08:35 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2009 08:37 von dimitri84.)
Bei mir hat sich während der Rumprobiererei in diesem Zusammenhang eine Verständnislücke offenbart. Bestimmt nur eine von vielen.
Und zwar wenn ich beim DAQmx Read VI einstelle, dass 512 Samples per Channel auf einmal gelesen werden sollen, dann dauert eine Schleifeniteration auch wie erwartet (ca.) 512ms. Wenn ich allerdings 64 Samples einstelle, dann dauert die Iteration entweder 2ms oder 100ms. Es flackert also ganz diffus entweder 'ne 2 oder ne 100 auf. Ich bin mir sicher, dass es wissenwert wäre das zu verstehen.
Edit: Samplingrate ist 1kHz offensichtlich
Beste Grüße dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Wie misst du denn die Zeitdauer für den Schleifendurchlauf?
64ms gewünschte Looptime bedeutet ca. 15,5 Hz beim Update des Graphen und insgesamt des FP, das ist schon sehr viel. Da hat LV einiges mit zu tun. Da kann die Looptime dann schon etwas rumschwanken.
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!
Hatte jetzt wenigstens eine Screenshot erwartet, wo genau im Code du das mit Timer-Wert machst...
Sind wir immer noch beim Status, den du hier in Beitrag #3 hochgeladen hast? Was für FFT-Parameter verwendest du?
Bei Simulationen ohne Hardware (und ohne File-Speicherung) kann ich deine Beschreibung nicht nachvollziehen. Sobald DAQmx-Erfassung läuft, habe ich relativ stabil 65 ms Loop-Time.
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!