LabVIEWForum.de - analoger Sinus Sweep Output

LabVIEWForum.de

Normale Version: analoger Sinus Sweep Output
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

zur Untersuchung von Schwingungseigenschaften von Bauteilen, würde ich gerne ein Sinus Sweep Signal zwischen ± 8 V als analogen Output erzeugen.

Dazu nutze ich einen Signalgenerator, der auf der FPGA Ebene ein konstantes Sinussignal erzeugt. Soweit funktioniert auch alles ohne Probleme. Wenn ich nun jedoch mithilfe einer Schleife versuche ein Sinussignal mit veränderlicher Frequenz zu erzeugen, bekomme ich leider gar kein Ausgangssignal mehr.

Ich bin noch ein relativer LabView Anfänger und hoffe, dass ihr mir weiterhelfen könnt. Das gesamte Projekt mit dem entsprechenden VI habe ich hochgeladen, erstellt wurde es mit LabView 2014.

Schon mal herzlichen Dank!
Hallo tg,

was soll die FOR-Loop im ersten Sequenz-Frame bringen? Du berechnest munter Werte, weiterverwendet wird aber nur der Rechenwert der letzten Iteration…

Weitere Punkte:
- Wozu der Sequenzrahmen? THINK DATAFLOW…
- Dann erzeugst du bei der Division durch 40M einen anderen Datentypen, als der Sinusgenerator erwartet…
- Du hast da überall CoercionDots…
Hallo GerdW,

Danke erst einmal für die schnelle Antwort!

Wenn ich das ganze auf der RT Ebene programmiere und an den Ausgang der for-Schleife einen Graphen anschließen, sehe ich genau dem Sweep den ich mir vorstelle. Warum nutzt der Sinus Generator nicht jeden Wert jeder Schleifeniteration? Hängt das mit der Art des Tunnels zusammen? Und selbst wenn, sollte nicht mit dem letzten berechneten Wert ein konstanter Sinus erzeugt werden?

Mit der Sequenz hast du natürlich recht, die ist noch aus einem früheren Versuch übrig geblieben.
Wenn ich als Dividend eine Konstante nutze, die durch 40M geteilt wird, kommt der Generator damit aber doch klar, oder nicht?!
Was genau ist ein coercion dot? Bedeutet das nicht nur, dass LabView an dieser Stelle das Datenformat ändert?

Danke und Gruß
Hallo tg,

Zitat:Hängt das mit der Art des Tunnels zusammen?
Ja.

Zitat:Warum nutzt der Sinus Generator nicht jeden Wert jeder Schleifeniteration?
Weil du es so programmiert hast…

Zitat:Was genau ist ein coercion dot?
Das steht in der LabVIEW-Hilfe - unter genau diesem Stichwort…

Zitat:Bedeutet das nicht nur, dass LabView an dieser Stelle das Datenformat ändert?
Im Grunde ja. Aber du musst auch bedenken, ob der so umgewandelte Wert dann noch sinnvoll (für die nachfolgende Funktion) ist…
ich würde den Sinus-Sweep nicht direkt auf dem FPGA erzeugen, sondern den FPGA nur für die (gepufferte) Ausgabe verwenden. Wenn es nicht unbedingt ein FPGA sein muss, nimm einfach eine Multifunktions-DAQ-Karte (M-Serie, X-Serie) oder sowas.

Den Sinus-Sweep kann man z.B. so erzeugen (siehe VI im Anhang)
Das für eine spezielle Anwendung massgeschneiderte Vi von cb könnte die Vermutung aufkommen lassen, das die Erzeugung des Sweep-Codes eine komplizierte, das Hirn zermarternde Angelegenheit ist. Dem ist aber nicht so. Hier mal die Einfach-Variante. Man erhöht für jede neue Sample die Phasendifferenz linear - mehr ist da nicht zu machen.
Aber auch dieses VI wird zur Sweep-Erzeugung nicht gebraucht - dafür gibt es die Funktion "Chirp-Pattern" in der Palette "Signalerzeugung". Habe die Funktion in das VI mal zusätzlich mit eingebaut.
[attachment=53052]
[attachment=53053]
Danke für die Antworten! Dass es dafür eine fertige Funktion gibt, wusste ich gar nicht. Habe jetzt also die Signalerzeugung auf die RT Ebene verlegt und schicke das ganze mit einem FIFO auf die FPGA Ebene.
Referenz-URLs