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!
Bis ca. 15 Hz wird das Spektrum sauber dargestellt. Die Anzeige des Signals ist aber abgehackt. Dies liegt meiner Meinung nach am langsamen Datenübertragungskabel zum Computer vom CompactRio aus. Misst man die Plateaus der Signaldarstellung und vergleicht diese mit der eingestellten Frequenz findet man heraus, dass ein Plateau 10 ms lang ist. Bei einer Frequenz von 99 Hz bekomme ich einen "scheinsinus" von 1 Hz und bei 100 Hz bekomme ich ein ganzes Plateau und keinen Sinus mehr angezeigt. Dies ist ja alles in Ordnung, auf die Signaldarstellung kommt es mit im Grunde nicht an. Wohl aber auf die Spektrumanalyse:
Diese müsste doch eigentlich unabhängig von der Datenübertragungsrate sein, da sie ja auf dem CompactRio programmiert ist (Screenshot) und dort eigentlich noch viel höhere Frequenzen sauber anzeigen müsste. Dies tut sie aber z.B. bei 155 Hz nicht, sondern zeigt wieder Frequenzen, die unplausibel sind.
(10Hz, 99Hz, 155Hz)
Wenn ich 250.000 Werte speichere bekomme ich in der Anzeige einen Sinus der Länge 1 Hz angezeigt. Bei 50.000 wie im Beispiel bekomme ich einen kleineren Ausschnitt, aber dafür die höheren Freuqenzen deutlich besser zu sehen. Mir ist klar, dass die Signaldarstellung nur ein "Spiegel" des Compact Rio ist, trifft dies aber auch für die Spektrumanalyse zu, und ist desshalb so unzuverlässig? Eigentlich sagt mir die Einstellung von 250.000 und die Kombination zu 1 Hz, dass der Compact Rio 250.000 Werte die Sekunde erfassen kann, und desshalb die noch intern berechnete Spektrumanalyse deutlich höhere Frequenzen anzeigen müsste.
Wo ist in deinem VI eine Taktrate programmiert? Nirgends.
Du holst dir per Scan-Engine im Software-Takt so schnell wie möglich die aktuellen Werte eines Analog-Eingangs ab.
Mit dem Scan-Engine handelst du dir übrigens die erste Einschränkung ein. Da ist bei Erfassungraten von ca. 1 kHz Schluss.
Wenn dir das reicht, dann kannst du damit weiterarbeiten.
Dann gehört die Datenerfassung (in deinem Fall das Auslesen per Scanengine) auf dem cRIO in eine Timed-Loop. Die sollte auf dem RT schon sehr exakt laufen!
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!
vielen Dank erst mal für die Antwort. Die bearbeitbaren Frequenzen sind deutlich gestiegen. Komme nun wie erwartet bis ca. 1 kHz hoch. Was mir auffällt ist, dass ein zweiter Peak, je näher man der 1000 Hz-Marke kommt, er sich von der anderen Seite der 1000 Hz Marke nähert, also an dieser Marke spiegelt. Dies hängt vermutlich mit dem "einseitigen Leistungsspektrum zusammen, richtig?
Zudem habe ich noch weitere Fragen zum Timing: Die Scan-Engine-Eigenschaften habe ich einmal auf 1 ms und 0,5 ms gestellt. Schneller als 0,5 ms geht es nicht. Um die eingestellte Frequenz aber plausibel abzustimmen und auf der x-Achse richtig zu positionieren, musste ich die Konstante (rot eingerahmt, mittlerer Screenshot) verändern. Bei 1ms betrug der Wert 4,27*10^-6 und bei 0,5 ms 5,95*10^-6. Diese Stellgröße erscheint mir aber sehr ungenau, da ich bei mehrmaligem Ausführen erneute Abweichungen beobachtet habe (rechter Screenshot, eingestellte Frequenz 200 Hz, Ausschlag leicht links davon). Gibt es eine genauere Stellgröße, kann ich eventuell darauf verzichten?
Für die weitere Bearbeitung: Es gefällt mich schon sehr gut, das ich Frequenzen bis 1 kHz aufnehmen kann, und ist ein deutlicher Fortschritt zu den 15 Hz der vorherigen Anwendung, aber eigentlich möchte ich Frequenzen bis zu 20 kHz aufnehmen. Welche grundlegenden Änderungen müssen dann vorgenommen werden, um diese hohen Frequenzen zu bearbeiten?
Du nimmst immer noch nicht Werte in einem festen Takt auf, da du 10000x aus der Scan-Engine so schnell wie möglich den aktuellen Wert abholst. Aber im Prinzip können wir mit dieser Thematik komplett abbrechen. Denn wenn du mit bis zu 20 kHz abtasten willst, dass wird dir nichts anderes übrig bleiben, als die Datenerfassung im FPGA des cRIO zu programmieren.
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!
ja, das hab ich mir auch schon fast gedacht. Danke trotzdem für die Informationen.
Kann ich denn für die Programmierung im FPGA Teile der bisher programmierten Weiterverarbeitung nutzen?
Habe mich schon durch verschiedene Tutorials durchgeklickt und gelesen, aber das kommt mir vor wie ein riesiger Komplex, wo man nicht weiß, wo man einsteigen soll. Werde nochmal weiter schauen und Beispiele posten. Dann aber bestimmt in einem anderen Unterforum, richtig?
Ich habe mit den 250.000 Werten, die ich in ein Array speichere ja eine relativ große Datenmenge, die ich verarbeiten muss. Dazu die Anzeigeelemente. Kann ich noch schneller werden beim Abtasten wenn ich die Anzeigeelemente komplett raus nehme und durch den analogen Output am CompactRio auf ein anderes Anzeigegerät gehe? Dann habe ich den PC nämlich nicht mehr als Bremse dazwischen. Oder kann der Compact Rio mit der ScanEngine-Einstellung nicht schneller, auch wenn ich den PC komplett rausnehme?