Forum: FPGA, VHDL & Co. MLS (Maximum Length Sequence) Tabelle mit optimalen Abgriffen und Startwerten gesucht


von FPGA (Gast)


Lesenswert?

Hallo zusammen,

um einen ADC mit Rauschen zu emulieren möchte ich eine MLS (Maximum 
Sequence Length) generieren. Kennt jemand eine Seite auf der für 
unterschiedliche m-werte entsprechende optimale Startwerte des 
Shieberegisters & Abgriffe am Schieberegister für das Xor-Glied (zur 
Rückkopplung) für diesen Zweck gelistet sind?

Mir würde es auch schon reichen, wenn ich diese Parameter für nur einen 
m-wert mit m >= 20 hätte.

Viele Grüße!
FPGA

von FPGA (Gast)


Lesenswert?

ich habe eine interessante Arbeit gefunden:

http://www.academia.edu/7677217/Design_and_Analysis_of_a_32_Bit_Linear_Feedback_Shift_Register_Using_VHDL

Dort gibt es auch eine Tabelle für unterschiedliche Bit-Längen mit den 
Taps
Damit komme ich schonmal weiter.

Ev. hat jemand noch eine Zusammenfassung mit Taps & zugehöriger FFT?

von Sigi (Gast)


Lesenswert?

http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf

Sind aber nur Beispiele, für jedes N gibt es viele andere LFSR-Configs.

von FPGA (Gast)


Lesenswert?

Sigi schrieb:
> http://www.xilinx.com/support/documentation/applic...
>
> Sind aber nur Beispiele, für jedes N gibt es viele andere LFSR-Configs.

Ah perfekt! genau sowas hatte ich gesucht. Danke

von Bitflüsterer (Gast)


Lesenswert?

Ich erinnere mich, im Tietze&Schenk gelesen zu haben, dass die 
Berechnung sehr kompliziert ist. Habe aber auch noch nie ein 
Berechnungsverfahren gefunden.

von Sigi (Gast)


Lesenswert?

Tietze&Schenk ist ja nicht gerade die Anlaufstelle für solche
Berechnungen.
Nur so ganz grob: Die LFRS-Konfiguration lässt sich als Bitvektor
darstellen, der wiederum einem Polynom im algebraischen Sinne
entspricht. Für die MaxLänge muss das Polynom gewisse Eigenschaften
erfüllen ("Primitivität"). Für ein gegebenes N gibt es jetzt 2^N
mögl. Polynome, für eine BruteForce-Suche also viel zu viel. Also
macht man Einschränkungen wie z.B. nur wenige XORs, z.B. 2 und
hofft auf die Existenz eines Polynoms. Es gibt dann N*(N-1) solcher
Polynome (für 3 XORs: N*(N-1)*(N-2) etc.). Die lassen sich relativ
schnell überprüfen.

von Mike (Gast)


Lesenswert?

Im englischen Wiki-Artikel zu den LFSRs ist ein PDF mit allen möglichen 
Längen verlinkt:

http://www.eej.ulst.ac.uk/~ian/modules/EEE515/files/old_files/lfsr/lfsr_table.pdf

von Hagen R. (hagen)


Lesenswert?

Primitive Polynome für MLS-LFSR lassen sich auf direkte Weise errechnen. 
Dazu muß man die Polynome nur faktorisieren und auf die gewünschten 
Eigenschaften hin analysieren. Mein einfacher PASCAL Code produziert 
alle LFSRs bis 2^32 innerhalb von Sekunden. Eine Brute Force Suche ist 
also nicht nötig.

Einen optimalen Startwert für MLS gibt es nicht. Jeder beliebige gültige 
Startwert ist genausogut wie jeder andere. Der "Startwert" stellt ja nur 
einen "Offset" in die generierte Bitsequenz des LFSRs dar.

Gültige Startwerte sind alle Werte deren Bitlänge/Degree zum Polynom 
passt und die nicht entweder 0 oder -1 sind je nach dewähltem LFSRs 
Typus. zB. bei einem 0 Vektor in Galois-LFSRs würde ja das LFSR eine 
0-Bit Sequenz ausgeben.

Ansonsten gibt es keine weiteren zu beachtenden Vorschriften. Das sich 
ergebenden Spektrum mit all diesen Startwerten ist immer identisch das 
garantiert schon die Mathematik hinter den LFSRs.

Man versucht unter Umständen sogenannte Low-Densitiy-LFSRs zu benutzen, 
das sind LFSRs mit wenigen Taps um die Komplexität der XOR Register in 
zB. FPGAs zu reduzieren. Dies stellt aber für heutige FPGAs keine 
wirkliche Hürde mehr dar.

Gruß Hagen

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.