Hallo Lea,
Zitat:Wie ich bereits ja schon erwähnt habe, möchte ich das zweite Sinc Signal 17 mal wiederholen. (Siehe Abbildung) Also 17 Iterationen mit denselben Werten (Sinc Pulsen) mit jeweils einer Pausenzeit von 5,7 ms (= 57 Samples bei 10kS/s). Ich hatte ja oben im Beispiel die For-Schleife dafür verwendet. Leider verstehe ich auch nach durchlesen der Handbücher von LabVIEW nicht, warum die For-Schleife das Signal nicht 17 mal wiederholt, sondern nur 1 mal. Hat das etwas mit dem Array zu tun? Oder muss ich doch eine andere Schleife verwenden?
Die FOR-Loop ist schon perfekt, wenn man einen Code x-mal wiederholen will.
Dein Problem ist, dass du die Tunnel nicht korrekt konfiguriert hast - und das ist Basiswissen Arrayhandling+Schleifen!
Schau mal hier:
[
attachment=62281]
Zitat:Du meinst bestimmt „auto start“ oder?
Ja.
Zitat:Also delta t ist ja nur ein Sample-Intervall, je größer delta t ist, desto schmaler wird die Main lobe meines Sinc Signals. Und wenn ich das so wie du in dem Beispiel oben mache und eine Kehrwertfunktion für das delta t verwende und 1/Samplerate teile, dann würde ich bei delta t immer den Kehrwert der Sample Rate einstellen. Also bei 10 kS/s sind das dann 0,0001. Sind das dann 0,1 ms?
Für die Sinc-Puls-Funktion ist dt ein einheitenloser Wert, der zwischen 0 und 1 liegen sollte. So steht es in der Hilfe zur Funktion!
Die einfachen Signalgenerier-Funktionen arbeiten üblicherweise ohne Angabe eine Samplerate, man erstellt ja "nur" ein "Array of samples".
Wenn du aber mit Waveforms arbeitest, musst du irgendwann/-wo eben doch eine Samplerate angeben und dann kommt die Kehrwert-Funktion zur Samplerate ins Spiel…
Hallo Gerd,
stimmt! Das mit dem Tunnel hatte ich leider vergessen.
Vielen Dank.
Jetzt läuft soweit alles.
Ich würde nun gerne meine Sinc Signale so einstellen, dass das der erste Sinc genau 2,2 ms und der andere 0,8 ms dauert. Dafür müsste ich bei dem ersten Sinc ja die Samples auf 22 und bei dem in der For Loop die Samples auf 8 setzen. Leider kommt dann bei der Waveform nur ein ganz komischer Graph heraus. (VI ist angehangen)
Oder habe ich die Samples doch falsch eingestellt und man muss die Zeiten anders einstellen?
Zitat:Für die Sinc-Puls-Funktion ist dt ein einheitenloser Wert, der zwischen 0 und 1 liegen sollte. So steht es in der Hilfe zur Funktion!
Die einfachen Signalgenerier-Funktionen arbeiten üblicherweise ohne Angabe eine Samplerate, man erstellt ja "nur" ein "Array of samples".
Wenn du aber mit Waveforms arbeitest, musst du irgendwann/-wo eben doch eine Samplerate angeben und dann kommt die Kehrwert-Funktion zur Samplerate ins Spiel…
Okay so ganz verstehe ich es leider immer noch nicht. Die Hilfe gibt mir leider auch nicht mehr Aufschluss. Hast du vielleicht eine Quelle, wie ich mich da mehr einlesen kann?
Danke.
Hallo,
ich bin gerade dabei ein Trapez Signal aus mehreren Ramp pattern zu erstellen. Dabei muss ich nun zwei Trapeze (die letzten beiden) ein Stück übereinander lagern (Siehe Bild). Zwischen dem zweiten und dritten Trapez habe ich leider auch eine Pause von 2 Samples. Weiß einer warum die dort auftritt? Gibt es eine Möglichkeit das ich das Signal so darstellen kann, wie im angehangenem Bild?
Danke im Voraus.
Hallo Lea,
die Grundzüge haben wir in deinem anderen Thread doch nun schon ausreichend besprochen, oder?
Schau mal hier:
[
attachment=62286]
Zitat:Zwischen dem zweiten und dritten Trapez habe ich leider auch eine Pause von 2 Samples. Weiß einer warum die dort auftritt?
Wer soll sich denn bei diesem Mix aus "normaler" Rampe, Rechteck-Funktion und dann nach diesen ganzen "increasing/decreasing ramps" zurechfinden?
Meinst du nicht auch, ein einfacher Programm-Code ist im Nachgang auch einfacher zu verstehen und zu debuggen???
Hallo Lea,
Zitat:Dafür müsste ich bei dem ersten Sinc ja die Samples auf 22 und bei dem in der For Loop die Samples auf 8 setzen. Leider kommt dann bei der Waveform nur ein ganz komischer Graph heraus. (VI ist angehangen) Oder habe ich die Samples doch falsch eingestellt und man muss die Zeiten anders einstellen?
Wie ich dir oben schon versucht habe zu erklären, bedeutet der Input dt beim Sinc-Puls eben nicht die Samplerate, sondern das, was in der Hilfe dazu beschrieben steht…
Versuche doch erstmal, in einem kleinen VI genau den Puls zu erzeugen, den du da haben willst: ein Sinc-Pattern mit genau 22 Samples… Und überlege dir auch, wieviele Schwingungen du sinnvoll mit diesen 22 Samples darstellen kannst: Nyquist lässt grüßen!
Hallo Gerd,
super danke! Leider habe ich nicht so viel Erfahrung mit Arrays, aber dein Beispiel ist deutlich übersichtlicher.
Ich habe jetzt noch eine kleine Frage. Leider löschen sich die letzten eingestellten Numeric Controls Werte bei mir immer nachdem ich das VI schließe, obwohl ich es immer vorher speichere.
Da ich nicht jedes mal die Werte wieder neu eingeben will, wäre es vorteilhaft, wenn meine letzten eingestellten Werte im Array gespeichert werden. Da gibt es doch bestimmt ein ganz leichten Trick oder?
Danke und ein schönes Wochenende!
Und mit dem Sinc werde ich es mal versuchen so zu testen.
Hallo Lea,
hast du schon mal von den Defaultwerten bei controls gehört? Die kann man pro control einzeln setzen (Rechtsklick) oder für alle (Edit Menü)...
Hallo Gerd,
danke jetzt ist es auch viel einfacher mit den Default Values!
Ich habe die drei Trapezfunktionen nun als SubVIs in das Top Level VI eingefügt. Bei Ausführung des VIs ist der „Fehlercode 50103 occured at DAQmx Start Task.vi: 7220001“ aufgetaucht. Hat das vielleicht mit den verschiedenen SubVIs zu tun? Genug Ausgänge hat mein Device (ich benutze eine NI USB-6363 Messwerterfassungskarte). Später soll auch noch die Sinc Funktion in mein VI.
Außerdem meintest du ja ich sollte die Samplearrays als Waveform umändern, damit ich auch mit realen Frequenzen arbeiten kann. Ist das so richtig, wie ich es gemacht habe? Bei den Sinc Pulsen hatte ich ja für dt=0,0001 für das delta t. Brauche ich die Einstellung für die Trapezfunktionen dann überhaupt?
Ich hatte eigentlich auch vor, dass die Cluster Array’s für die Trapez Funktionen nicht mit im Top-Level VI stehen, damit es etwas übersichtlicher im Frontpanel ist, nur leider brauche ich diese ja als Eingang für mein SubVI. Oder geht das doch, dass ich die Array’s durch irgendeinen Trick aus dem Frontpanel herausnehmen kann?
Vielen Dank im Voraus.
Gruß
Lea
Hallo Lea,
Zitat:Bei Ausführung des VIs ist der „Fehlercode 50103 occured at DAQmx Start Task.vi: 7220001“ aufgetaucht. Hat das vielleicht mit den verschiedenen SubVIs zu tun?
Nein.
Zitat:Genug Ausgänge hat mein Device (ich benutze eine NI USB-6363 Messwerterfassungskarte).
Das bedeutet aber nicht, dass du diese AOs dann einzeln in DAQmxTasks verpacken kannst.
Warum erstellst du nicht nur einen DAQmxTask mit 3 AO-Kanälen?
Zitat:Außerdem meintest du ja ich sollte die Samplearrays als Waveform umändern, damit ich auch mit realen Frequenzen arbeiten kann. Ist das so richtig, wie ich es gemacht habe? Bei den Sinc Pulsen hatte ich ja für dt=0,0001 für das delta t. Brauche ich die Einstellung für die Trapezfunktionen dann überhaupt?
Wie ich jetzt schon mehr als einmal geschrieben habe: bei der Sinc-Funktion hat der deltaT-Eingang eine andere Bedeutung…
Das dt definiert die Samplerate in den Waveforms, von daher benötigst du es auch bei den Trapez-/Rampen-Funktionen, wenn du eine Waveform erstellst!
Zitat:Ich hatte eigentlich auch vor, dass die Cluster Array’s für die Trapez Funktionen nicht mit im Top-Level VI stehen, damit es etwas übersichtlicher im Frontpanel ist, nur leider brauche ich diese ja als Eingang für mein SubVI. Oder geht das doch, dass ich die Array’s durch irgendeinen Trick aus dem Frontpanel herausnehmen kann?
Was für einen "Trick" stellst du dir denn vor?
- Du könntest die Controls alle in Konstanten umwandeln, dann siehst du sie nur noch im Blockdiagramm - und kannst sie auch nur dort editieren…
- Du könntest mit Konfigurationsdateien arbeiten (CSV-Dateien?), die der User bearbeiten könnte. Dann liest dein Programm die Waveform-Einstellungen aus diesen Dateien ein und generiert die Waveforms…
Hallo Gerd,
das mit den DAQmxTask mit 3 AO-Kanälen habe ich direkt versucht umzusetzen.
Leider kann ich die Ausgänge meiner SubVIs nun nicht mehr mit dem Daten Eingang des DAQmx Write verbinden (siehe Bild). Die Verbindungen haben nun verschiedene Datentypen. Muss ich zum Zusammenfassen der 3 Signale noch etwas dazwischen schalten?
Zitat:- Du könntest die Controls alle in Konstanten umwandeln, dann siehst du sie nur noch im Blockdiagramm - und kannst sie auch nur dort editieren…
Das habe ich mir schon gedacht. Werde ich dann am Ende machen wenn alles steht.
Danke.