Hallo zusammen, ich möchte ein mit dem Rigol DS1054Z aufgenommenes Signal als Eingangssignal für eine Schaltung in LT Spice verwenden. Das DS 1054Z bietet u.a das csv und wfm Format an. 1. welches Dateiformat ist die richtige Wahl ? 2. wie bekomme ich die Daten in LTSpice ? Hier im Forum gabs dazu mal nen Beitrag den ich aber nicht wieder finden konnte. würde mich über Eure Tipps freuen ! Grüsse
:
Verschoben durch Moderator
nimm CSV und dann so: https://www.analog.com/en/technical-articles/ltspice-importing-exporting-pwl-data.html
Hallo Superbrain, vielen Dank ! wie sieht das bei den wfm Dateien vom Rigol DS1054Z aus ? Wie lassen die sich in csv umwandeln um die in LTSpice zu verwenden ? Grüsse
Man muss naturlich aufpassen ob die Anzahl der Digitalisierungsstufen für den Zweck ausreichen sind. Die meisten Oszilloskope speichern mit 8 bit Auflösung. Um die Wirksamkeit von Filter zu überprüfen, um Nutzsignale aus dem Rauschen herauszufiltern, könnte es mit 8 bit eng werden. Ich habe es mit einem Filter für DCF 77,5 kHz versucht ein schwaches Signal gegenüber dem Rauscben anzuheben. Werte von Simulation und Praxis (Messung) haben sich, abgesehen von der langen Simulationsdauer, stark von einander unterschieden.
:
Bearbeitet durch User
Man kann auch .wav Dateien als Signal für Transientensimulation in LTspice verwenden: Bei Spannungs- und Stromquellen läßt sich eine .wav Datei mit dem Parameter *wavefile=dateiname.wav* einbinden. Bei Spannungsquellen skaliert Vollaussteuerung (0 dBfs) im Wavefile auf +/-1V also 2Vss. Ich kenne das Rigol .wfm Format nicht, kann mir aber gut vorstellen, daß sich das relativ einfach in ein .wav konvertieren läßt. 8-Bit oder 16-Bit Rohdaten ohne Header lassen sich z.B. mit Audiosoftware wie Audacity einlesen und als .wav Datei mit Header wieder exportieren. Die korrekte Abtastrate muß man ermitteln und eintragen.
Ralf F. schrieb: > wie sieht das bei den wfm Dateien vom Rigol DS1054Z aus ? > Wie lassen die sich in csv umwandeln um die in LTSpice zu verwenden ? Hiermit: https://github.com/scottprahl/RigolWFM Aber warum möchtest du das, wenn das Rigol auch direkt CSV-Dateien liefern kann?
Yalu X. schrieb: > Aber warum möchtest du das, wenn das Rigol auch direkt CSV-Dateien > liefern kann? Erstmal vielen Dank für die vielen Antworten ! @ Yalu X. zum einen lässt sich wfm mit dem Rigol deutlich schneller speichern, zum anderen hatte ich noch nen Beitrag hier aus`m Forum im Hinterkopf bei dem es darum ging wfm in csv umzuwandeln. Dabei wurde Notepad++ verwendet - finde ich nur leider nicht mehr... Aber Ok, werd das mal direkt mit csv probieren ! Grüsse
Gerald K. schrieb: > Man muss naturlich aufpassen ob die Anzahl der Digitalisierungsstufen > für den Zweck ausreichen sind. Hi Gerald K. das Signal selbst ist eine per magn Tonabnehmer abgenommene Saitenschwingung. Grundfrequenz 30,9 Hz... Dann würde theoretisch schon 61,8 Hz als Samplefrequenz ausreichen... Grüsse
stingray05 schrieb: > zum einen lässt sich wfm mit dem Rigol deutlich schneller speichern, zum > anderen hatte ich noch nen Beitrag hier aus`m Forum im Hinterkopf bei > dem es darum ging wfm in csv umzuwandeln. könnte aber auch daran liegen, dass die Daten im CSV viel höher aufgelöst sind! Das solltest du prüfen. Und Umwandlungen sollten doch zu finden sein... Gruß Rainer
stingray05 schrieb: > Grundfrequenz 30,9 Hz... > Dann würde theoretisch schon 61,8 Hz als Samplefrequenz ausreichen... Was ist der Zusatznutzen gegenüber einer LtSpice Wechselspannungsquelle mit 30,9 Hz, zumal Oberwellen keine Rolle spielen?
es geht doch genau um die Oberwellen bzw. die Verzerrungen, wenn man das nicht möchte kann man doch direkt einen Sinus mit der Wunschfrequenz verwenden.
Gerald K. schrieb: > Was ist der Zusatznutzen gegenüber einer LtSpice Wechselspannungsquelle > mit 30,9 Hz, zumal Oberwellen keine Rolle spielen? Das ist etwas mißverständlich formuliert, trifft aber den Kern. Der ist: wenn die Oberwellen keine Rolle spielen, kann man sich das ganze Gehampel mit Oszi und unzähligen Formatkonvertierungen komplett sparen und gleich eine Sinusquelle benutzen, die ein synthetisches Sinussignal erzeugt. Will man aber simulieren, was mit einem realen Signal (incl. Oberwellen) passiert, dann macht man das einfach so: statt Oszi einfach PC benutzen und das Signal via Soundkarte als *.wav aufzeichnen. Da passt dann sofort die Samplerate und LTSpice kann auch direkt etwas damit anfangen. Und ja: Brauchbare Capture-Programme können auch eine graphische Darstellung des Signals liefern, damit Oszi-Fetischisten ihren Oszi nicht allzusehr vermissen...
Gerald K. schrieb: > Was ist der Zusatznutzen gegenüber einer LtSpice Wechselspannungsquelle > mit 30,9 Hz, zumal Oberwellen keine Rolle spielen? Hi Gerald, Meine Kenntnisse mit LTSpice gehen noch nicht soweit das ich mit ner Wechselspannungsquelle das Tonabnehmersignal (siehe Bilder) so nachbauen könnte. Saite anschlagen, gleichzeitig noch an Potis, auf dem recht vollen und damit Störanfälligem Breadboard, drehen ist nicht wirklich ideal... Die Saitenanschläge auf dem Oszi sind auch recht schwer für einen bestimmten Wert reproduzierbar - überhaupt nicht zu vergleichen mit Spiel über einen angeschlossenem AMP. In wieweit Pegelspitzen (LiLa) durch Oberwellen zusätzlich eine Rolle spielen ist noch nicht ganz klar, die Spikes sind im Signal aber zumindest zu sehen. Ließe sich aber mit entsprechend steilen Filtern in LTSpice auch einfacher testen. Blau ist das Triggersignal vom NE 555 Ausgang. Das sollte eigentlich ohne Unterbrechung ab dem ersten Spike auf HIGH stehen und erst bei ganz niedrigem Pegel auf LOW gehen... Die Grundlegende Idee war erstmal einzelne Saitenanschläge vernünftig zu erkennen und per µC weiterverarbeiten zu können. Mein bisheriger Ansatz war zumindest für die Signalaufbereitung rein Analog: Verstärken => Gleichrichter / Limiter => Filtern (fehlt noch) => Re Trigger (zZ mit NE 555 mit Retrigger funktion)=> µC. Die Retriggerschaltung findet sich hier : http://www.pegons-web.de/555grund.html#ntrig2g Grundsätzlich funktioniert das Triggern bereits mit Ausgabe von MidiNoteON / Off über den µC - wären da nicht die Fehltrigger durch die Pegelschwankungen im Signal in Verbindung mit den nur sehr begrenzt einstellbaren Triggerschwellen vom NE 555 ... Nächster Ansatz, wenn das Filtern nicht zum gewünschten Ergebiss führt, wäre ein Retrigger Sketch für den µC... Vielleicht hat ja der eine oder andere noch nen guten Sketch mit dem die untere Triggerschwelle bis auf 0 eingestellt werden kann ? Das Oszisignal als PWL Datei funktioniert inzwischen. Vielen Dank nochmal für die Tipps ! Grüsse
... wfm file to ascii https://nsweb.tn.tudelft.nl/~gsteele/rigol2dat/ kann aber keine weiteren Infos dazu geben :-)
stingray05 schrieb: > das Signal selbst ist eine per magn Tonabnehmer abgenommene > Saitenschwingung. Grundfrequenz 30,9 Hz... > Dann würde theoretisch schon 61,8 Hz als Samplefrequenz ausreichen... Wie du schon richtig sagst, liegt die Grundfrequenz bei 30,9 Hz. Da das aufgenommene Signal aber genau nicht nur aus der Grundschwingung besteht, reicht eben als als Samplefrequenz die 61,8 Hz NICHT aus, auch theoretisch nicht. Und selbst, wenn du ein reines Sinussignal mit einer Frequenz von 30,9 Hz hättest, reicht als Abtastfrequenz genau 61,8 Hz nicht aus. Das Abtasttheorem sagt einem, dass die höchste Signalfrequenz echt KLEINER als die halbe Abtastfrequenz sein muss (bei ausreichender Länge der Zeitserie). Man achte auf die Feinheiten bevor man irgendwelchen Unfug schreibt.
Wolfgang schrieb: > Abtasttheorem Mit 61,8 Hz (61,9) könnte man schon 30,9 Hz gerade so abtasten. Nur sollte klar sein, daß da als Information nur eben ein Sinus von 30,9 Hz herauskommt.
:
Bearbeitet durch User
Wolfgang schrieb: > Und selbst, wenn du ein reines Sinussignal mit einer Frequenz von 30,9 > Hz hättest, reicht als Abtastfrequenz genau 61,8 Hz nicht aus. > Das Abtasttheorem sagt einem, dass die höchste Signalfrequenz echt > KLEINER als die halbe Abtastfrequenz sein muss (bei ausreichender Länge > der Zeitserie). Man achte auf die Feinheiten bevor man irgendwelchen > Unfug schreibt. Hi Wolfgang, schon klar - die 61,8 (9) Hz waren auch nur als rein theoretischer `mindest Abtastwert` zu verstehen... Der µC ist ein Teensy 3.2, läuft mit 72 Mhz. Da sollten einige zig Tausend Abtasttungen /s kein Problem sein... By the way: Vielleicht hat ja noch jemand anhand der Signal Screenshots (Saite ist dabei nur 1 x angeschlagen) andere / bessere Vorschläge für eine Anschlagserkennung ? Grüsse
stingray05 schrieb: > Das Oszisignal als PWL Datei funktioniert inzwischen. Da hatte ich mich dann doch zu früh gefreut... Mir ist aufgefallen das der Pegel den LTSpice anzeigt nicht mit dem Oszisignal (getestet mit 2ms 5ms 10ms 20ms 50ms) überein stimmt... Mir ist nicht klar woran das liegt. - Fehlen noch weitere Parameter / Fehler beim Umwandeln in txt Datei ? Das Oszisignal wurde als .csv Datei gespeichert und mittels Notepad (nicht Notepad++) in .txt umgewandelt (siehe Anhang), dann in Spice als PWL File eingefügt (wie in der Anleitung von Analog Devices). Um das Signal derzeit mit dem richtigen Pegel angezeigt zu bekommen muss .tran schon auf etwa 1000 stehen - dann passt der zeitliche Verlauf natürlich nicht mehr... Wav Datei als Alternative scheidet leider aus, da der Pegel bei etwa 3 V liegt. Würde mich über weitere Tipps freuen ! Grüsse
Die X-Achse ist die Zeit. In der Datei 'H_einzelner_Anschlag_2ms.txt' stehen dort ganzzahlige Werte, die von LTSpice als Sekunden interpretiert werden.
Hi Bernd, danke für die Info ! Dummerweise macht das Rigol DS1054Z beim speichern als .csv nur eine Spalte... - sonst wärs ja auch zu einfach... Gibts ne Lösung damit nicht alle 1199 Einträge per Hand geändert werden müssen ? Grüsse
Ralf F. schrieb: > Gibts ne Lösung damit nicht alle 1199 Einträge per Hand geändert werden > müssen? Lerne und verwende eine Skriptsprache Deiner Wahl und Du hast es leichter im Leben. Ich hätte das auf die Schnelle in Python so gelöst:
1 | #! /usr/bin/env python3
|
2 | |
3 | import sys |
4 | |
5 | timestep = 1e-3 |
6 | |
7 | with open( sys.argv[ 1], 'rt') as file: |
8 | for line in file: |
9 | data = line.strip().split( ',') |
10 | try: |
11 | x = float( data[ 0]) * timestep |
12 | y = data[ 1] |
13 | print( "%s, %s" % (x, y)) |
14 | except TypeError: |
15 | print( 'ERROR:', line) |
CSV in Excel/OOC/LOC importieren, bearbeiten, und wieder exportieren.
Bernd schrieb: > Die X-Achse ist die Zeit. > In der Datei 'H_einzelner_Anschlag_2ms.txt' stehen dort ganzzahlige > Werte, die von LTSpice als Sekunden interpretiert werden. Hi Bernd, wie müsste denn dann das Zahlen Format in der text Datei aussehen damit mir LSpice zb statt mit .tran 1000, mit .tran 1 die richtigen Werte anzeigt ? zB Anstelle von 0 bis 1199 dann 0.000000 - 0.001199 ? Grüsse
stingray05 schrieb: > Wav Datei als Alternative scheidet leider aus, da der Pegel bei etwa 3 V > liegt. 3V Spitze-Spitze würde doch schon (fast) wunderbar passen. Und selbst wenn nicht: zwei Widerständen können daraus mit Sicherheit einen vollkommen normgerechten Line-Pegel erzeugen. Und falls es 3V effektiv sein sollten: auch dann klappt der Trick mit dem Spannungsteiler ganz hervorragend. Sprich: mit der Verwendung des PC zur Aufnahme kannst du dir Unmengen Arbeit sparen und es kostet nur maximal zwei lächerliche Widerstände... Es geht noch weiter: du kannst die Aufnahme problemlos auch gleich noch passend beschneiden. Dadurch hast du das, was dich primär interessiert, nämlich die Attack-Phase vollständig und nicht erst ab dem Moment, wo irgendein halbdämlicher Oszi-Trigger endlich triggert.
Hi c-hater, Danke für die Tipps ! Hab das mal mit .wav versucht und erhalte in LTSpice XVII die Fehlermeldung: "Missing Time Points in PWL Source V3"... Woran kann das liegen ? Signalformat: 16 Bit (Integer), 44.1Khz - aufgenommen als .wav Datei Aufgenommen wurde das Signal mit Cantabile Performer 3.0 (DAW) da in Audition 1.5 oder Audacity 3.xxx kein ASIO4all ausgewählt werden kann obwohl in beiden mein Audiointerface (iRig HD-A) angezeigt wird... Habe als Wave File Format in Cantabile auch die übrigen Optionen wav, wave64 und automatisch ausprobiert - der Fehler beim simulieren in LTSpice bleibt trotzdem... Vielleicht hat dazu jemand "die" Idee ? Grüsse
H. H. schrieb: > Funktioniert doch bestens. Hi H.H, funktioniert so leider nur dann wenn ich Draft1.asc direkt mit LTSpice öffne. Sobald ich die vorher speichere und dann öffne kommt "V1: could not open wavefile: h_Saite_002.wav"... Das gleiche passiert wenn ich Draft1 in einer vorhandenen Schaltung verwende (siehe Anhang). In welchem Ordner muss die Draft1.asc liegen ? Wenn ich anstelle von "wavefile=H_Saite_002.wav" dann den direkten Pfad PWL:"F:\Arduino + Elektronik\LTspiceXVII\PWL Daten\H_Saite_002.wav" verwende, bekomme ich in der Draft 1 und in meiner Schaltung wieder "missing time points in PWL source V1 bzw V3"... Dasselbe passiet auch wenn ich nicht die Draft1.asc verwende, sondern nur eine Spannungsquelle (zB V3) und dort meine H_Saite_002.wav als PWL Datei einbinde... wer kann helfen ? Grüsse
stingray05 schrieb: > "wavefile=H_Saite_002.wav" Wenn wave= keinen Pfad enthält, dann sollte die WAV-Datei im gleichen Verzeichnis wie die ASC-Datei liegen.
Gerald K. schrieb: > Wenn wave= keinen Pfad enthält, dann sollte die WAV-Datei im gleichen > Verzeichnis wie die ASC-Datei liegen. Danke Gerald K., das war genau der richtige Tipp ! Scheint soweit zu funktionieren...- allerdings dauert die Simulation ewig. Gibts ne möglichkeit die deutlich zu beschleunigen ? Grüsse
Das Problem kenne ich, es liegt an den vielen Abtastpunkten (~ 477000 Samples). Am besten nur kürzere interessante Teilstücke simulieren. Welches Zeitintervall wird simuliert? Man könnte auch die Samplerate von 44,1KHz vierteln. Bei 11kHz kann die höchste erfassbare Oberwelle bei 5kHz liegen. Oder einen kürzeren Ausschnitt. Die 477000 Samples müssten etwas mehr als 10s sein. Man könnte schauen wie lange die Simulation von 1s dauert. Dann könnte man hochrechnen wie lange 10s dauern.
:
Bearbeitet durch User
Überlegungen zur Geschwindigkeit: wenn für jeden Knoten ein Spannungswert pro Sample gespeichert muss, kommt man auf rund 1/2 million Werte pro Knoten. Aus wie vielen Knoten besteht das Projekt? Wieviel RAM stellt der PC zur Verfügung. Ist zu wenig an RAM, dann muss auf die Festplatte ausgelagert werden und das kostet viel Zeit. Zeit neben der eigentlichen Simulationsarbeit. Ein PC mit Windows 64 und viel RAM ist sicher ein Vorteil.
:
Bearbeitet durch User
Gerald K. schrieb: > Das Problem kenne ich, es liegt an den vielen Abtastpunkten (~ 477000 > Samples). > > Am besten nur kürzere interessante Teilstücke simulieren. Hallo Gerald K. danke nochmal für die Tipps - funktioniert ! ich hab die Samplerate jetzt mal auf 11 KHz umgestellt - läuft so erheblich schneller. Wie kann ich das Signal mit LTSpice über die Soundkarte ausgeben ? Was muss wie eingestellt werden, und in welchem Ordner muss die so erzeugte .wav Datei dann liegen ? Grüsse
Oh Mann🤨 examples\Educational\waveout.asc
https://www.youtube.com/watch?v=Cym6mcvonfM https://www.analog.com/en/analog-dialogue/raqs/raq-issue-175.html Mischen und direkte Weiterverarbeiten der Daten per Formel oder OP geht auch :-) https://www.allaboutcircuits.com/technical-articles/ltspice-simulation-using-wav-files/ allgemein http://ltwiki.org/LTspiceHelp/LTspiceHelp/_WAVE_Write_selected_nodes_to_a_wav_file_.htm
:
Bearbeitet durch User
Ausgabe in eine WAV Datei : .wave <filename.wav> <Nbits> <SampleRate> V(out1) [Vout2) ...] Beispiel : .wave C:\mysound.wav 16 44.1K V (links) V (rechts)
:
Bearbeitet durch User
Michel M. schrieb: > Mischen und direkte Weiterverarbeiten der Daten per Formel > oder OP geht auch :-) > https://www.allaboutcircuits.com/technical-articles/ltspice-simulation-using-wav-files/ Hallo Michel M. ein paar Fragen zur Schaltung "General Purpose WAV Recorder" im obigen Link von Dir: Das würde ich jetzt so verstehen das sich damit .wav Dateien direkt in LTSpice aufnehmen und abspielen lassen - ? Wo und wie wähle ich da meinen Audio Treiber aus ? Grüsse
Gar nicht. Die wav-Datei muß vor Simulationsstart komplett verfügbar sein. LTspice kann weder Echtzeit noch Streams/Pipes. Außerdem darf die Datei nicht zu groß sein, also Samplerate ca. 5x Grenzfrequenz des Signals nehmen.
stingray05 schrieb: > > Das würde ich jetzt so verstehen das sich damit .wav Dateien direkt in > LTSpice aufnehmen und abspielen lassen - ? > Wo und wie wähle ich da meinen Audio Treiber aus ? keine, zum Glück :-) Abdul K. schrieb: > Samplerate ca. 5x Grenzfrequenz des > Signals gute Anmerkung https://www.youtube.com/watch?v=42II_0r4evo https://www.youtube.com/watch?v=mdJm-TzrBsA https://www.youtube.com/watch?v=9aXq_24W1wk https://www.youtube.com/watch?v=-EGzZHhiGw0
stingray05 schrieb: > Das würde ich jetzt so verstehen das sich damit .wav Dateien direkt in > LTSpice aufnehmen und abspielen lassen - ? > Wo und wie wähle ich da meinen Audio Treiber aus ? Wie eine normale WAV-Datei durch anklicken. Um den Teiber kümmert sich die mit WAV verknüpfte Anwendung, wie z.B. Mediaplayer, VLC, etc.
:
Bearbeitet durch User
... .wav Datei aus anderne Programmen... sollte keine anderen Meta-Daten enthalten :-)
stingray05 schrieb: > Gibts ne möglichkeit die deutlich zu beschleunigen ? vielleicht, selbst noch nicht getestet :-) "How to use a Rigol oscilloscope with LTspice" .. https://www.youtube.com/watch?v=LTEc7fjmXSg https://github.com/RuiCarneiro/rigol2spice
Carlo schrieb: > "How to use a Rigol oscilloscope with LTspice" neues Video :-) https://www.youtube.com/watch?v=AaCvPtJ-cZM
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.