Ich beschäftige mich gerade mit FFTs in LTSpice... Kann mir jemand gute Tipps geben, um die Simulationszeit zu minimieren und die Auflösung bzw. Punkteanzahl optimal einzustellen? Ich brauche einen Frequenzgang bis 30MHz, wie lange sollte dann die zu siumulierende Zeit, die "Number of data point samples in time" und etwaige zusätzliche Einstellungen sein (.opt plotwinsize, .opt numdgt etc.) Gibt es dafür einen allgemeinen Zusammenhang?
Bevor dir jetzt wieder einer rät, erst deine Hausaufgaben zu machen: Der Wikipedia-Artikel zu FFT verweist auf DFT, und dort ist ziemlich am Ende zu lesen: Frequenzauflösung = 1 / Gesamtzeit, d.h. für 1 kHz Frequenzauflösung musst du 1 ms Daten haben, für 1 Hz dann eben 1 s. Und die Schrittweite die du nehmen musst ist meines Wissens 1 / doppelte Grenzfrequenz, bei 30 MHz also 16,666 ns - nimm besser 10, 12,5 oder 16 ns.
Das sind keine Hausaufgaben. EMV ist viel zu praxisgerecht für die Uni und ganz ohne Dreifachintegrale.... Da kennt sich doch kein Prof aus! ;-) Ich bin hier "nur" am rumprobieren und meine Kenntnisse erweitern, normalerweise habe ich mit Elektrik und Steuerungs- sowie Fahrzeugtechnik zu tun. Also... am Ende brauche ich tatsächlich eine Frequenzauflösung von 1 kHz (oder 3kHz, je nach Standard) Ich brauche jedoch eine Simulation über mindestens eine Frequenzperiode, also 20ms. Wie passt man mit LTSpice dann die Frequenzauflösung oder die Anzeige ("Videobandbreite"?) an? Und eine weitere Frage: Um was handelt es sich eigendlich beim Ergebnis? Es müsste der eingeschwungene Zustand sein, also Average, oder?
Ich habe mal eine alte Schaltung rausgekramt und laufen lassen. Die Schwierigkeit ist dabei, dass es ein 234 kHz Signal ist, das mit 1 kHz moduliert wurde und eine Detektorschaltung simuliert wird. Im Ausgangssignal sind also 1 und 234 kHz sowie deren Oberwellen enthalten. Zuerst habe ich die Simulation 2 ms laufen lassen und sehe dabei, dass sie ersten 0,2 ms zum Einschwingen braucht. Um die 234 kHz sauber abgebildet zu bekommen, habe ich eine Zeitauflösung von 10 ns benutzt - das sind über 4200 Punkte pro Schwingung und sicher zuviel; wenn man für die Simulation nur wenig Zeit hat kann man auch 100 ns oder sogar 500 ns benutzen. Das reduziert aber natürlich die Grenzfrequenz. Ich habe dann fürs Erste die Simulation mit .tran 0 2.7ms 0.7ms 10ns startup gemacht und aus der Waveformdarstellung (1. Bild) FFT mit den Daten aus dem 2. Bild aufgerufen, also 262144 Datenpunkten. Mit der Gesamtlänge von 2 ms ist die Frequenzauflösung 0,5 kHz, und mit 262144 Datenpunkten liegt die Grenzfrequenz bei (262144/2) x 0,5 kHz = 65,536 MHz. Wegen der geringen Frequenzauflösung sind die Peaks bei 1, 2, 4 kHz usw. extrem breit. Ich habe dann nochmal 200 (statt 2) ms laufen lassen .tran 0 200.7ms 0.7ms 10ns startup und ebenfalls mit 262144 Punkten die FFT erstellt (Bild 3), dann ist natürlich wegen die Frequenzauflösung 5 Hz, die Grenzfrequenz 655,36 kHz. Hier bekommt man wegen der 100-fach höheren Frequenzauflösung schöne Peaks auch bei den NF-Frequenzen. Mit der maximal möglichen Punktezahl von 16777216 Datenpunkten steigt die Grenzfrequenz um das 64-fache auf (16777216/2) x 5 Hz = 41,94304 MHz - aber natürlich auch die Rechenzeit.
Da hat offenbar einer wirklich zuviel Zeit, liest jeden neuen veröffentlichten Beitrag und gibt ihm Daumen runter, ohne was Sinnvolles beizutragen. Schafft bitte endlich diese Möglichkeit ab - wer was zu kommentieren hat, soll das in Worten tun!
Tom schrieb: > Zuerst habe ich die Simulation 2 ms laufen lassen und sehe dabei, dass > sie ersten 0,2 ms zum Einschwingen braucht. Dann lass die Simulation 2,2 ms laufen und analysiere von 0,2 bis 2,2 ms. Man muss nicht bei Null anfangen!
Deswegen habe ich ja beim 2. mal bei 0,7 ms angefangen - hätte auch 1 ms sein können. Wenn man bis 0,2 Änderungen sieht, ist sicher bei 0,3 oder 0,4 noch was da was die FFT bei -80 dB oder so zeigt. Es geht doch nur ums Prinzip, an welchen Parametern man schrauben muss. Startzeit, Messdauer und Schrittweite eben, und das hängt ganz von der jeweiligen Simulation des TO ab.
Die Schaltung ist bei mir eingeschwungen und ich habe 20ms Simulationszeit, das macht dann 1200480 Punkte um die FFT bis 30MHz zu erhalten. Ich habe eine Netznachbildung nach CISPR16 und die anderweitig simulierte Stromaufnahme der Schaltung verwendet, nicht vom Faktor 1000000 verwirren lassen, die Ausgabe sollte damit direkt in dBµV sein. Die Frage ist nun, wie ich die 1 oder 3 kHz Empfängerbandbreite simulieren kann, ohne die Simulationszeit (die braucht es um eine volle Periode zu haben) und die FFT Punkte zu ändern (soll immer noch bis 30MHz gehen) Bei einem Speki wäre es ja die "Videobandbreite", aber wie macht man das bei LTSpice?
Luky S. schrieb: > die braucht es um eine volle Periode zu haben Welche "volle Periode"? Von was? 50 Hz - wieso? In dem Fall würde mich interessieren, warum dich dann die Frequenzen unterhalb von 9 kHz nicht interessieren... Und was bedeutet "Empfängerbandbreite"? Dann müsste in der Schaltung ein Filter mit einer bestimmten Mittenfrequenz und Bandbreite sitzen. Wenn "ideal", schneidet das aus deiner FFT-Darstellung genau den Frequenzbereich raus, d.h. davor und danach Null (minus unendlich dB); wenn "real", ist es eine Faltung mit der Filterkurve.
:
Bearbeitet durch User
Die Schaltung wird mit 50Hz 230V versorgt und der Eingangsstrom hat auch eine Periode von 50Hz, daher war die Idee, es über (mindestens) eine Periode zu simulieren. Grundsätzlich will ich die CISPR 22 Messung möglichst exakt abbilden. Daher auch der Frequenzbereich von 9kHz (eigendlich 150kHz, aber andere messen ab 9) bis 30MHz (leitungsgebunden) mit einer Empfängerbandbreite (Resolution Bandwidth) von 200Hz (unter 150kHz) bis 9kHz, wahlweise auch 1kHz und 3kHz, aber das sollte dasselbe sein, es geht mir darum, wie man das in LTSpice machen könnte. Streng genommen ist es auch kein Gaussfilter, sondern ein CISPR-Filter (Grenzfrequenz = -6dB), aber das kann man glaube ich mal ignorieren. Und das Quasi-Peak gar nicht mal so einfach zu simulieren ist, ignorieren anscheinend auich alle.
Also so wie auf https://www.tekbox.com/product/Messungen-leitungsgebundener-Storstrahlung.pdf Seite 16?
Genau, ich hätte gerne die Werte in der Simulation "vergleichbar" gefiltert, ansonsten bringt ein Vergleich mit der Realität halt auch nicht besonders viel...
Das wird schwierig, zumindest wird die Darstellung in LTSpice nicht möglich sein: Die Simulation erzeugt dir n Spannungswerte zu diskreten äquidistanten Zeitpunkten über die Gesamtdauer t. Die FFT erzeugt dir daraus n/2 Amplituden- und Phasenwerte zu diskreten äquidistanten Frequenzen, beginnend bei der aus 1/t resultierenden Frequenz (= Frequenzauflösung). LTpice malt dir daraus ein Diagramm, das die Amplitudenwerte durch Spline-Linien zu einer durchgehenden Kurve verbindet, statt bei den diskreten Frequenzen Linien in Amplitudenhöhe zu zeigen. Der Messempfänger bzw. Spektrumanalysator misst nicht bei diskreten Frequenzen, sondern hat eine bestimmte Bandbreite. Wenn das Rigol 601 Punkte misst heißt das aber sicher nicht, dass seine Bandbreite 1/600 der Scanbreite ist - es kann mehr oder weniger sein. Die Empfehlung ist ja, zB 200 Hz Bandbreite aber 100 Hz Abstand zu nehmen. Wenn du bei 1 kHz und 2 kHz mit 200 Hz Bandbreite misst, entgeht dir eine Störung bei 1,5 kHz, wenn sich die Bereiche überlappen nicht. Im Gegensatz zur Simulation werden hier grundsätzlich alle Signale innerhalb der Bandbreite in 1 Topf geworfen. Das heißt, wenn du bei 200 Hz Bandbreite ein Signal bei 1 kHz hast und alle 100 Hz misst, wirst du zwischen 800 und 1200 Hz eine Art Gaußkurve bekommen, quasi das Abbild der Filterkurve. Bei einem Signal bei 950 Hz bekommst du dieselbe Gaußkurve zwischen 700 und 1200 Hz. In der Simulation (mit 100 Hz Auflösung) dagegen erhältst du beim 1-kHz-Signal eine scharfe Linie bei 1 kHz, beim 950-Hz-Signal ein Linienspektrum ähnlich der Gaußkurve, mit den beiden höchsten Peaks bei 900 und 1000 Hz. Nur: LTSpice malt ja keine Linien, sondern verbindet die Amplitudenwerte durch einen Spline, wodurch es auch bei 1 kHz ähnlich aussieht wie eine Gausskurve, aber es ist nur angenähert.
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.