-
Die
Erfindung betrifft Verfahren und eine Vorrichtung zum Erzeugen von
Code. Insbesondere betrifft die Erfindung Verfahren und eine Vorrichtung zum
Erzeugen von Ausgabenmasken für
Code-Generatoren.
-
In
der Telekommunikation sind pn-(Pseudorauschen)Sequenzen, die auch
m-Sequenzen (Sequenzen
maximaler Länge) üblich, zum
Beispiel zur Erstellung von Gold-Sequenzen, die zum Verwürfeln und
Entwürfeln
(engl.: scramble bzw. descramble) von Signalen verwendet werden.
-
1 veranschaulicht
einen m-Sequenz-Generator 10, welcher das Stammpolynom
1 + x7 + x18 (über die
Golay-Feld-Ordnung 2) verwendet. Der Generator 10 umfasst
ein 18 elementiges Schieberegister. Die Eingabe für das erste
Element 12 des Schieberegisters wird durch Ausführen einer exklusiven-OR
Operation mit den Ausgaben des nullten und siebten Elements des
Registers bereitgestellt. Die m-Sequenz kann von dem Schieberegister durch
Kombinieren der Ausgaben einer Kombination der Schieberegisterelemente
in einer exklusiven-OR (XOR)-Operation
gelesen werden. Die für
die Kombination ausgewählten
Elemente können
jede vordefinierte Kombination von Elementen sein. In dem Fall von 1 ist
die Ausgabe des Schieberegisters einfach die Ausgabe seines nullten
Elements (die Kombination von den die Ausgabe bildenden Elementen wird
als Ausgabemaske bezeichnet). Alle bestimmten Kombinationen von
Elementen können
in der XOR-Operation verwendet werden, wobei jede Kombination einem
Lesen der m-Sequenz
von einem anderen Punkt in ihrem Zyklus entspricht. Jedoch kann es
schwierig sein, zu bestimmen, welche Kombinationen die erwünschten
Verschiebungen ergeben.
-
EP 0994573 ,
US 5532695 und
US 5228054 beschreiben Systeme, bei
welchen Masken auf pn-Generator-Zustände angewendet werden.
US 5532695 beschreibt auch
ein Verfahren zum Modifizieren einer solchen Maske unter Verwendung
von Matrizen.
-
Gemäß einem
Aspekt der Erfindung wird ein Verfahren zum Erzeugen einer neuen
Ausgabemaske für
einen m-Sequenz-Generator bereitgestellt, wobei das Verfahren beinhaltet:
Erzeugen einer Zwischenmaske für
jedes in einer bestehenden Ausgabemaske gesetztes Bit und Durchführen von
Modulo-2-Addition an allen erstellten Zwischenmasken, um die neue
Ausgabemaske zu erzeugen, wobei jede Zwischenmaske durch Verschieben
eines Verschiebe-Templates um einen Offset, der mit dem Offset des
entsprechenden in der bestehenden Ausgabemaske gesetzten Bits übereinstimmt,
erzeugt wird.
-
Die
Erfindung betrifft auch eine Vorrichtung zum Erzeugen einer neuen
Ausgabemaske für
einen m-Sequenz-Generator mit Erzeugungsmitteln zum Erzeugen einer
Zwischenmaske für
jeden Bitsatz in einer bestehenden Ausgabemaske und Kombinationsmitteln
zum Durchführen
von Modulo-2-Addition an allen erstellten Zwischenmasken, um die
neue Ausgabemaske zu erzeugen, wobei die Erzeugungsmittel jede Zwischenmaske
durch Verschieben eines Verschiebe-Templates um einen Offset, der
mit dem Offset des entsprechenden Satzbits in der bestehenden Ausgabemaske übereinstimmt,
erzeugen.
-
Es
wird natürlich
deutlich, dass nur ein gesetztes Bit in der bestehenden Ausgabemaske
sein kann, in welchem Fall die einzige erstellte Zwischenmaske verwendet
wird, um die neue Ausgabemaske zu bilden.
-
In
einer Ausführungsform
weist jede Zwischenmaske einen ausgerichteten Bereich auf, der auf
die neue Ausgabemaske ausgerichtet ist, und die neue Ausgabemaske
wird durch Modulo-2-Addition aller ausgerichteten Bereiche hergestellt.
Wenn eine Zwischenmaske neben ihrem ausgerichteten Bereich einen überschüssigen Bereich
mit einem gesetzten Bit oder mehreren gesetzten Bits aufweist, dann
werden vorzugsweise das eine gesetzte Bit oder die mehreren gesetzten
Bits des überschüssigen Bereichs
dazu verwendet, um den Effekt der Zwischenmaske auf die neue Ausgabemaske
zu beeinflussen. Das eine gesetzte Bit oder die mehreren gesetzten Bits
des überschüssigen Bereichs
können
verwendet werden, um die neue Ausgabemaske anzupassen, nachdem ihre
Zwischenmaske bei der Addition beteiligt war oder gleichzeitig,
wenn ihre Zwischenmaske bei der Addition beteiligt ist. Alternativ
kann das eine gesetzte Bit oder die mehreren gesetzten Bits des überschüssigen Bereichs
verwendet werden, um ihre Zwischenmaske anzupassen, bevor sie bei
der Summation beteiligt ist. In einer Ausführungsform wird der Einfluss
des einen gesetzten Bits oder der mehreren gesetzten Bits des überschüssigen Bereichs
durch die Art einer Rückkopplungsanordnung
in dem Generator bestimmt.
-
Die
Erfindung wurde vorstehend mittels eines Verfahrens zum Erzeugen
einer neuen Ausgabemaske für
einen m-Sequenz-Generator beschrieben. Es wird angemerkt, dass die
Erfindung sich auch auf Computerprogramme (wie auch immer ausgeführt) zum
Durchführen
derartiger Verfahren erstreckt.
-
Bestimmte
Ausführungsformen
der Erfindung werden nun unter Bezugnahme auf die beigefügten Figuren
lediglich beispielhaft beschrieben. Es zeigt:
-
1 ein
schematisches Diagramm eines m-Sequenz-Generators;
-
2 ein
erstes Beispiel einer Berechnung einer aktualisierten Ausgabemaske;
-
3 ein
zweites Beispiel einer Berechnung einer aktualisierten Ausgabemaske;
-
4 ein
drittes Beispiel einer Berechnung einer aktualisierten Ausgabemaske;
sowie
-
5 ein schematisches Diagramm eines Logikschaltkreises
zum Aktualisieren einer Ausgabemaske.
-
Ein
m-Sequenz-Generator kann unter Verwendung von zwei Maskenwörtern beschrieben
werden, von denen jedes eine Anzahl von Bits aufweist, welche mit
der Anzahl von Elementen in dem Schieberegister, auf welches der
m-Sequenz- Generator gestützt ist, übereinstimmt.
Tatsächlich
weist jedes Element in dem Schieberegister ein entsprechendes Bit
in jedem der Maskenwörter
auf. Gemäß der gängigen Konvention
zur Signifikanz der Bits ist das am weitesten rechts angeordnete
Bit in jeder Maske das nullte oder am wenigsten signifikante Bit
(Isb) des Maskenwortes und das am weitesten links angeordnete Bit
in jedem Maskenwort ist das signifikanteste Bit (msb).
-
Die
zwei Maskenwörter
sind die Ausgabemaske O und die Rückkopplungsmaske F. Die Ausgabemaske
weist gesetzte Bits lediglich bei denjenigen Positionen auf, welche
Schiebelementen entsprechen, deren Ausgaben mit einer XOR-Operation verbunden
werden, um die Ausgabe des Generators zu erzeugen. Die Rückkopplungsmaske
weist gesetzte Bits nur bei denjenigen Positionen auf, die Verschiebeelementen
entsprechen, deren Ausgaben mit einer XOR-Operation zum Erzeugen
der Eingabe für das
erste Element des Verschieberegisters kombiniert werden. Im Fall
des in 1 gezeigten Generators:
O = 000000000000000001
F
= 000000000010000001
-
Wie
früher
beschrieben, können
die zum Ausgangssignal eines m-Sequenz-Generators beitragenden Schiebeelemente
variiert werden, um die Ausgabe-m-Sequenz zeitlich zu verschieben. Wenn die
Ausgabenmaske Oaktuell ist und eine Zeitverschiebung
durchgeführt
wird, wird die Ausgangsmaske Oneu und spezifiziert
die Elemente, die zur zeitverschobenen m-Sequenz beitragen. Es wird
deutlich werden, dass in dem Fall, in dem das Schieberegister n
Elemente enthält
2n – 1
mögliche
Zeitverschiebungen durchgeführt
werden können,
das heißt
bei irgendeinem gegebenen Oaktuell gibt
es 2n – 1
mögliche Oneu, wobei jede einer anderen Zeitverschiebung
entspricht.
-
Wenn
Oaktuell lediglich sein Isb gesetzt hat (das
heißt
die m-Sequenz wird einfach von der Ausgabe des letzten Schiebelements
genommen), soll sie als OEnde bezeichnet
werden. Diese Ausführungsform
verwendet die Serie von 2n – 1 möglichen
aktualisierten Ausgabemasken, welche durch Zeitverschieben von OEnde her vorgehen können, als einen Satz Verschiebe-Templates
bei der Berechnung einer aktualisierten Ausgabenmaske Oneu,
was dem Durchführen
von irgendeiner zufälligen
vorwärtsgerichteten
Zeitverschiebung an irgendeiner zufälligen aktuellen Ausgabenmaske
Oaktuell entspricht. Um Oneu für eine vorwärtsgerichtete
Verschiebung von c Tatzyklen ausgehend von irgendeinem beliebigen
Oaktuell zu berechnen, wird ein Verschiebe-Template
Sc ausgewählt, welches der aktualisierten
Ausgabemaske für
das Durchführen
einer nach vorne gerichteten Verschiebungen um c Zyklen bei OEnde entspricht.
-
Um
zum Beispiel Oneu für eine vorwärtsgerichtete Verschiebung
um 6 Zyklen bei irgendeiner beliebigen Oaktuell zu
berechnen, ist das ausgewählte Verschiebe-Template S6, welches das Ergebnis des Durchführens einer
vorwärtsgerichteten
Verschiebung um 6 Zyklen bei OEnde ist.
Bei dem in 1 gezeigten n = 18-stufigen
Register ergibt dieses Beispiel:
OEnde =
000000000000000001
S6 = 000000000001000000
-
Sobald
das anzuwendende Verschiebe-Template Sc ausgewählt worden
ist, wird es auf Oaktuell appliziert, um
eine oder mehrere Zwischenmasken zu erzeugen. Für jedes Bit, welches in Oaktuell gesetzt ist, wird eine Zwischenmaske
Ip erzeugt, wobei p den Offset des Bits
von dem am wenigsten signifikanten Ende von Oaktuell bezeichnet.
Das Verfahren zum Erzeugen einer Zwischenmaske Ip wird
nun erörtert.
-
Der
erste Schritt beim Erzeugen von Ip besteht
darin, Sc um p Bits von seinem am wenigsten
signifikanten Ende zu versetzen. Außer wenn c = 0, wird Ip mehr als n Bits enthalten (wobei n die
Elementanzahl in dem Verschieberegister des m-Sequenz-Generators ist). Der Bereich
Ip, der jenseits seiner n am wenigsten signifikanten
Bits liegt, soll als das Überschusswort
Ep bezeichnet werden. Wenn Ep keine
gesetzten Bits enthält
(oder wenn es kein Ep gibt), ist Ip vollständig.
Ansonsten müssen
die gesetzten Bits in Ep verarbeitet werden,
da sie aufgrund der Tatsache, dass sie jenseits der n lsbs von Ip liegen, in dem Kontext einer Oneu mit
n Bits bedeutlungslos wären.
-
Für jedes
Bit, welches in Ep gesetzt ist, wird eine
Rückwickel-Maske
Wpq (englisch: wrap-back mask) erzeugt,
wobei q den Offset des Bits von dem am wenigsten signifikanten Ende
von Ep bezeichnet. Wpq wird
durch das Verschieben von F um q Bits von ihrem am wenigsten signifikanten
Ende erzeugt. Wenn alle Rückwickel-Masken
berechnet worden sind, wird Ep verworfen,
womit Ip mit lediglich ihren n lsbs verbleibt.
Als nächstes
wird bzw. werden die Rückwickel-Maske(n)
aufsummiert unter Verwendung von Modulo-2-Addition, wobei die trunkierte
Ip eine aktualisierte Ip erzeugt.
Wenn die aktualisierte Version von Ip mehr
als n Bits enthält,
muss ihr überschüssiges Wort
Ep abermals zum Aktualisieren von Ip verarbeitet werden und diese Schleife über Ep und Wpq wird wiederholt
bis eine aktualisierte Ip erzeugt ist, welche
entweder keine Ep aufweist oder welche in ihrem
Ep keine gesetzten Bits enthält. Sobald
Ep oder das Vorliegen von gesetzten Bits
in Ep eliminiert ist, ist Ip fertig
gestellt.
-
Sobald
alle Ip's
berechnet worden sind, werden sie unter Verwendung von Modulo-2-Addition kombiniert,
um Oneu zu erzeugen. Manche Beispiele dieses
Verfahrens werden nun mit Bezugnahme auf die 2, 3 und 4 aufgeführt. Diese
Beispiele beziehen sich auf den in 1 gezeigten
Generator (n = 18).
-
In 2 wird
eine vorwärts
gerichtete Zeitverschiebung von 18 Zyklen bei Oaktuell von 000000000011000001
durchgeführt.
S18 ist 000000000010000001. Oaktuell weist
Bits auf, die bei Offsets bei p = 0,6 und 7 gesetzt sind, somit
wird I0, I6 und
I7 durch Verschieben von S18 um
die erforderlichen Offsets erzeugt, wie mittels der fettgezeichneten
Pfeile in 2 gezeigt. Keine der Zwischenmasken
enthalten irgendwelche gesetzten Bits jenseits ihrer 18 lsbs und
damit sind keine Rückwickel-Masken
erforderlich. Die Zwischenmasken werden einfach mittels Modulo-2-Addition (äquivalent
zu einer bitweisen XOR-Operation) zum Erzeugen von Oneu kombiniert.
Dies ist beim Ausführen
einer XOR-Operation an jeder Spalte der drei Reihen I0,
I6, I7 in 2 ersichtlich.
-
In 3 wird
eine vorwärtsgerichtete
Zeitverschiebung von 18 Zyklen bei einer Oaktuell von 000000100011000001
durchgeführt.
Oaktuell weist gesetzte Bits bei Offsets
von p = 0, 6, 7 und 11 auf, somit werden I0,
I6, I7 und I11 berechnet. I0,
I6 und I7 werden
wie in dem Beispiel von 2 berechnet. Jedoch beinhaltet
die Erzeugung von I11 eine Rückwickel-Maske.
Der erste Schritt beim Erzeugen von I11 beinhaltet
das Verschieben von S18 um 11 Bits, wie mittels
dem fettgezeichneten Pfeil 16 angezeigt. Bei diesem Punkt
enthält
I11 ein überschüssiges Wort
E11 mit einem gesetzten Bit bei einem Offset
von q = 0 in dem überschüssigen Wort.
Dieses Bit führt
daher zu einer Rückwickel-Maske
W11,0, welche die um q = 0 Bits nach links
versetzte Rückkoppelmaske
ist, das heißt
W11,0 ist 000000000010000001. Die Rückwickelmaske
W11,0 wird dann Modulo-2-addiert mit den n
= 18 lsbs von I11 (E11 wurde
verworfen), wie mittels dem fettgezeichneten Pfeil 18 gezeigt.
Nun enthalten keine der Ip's irgendwelche gesetzten
Bits außerhalb ihrer
n = 18 lsbs, somit kann Ip Modulo-2-addiert
werden, um Oneu zu erzeugen.
-
In 4 wird
eine vorwärtsgerichtete
Zeitverschiebung von 12 Zyklen bei Oaktuell von 100000000000000000
durchgeführt.
Oaktuell enthält nur einen gesetzten Bit
bei einem Offset von p = 17 und somit wird nur I17 erzeugt.
Wie in 4 gezeigt, ist S12 000001000000000000
und diese wird als der erste Schritt beim Erzeugen von I17 um 17 Bits nach links verschoben (wie
mit dem fettgezeichneten Pfeil 20 gezeigt). Bei dieser
Stufe ist I17 ein 30-Bit-Wort, bei dem nur
ihr msb gesetzt ist. Das überschüssige Wort für I17 ist E17 = 100000000000.
Das gesetzte Bit bei einem Offset von q = 11 in E17 ruft
die Erzeugung einer Rückwickel-Maske
W17,11 durch Applizieren eines Offsets von
q = 11 bei der Feedbackmaske F hervor, das heißt W17,11 ist
00000000001000000100000000000. E17 wird
dann verworfen und W17,11 wird Modulo-2-addiert
mit der n = 18-Bit trunkierten Version von I17,
wie mittels dem fettgezeichneten Pfeil 22 angedeutet. Jedoch
enthält
I17 nun abermals ein gesetztes Bit jenseits
seiner 18 lsbs, bei der Bitposition p = 18. Damit weist I17 abermals ein überschüssiges Wort E17 auf, welches
mittels der Erzeugung einer oder mehrerer Rückwickel-Masken W17,q verarbeitet
werden muss. Nun ist E17 gleich 1 und somit
q = 0, was bedeutet, dass die Rückwickel-Maske
W17,0 = 000000000010000001 erzeugt wird
und diese ist eine unverschobene Versi on von F (da q = 0). E17 wird abermals verworfen und W17,0 wird
dann (wie mittels dem gezeichneten Pfeil 24 angezeigt)
mit der n = 18-Bit trunkierten Version von I17 Modulo-2-addiert.
Die damit erzeugte Version von I17 weist
keine gesetzten Bits jenseits ihrer n = 18 lsbs auf und ist somit
vollständig.
In der Abwesenheit von anderen Ip wird I17 lediglich Oneu.
-
5 veranschaulicht einen Logikschaltkreis
zum Ausführen
des Verfahrens dieser Ausführungsform
und ist dazu eingerichtet, die m-Sequenz-Ausgabe mittels einem Generator,
der auf einen n = 18-Verschieberegister basiert, zeitlich zu verschieben.
-
In 5a ist
der m-Sequenz-Generator 26 gezeigt. Ein Netzwerk 28 aus
AND- und XOR-Gates wird
an den Ausgängen
der Elemente des Verschieberegisters im Generator 26 zum
Erzeugen der Ausgabe-m-Sequenz an dem Kontenpunkt 29 betrieben. Die
AND-Gates des Netzwerks 28 wirken als Selektoren, um festzustellen,
ob oder ob nicht die Ausgaben der Verschiebeelemente des Generators 26 bei der
XOR-Opteration zum Erzeugen der Ausgabe 29 teilhaben. Im
Gegenzug werden die AND-Gates des Netzwerks 29 von einer
Reihe an Registern 30 gesteuert, über welche Oakuell gespeichert
ist. Zum Beispiel kann, wenn Oaktuell gleich
Oende ist, nur das am meisten rechts angeordnete
AND-Gate im Netzwerk 28 einen "logisch-hoch"-Bit ausgeben und damit wird nur die
Ausgabe des letzten Verschiebeelements des Registers 26 verwendet,
um die Ausgabe 29 zu erzeugen. Wenn entschieden wird, Oaktuell auf Oneu zu aktualisieren,
wird Oaktuell parallel in die Elemente des Schieberegisters 32 geladen.
Das Register 32 wird dann getaktet, um das Signal A zu
erzeugen, welches Oneu erzeugt, wie nun
mit Bezugnahme auf 5b beschrieben wird.
-
In 5b ist
Sc ursprünglich
in dem Verschiebregister 34 gespeichert und wenn der Systemtakt
fortschreitet, wird Sc entlang dem Verschieberegister 40 verschoben.
Die aktualisierte Ausgabemaske Oneu wird
in dem Satzspeicherelement 36 gesammelt, von denen jedes
in einer Modulo-2-Ansammlungsschleife angeordnet ist. Wenn von den
in 5b gezeigten AND-Gates erlaubt, akummulieren die
Elemente 36 an sie von dem Register 34 und von dem
Register 40 (über
das Rückwickel-Netzwerk 38) übergebene
Bits. Das Rückwickel-Netzwerk
ist eine Anordnung aus XOR-Gates, welches dem Schaltkreis ermöglicht,
das korrekte Oneu – Ergebnis zu erzeugen, wenn
die Ip überschüssige Worte
Ep mit gesetzten Bits enthalten. Alle AND-Gates
werden von dem Signal A gesteuert, welches die Folge von im Register 32 gespeicherten
Oaktuell-Werten ist. Damit werden nur dann,
wenn A auf "logisch-hoch" gesetzt ist, die
Speicherelemente 36 aktualisiert.
-
Wenn
Oaktuell aus dem Register 32 heraus
getaktet worden ist, enthalten die Elemente 36 Oneu, welche dann in die Register 30 geladen
werden können,
um die Ausgabemaske des Generators 26 zu aktualisieren.
-
Das
Verfahren des Berechnens von Oneu kann effizienter
gemacht werden, in dem eine Serie von Verschiebe-Templates Sz bereitgestellt wird, die Shifts mit Potenzen
mit der Basis 2, das heißt z = 2a, wobei
a = 0, 1, 2, 3 .... 17 ist, entsprechen. Eine Verschiebung um einen
beliebigen Wert c kann in die relevante Kombination der Glieder
des durch Sz definierten Satzes zerlegt
werden. Zum Beispiel könnte, um
eine Verschiebung um c = 9 Bits durchzuführen S1 (a
= 0) appliziert werden, gefolgt von S8 (a
= 3). Die Verwendung des Satzes an Templates Sz führt dazu, dass
die zum Berechnen von Oneu für eine beliebige Verschiebung
c unter Verwendung eines n-elementigen Verschieberegisters verwendete
Zeit dann n [log2 c] Taktzyklen wird.
-
Unter
Inkaufnahme der Kosten des Replizierens von Teilen der Hardware,
kann der Logikschaltkreis von 5 eingerichtet
werden, um Oneu in einem einzigen Taktzyklus
zu berechnen. Der Schaltkreis könnte
dazu eingerichtet werden, alle endgültigen Zwischenmasken Ip zu berechnen und sie in einem einzigen
Zyklus zum Erzeugen der neuen Ausgangsmaske Oneu aufzusummieren.
Die ausgeführte Berechnung
ist anlag zu der im 2, 3 und 4 beispielhaft
Dargestellten, bei der die Spaltenaddition aller Ip-Masken
zum Erzeugen von Oneu ausgeführt wird.
In dieser Ausführungsform
würden alle
18 Ip-Masken immer zur Addition vorliegen, selbst
wenn manche von ihnen einfache Masken wären, bei denen alle Bits auf
0 eingestellt sind.