Unerlaubter Zustand Zufallsgenerator

Gast #6238363
Lesenswert?

Ich habe eben über Zufallsgeneratoren mit rückgekoppelten 
Schieberegistern gelesen, das es klemmt, wenn alles 1111111... bzw. je 
nach Schaltung alles 00000000000000... ist.

Der spontane Gedanke ist, was wenn die Anzahl der XOR Eingänge ungerade 
ist. Würde das die Anfangsverklemmung nicht sicher verhindern?
#6238377
Lesenswert?

Hallo Bastelheini,

hier steht alles geschrieben was Du brauchst.
https://de.wikipedia.org/wiki/Linear_r%C3%BCckgekoppeltes_Schieberegister

Zitat: "Zur Initialisierung, im Englischen wird dieser Startwert auch 
als seed bezeichnet, kann das Schieberegister mit XOR-Rückkopplung mit 
beliebigen Werten gefüllt werden – nicht jedoch nur mit Nullen, da dann 
das Register aus diesem Zustand niemals herauskäme, das Schieberegister 
also eine triviale Folge konstanter Nullen generieren würde. Es können 
statt der XOR-Verknüpfungen auch XNOR-Verknüpfungen eingesetzt werden; 
in diesem Fall sind als Startwert alle Werte außer lauter Einsen 
erlaubt, was auch wieder eine maximale Periodenlänge von 2n−1 ergibt. Je 
nach Technologie ist es einfacher, den Zustand mit lauter Nullen als 
definierten Anfangszustand zu implementieren. Die Verknüpfung mittels 
XNOR hat hierbei den Vorteil, dass dieser Zustand mit lauter Nullen als 
Startwert geeignet ist und nicht, wie bei XOR, zu der trivialen 
konstanten Nullfolge führt."

Entscheidend ist natürlich, dass Du ein sog. "primitive Polynom" mit 
Deiner Schaltung umsetzt.

Bastelheini schrieb:
> Der spontane Gedanke ist, was wenn die Anzahl der XOR Eingänge ungerade
> ist. Würde das die Anfangsverklemmung nicht sicher verhindern?

Bei dem tivialen Fall, d. h. "0000...." oder "1111...." (je nach 
Schaltung) hilft das auch nichts.

Mit freundlichen Grüßen
Guido
Gast #6238514
Lesenswert?

Bastelheini schrieb:
> Der spontane Gedanke ist, was wenn die Anzahl der XOR Eingänge ungerade
> ist. Würde das die Anfangsverklemmung nicht sicher verhindern?

Mir ist keine Variante bekannt, die das direkt verhindert.

Grundsätzlich ist es so, dass ein PRG immer mindestens zwei Folgen kann 
und unter Verwendung des primitiven Polynoms ist eben die zweite Folge 
die mit lauter Nullen oder Einsen.
Man muss einen Zusatz einbauen, wenn der Fall eintreten kann.
Das ist entweder eine OR- oder AND-Verknüpfung von allen Stufen, die 
dann einmal einen Shiftregistereingang invertiert.
Alternativ kann das auch ein Zähler mindestens der Länge n+1 (n ist 
Anzahl der Schieberegisterstufen) sein, der in der richtigen Folge immer 
wieder zurückgesetzt wird und wenn er überläuft (weil nicht 
zurückgesetzt) dann einen Eingang des Shiftregisters invertiert.
Heißt: wenn ein PRG 8 FFs hat und die triviale Sequenz 00000000 ist, 
dann setzt man den Zähler mit einer '1' aus irgendeinem Ausgang der 
Kette zurück.
Erreicht er je den Zählerstand >7, sind also >7 Nullen aufgetreten, so 
muss die Kette irgendwo für einen Takt invertiert werden. Sobald dann 
wieder eine '1' kommt, wird er wieder zurückgesetzt und wird dann nicht 
mehr zuschlagen, weil in der richtigen Sequenz maximal 7 Nullen drin 
sind.
Der Zähler kann ruhig auf die nächste Zweierpotenz ausgelegt sein, denn 
die falsche Sequenz tritt normalerweise nur beim Einschalten auf.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren