Hallo!
Ich möchte "aktuelle" Min- und Maxwerte von einem Signal bestimmen. Das Signal wird in Echtzeit ausgewertet. Ändert sich nun zb die maximale Amplitude möchte ich den neuen Maxwert haben, obwohl er eventuell kleiner als der vorherige ist. Wie kann man so etwas realiesieren. Ich bekomme entweder nur den allergrößten Wert und kann keinen kleineren mehr bestimmen oder aber die Max-Anzeige "wandert" mit den aktuellen Amplitudenwerten mit.
Hat jemand eine Idee? Das wäre super
Mir ist das unklar. Wer legt fest, wann die ursprünglich gemessense maximale Ampitude nicht mehr aktuell ist? Meinst Du mit Spitzenwert ein absolutes Maximum oder ein relaftives Maximum gegenüber der unmittelberen Umgebung? Schwebt Dir vielleicht so etwas wie eine Aussteuerungsanzeige bei Tonaufnahmen vor?
Sobald ich eine neue maxAmplitude habe sollte diese angezeigt werden. Es geht um einen absoluten Wert. Es geht nicht um eine Tonausteuerung, sondern eher um einen Sinus am Eingang, aber es sollte genauso funktionieren wie eine Tonaussteuerung. Das ist ein guter Vergleich.
Eine kleine Verzögerung (zb <2s) kann natürlich vorhanden sein.
Ok..alles klar. Ich habe eine Lösung gefunden. Ich speicher ca 200Werte in einem Array und bestimme davon die Extremwerte. Danach werden die nächsten 200 Werte gelesen. usw.
' schrieb:Ok..alles klar. Ich habe eine Lösung gefunden. Ich speicher ca 200Werte in einem Array und bestimme davon die Extremwerte. Danach werden die nächsten 200 Werte gelesen. usw.
Das verdient aber den Namen Echtzeitmessung kaum. Es wäre besser, wenn bei jeder neuen Sample der Spitzenwert der letzten 200 Samples neu berechnet würde, und nicht immer nur alle 200 Samples.
Habe mal 2 Beipiele gemacht - und muß jetzt festetellen, deß Du nur LV7.1 hast. Deshalb nur als Bild. Es handelt sich bei den Graphen um Signalverlaufsdiagramme, Historienläne 200.
In Beilspiel 1 hat man dan Spitzenwert der letzten 200 Samples, wober der eingabaute Ringpuffer im Diagramm als Speicher verwendet wird. Das zweite Beispiel arbeitet wie ein VU-Meter.
[
attachment=16886]
[
attachment=16887]
Ok, danke! ich werd mir das nochmal anschauen. Hier ist mal die Lösung, die ich gefunden habe.
Na so einfach sehe ich das nicht.... was ist eine Amplitude von einem verrauschten Signal, was ist die vorherrschende Frequenz, langt die Samplelänge, Rauschspitzen weg oder nicht?
' schrieb:Na so einfach sehe ich das nicht.... was ist eine Amplitude von einem verrauschten Signal, was ist die vorherrschende Frequenz, langt die Samplelänge, Rauschspitzen weg oder nicht?
Beim realen Projekt spielt das zwar alle eine Rolle, aber gottseidank konfrontiert uns hier nicht jeder der etwas fragt mit allen Facetten seinen Projektes, sondern hat, das Projekt betreffend, eine einfache Frage.
Das Gefieder sträubt sich mir allerdings beim Anblick dieses VIs auch, nur nicht deswegen: Da klauen sich in zwei unabhängigen Schleifen die beiden DAQmxRead die nur einmel erzeuten Sample gegenseitig weg. Was kommt da wo an? Jedenfalls nirgendwo die originale Waveform. Und der Stop funktioniert so überhaupt nicht.
Hallo Student1,
wieso machst du die Mittelwertbildung über einen Formelknoten?
Lass doch das ganze Array mitteln.
Gruß
Christian
kannst du das mit dem samples klauen genauer erklären? wie muss ich es anders machen, wenn ich von einem task die samples für mehrere "aufgaben" verwenden möchte (1. signal darstellen und 2. extremwerte)? zwei mal den virtuellen kanal erstellen?
wenn ich es so laufen lasse, bekomme ich den sinus mit extremwerten eigentlich gut dargestellt. nur wenn ich zb die obere schleife, die den sinus anzeigt, wegnehme dann werden nicht mehr die extremwerte, sondern der aktuelle amplitudenwert angezeigt. komisch...