Ich möchte mit einem solchen Register ein möglichst gutes weisses Rauschen erzeugen. Bei der Durchsicht der einschlägigen Dokumente (WP, XI, ED) sowie etlicher universitärer Schriften findet sich immer das Postulat, dass mit eben jenen LFSR ein weisses Rauschen zu erzeugen sei, allerdings fehlt überall der Beleg oder formelle Beweis. Ich hätte mir einen Screenshot eines Spektrum Analyzers gewünscht, denn es kann kaum sein, dass alle Registerformen und Rückkoppelungen genau Dasselbe liefern. Leider ist auch bei offiziellen Publikationen von Instituten kaum etwas Genaues zu finden. Die Bandbreite der vorgestellten Schaltungsvarianten reicht vom 5BIT- über ein 32er mit gold code für AES bis hin zu einem 168er für Sateliten-Rauschsignal-Codierung. Ich nehme an, dass längere Shift-Register mit mehr Rückkopplungen ein besseres Resultat liefern, kann das aber auch nicht mathematisch belegen, daher habe ich begonnen, mit einigen zu experimentieren, finde aber alles andere, als ein glattes weisses Rauschen. Es gibt fast immer starke einzelne peeks im Spektrum, je nachdem, wie man das Bit auswertet. Da scheint es auch unterschiedliche Ansätze zu geben: Ich habe es bisher einfach selbst als Ausgang genommen, benutze also das digitale Signal in Vollaussteuerung und bekomme von einem SR ein Signal mit der maximalen Bandbreite i.A. der eingespeisten HF-Taktfrequenz. Nun gibt es aber auch Implementierungen, welche mehrere solcher LFSR parallel benutzen, um gleich mehrere Bits in time zu erzeugen, welche dann zusammengefügt, ein z.B. 8 Bit Rauschen ergeben. Welches wäre der ideale Weg, um ein möglichst breitbandiges Rauschen zu erzeugen, welches ich dann anschließend filtern kann? Die Bandbreite sollte mindestens 10MHz haben und optimalerweise bis nach 0 herunterreichen. Als Taktgenerator steht ein 10MHz-Frequenznormal zur Verfügung. Da ein FPGA eingesetzt werden darf, wäre auch eine PLL machbar, mit der ein 300MHz-System laufen könnte. Mehrere LFSR sind ebenfalls kein Problem. Wir haben Platz ohne Ende, brauchen nur eine brauchbare Lösung. Als Filter wären sowohl digitale Filter, als auch Quarzfilter in Analogtechnik oder eben beides zulässig.
Beitrag #6677551 wurde von einem Moderator gelöscht.
Vergiss LFSR. Nimm ein Verfahren, dass die Maechtigkeit* des reellen Zahlenraums nutzt. Das Suchwort zum Testen: "diehard". *) das ist eine zahlentheoritische Definition
Markus W. schrieb: > Ich nehme an, dass längere Shift-Register mit mehr Rückkopplungen ein > besseres Resultat liefern, kann das aber auch nicht mathematisch > belegen, daher habe ich begonnen, mit einigen zu experimentieren, finde > aber alles andere, als ein glattes weisses Rauschen. Es gibt fast immer > starke einzelne peeks im Spektrum, je nachdem, wie man das Bit > auswertet. Da scheint es auch unterschiedliche Ansätze zu geben: Ich > habe es bisher einfach selbst als Ausgang genommen, Dafür sollte die Wiederholrate (1/Zykluszeit) weit unter der von dir gewünschten, unteren Grenzfrequenz liegen, bedingt also ein langes LFSR. Was die Lage der Abgriffe angeht, gibt es tatsächlich "schlechte" Kombinationen, die nicht den gesamten Wertebereich ausschöpfen. Ausgewählte "gute", auch bei sehr langen Registern, findet man in dieser AN: http://www.xilinx.com/support/documentation/application_notes/xapp052.pdf Wenn du das dann mit 300MHz laufen lassen kannst, dann reicht es tatsächlich, ein beliebiges Bit abzugreifen und durch einen 10MHz Tiefpass zu schicken.
Moin, ein LFSR liefert ein Kammspektrum, Abstand der Spektrallinien ist 1/Periodendauer. Mit einer sehr langen Sequenz bekommt man die Spektrallinien nah zusammen. Außerdem fällt das Spektrum zur Abtastrate hin ab. Wenn man die Abtastrate deutlich höher wählt, als für die gewünscht Bandbreite erforderlich, bekommt man ein recht flaches Spektrum - aber das wurde weiter oben schon angesprochen. Sebastian
Den Kammfilter habe ich auch noch in Erinnerung und soweit mein Verständnis dafür reicht, würde ich annehmen, dass man mehrere solcher Generatoren analog mischen (addieren!) können sollte. Sofern abweichende Generatorfrequenzen benutzt werden (300, 290, ...) , müssten sich die resultierenden Frequenzen in den Bändern verdichten.
Markus W. schrieb: > Ich möchte mit einem solchen Register ein möglichst gutes weisses > Rauschen erzeugen. Bei der Durchsicht der einschlägigen Dokumente (WP, > XI, ED) sowie etlicher universitärer Schriften findet sich immer das > Postulat, dass mit eben jenen LFSR ein weisses Rauschen zu erzeugen sei, > allerdings fehlt überall der Beleg oder formelle Beweis. Dan haste weder im Studium aufgepasst (oder eh das Falsche an der falschen Hochschule studiert) oder in die falschen Bücher geschaut. Meine Empfehlung: ISBN 978-3-322-99220-8
Beitrag #6678114 wurde von einem Moderator gelöscht.
... schrieb: > Nimm ein Verfahren, dass die Maechtigkeit* des reellen Zahlenraums > nutzt. Die Frage wäre, welches. (? Die DIEHARD Test-Batterie hatte ich auch gefunden. Die wurde sogar hier im Forum schon behandelt, nur seltsamerweise ins OT verschoben. Beitrag "Feststellen wie zufällig Zufallszahlen sind" Ingo W. schrieb: > Wenn du das dann mit 300MHz laufen lassen kannst, dann reicht es > tatsächlich, ein beliebiges Bit abzugreifen und durch einen 10MHz > Tiefpass zu schicken. Kann ich. Die Lösung klingt ja schon einmal nicht schlecht. Sebastian B. schrieb: > ein LFSR liefert ein Kammspektrum, Ich nehme an, die Abtastrate in der Grafik liegt bei 3G? IQ130+ schrieb: > Dan haste weder im Studium aufgepasst (oder eh das Falsche an der > falschen Hochschule studiert) Man kann nicht alles studieren, was einem später als Anforderung über den Weg läuft. Aber du kannst wahrscheinlich alles perfekt. Dieter H. schrieb im Beitrag #6678114: > weißes Rauschen ist über eine konstante spektrale Leistungsdichte > definiert. Nach einem wichtigen Theorem Das ist jetzt wieder sehr theoretisch. Habe es trotzdem nachgelesen und denke ich auch, verstanden. Nur: Das Wissen um die Verteilung des weissen Rauschens (die Definition war mir durchaus geläufig) führt mich noch nicht zum idealen LFSR.
Ich bin aber nun immerhin so weit gediehen, dass ich eine Publikation gefunden habe, die aussagt, dass LFSR durchaus den DIEHARD Test von Marsaglia überstehen können, wobei es auf die Rückführungen ankommt. (wer hätte das gedacht). Einfache LFSR erfüllen die Kriterien nicht. Leider schweigt sich auch dieses Dokument über ein geeignetes Beispiel aus. Das von oben gelinkte Dokument der Firma Xilinx, welche eine Zusammenstellung von Codes bis 168 aufführt (und sich dabei auf Arbeiten einer Person aus den 1970er Jahren bezieht) hatte ich bereis eingangs mit erwähnt. Die meisten Anordnungen dort arbeiten mit 2-4, maximal 6 Rückführungen. Über die Qualität wird aber keine Aussage getroffen und vom Autor ist auch nichts zu finden. Ist das ein weißer Fleck? Ist es das eventuell deshalb, weil es damals noch keine Hardware gab, mit der man so rasch und billig Schieben konnte? Die meisten PRG-Verfahren, die genannt werden, sind vergleichsweise aufwändige Software-Operationen und damit sehr langsam, so intelligent sie auch sein mögen.
Moin, Markus W. schrieb: > Ist es das eventuell deshalb, weil es damals noch keine Hardware gab, > mit der man so rasch und billig Schieben konnte? Sicher nicht. Da wurde wahrscheinlich deutlich mehr berechnet und weniger ausprobiert (Der LDPC Code, der z.b. in DVB-S2 statt Viterbi verwendet wird, ist auch iirc irgendwann in den 1960er Jahren entwickelt worden. Gab aber lange keine DSPs, die das mit dem noetigen Speed bei wenig Leistung/Kosten rechnen konnten, daher wurde der erst bei DVB-S2 eingesetzt und nicht bei DVB-S). Grad' zu den klassischen LFSR muesst's schon ordentlich viel Literatur geben. Kann mich noch dran erinnern, dass da mal was dazu in einer Regelungstechnikvorlesung an mir vorbeigezogen ist. iirc gab' da auch irgendeine Transformation dazu... Und soo zufaellig sind diese Folgen eben nicht, da kann man (also ich grad' natuerlich nicht) ziemlich genau ausrechnen, wie die zusammengesetzt sind - also wieviel gleiche bits hintereinander kommen, etc. bla. Was aber nicht bedeuten muss, dass da das Rauschen "schlecht" waere. Gruss WK
Dergute W. schrieb: > Gab aber lange keine DSPs, die das mit dem noetigen Speed bei > wenig Leistung/Kosten rechnen konnten, Exakt das meinte ich. Dergute W. schrieb: > Grad' zu den klassischen LFSR muesst's schon ordentlich viel Literatur > geben. Dachte ich auch, aber auch da scheitert es an der Rechenleistung, denke ich. Das rein mathematisch zu untersuchen, mit z.B. MATLAB, ist sicher schwierig, wegen der Datenmengen. Die langen LFSR laufen ja selbst in Echtzeit ewig. Wenn ich mehr Zeit hätte, würde ich mich mal dran machen. Eigentlich braucht er nur eine Schleife, die die Länge und Struktur der LFSRs umkonfiguriert, eine FFT laufen lässt und die Ergebnisse raustut, bzw bewertet. Ich orientiere mich fürs erste mal an der Xilinx-Tabelle. Wegen der Bandbreite wäre die Idee, einfach unterschiedlich lange Ketten parallel laufen zu lassen und so gleich mehrere Bits in einem Takt zu bekommen. Wäre noch die Frage offen, womit man am Besten filtert?
Moin, Markus W. schrieb: > Dachte ich auch, aber auch da scheitert es an der Rechenleistung, denke > ich. Das rein mathematisch zu untersuchen, mit z.B. MATLAB, ist sicher > schwierig, wegen der Datenmengen. Aeh - das waere nicht rein mathematisch. Rein mathematisch geht z.B. mit Karoblock und Bleistift oder Tafel und Kreide. Aber jeweils nur als Auslagerungsdatei fuer den menschlichen Hauptprozessor :-) Hab' grad mal geguckt: Ich hab' da ein Vorlesungsscript Regelungstechnik und Systemtheorie II, 4. Auflage 1994 (n. Chr. ;-) ) , Kapitel 4: Operatorenrechnung fuer zeitdiskrete Systeme. Da gehts um Galoiskoerper und V-Transformation. Und da wird als "anschauliche Anwendung" der Operatorenrechnung auf Schieberegister und "davon als wichtigster Spezialfall die maximalperiodischen Schieberegister" eingegangen. Das hatte ich im Hinterkopf. Da wird die Autokorrelation aber nur mal kurz gestreift; auf irgendwelche weiteren Rauscheigenschaften wird nicht eingegangen. Sowas von dem Kaliber, nur vielleicht didaktisch besser aufbereitet, meinte ich. Gruss WK
Markus W. schrieb: > Wäre noch die Frage offen, womit man am Besten filtert? üblicherweise wird es mit einem CIC dezimiert. Dessen unvollständige Oberwellendämpfung wäre zu beachten. Man kann das Signal auch runtersampeln /runtergesampelt addieren und so die Spiegelfrequenzen nutzen: Dann wird das nach oben abflachende Spektrum um Nyquist herum nach unten geklappt und der Gesamtverlauf noch etwas flacher. Des weiteren gibt es die Option, sich das Spektum zurechtzubiegen, also mit blauem Rauschen (anderer NG + HP) aufzufüttern.
Markus W. schrieb: > Das von oben gelinkte Dokument der Firma Xilinx, welche eine > Zusammenstellung von Codes bis 168 aufführt (und sich dabei auf Arbeiten > einer Person aus den 1970er Jahren bezieht) hatte ich bereis eingangs > mit erwähnt. Die meisten Anordnungen dort arbeiten mit 2-4, maximal 6 > Rückführungen. Über die Qualität wird aber keine Aussage getroffen und > vom Autor ist auch nichts zu finden. die Xilinx-Tabelle gibt an, welche Rückführungen gebraucht werden, um eine MLS=Maximum Length Sequence zu erhalten. Wenn man beispielsweise ein 10 Bit Schieberegister sich anschaut, dann ist die maximale Anzahl möglicher Zustände 2^10. Die MLS ist genau 1023 Bits lang. Entsprechend lang wäre die MLS bei 168 Bits. Die Stellen, wo Anzapfungen sein müssen, damit man eine MLS erhält, lassen sich berechnen bzw. man kann prüfen, ob ein bestimmtes Set an Anzapfungen eine MLS erzeugt oder nicht. Und zwar lassen sich die Anzapfungen als Polynom beschreiben, beispielsweise entspricht eine Anzapfung bei den Bits 0, 4 und 5 dem Polynom x^5 + x^4 + 1. Dieses Polynom erzeugt genau dann eine MLS, wenn es primitiv ist. Das bedeutet nach meiner Erinnerung, dass es sich nicht als Produkt zweier Polynome geringeren Grads schreiben lässt. Zum Beispiel (x+1)*(x^2+x+1)=x^3+2x^2+2x+1 da wir im binären System arbeiten, müssen die Koeffizienten noch mod 2 gerechnet werden, also bekommt man x^3+1. Und offenbar ist dieses Polynom nicht primitiv, da man es als Produkt zweier Polynome mit Grad 1 bzw. 2 schreiben kann. Wenn man also ein LFSR bauen würde mit Anzapfung bei Bit 0 und Bit 3, dann ergäbe sich irgend eine Sequenz, aber sicher keine MLS. Soweit ich mich noch erinnere, gab es auch irgend ein Verfahren, aus dem Polynom die Sequenz zu berechnen. Da war irgend eine "d-Transformation" die das ermöglicht. Bei Interesse kann ich versuchen, meine diesbezüglichen Notizen wiederzufinden. War in einem Kurs über Kryptographie.
Danke für die Ausführungen. Bitte keine Umstände. Ich kann mir das auch selber anlesen. Gfs gibt es dazu ja online Literatur einer Hochschule.
vielleicht hilft dieses Beispiel von Helmut für das allgemeine Verständnis weiter ?! Rückkopplungen und Taktfrequenzen können einfach graphisch erzeugt werden .... Beitrag "Schieberegister für LTSpice"
Michel M. schrieb: > vielleicht hilft dieses Beispiel Bedingt. Es enthält zumindest einen interessanten link: https://www.digikey.at/en/articles/use-readily-available-components-generate-binary-sequences-white-noise Dort wird u.a. erwähnt, wie man das entstehende Spektrum begradigt und in ein echtes (flaches) weißes Rausches überführt, indem die "digitale Abstastfrequenz herausgefiltert" wird. So ganz verstanden habe ich die Schaltung aber nicht. Die Ankopplung der Signalausgänge ist mir nicht plausibel.
Das sieht so aus, als würden viele Bits aus einem LFSR zusammenkombiniert um weißes Rauschen zu erzeugen. Das funktioniert nicht wirklich, weil die Bits in einem LFSR untereinander stark korreliert sind. Das Bit n+1 ist meist das Bit n vom Takt davor, wenn man nicht gerade an einer feedback-Stelle ist. "Möglichst zufällige" Bits aus mehreren verschiedenen LFSRs auf einen DAC zu geben hat hier übrigens schon mal ganz gut funktioniert um ein moduliertes Signal im Rauschen ersaufen zu lassen. Der Spektrumanalyzer hatte nix dran auszusetzen. Aufwärtszahler als LFSR sind einfach und wegen der simplen Rückkopplung auch schnell. Gibt es eigentlich einen Algorithmus, wie man von einem Vorwärtszähler zu den richtigen Taps für rückwärts kommt, für vorwärts/rückwärts? Gruß, Gerhard
Moin, Gerhard H. schrieb: > Das sieht so aus, als würden viele Bits aus einem > LFSR zusammenkombiniert um weißes Rauschen zu erzeugen. > Das funktioniert nicht wirklich, weil die Bits in einem > LFSR untereinander stark korreliert sind. Hier wurde das Ding und was das Filter macht, schonmal durchgekaut: Beitrag ""analoge" FIR Filterung" Gerhard H. schrieb: > Gibt es eigentlich einen Algorithmus, wie man von > einem Vorwärtszähler zu den richtigen Taps für > rückwärts kommt, für vorwärts/rückwärts? Ich kenne keinen, halte es aber schon fuer moeglich, dass es sowas gibt. Gruss WK
Dergute W. schrieb: > Hier wurde das Ding und was das Filter macht, schonmal durchgekaut: Interessant! Die Frage ist jetzt: geht es oder geht es nicht? Laut des anderen threads ist die Filterung unzureichend gelöst. Im o.g. Artikel (und auch im gelinkten Thema) wird erwähnt, dass dies auch mit einem digitalen FIR zu machen wäre. Macht das Sinn? Der Aufwnad sollte sich in Grenzen halten, wenn möglich. Gerhard H. schrieb: > "Möglichst zufällige" Bits aus mehreren verschiedenen > LFSRs Das war auch mein Ansatz. Ich möchte mehrere Schieberegister benutzen, um unkorrellierte Bits zu bekommen, die ich zeitgleich nutzen kann. So soll vor allem die Bandbreite erhöht werden: Angenommen ich filtere einen LFSR-Ausgang (wie auch immer) und erhalte eine erhöhte Auflösung von sagen wir 10 Bits, dann sollte man das niederwertigeste/höchstwertigste(?) davon nehmen können, um einen Ausgang zu treiben. Mal angenommen, die Taktfrequenz beträgt 250MHz, dann braucht es 4 Einheiten, um 1Gs zu erzeugen und auszugeben (SERDES). Gerhard H. schrieb: > Aufwärtszahler als LFSR sind einfach und wegen der > simplen Rückkopplung auch schnell. Wie sieht das konkret aus?
Markus W. schrieb: > und erhalte eine erhöhte Auflösung > von sagen wir 10 Bits, dann sollte man das > niederwertigeste/höchstwertigste(?) davon nehmen können, Nach meinem Gefühl müsste es das niederwertigste sein, weil dies die höchste Frequenz hat. > angenommen, die Taktfrequenz beträgt 250MHz, > dann braucht es 4 Einheiten, um 1Gs zu erzeugen Die 4 resultierenden Bits sollen dann interlaced werden, oder was? Des wäre ein Art runtermischung um Faktor 16 und Addition 4er solcher Ströme.
Asic-Bauer schrieb: > Die 4 resultierenden Bits sollen dann interlaced werden, oder was? So ist es. Ich brauche 1 GS. Eventuell nehme ich auch 5 mit 200 MHz. > Das wäre eine Art Runtermischung um Faktor 16 und Addition 4er solcher > Ströme. Warum wäre es das? Und wäre das ein Problem?
ich denke schon, weil das Rauschen mit einem Viertel der Geschwindigkeit "abgespielt" wird. Das ergibt keine 1 GHz sondern 4x 250 MHz addierend gemischt. Das ist nicht das gleiche wie ein vollständiger Generator auf 1Ghz (und auch der hat kein glattes Spektrum bis 1Ghz).
Der HP 3582A FFT-Analyzer hatte sowas drin: PN-Generator (rückgekoppeltes Schieberegister), an den Register-Ausgängen hing das "sin(x)/x"-Filter in Form von bewerteten Widerständen. Ich fand die Lösung damals einfach genial.
Markus W. schrieb: >> Die 4 resultierenden Bits sollen dann interlaced werden, oder was? > So ist es. Ich brauche 1 GS. Eventuell nehme ich auch 5 mit 200 MHz. > >> Das wäre eine Art Runtermischung um Faktor 16 und Addition 4er solcher >> Ströme. > Warum wäre es das? > Und wäre das ein Problem? Durch das wechselnde Verwenden der Bits wird aber mit der Wechselfrequenz multipliziert und das führt zu einer multiplikativen Mischung der Frequenzen und damit zur Faltung des Oberwellenspektrums. Da das Wechseln effektiv Rechtecke sind und die Daten ebenso, kann man das Spektrum nach Maßgabe der Fourierfrequenzen sogar direkt berechnen und hinschreiben. Die Grundwelle dieses Spektrums hat meiner Meinung durchaus 1 GHz. Aaaaber: Damit werden die Rauschsignale "gemultiplexed" und diese Frequenz hat man dominant im Signal drin - es sei denn, sie würde durch die entstehende Mischung gut genug maskiert oder ist so hochfrequent, dass sie irrelevant ist. Das wäre sie wenn man das Spektrum nur bis deutlich unterhalb der 1GHz nutzt, was man ohnehin tun muss, weil das LFSR-Rauschen nicht einmal bis 200MHz nutzbar ist. Ich benutze solche Schieberegisterdinger bis ans Ende das analogen Audiospektrums.
Um mehre Bits -> derselben Funktion <- parallel zu bekommen, muss man 2 oder mehr Funktionen parallel arbeiten lassen und mathematisch einmal einen- und einmal 2 Schritte ausformulieren. Bei den Schieberegistern geht das sehr einfach, wenn man das nächste- und das übernächste Ergebnis, also das 2-fache Weitertakten inklusive XORs berechnet. Dann hätte man zwei Bits je Takt, einmal die geraden und einmal die ungeraden. So eine Technik des parallelen Rechnens wenden wir beim Parallelprozessieren öfters an. Im FPGA ist der Trick allerdings dadurch begrenzt, dass die Rechnung schnell so kompliziert wird, dass sie nicht mehr in einem Takt zu machen ist. Die Lösung hier wäre somit eher, alles voraus zu rechnen und in einem RAM hinterlegen, was wiederum beim Rauschen nicht mehr so super schlau ist, weil man dann gleich alles hinterlegen könnte :-) Ich würde deshalb eher raten, gleich genug Generatoren parallel zu nehmen und die Bits direkt zu füttern. Das kommt einer bewerteten Addition gleich. Wenn man das niedrigst frequenteste Rausch-bit auf das LSB legt, bekommt man so eine Art blue noise. Das integriert, gibt ungefähr weißes Rauschen bis zur Taktfrequenz. Für die Erhöhung der Bandbreite und das Umschalten müsste das Rauschen untersucht werden, inwieweit die unkorrellierten Bits aus mehreren Linien solcher Generatoren wirklich noch unkorrelliert sind.
jo schrieb: > Der HP 3582A FFT-Analyzer hatte sowas drin: > > PN-Generator (rückgekoppeltes Schieberegister), an den > Register-Ausgängen hing das "sin(x)/x"-Filter in Form von bewerteten > Widerständen. > > Ich fand die Lösung damals einfach genial. Super Tip :-) https://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1978-09.pdf Das Museum ist immer ein Besuch Wert :-)
:
Bearbeitet durch User
Markus W. schrieb: > Ich nehme an, dass längere Shift-Register mit mehr Rückkopplungen ein > besseres Resultat liefern, kann das aber auch nicht mathematisch > belegen Die Anzahl der Rückkopplungen sagt überhaupt nichts. Entscheidend ist, dass sie an den richtigen Stellen abgreifen. Du brauchst ein Polynom, das dein Schieberegister alle 2^n - 1 Zustände annehmen lässt. Polynome, die dass mit wenig Rückkopplungen erreichen, laufen unter "dünn besetzte Generatorpolynome". https://de.wikipedia.org/wiki/Linear_r%C3%BCckgekoppeltes_Schieberegister#Polynomauswahl
Hilft vielleicht weiter :-) http://www.eng.auburn.edu/~strouce/class/elec6250/LFSRs.pdf http://www.eng.auburn.edu/~strouce/class/elec6970/BISTc4.pdf https://www.maximintegrated.com/en/design/technical-documents/app-notes/4/4400.html
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.