16.12.2015, 15:48
Hallo,
ich möchte gerne folgendes umsetzen:
1) Import eines beliebigen Signalverlaufes genauer gesagt genau einer Periode dieses Signals
2) Dieses möchte ich dann mit veränderlicher Frequenz über die Soundkarte ausgeben.
Den ersten Punkt habe ich soweit auch schon gelöst.
Ich lese hier den extern erzeugten Signalverlauf aus einer .csv Datei mittels "Read from Spreadsheet File.vi" ein.
Nur zur besseren Vergleichbarkeit habe ich hier einen Sinusverlauf genommen, später möchte ich dann natürlich einen beliebigen Analogverlauf nutzen.
Was ja vom Prinzip her auch schon funktioniert.
Nun habe ich quasi die Y-Werte meines Verlaufs, fehlt nur noch die Zeitbasis. Wobei wir dann auch schon beim 2. Unterpunkt sind.
Hierfür habe ich dann mittels "Build Waveform" und einem dt von [1/Frequenz]/(Samples-1) ein komplettes Signal gebildet.
Also Beispielsweise besteht mein importieres Signal bzw diese eine Periode aus 360 Stützpunkten. Das Signal möchte ich nun beispielsweise mit 4000 Hz wiedergeben.
(1/4000)/359
Bei der anschließenden Analyse des Ausgangssignals mittels "Waveform Duration" was ja dann meiner Periodendauer T entspricht und anschließend noch dem Kehrwert f=1/T komme ich auch wieder genau auf die eingestellt Frequenz von 4000 Hz.
Wenn ich dieses Signal aber jetzt über die Soundkarte ausgebe, ist die Frequenz viel zu niedrig.
Also um das vergleichen zu können habe ich noch einen normalen Sinusgenerator benutzt mit ebenfalls 4000 Hz. Das klingt ganz anders.
Habe jetzt schon sehr viel verschiedene Sachen versucht aber leider ohne Erfolg.
Ich vermute, dass hängt wohl damit zusammen, dass ich mein Signal auf die Samplerate der Soundkarte bringen muss.
Das habe ich schon mittels "Signalverläufe erneut abtasten" oder auch mit einem Example VI versucht. Leider ohne Erfolg.
Ich habe auch schon als Alternativen Ansatz den Express Block "Arbiträres Signal simulieren" benutzt. Hier dann quasi manuell einen Signalverlauf eingetippt und dann an die Soundkarte ausgegeben.
Hat auch funktioniert, nur das Problem hierbei ist, dass ich die Frequenz nur im Block selbst intern festlegen kann, aber nicht extern über einen Drehregler. Und letzteres benötige ich aber.
Kann mir hier jemand weiterhelfen?
Ich habe mal den analogen Testverlauf (in diesem Fall eben Sinus) in den Anhang.
Die Y-Werte befinden sich in der zweiten Spalte. In der ersten hatte ich nur zu Testzwecken eine Zeitbasis mit rein.
Das VI habe ich auch mal mit rein, ist im Moment etwas durcheinander, weil ich noch alles mögliche ausprobiere.
ich möchte gerne folgendes umsetzen:
1) Import eines beliebigen Signalverlaufes genauer gesagt genau einer Periode dieses Signals
2) Dieses möchte ich dann mit veränderlicher Frequenz über die Soundkarte ausgeben.
Den ersten Punkt habe ich soweit auch schon gelöst.
Ich lese hier den extern erzeugten Signalverlauf aus einer .csv Datei mittels "Read from Spreadsheet File.vi" ein.
Nur zur besseren Vergleichbarkeit habe ich hier einen Sinusverlauf genommen, später möchte ich dann natürlich einen beliebigen Analogverlauf nutzen.
Was ja vom Prinzip her auch schon funktioniert.
Nun habe ich quasi die Y-Werte meines Verlaufs, fehlt nur noch die Zeitbasis. Wobei wir dann auch schon beim 2. Unterpunkt sind.
Hierfür habe ich dann mittels "Build Waveform" und einem dt von [1/Frequenz]/(Samples-1) ein komplettes Signal gebildet.
Also Beispielsweise besteht mein importieres Signal bzw diese eine Periode aus 360 Stützpunkten. Das Signal möchte ich nun beispielsweise mit 4000 Hz wiedergeben.
(1/4000)/359
Bei der anschließenden Analyse des Ausgangssignals mittels "Waveform Duration" was ja dann meiner Periodendauer T entspricht und anschließend noch dem Kehrwert f=1/T komme ich auch wieder genau auf die eingestellt Frequenz von 4000 Hz.
Wenn ich dieses Signal aber jetzt über die Soundkarte ausgebe, ist die Frequenz viel zu niedrig.
Also um das vergleichen zu können habe ich noch einen normalen Sinusgenerator benutzt mit ebenfalls 4000 Hz. Das klingt ganz anders.
Habe jetzt schon sehr viel verschiedene Sachen versucht aber leider ohne Erfolg.
Ich vermute, dass hängt wohl damit zusammen, dass ich mein Signal auf die Samplerate der Soundkarte bringen muss.
Das habe ich schon mittels "Signalverläufe erneut abtasten" oder auch mit einem Example VI versucht. Leider ohne Erfolg.
Ich habe auch schon als Alternativen Ansatz den Express Block "Arbiträres Signal simulieren" benutzt. Hier dann quasi manuell einen Signalverlauf eingetippt und dann an die Soundkarte ausgegeben.
Hat auch funktioniert, nur das Problem hierbei ist, dass ich die Frequenz nur im Block selbst intern festlegen kann, aber nicht extern über einen Drehregler. Und letzteres benötige ich aber.
Kann mir hier jemand weiterhelfen?
Ich habe mal den analogen Testverlauf (in diesem Fall eben Sinus) in den Anhang.
Die Y-Werte befinden sich in der zweiten Spalte. In der ersten hatte ich nur zu Testzwecken eine Zeitbasis mit rein.
Das VI habe ich auch mal mit rein, ist im Moment etwas durcheinander, weil ich noch alles mögliche ausprobiere.