Hallo,
Vorab möchte ich sagen, dass das mein erstes Projekt mit LabView ist und ich dementsprechend wenig Ahnung von der Materie habe. Dennoch habe ich einen engen Zeitplan und muss ein Ergebnis vorbringen.
Ziel des Projekts ist es, erfasste Daten (Schalldruck) als Signalverlauf im .wav Format zu speichern.
Die Datenerfassung funktioniert einwandfrei und auch die Speicherung der .wav-Datei.
Nun ist es aber so, dass die enstehende Datei entweder nicht die eigentliche Aufnahmelänge besitzt (D.h. die vorkommenden Daten sind in Ihrer Länge quasi komprimiert) oder es kommt vor, dass die Aufnahme immer eine feste länge hat (x*5sek.) und sich dabei bei jeder Zeitmarke 'x' kurz "aufhängt".
Was kann ich nun also tun, damit sowohl meine Aufnahmelänge, als auch die Aufgenommen Daten stimmen?
Ich habe mein bisher ausgearbeitetes Projekt mal in den Anhang getan. Vielleicht gibt es jemanden der das Problem erkennt.
Mit freundlichen Grüßen
Hallo David,
herzlich willkommen im LabVIEW-Forum!
Zitat:Die Datenerfassung funktioniert einwandfrei und auch die Speicherung der .wav-Datei.
Wenn dem so wäre, dann müsstest du hier nicht fragen!
Zitat:es kommt vor, dass die Aufnahme immer eine feste länge hat (x*5sek.) und sich dabei bei jeder Zeitmarke 'x' kurz "aufhängt".
Eigentlich sollte dieses Aufhängen jede Sekunde passieren…
Schau dir bitte die Beispiel-VIs an, die LabVIEW mitbringt, insbesondere die zu DAQmx: Das Anlegen(Initialisieren des Tasks gehört vor, das Beenden hinter die Schleife!
Außerdem solltest du einen "Continuous"-Task anlegen und nicht, wie jetzt gerade, eine "Finite" Sampleanzahl abfragen!
Ich bin auch kein Fan davon, bei der zu lesenden Sampleanzahl "-1" anzugeben: lese lieber Blöcke mit fester Sampleanzahl ein! Bei 48kHz würde ich 4800 oder 9600 Samples abfragen…
Zitat:Nun ist es aber so, dass die enstehende Datei entweder nicht die eigentliche Aufnahmelänge besitzt (D.h. die vorkommenden Daten sind in Ihrer Länge quasi komprimiert)
Das würde bedeuten, dass die Samplerate nicht passt. Liefert deine AI-Karte denn die Daten mit genau 48kHz?
Es gibt da DAQmx-Properties, mit denen kannst du auch die tatsächliche Samplerate des DAQmx-Tasks abfragen…
Zum VI:
Das Türkis erzeugt Augenkrebs - muss das sein?
Bei den Wavefile-Funktionen fehlen die Errorcluster-Drähte…
Lösche die FromDDT-ExpressVIs und versuche, ohne ExpressVIs auszukommen. Wenn du aus einem Array einzelne Elemente lesen willst, solltest du IndexArray verwenden!
So in etwa:
[
attachment=61837]
Hallo,
Vielen Dank für deine Antwort.
Ich werde es mit den genannten Vorschlägen ausprobieren. Mittlerweile habe ich auch eine Variante entwickelt welche Ihren Zweck erfüllt. Diese ist natürlich nicht so schön wie sie sein könnte, aber daran störe ich mich momentan noch nicht.
Die Frage ist jetzt vielleicht blöd, aber ich stecke nach wie vor noch nicht ganz in der Syntax von LabView: Ist es bei deiner 'Überarbeitung' nun nicht so, dass lediglich 48000 Samples erfasst werden und danach folgt nur noch die Auswertung? Oder werden weitere Samples bis zu einer Programmbeendigung aufgenommen?
Naja, Dinge wie das Türkis kommen dabei heraus, wenn man sich mit einem neuen Programm vertraut macht.
Sind die Errorcluster für die Funktion meines Programmes wichtig? Also vorerst versuche ich auf alles zu verzichten von dessen Funktion ich keine Ahnung habe, weshalb ich diese wegrationalisiert habe.
Mittlerweile treten auch weitere Probleme auf, aber diese werde ich wohl in einem neuen Thema ansprechen.
Mit freundlichen Grüßen
Hallo David,
Zitat:Ist es bei deiner 'Überarbeitung' nun nicht so, dass lediglich 48000 Samples erfasst werden und danach folgt nur noch die Auswertung?
Nein: ich habe den DAQmxTask ja auf "Continuous" umgestellt…
Zitat:Sind die Errorcluster für die Funktion meines Programmes wichtig?
Nun ja: wie willst du sonst mitbekommen, wenn Fehler auftreten?
Bis jetzt kam ich mit den Fehlermeldungen nach fehlerhaftem Kompilieren ganz gut zu recht.
Aber du hast natürlich recht...Sobald ich den nächsten Teil des Programms fertig habe muss ich mich darum kümmern.
Ich habe gerade eben deine Version 'nachgebaut' und es funktioniert wunderbar. Vielen Dank!!!!
Ich hätte aber noch eine Anfängerfrage. Ich habe für das Einstellen des 'Continuous'-Modus den passenden Zahlenwert eingesetzt. Wie kann ich so ein schönes Menü einbinden und auf das entsprechende Objekt anpassen? Google hilft leider nicht, da ich nicht einmal weiß wonach ich suchen muss.
Mit freundlichen Grüßen
Hallo David,
Zitat:Ich hätte aber noch eine Anfängerfrage. Ich habe für das Einstellen des 'Continuous'-Modus den passenden Zahlenwert eingesetzt. Wie kann ich so ein schönes Menü einbinden und auf das entsprechende Objekt anpassen? Google hilft leider nicht, da ich nicht einmal weiß wonach ich suchen muss.
Wenn ich deine Frage richtig verstehe, dann willst du wissen, wie man diese "Continuous"-Enum/Ring-Konstante erstellt?
Das geht so wie bei allen anderen Konstanten auch: per Rechtsklick auf den entsprechenden Eingang eines VIs…
Du hast die Links in meiner Signatur beachtet - auch und gerade als Anfänger!?
Die letzte Frage deinerseits verstehe ich leider nicht.
Danke für die Antwort. Ich werde das Thema dann als gelöst markieren und für mein nächstes Problem ein neues Thema erstellen.
Noch einmal vielen Dank für deine Hilfe!
Hallo David,
Zitat:Die letzte Frage deinerseits verstehe ich leider nicht.
Unter jedem Beitrag von mir findest du verschiedene Links.
Dieser Bereich nennt sich "Signatur" und kann von jedem User konfiguriert werden!
Siehe hier, in blau und rot:
Nein das habe ich tatsächlich nicht.
Danke für den Hinweis.