Forum: Digitale Signalverarbeitung / DSP / Machine Learning LTSpice: Resampling/Abtastzeitschritt bei FFT


von Ulrich (Gast)


Lesenswert?

Hi,


dies konnte ich leider nicht über die Dokumentation bzw. über eine 
Websuche herausfinden. Aber für dieses Forum ist das bestimmt eine 
leichte Frage:

Wie wählt die FFT bei LTSPice standardmäßig die Zeitschrittweite (bzw. 
Abtastfrequenz) für die Berechnung aus?


Die Zahl der Abtastwärte lässt sich über das Feld "Number of data point 
samples in time" einstellen.

Die Frage ist aber, sind die Zeitschritte für die FFT, die LTSPice über 
die simulierten Zeitbereichsdaten durchführt, unabhängig von der 
Schrittweite, die in der Zeitbereichsimulation eingestellt wurde?

Letztlich interessiert mich natürlich die Frequenzauflösung bei 
gegebener Bandbreite. Sofern LTSpice die Zeitbereichsdaten für die FFT 
neu abtastet (bzw. so tut als ob, in dem die jeweils nächstliegenden 
Zeitpunkte nach der sowieso durchgeführten Glättung ggf. mehrfach 
verwendet werden), wäre die Frage, welcher Wert für die FFT-Abtastrate 
verwendet wird.

Insbesondere ist ja die Simulationsschrittweite i.d.R. nicht konstant, 
sondern feiner bei Zeitdetails mit hoher Änderungsrate der 
Strom/Spannungswerte.

Und es wäre IMO auch kontraproduktiv, eine feste oder feste minimale 
Schrittweite für die Zeitbereichsimulation zu wählen, nur damit die FFT 
eine bestimmte Auflösung aufweist; der adaptive Zeitschritt für die 
Zeitbereichssimulation ist ziemlich recheneffizient.


Viele Grüße,
Ulrich

von Helmut S. (helmuts)


Lesenswert?

Hallo Ulrich,

die FFT in LTspice interpoliert die Datenwerte aus den im raw-file 
abgelegten Ergebnisse der .TRAN Analyse. Die Interpolation muss LTspice 
in der FFT machen da die abgelegten Werte der SPICE-Simulation nie in 
einem festen Zeitraster sind.

Tipp: Die Datenkompression abschalten und in .TRAN einen kleinen 
maximalen Zeitschritt wählen.

.options plotwinsize=0

Gruß
Helmut

: Bearbeitet durch User
von Ulrich (Gast)


Lesenswert?

Hallo Helmut,


danke für die Antwort!

Ja, wo ich noch einmal mit den Einstellungen für die FFT gespielt habe, 
ist es eigentlich klar.

Die Länge des Zeitfensters, über das die FFT läuft, ist in jedem 
Fall(*1) entweder die Gesamtdauer der Zeitbereichssimulation, oder 
entsprechend die Dauer, die man über die Option "Time range to include" 
frei einstellen kann.

Und weil die Punkte für die FFT einen festen Zeitschritt haben, kann das 
nur funktionieren, wenn die Zeitschritte der Zeitbereichssimulation und 
der FFT unabhängig voneinander sind, bzw. wenn die FFT quasi mit 
"neuabgetasteten" Werten berechnet wird.


Das mit der Option plotwinsize=0 ist ein guter Tip; dazu habe ich auch 
den Link hier gefunden:

http://preamp.org/elektronik/klirrfaktor-simulieren-mit-ltspice


Viele Grüße,
Ulrich


(*1): Das kann man über die Maximalfrequenz, für die LTSpice die FFT im 
Plot anzeigt, beobachten:

Mit n = 2*(Anzahl Frequenz-Bins) Zeitreihenpunkten bzw.
n - 1 Zeitintervallen, die das Zeitfenster T äquidistant ausfüllen, ist 
die Abtastfrequenz:

f_s = (n - 1)/T, und die Frequenzauflösung gemäß der bekannten Formel:

res_f = f_s/n  wird zu: res_f = (n - 1)/(T*n) also ca. 1/T.

Wenn man so die 1/2 * n Frequenz-Bins der Breite 1/T von null 
aufsummiert, ergibt das eine maximale Frequenz von:

f_MAX = n * 1/2 * 1/T.

Das ist zufällig gerade die Maximalfrequenz, bis zu der LTSpice den Plot 
der FFT anzeigt, und über f_MAX = 1/2 * f_s ist auch die Abtastbedingung 
erfüllt..

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.