So erzeugen Sie von Lauf zu Lauf unterschiedliches Rauschen in LTspice

Ich versuche, Rauschen in meiner Schaltung zu simulieren, und möchte idealerweise ein Histogramm eines bestimmten Parameters erhalten, der über viele Läufe von diesem Rauschen betroffen ist. Wenn ich jedoch den Befehl white() in LTspice oder Variationen von rand() verwende, erhalte ich das gleiche Ergebnis von Run-to-Run. Gibt es eine Möglichkeit, den Seed zu randomisieren, sodass ich bei jeder Iteration ein anderes weißes Rauschen erhalte?

Danke!

Dies ist eine sehr interessante Frage, und die Bereitstellung eines Histogramms lässt den Eindruck entstehen, dass Sie versuchen, das Rauschen in einer Schaltung vorherzusagen. Ich glaube, Sie könnten die gleichen Ergebnisse erzielen, weil die Simulationen wahrscheinlich davon ausgehen, dass die Schaltung zunächst immer unberührt und unverfälscht ist. Ich glaube nicht, dass es Möglichkeiten gibt, einen "Samen" für Ihre Rauschanalyse bereitzustellen. Es gibt eine ähnliche Frage , die hier gestellt wurde. Vielleicht kann das helfen.
Verwenden Sie rand(), um den Startpunkt Ihrer .tran-Simulation zu variieren.
LTspice kann eine externe WAV-Datei lesen, obwohl das Schreiben eines eigenen steuerbaren Rauschgenerators und das Einfügen über eine Datei eine sehr umständliche Vorgehensweise zu sein scheint. In ähnlicher Weise könnten Sie in der Simulation eine m-Sequenz erstellen. Mehrere Instanzen von white(), die um unterschiedliche Beträge verzögert und addiert werden, können zu ausreichend unterschiedlichen Rauschsimulationen führen.
Verwenden Sie die .STEP-Karte und erstellen Sie eine LISTE von Werten, die Sie zu white() hinzufügen. Dann würde jeder Lauf an einer anderen Stelle in der Sequenz beginnen. Daten protokollieren und verarbeiten. Sie könnten auch eine PWL-Datei mit .TRAN verwenden, wenn Sie von Zeit zu Zeit Änderungen an dem in white() verwendeten Basis-Seed vornehmen möchten, wodurch möglicherweise ein einzelner Lauf an verschiedenen "Orten" gestartet wird, sodass eine Gesamtakkumulation angezeigt wird mag was du willst. Siehe auch diesen Artikel . Wenn Sie schreiben, was Sie brauchen, vielleicht eine bessere Antwort?

Antworten (2)

Was du machen willst nennt sich Monte Carlo Simulation, LT Spice ist hier im Vergleich zu kommerziellen Produkten eingeschränkt, da meines Wissens nur 3 Parameter gleichzeitig variiert werden können, aber mir hat es immer gereicht.

habe gerade ein Tutorial gegoogelt: http://electronicsbeliever.com/monte-carlo-simulation-using-ltspice-step-by-step-tutorials/

aber du wirst noch viel mehr finden...

Das Limit für die Anzahl der .stepped-Werte ist <strike>2</strike> 3 (du hattest Recht), aber es kann durch Verwendung auf eine beliebige Zahl umgangen werden table()(etwas umständlich, aber sicherlich nicht unmöglich). Außerdem müssen Sie für den Fall von OP nicht mehr als einen Parameter verwenden: white(x+time)with .param x=mc(a,b)( aund bsind einige Zahlen).

Sie können eine Kombination von .stepBefehlen zusammen mit verwenden WHITE, wie unten gezeigt.

LTSpice-Schaltung

Tatsächlich startet dies den Lauf von unterschiedlichen Zeitpunkten. Die Ausgangsspannung in diesem Beispiel ist wie folgt.

Ausgang

Danke an Jonk für diese Antwort in den Kommentaren. Hier hinzugefügt, falls die verlinkte Seite verschoben wird.