Forum: Analoge Elektronik und Schaltungstechnik vom Oszi aufgenommenes Signal in LTSpice XVII verwenden


von Ralf F. (stingray05)


Lesenswert?

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
von Superbrain (Gast)


Lesenswert?


von Ralf F. (stingray05)


Lesenswert?

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

von Gerald K. (geku)


Lesenswert?

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
von Thorsten S. (thosch)


Lesenswert?

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.

von Yalu X. (yalu) (Moderator)


Lesenswert?

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?

von H. H. (Gast)


Lesenswert?


von Carlo (Gast)


Lesenswert?


von stingray05 (Gast)


Lesenswert?

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

von stingray05 (Gast)


Lesenswert?

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

von Rainer V. (a_zip)


Lesenswert?

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

von Gerald K. (geku)


Lesenswert?

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?

von Thomas (kosmos)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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...

von stingray05 (Gast)


Angehängte Dateien:

Lesenswert?

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

von Michel M. (elec-deniel)


Lesenswert?

... wfm file to ascii
https://nsweb.tn.tudelft.nl/~gsteele/rigol2dat/
kann aber keine weiteren Infos dazu geben :-)

von Wolfgang (Gast)


Lesenswert?

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.

von Mohandes H. (Firma: مهندس) (mohandes)


Lesenswert?

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
von stingray05 (Gast)


Lesenswert?

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

von stingray05 (Gast)



Lesenswert?

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

von Bernd (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Ralf F. (stingray05)


Lesenswert?

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

von Bernd (Gast)


Lesenswert?

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)

von H. H. (Gast)


Lesenswert?

CSV in Excel/OOC/LOC importieren, bearbeiten, und wieder exportieren.

von stingray05 (Gast)


Angehängte Dateien:

Lesenswert?

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

von c-hater (Gast)


Lesenswert?

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.

von stingray05 (Gast)


Angehängte Dateien:

Lesenswert?

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

von Gerald K. (geku)


Lesenswert?

WAV in Mono oder Stereo?

von stingray05 (Gast)


Lesenswert?

Gerald K. schrieb:
> WAV in Mono oder Stereo?

Hi Gerald;

ist in Mono !

von H. H. (Gast)


Angehängte Dateien:

Lesenswert?

Funktioniert doch bestens.

von stingray05 (Gast)


Angehängte Dateien:

Lesenswert?

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

von Gerald K. (geku)


Lesenswert?

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.

von stingray05 (Gast)


Lesenswert?

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

von Gerald K. (geku)


Lesenswert?

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
von Gerald K. (geku)


Lesenswert?

Ü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
von stingray05 (Gast)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Oh Mann🤨
examples\Educational\waveout.asc

von Michel M. (elec-deniel)


Lesenswert?


: Bearbeitet durch User
von Gerald K. (geku)


Lesenswert?

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
von stingray05 (Gast)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

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.

von Michel M. (elec-deniel)


Lesenswert?

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

von Gerald K. (geku)


Lesenswert?

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
von Carlo (Gast)


Lesenswert?

... .wav Datei aus anderne Programmen...
sollte keine anderen Meta-Daten enthalten :-)

von Carlo (Gast)


Lesenswert?

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

von Carlo (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.