11.01.2015 Aufrufe

Anwendungshandbuch – Rechnen mit ... - Hochschule Trier

Anwendungshandbuch – Rechnen mit ... - Hochschule Trier

Anwendungshandbuch – Rechnen mit ... - Hochschule Trier

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

1<br />

<strong>Anwendungshandbuch</strong> – <strong>Rechnen</strong> <strong>mit</strong> Schieberegisterfolgen<br />

1 Programmbeschreibung<br />

In diesem Teil der Arbeit wird nun der Funktionsumfang des Programmes beschrieben. Es wird<br />

erklärt, wo Funktionen zu finden sind, wie diese benutzt werden können und wie die ausgegebenen<br />

Ergebnisse zustande kommen.<br />

Abbildung 4.1.1 zeigt die grafische Benutzeroberfläche des Programms, wie sie sich direkt nach<br />

Programmstart darstellt. Aus dieser Ansicht heraus können alle Funktionen genutzt und alle<br />

Ergebnisse entnommen werden.<br />

Abbildung 1.1: Startbildschirm des Programms – <strong>Rechnen</strong> <strong>mit</strong> Schieberegisterfolgen<br />

Im linken Abschnitt der Ansicht befinden sich die Anzeige und die Kontrollen für Schieberegister,<br />

Schieberegisterfolgen und deren Statistiken. Der obere Teil dient der Ansicht und Änderung von<br />

linearen Schieberegistern. Direkt darunter wird eine Schieberegisterfolge und deren Kontrollen<br />

dargestellt. Diese beiden Elemente dienen der manuellen Eingabe von Schieberegistern und<br />

Schieberegisterfolgen. Außerdem können hier Folgen aus Schieberegistern und Schieberegister aus<br />

Folgen erzeugt werden, diese können weiter verändert und zwischengespeichert werden. In den<br />

Registern im unteren Teil befinden sich Statistiken und Informationen zu den Schieberegistern und<br />

Folgen, auch hier gibt es noch vereinzelte Möglichkeiten Schieberegister und Folgen zu erzeugen.<br />

Im rechten Abschnitt der Ansicht befindet sich ein Zwischenspeicher für Schieberegister und<br />

Folgen, dazu später mehr.


2<br />

Schieberegister<br />

In diesem Teil wird das Schieberegister dargestellt, <strong>mit</strong> dem aktuell gearbeitet werden kann. Dieser<br />

Teil besteht aus zwei Komponenten, der Anzeige für die grafische Darstellung und den<br />

Kontrollbuttons für das Schieberegister.<br />

Abbildung 1.2: Anzeige und Kontrolle eines Schieberegisters<br />

Die Anzeige dient sowohl der Darstellung eines Schieberegisters <strong>mit</strong> seiner Rückkopplungsfunktion<br />

und dem aktuellen Zustand seiner Speicherzellen, als auch der Manipulation der<br />

Rückkopplungskoeffizienten und Speicherzellen. In Abbildung 4.1.2 ist ein Schieberegister der<br />

Länge 2 dargestellt, dessen Speicherzellen den Nullzustand annehmen und die<br />

Rückkopplungskoeffizienten haben die Werte c 0 = 1 und c 1 = 0. Das Rückkopplungspolynom des<br />

Schieberegisters ist in diesem Fall also f(X) = X 2 + 1. Bei Linksklick auf eine Speicherzelle wird<br />

das Bit, das deren Zustand repräsentiert gekippt. Ebenso kann durch Linksklick auf den Bereich<br />

unterhalb einer Speicherzelle der entsprechende Rückkopplungskoeffizient geändert werden.<br />

Weitere Funktionen werden über die Buttons gesteuert.<br />

• Folge erzeugen:<br />

Das oben dargestellte Schieberegister erzeugt eine neue Folge, die aus der Vorperiode und<br />

der ersten Periode besteht. Ist die erste Periode vollständig erzeugt, bricht die Folge ab. Die<br />

erzeugt Folge wird direkt im darunter liegenden Teil „Folge“ dargestellt. Dieser neuen Folge<br />

wird das aktuelle Schieberegister zugeordnet und es wird für die Berechnung der Statistiken<br />

benutzt. Die lineare Komplexität und die Schrittweise Ausführung des Berlekamp-Massey<br />

Algorithmus kann daher noch nicht angezeigt werden. Um sich diese anzeigen zu lassen,<br />

muss erst ein neues minimales Schieberegister für die Folge berechnet werden.<br />

• Neu:<br />

Es wird ein neues Schieberegister <strong>mit</strong> Rückkopplungspolynom f(X) = X und Nullzustand<br />

erzeugt. Das vorherige Schieberegister wird dabei ohne Rückfrage gelöscht, wenn es nicht<br />

vorher gespeichert wurde.<br />

• Länge inc.:<br />

Die Länge des Schieberegisters wird ums Eins erhöht, dabei wird eine weitere Speicherzelle<br />

<strong>mit</strong> Inhalt Null hinten an das vorhandene Schieberegister angehängt. Das zugehörige<br />

Rückkopplungspolynom wird im Grad um Eins erhöht, es wird jedoch nur der größte<br />

Koeffizient geändert, alle anderen bleiben unverändert. Das oben angezeigte Polynom<br />

f(X) = X 2 + 1 würde also zu f(X) = X 3 + 1 geändert werden. Für das Verlängern besteht<br />

allerdings eine Obergrenze, mehr als 20 Speicherzellen sind nicht möglich.


3<br />

• Länge dec.:<br />

Entsprechend der Funktion „Länge inc.“ wird hier das Schieberegister um Eins gekürzt, es<br />

ist die Umkehrfunktion.<br />

• Vorperiode entf.:<br />

Mit Hilfe diese Buttons kann die Vorperiode, also der nicht rückgekoppelte Anteil eines<br />

Schieberegisters entfernt werden. Dies entspricht der Division des Rückkopplungspolynoms<br />

durch X l , wobei l die Länge der Vorperiode ist. Der Zustand des rückgekoppelten Anteils<br />

des Schieberegisters bleibt dabei unverändert.<br />

• In Zwischenablage:<br />

Das Schieberegister wird in den Zwischenspeicher kopiert, dort wird der aktuelle Zustand<br />

zwar nicht angezeigt, er bleibt aber dennoch erhalten.<br />

• Speichern:<br />

Das Schieberegister kann auch in einer Datei gespeichert werden. Die Datei erhält dabei<br />

immer automatisch die Endung lfsr.<br />

• Laden:<br />

Es ist natürlich auch möglich ein vorher gespeichertes Schieberegister aus einer Datei zu<br />

Laden. Hierbei muss die Datei die Endung lfsr haben, sonst wird eine Fehlermeldung<br />

ausgegeben. Das aktuelle Schieberegister wird hierbei ohne Rückfrage überschrieben.


4<br />

Folge<br />

In diesem Teil wird die Schieberegisterfolge dargestellt, <strong>mit</strong> der gearbeitet werden kann. Auch<br />

dieser Teil besteht aus den beiden Komponenten Ansicht und Kontrolle.<br />

Abbildung 1.3: Anzeige und Kontrolle einer Schieberegisterfolge<br />

Die Ansicht dient sowohl der Darstellung der Folge als auch deren Manipulation. Es werden<br />

maximal die 31 ersten Folgenglieder dargestellt, diese sind farblich gekennzeichnet. Die Bits einer<br />

gegebenenfalls auftretende Vorperiode sind blau, die Bits der ersten Periode schwarz und Bits<br />

weiterer Perioden rot gekennzeichnet. Sollte die dargestellte Folge mehr als 31 Bits enthalten wird<br />

dies durch drei Punkte am Ende bekanntgemacht. Jedes Folgenglied kann durch Linksklick auf das<br />

entsprechende Bit gekippt werden, dabei werden Die Vorperiodenlänge und die Periodenlänge<br />

sofort aktualisiert und entsprechend dargestellt.<br />

Weitere Funktionen werden über die Buttons gesteuert.<br />

• SR erzeugen:<br />

Aus der aktuellen Folge wird durch den Berlekamp-Massey Algorithmus das minimale<br />

Schieberegister berechnet, das diese Folge erzeugt. Das Schieberegister wird anschließend<br />

im Teil „Schieberegister“ angezeigt.<br />

• Neu:<br />

Die aktuelle Folge wird gelöscht und durch die Nullfolge ersetzt. Dies geschieht ohne<br />

Rückfrage, die aktuelle Folge sollte also vorher gespeichert werden.<br />

• Länge inc.:<br />

An die Folge wird ein weiteres Nullbit angehängt und die Länge wird um Eins erhöht. Sollte<br />

die angezeigte Folge länger als 31 sein ist dies nicht sichtbar, wird aber dennoch gemacht.<br />

• Länge dec.:<br />

Das letzte Bit der Folge wird gelöscht und die Länge wird um Eins verringert. Analog zu<br />

„Länge inc.“ wird auch diese Aktion bei langen Folgen durchgeführt, ist aber nicht sichtbar.<br />

• Periode ber.:<br />

Diese Funktion bewirkt, dass von der Folge sowohl die Vorperiode, als auch alle Perioden<br />

ab der zweiten abgeschnitten werden. Es bleibt also nur die erste Periode stehen.<br />

• Vorperiode entf.:<br />

Anders als bei „Periode ber.“ werden hier gegebenenfalls auftretende Perioden nach der<br />

ersten nicht entfernt, sondern es wird ausschließlich die Vorperiode gelöscht. Bei beiden<br />

Funktionen wird die Folgenlänge entsprechen angepasst.


5<br />

• F. ist Periode:<br />

Die Periodenlängen einer Folge werden immer abhängig vom minimalen erzeugenden<br />

Schieberegister berechnet. Dadurch kann eine angezeigte Folge, als Folge bestehend aus<br />

Vorperiode und mehreren Perioden betrachtet werden, obwohl dies evtl. vom Benutzer nicht<br />

so beabsichtigt ist. Mit dieser Funktion kann festgelegt werden, dass alle bekannten<br />

Folgenglieder als erste Periode der Folge betrachtet werden. Ist dies der Fall, wird es Rechts<br />

unten durch den Satz „Die Folgenglieder stellen eine vollständige Periode dar.“ angezeigt.<br />

Nun kann für die Folge ein Schieberegister berechnet werden, dass periodisch nur diese<br />

Sequenz von Folgenglieder erzeugt.<br />

• In Zwischenablage:<br />

Die aktuelle Folge wird in den Zwischenspeicher kopiert. Die hier gespeicherten Folgen<br />

können für die weiter unten beschriebene Kombination von Folgen genutzt werden.<br />

• Speichern:<br />

Die Folge wird in einer Datei gespeichert. Die Dateiendung wird hierbei immer automatisch<br />

auf seq gesetzt.<br />

• Laden:<br />

Gespeicherte Folgen können auch wieder aus einer Datei gelesen werden. Die aktuell<br />

angezeigte Folge wird dabei ohne Rückfrage überschrieben.<br />

Bemerkung:<br />

Jede Veränderung eines Schieberegisters oder einer Folge bewirkt eine sofortige Neuberechnung<br />

aller zur Verfügung stehenden Statistiken und Informationen. Dies kann bewirken, dass selbst<br />

eigentlich einfache Operationen, wie das Kippen eines Folgenbits, Verzögerungen nach sich<br />

ziehen. Diese sollten jedoch immer, abhängig vom eingesetzten Rechner, sehr kurz sein.


6<br />

Folgenstatistik<br />

Im Register „Folgenstatistik“ werden die Eigenschaften der aktuellen Folge angezeigt. Dies sind<br />

jene, die nach S.W. Golomb über die Zufälligkeit einer Folge entscheiden.<br />

Abbildung 1.4: Folgenstatistik<br />

Dieses Register besteht im wesentlichen aus drei Bereichen, der Statistik links oben, der<br />

Autokorrelationsfunktion links unten und der Tabelle der Runhäufigkeiten rechts. Hier werden<br />

ausschließlich Ergebnisse angezeigt, es besteht keine Möglichkeit Folgen in irgendeiner Weise zu<br />

verändern.<br />

Die Statistiken sind grösstenteils selbsterklärend. Zu erwähnen ist jedoch, dass sich die<br />

Schieberegisterlänge, die maximale Periodenlänge und das Rückkopplungspolynom auf das<br />

minimale Schieberegister beziehen, das die dargestellte Folge erzeugt. Dieses muss nicht <strong>mit</strong> dem<br />

im Bereich „Schieberegister“ angezeigten übereinstimmen, das kann jedoch durch „SR erzeugen“<br />

im Bereich „Folge“ jederzeit geändert werden.<br />

Die Autokorrelationsfunktion kann nur berechnet werden, wenn die Folge <strong>mit</strong> vollständiger Periode<br />

vorliegt. Ist dies nicht der Fall wird das durch einen roten Schriftzug angezeigt. Bei sehr langen<br />

Folgen kann es vorkommen, dass alle Werte der Funktion fast Null sind, in der Anzeige ist die<br />

Funktion dann nur sehr schwer zu erkennen. Die Werte können dennoch abgelesen werden, indem<br />

man <strong>mit</strong> der linken Maustaste in das Koordinatensystem klickt. Der Wert der Funktion an der<br />

angeklickten Stelle wird nun gemeinsam <strong>mit</strong> der Verschiebung angezeigt.<br />

Die Tabelle der Runhäufigkeiten ist folgendermaßen zu lesen. Die Länge bezeichnet die Länge der<br />

Blöcke (1-Runs) und Lücken (0-Runs), die dahinter stehenden Zahlen stehen für die Häufigkeit des<br />

entsprechenden Runs <strong>mit</strong> dieser Länge.


7<br />

Lineare Komplexität<br />

Das Register „lineare Komplexität“ stellt die lineare Komplexitätsfunktion, abhängig von der Länge<br />

des betrachteten Anfangsstücks der Folge dar.<br />

Abbildung 1.5: Lineare Komplexität<br />

Dieser Bereich ist sehr einfach aufgebaut und besteht aus zwei Teilen, oben die Anzeige und unten<br />

die Kontrolle. Zur Anzeige ist nur zu sagen, dass die grüne Linie der Geraden n/2 entspricht, an die<br />

sich ein ideales Komplexitätsprofil annähern sollte. Mit den Buttons „Laden“ und „Speichern“<br />

können Komplexitätsprofile in csv-Dateien gespeichert und auch wieder aus ihnen gelesen werden.<br />

Der Button „Datei“ dient zum Umschalten zwischen Komplexitätsprofilen. Es kann zwischen zwei<br />

Profilen hin und her geschaltet werden. Diese sind zum einen das Profil der aktuellen<br />

Schieberegisterfolge und zum anderen ein aus einer csv-Datei geladenes Komplexitätsprofil. Die<br />

Beschriftung des Buttons ändert sich beim Umschalten, so dass der Text immer das Profil, auf das<br />

umgeschaltet werden kann, anzeigt.


8<br />

Schrittweise BMA<br />

Das Register „Schrittweise BMA“ stellt die Ausführung des Berlekamp-Massey Algorithmus, <strong>mit</strong><br />

dem aus der aktuellen Folge das zugehörige minimale Schieberegister berechnet wurde, schrittweise<br />

dar. Da bei jeder Änderung der Folge das minimale Schieberegister neu berechnet wird, ohne das<br />

dieses im Bereich „Schieberegister“ angezeigt wird, muss das dargestellte Ergebnis des Berlekamp-<br />

Massey Algorithmus nicht <strong>mit</strong> dem angezeigten Schieberegister übereinstimmen. Dies kann jedoch<br />

jederzeit durch „SR erzeugen“ im Bereich „Folge“ geändert werden.<br />

Abbildung 1.6: Schrittweise Ausführung des Berlekamp-Massey Algorithmus<br />

Dieses Register besteht aus drei Teilen. Der Anzeige oben, hier werden die Ausführungsschritte des<br />

BMA <strong>mit</strong> der zugehörigen Schleifendurchlaufnummer, linearen Komplexität und dem<br />

Rückkopplungspolynom dargestellt. Die Anzahl der angezeigten Ausführungsschritte muss nicht<br />

zwangsläufig <strong>mit</strong> den tatsächlich ausgeführten Berechnungsschritten übereinstimmen, da die<br />

Anzeige abbricht, sobald das entgültige Schieberegister, welches die Folge erzeugt, angezeigt<br />

wurde. Bei Auswahl eines Schrittes wird das zum Rückkopplungspolynom gehörige Schieberegister<br />

(Mitte) und die bis zu diesem Rechenschritt betrachtete Teilfolge (unten) angezeigt. Mit dem Button<br />

„Anzeigen“ kann das Schieberegister des ausgewählten Rechenschrittes im Bereich<br />

„Schieberegister“ angezeigt werden, um <strong>mit</strong> diesem weiter zu rechnen.


9<br />

Kombination<br />

Das Register „Kombination“ bietet die Möglichkeit, in der Zwischenablage gespeicherte Folgen <strong>mit</strong><br />

linearen und nicht-linearen Funktionen zu kombinieren.<br />

Abbildung 1.7: Kombination von Folgen<br />

Der Aufbau dieses Bereiches ist einfach. Oben befindet sich ein Eingabefeld, in das die<br />

auszuwertende Funktion eingetragen wird. Die Auswertung kann durch drücken von „Return“ oder<br />

durch betätigen des „Ausführen“-Buttons gestartet werden. Anschließend wird ggf. im darunter<br />

liegenden Textfeld eine Erfolgsmeldung ausgegeben. Sie enthält den tatsächlich ausgewerteten<br />

Befehl, eine Liste der verwendeten Folgen <strong>mit</strong> deren Periodenlängen und Komplexitäten und für die<br />

Ergebnisfolge, dessen Periodenlänge und lineare Komplexität. Die Ergebnisfolge selbst wird im<br />

Bereich „Folge“ angezeigt und kann von dort aus weiter bearbeitet werden. Zu beachten ist auch in<br />

diesem Fall, dass eine vorher im Bereich „Folge“ vorhandene Folge ohne Rückfrage überschrieben<br />

wird. In dem Fall, das die Eingabe nicht der vorgegebenen Syntax entspricht, wird im Ausgabefeld<br />

eine Fehlermeldung ausgegeben. Diese Meldung enthält in den meisten Fällen Hinweise auf die Art<br />

des Fehlers. In jedem Fall wird der tatsächlich ausgewertete Befehl bis zum Auftreten des Fehlers<br />

angezeigt, daran kann die Art des Fehlers ebenfalls erkannt werden. Als letztes Element dieses<br />

Registers, gibt es noch den Button „Funktionsverwendung anzeigen“ am unteren Rand. Durch<br />

Betätigung wird im Ausgabetextfeld eine Kurzanleitung zur Syntax der Befehlseingabe angezeigt.<br />

Die Syntax der Befehlseingabe sei auch hier beschrieben. Mit Ausnahme von „not“ sind alle<br />

Funktionen binär und werden <strong>mit</strong> zwei Folgen bzw. einer Folge und einer ganzen Zahl aufgerufen.<br />

Die Rückgabewerte aller Funktionen sind Folgen, daher ist es möglich und auch notwendig die<br />

Funktionen zu schachteln. Die verwendeten Folgen müssen dem Zwischenspeicher entnommen<br />

werden und werden <strong>mit</strong> einem vorangestellten „f“ und ihrer Nummer referenziert. Bei der Eingabe<br />

des Befehls muss nicht auf Leerzeichen geachtet werden, sie können benutzt werden – müssen<br />

jedoch nicht. Allerdings ist darauf zu achten, dass alle Funktionsnamen klein geschrieben werden<br />

müssen. Folgende Funktionen sind definiert:<br />

• Die logischen Funktionen „and“, „or“ und „xor“.<br />

Sie werden bitweise auf die Glieder der Folgen, die ihnen als Argumente übergeben werden,<br />

angewandt. Zum Beispiel „and(f0, xor(f1, xor(f2, f3)))“.


10<br />

• Die logische Funktion „not“.<br />

Dies ist die einzige unäre Funktion und wird auf genau eine Folge angewandt. Die<br />

Ergebnisfolge ist das bitweise Komplement der Eingabefolge.<br />

• Die Schiebeoperationen >.<br />

Sie werden <strong>mit</strong> einer Folge als erstes Argument und einer ganzen Zahl als zweites Argument<br />

aufgerufen. Das zweite Argument gibt an, um wie viele Stellen die Folge in die<br />

entsprechende Richtung verschoben werden soll.


11<br />

Polynomeingabe<br />

In diesem Register kann ein neues Schieberegister durch Angabe seines Rückkopplungspolynoms<br />

erzeugt werden.<br />

Abbildung 1.8: Polynomeingabe<br />

Das Rückkopplungspolynom kann auf zwei Arten angegeben werden.<br />

• Durch Auswahl eines pri<strong>mit</strong>iven Polynoms des Grades 2-20 aus der Liste.<br />

• Durch manuelle Eingabe im dafür vorgesehenen Textfeld unten.<br />

Die Eingabe muss dabei die Form x^a + x^b + ... + x^c + x +1 haben. Auch hier spielen<br />

Leerzeichen keine Rolle. In beiden Fällen, Auswahl und Eingabe, muss abschließen <strong>mit</strong> Betätigung<br />

des „Setzen“-Button oder „Return“ bestätigt werden. Desweiteren befindet sich am untern<br />

Bildschirmrand noch ein Statusfeld, in dem nach der Auswertung der Eingabe eine Erfolgsmeldung<br />

oder eine Fehlermeldung <strong>mit</strong> Art des Fehlers erscheint.


12<br />

Schieberegisterinfos<br />

In diesem Register sind alle Informationen zu dem aktuellen Schieberegister und insbesondere<br />

dessen Rückkopplungspolynom zu finden.<br />

Abbildung 1.9: Schieberegisterinfos<br />

Bei diesem Register handelt es sich wieder um eine reine Ansicht, es können keine Änderungen am<br />

Schieberegister vorgenommen werden. Ganz oben stehen die Eigenschaften des Schieberegisters<br />

bzw. dessen Rückkopplungspolynoms. Die Eigenschaften „irreduzibel“, „pri<strong>mit</strong>iv“ und „Exponent“<br />

beziehen sich natürlich auf das Polynom und die Vorperiode ist der nicht rückgekoppelte Anteil des<br />

Schieberegisters, dies entspricht dem niedrigsten gesetzten Koeffizienten des<br />

Rückkopplungspolynoms. Zum Exponenten sei noch erwähnt, das dieser nur berechnet wird, wenn<br />

das Rückkopplungspolynom irreduzibel ist. Darunter befindet sich die Darstellung des zum<br />

Schieberegister gehörigen Rückkopplungspolynoms. Am unteren Bildschirmrand folgen die<br />

Anzeigen für die irreduziblen Faktoren des Polynoms und der erzeugten Periodenlängen des<br />

Schieberegisters abhängig vom gewählten Startzustand des Registers. Eben diese Anzeige für die<br />

erzeugten Periodenlängen ist die einzige, die nicht automatisch aktualisiert wird, da die Berechnung<br />

bei längeren Schieberegistern <strong>mit</strong> nicht irreduziblen Rückkopplungspolynomen sehr lange dauern<br />

kann. Die Berechnung muss also vom Benutzer selbst <strong>mit</strong> Hilfe des „aktualisieren“-Buttons<br />

angestoßen werden. Allerdings werden die Periodenlängen, aufgrund des hohen Rechenaufwandes,<br />

nur für Schieberegister der Länge 12 oder kleiner berechnet. Zu der Art der Anzeige sei noch<br />

gesagt, dass die vorne stehende Binärzahl den Startzustand des Schieberegisters und die hinten<br />

stehende Zahl die Periodenlänge, der aus dem Startzustand erzeugten Folge, repräsentiert. Stehen<br />

zwischen zwei Einträgen drei Punkte, so werden auch aus den folgenden Startzuständen Folgen<br />

gleicher Periodenlänge erzeugt.


13<br />

Zwischenspeicher<br />

Auf der Rechten Seite des Bildschirms befindet sich der Zwischenspeicher. Hier können jeweils 15<br />

Schieberegister und insbesondere Folgen zwischengespeichert werden. Auf das Kopieren dieser in<br />

den Speicher ist in den entsprechenden Abschnitten bereits eingegangen worden. Alles weitere wird<br />

nun beschrieben.<br />

Der obere Teil ist für Schieberegister reserviert,<br />

sie werden hier durch ihre<br />

Rückkopplungspolynome dargestellt. Durch<br />

Auswahl eines Schieberegisters kann dieses, <strong>mit</strong><br />

Hilfe der Buttons in der Mitte, angezeigt bzw. aus<br />

dem Speicher entfernt werden.<br />

Unten befindet sich der Speicher für die Folgen,<br />

sie werden durch ihre ersten 30 Folgenglieder<br />

repräsentiert. Die voran stehende Nummer wird<br />

zum Referenzieren der Folgen im Register<br />

„Kombination“ benötigt. Analog zum oberen Teil<br />

können auch die ausgewählte Folge, angezeigt<br />

oder entfernt werden.<br />

Die drei Buttons ganz unten dienen dem<br />

Speichern und Laden des Zwischenspeichers in<br />

und aus Dateien. Die Datei erhält dabei<br />

automatisch die Endung clip. Durch den Button<br />

„Neu“ kann der gesamte Speicher geleert werden,<br />

dies geschieht ohne Rückfrage.<br />

Abbildung 1.10: Zwischenspeicher


14<br />

2 Anwendungsbeispiel<br />

In diesem Abschnitt werden nun die Einsatzmöglichkeiten des Programms anhand eines Beispiels<br />

veranschaulicht. Erst werden drei Schieberegisterfolgen aus Schieberegisters <strong>mit</strong> pri<strong>mit</strong>iven<br />

Rückkopplungspolynomen erzeugt, um aus diesen schließlich, <strong>mit</strong> Hilfe der Geffefunktion, eine<br />

neue Folgen zu berechnen.<br />

Zuerst sollte man in den Registern auf „Schieberegisterinfos“ wechseln, um dort das<br />

Rückkopplungspolynom auf Pri<strong>mit</strong>ivität zu prüfen. Nun wird das vorhandene Schieberegister der<br />

Länge 2, <strong>mit</strong> Hilfe des Buttons „Länge inc.“, auf die Länge 5 erweitert. Da das eingestellte<br />

Rückkopplungspolynom f(X) = X 5 + 1 nicht irreduzibel ist, ändern wir es durch einen Linksklick,<br />

oben in der Schieberegisteranzeige auf f(X) = X 5 + X 2 + 1. Dieses Polynom ist, wie in den<br />

Schieberegisterinfos zu erkennen irreduzibel. Nun muss der Zustand des Registers noch vom<br />

Nullzustand, durch Klicken auf eine Speicherzelle, in einen anderen beliebigen Startzustand<br />

geändert und durch „Folge erzeugen“ eine neue Folge erzeugt werden. Wir wählen dieses mal den<br />

Startzustand 10000. Nachdem die Folge erzeugt worden ist, speichern wir sie für späteren Gebrauch<br />

im Zwischenspeicher.<br />

Abbildung 2.1: Neue Folge erzeugt und gespeichert


15<br />

An dieser Stelle kann nun auch die „Folgenstatistik“ eingesehen werden. In Abbildung 4.2.2 ist<br />

deutlich zu sehen, dass die erzeugte Periodenlänge <strong>mit</strong> der maximal möglichen Periode für ein<br />

Schieberegister der Länge 5 übereinstimmt. Auch die drei Golombschen Kriterien für Zufälligkeit<br />

werden von der Folge erfüllt, da die Anzahl der Nullen und Einsen nur um Eins von einander<br />

abweicht, die Autokorrelationsfunktion konstant fast Null ist und auch die Bedingung für<br />

Runhäufigkeiten von der Folge erfüllt wird. Der genaue Wert der Autokorrelationsfunktion kann<br />

durch Linksklick in den Graphen, abhängig von der Verschiebung, abgefragt werden.<br />

(Hier: x=15; C(x) = -0.03225...)<br />

Abbildung 2.2: Folgenstatistik<br />

Da für den Generator von Geffe insgesamt drei Folgen benötigt werden, erzeugen wir nun noch<br />

zwei weitere. Dieses mal wechseln wir in das Register „Polynomeingabe“ und wählen dort aus den<br />

vorgegebenen pri<strong>mit</strong>iven Polynomen eines vom Grad 5 aus. Nachdem wir uns für das Polynom<br />

f(X) = X 5 + X 4 + X 3 + X 2 + 1 entschieden haben, erzeugengen wir daraus durch „setzen“ ein neues<br />

Schieberegister. Anschließend muss wieder der Startzustand festgelegt werden. Dies kann wieder<br />

10000 sein. Nun kann die neue Folgen erzeugt und in den Zwischenspeicher kopiert werden. Diese<br />

Schritte wiederholen wir noch einmal <strong>mit</strong> dem Polynom f(X) = X 5 + X 3 + X 2 + X + 1 und<br />

wiederum dem Startzustand 10000. Nun haben wir die drei benötigten Folge für den Geffegenerator<br />

erzeugt und gespeichert.<br />

Als nächsten Schritt wechseln wir in das Register „Kombination“. Hier können wir nun die<br />

Geffefunktion, unter Verwendung der erzeugten Folgen, berechnen lassen. Zur Erinnerung sei der<br />

Generator von Geffe in Abbildung 4.2.3 noch einmal dargestellt.


16<br />

f0<br />

f1<br />

+<br />

f2<br />

Abbildung 2.3: Generator von Geffe<br />

Die Arbeitsweise des Generators lässt sich anschaulich so beschreiben, dass immer wenn das<br />

<strong>mit</strong>tlere Schieberegister eine Eins liefert, die Ausgabe des oberen Schieberegisters zum Ausgang<br />

durchgeschaltet wird und bei einer Null die des unteren. Die Funktion kann nun direkt aus dem<br />

Schaltbild abgelesen werden. Sie lautet in logischer Schreibweise:<br />

f X 0,<br />

X 1,<br />

X 2<br />

= X 0<br />

∧X 1<br />

∨¬X 1<br />

∧ X 2<br />

<br />

Die Formel kann nun sehr einfach in die Befehlssyntax unseres Programms umgesetzt werden. Sie<br />

lautet nun:<br />

xor(and(f0, f1), and(not(f1) ,f2))<br />

Abbildung 2.4: Kombination von Folgen


17<br />

Nachdem der Befehl im dafür vorgesehenen Textfeld eingetragen worden ist, wird die Berechnung<br />

der Ergebnisfolge entweder durch „Return“ oder den Button „Ausführen“ gestartet. Ist bei der<br />

Eingabe kein Fehler gemacht worden, so erscheint nun im Ausgabefeld eine Erfolgsmeldung. In<br />

dieser werden alle verwendeten Folgen und die Ergebnisfolge, <strong>mit</strong> ihren Periodenlängen und<br />

Komplexitäten noch einmal aufgeführt. Die Ergebnisfolge ist außerdem bereits oben als aktive<br />

Folge gesetzt worden, daher können nun auch alle zugehörigen Statistiken, einschließlich des<br />

Komplexitätsprofils, eingesehen werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!