DE4224530B4 - Prozessor zum Erzeugen einer Walsh-Transformierten - Google Patents

Prozessor zum Erzeugen einer Walsh-Transformierten Download PDF

Info

Publication number
DE4224530B4
DE4224530B4 DE4224530A DE4224530A DE4224530B4 DE 4224530 B4 DE4224530 B4 DE 4224530B4 DE 4224530 A DE4224530 A DE 4224530A DE 4224530 A DE4224530 A DE 4224530A DE 4224530 B4 DE4224530 B4 DE 4224530B4
Authority
DE
Germany
Prior art keywords
serial
carry
values
carry bit
negator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE4224530A
Other languages
English (en)
Other versions
DE4224530A1 (de
Inventor
Paul W. Dent
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ericsson Inc
Original Assignee
Ericsson GE Mobile Communications Holding Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson GE Mobile Communications Holding Inc filed Critical Ericsson GE Mobile Communications Holding Inc
Publication of DE4224530A1 publication Critical patent/DE4224530A1/de
Application granted granted Critical
Publication of DE4224530B4 publication Critical patent/DE4224530B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/145Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant transforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Prozessor zum Erzeugen einer Walsh-Transformierten durch im wesentlichen gleichzeitiges Berechnen von M Kombinationen aus M Eingangswerten, wobei M = 2N, N ist eine positive Ganzzahl, gilt, und. wobei die Eingangswerte Binärwerte in Zweierkomplementdarstellung sind, aufweisend:
(a) N elektrisch in Reihe geschaltete Stufen (11,12), wobei jede Stufe ein Kreuznetzwerk (11) aus M in einem vorbestimmten Muster zu einem Satz (12) von M/2 Butterfly-Schaltungen elektrisch miteinander verbunden Leitern (I) aufweist, wobei jede Butterfly-Schaltung (12) eine Einrichtung zum Berechnen einer Summe und einer Differenz von zwei durch das Kreuznetzwerk (11) jeder Butterfly-Schaltung (12) entsprechend vorgelegten Werten aufweist und die Summe und die Differenz entsprechenden Leitern (I) des Kreuznetzwerks (11) der nächsten Stufe (11,12) vorlegt, und
(b) wobei die einem Kreuznetzwerk (11) einer ersten Stufe (11-1, 12-1) vorgelegten Eingangswerte (S) seriell und mit den niedrigstwertigsten Bit zuerst vorgelegt werden, und im wesentlichen gleichzeitig damit die Walsh-Transformierte (W) der Eingangswerte durch Butterfly-Schaltungen (12-N)...

Description

  • Die vorliegende Erfindung betrifft einen Prozessor zum Durchführen einer schnellen Walsh-Transformation ("FWT"), beispielsweise eine Schaltungsstruktur auf einem Silizium-Chip.
  • Eine Walsh-Transformation ist eine mathematische Operation, die eine Menge aus M = 2N Zahlen in vorbestimmten Mengen von Kombinationen durch Addieren oder Subtrahieren derselben in eine andere Menge von M Zahlen umwandelt. Jede Menge von Kombinationen umfasst im wesentlichen eine Aufsummierung aller M ursprünglichen Zahlen, wobei jedoch ihre Vorzeichen jeweils gemäß einem entsprechenden vorbestimmten Muster gewählt werden. Es können M unterschiedliche Mengen von Kombinationen, die M vorbestimmten Vorzeichenmustern entsprechen, berechnet werden, welche die wünschenswerte Eigenschaft besitzen, orthogonal zu sein, d.h., dass ein Vergleich irgendeines Vorzeichenmusters mit irgendeinem anderen Vorzeichen gleiche Vorzeichen in genau der Hälfte der Stellen und ungleiche Vorzeichen in der anderen Hälfte zeigt.
  • Die gegenseitige Orthogonalität der Vorzeichenmuster ermöglicht es, die Berechnung von M Kombinationen aus M Werten in eine Berechnung von N·(M/2) Summen und N·(M/2) Differenzen zu zerlegen, was eine signifikante Verminderung der Anzahl der Additionen und Subtraktionen von M2 auf M·N darstellt. Eine effiziente Struktur zum Ausführen dieser Kombinationen wird unten genauer beschrieben.
  • Die vorliegende Erfindung ist insbesondere in zellulären Codemultiplex-Funktelefonkommunikationssystemen mit Mehrfachzugriff ("CDMA") nützlich, wie etwa dem verbesserten, auf in der Reihenfolge der Signalstärke aufeinanderfolgenden Signalsubtraktionen mehrerer CDMA-Signale gründenden CDMA-Demodulationsschema, das in der nicht vorveröffentlichten WO92/11716 (= DE69128927 T2 ) beschrieben ist. Eine Ausführungsform der vorliegenden Erfindung, welche einhundertachtundzwanzig serielle sechzehn-Bit-Werte verarbeitet, ist insbesondere in einem derartigen System nützlich.
  • Die Kapazitätsgrenzen und andere Aspekte von CDMA-Kommunikationssystemen werden von Gilhousen et al. in dem Aufsatz "On the Capacity of a Cellular CDMA System" in IEEE Transactions on Vehicular Technology, Band 40, S. 303-312 (Mai 1991) erörtert. Wie in der oben angegebenen WO92/11716 der Anmelderin weiter ausgeführt, ermöglicht es CDMA, dass Kommunikationssignale von einer Mehrzahl von Nutzern sich sowohl in der Zeit als auch in der Frequenz überlappen. Im Prinzip wird jeder zu übertragende Informationsdatenstrom einem durch einen Pseudozufallszahlengenerator erzeugten Datenstrom erheblich höherer Bit-Rate aufgeprägt. Der Informationsdatenstrom und der Datenstrom mit einer hohen Bit-Rate werden durch Multiplikation der beiden Bit-Ströme miteinander erzeugt, was "Codieren" oder "Aufspreizen des Spektrums des Informationsdatenstroms" genannt wird. Jedem Informationsdatenstrom oder "Kanal" wird ein nur einmal vergebener und insofern "einzigartiger" (der der Fach welt geläufigere Ausdruck lautet "unique") Aufspreizungs-Code zugeteilt, der aus vielerlei Gründen vorteilhafterweise ein Blockfehlerkorrekturcode ist.
  • Eine Anzahl codierter Informationssignale wird auf Funkfrequenzträgerwellen übertragen und gemeinsam durch Empfänger als zusammengesetzte Signale empfangen. Jedes der codierten Signale überlappt sich sowohl mit allen anderen codierten Signalen als auch mit zum Rauschen gehörenden Signalen sowohl in der Frequenz als auch in der Zeit. Durch Korrelieren eines empfangenen zusammengesetzten Signals mit einem der nur einmal vergebenen "einzigartigen" Codes kann die entsprechende Information unter Nutzung des vorliegenden FWT-Prozessors abgetrennt und decodiert werden.
  • Aus der US-A-4 839 844 ist eine Schaltung zum Bilden einer Walsh-Transformierten bekannt, bei der M Eingangswerte auf paarweise Eingänge von eine Stufe bildenden M/2 Butterfly-Schaltungen gegeben werden. In der nächstfolgenden Stufe werden die Ausgangssignale der Butterfly-Schaltungen zu Vierergruppen zusammengefasst, und in jeder Vierergruppe erfolgt eine Summen- und Differenzbildung aus den gradzahligen bzw. ungradzahligen Ausgängen der vorhergehenden Stufe. In der dann folgenden Stufe werden die Ausgangssignale der vorausgehenden Stufe zu Achtergruppen zusammengefasst und ähnlich verarbeitet wie die vorausgehende Vierergruppe. Realisiert wird dieser Signalfluss mit Hilfe eines Pufferspeichers und einer Orthogonal-Transformiereinrichtung, wobei Letztere Daten aus dem Zwischenspeicher ausliest und sie mit einem vorbestimmten Drehfaktor multipliziert. In einer konkreten Ausführungsform (4 der US '844) enthält die Transformier-Einrichtung vier Register zur Aufnahme zweier miteinander zu verknüpfender, imaginärer Eingangswerte. Diese in den vier Register enthaltende Werte werden durch Addieren bzw. Subtrahieren miteinander verknüpft, die Ergebnisse werden in den Pufferspeicher zurückgegeben. Im Zuge der Verarbeitung werden diese Ergebniswerte dann später wieder aus dem Pufferspeicher gelesen und der Transformiereinrichtung zugeleitet.
  • Aus der US-A-3 956 619 ist eine Einrichtung zum Erzeugen einer Walsh-Transformierten bekannt, bei dem aus den Eingangswerten zunächst eine Folge von Transformationskoeffizienten gebildet wird. Die Transformiereinrichtung ist modulartig aufgebaut, wobei das erste Modul jeweils Paare aus zwei Eingangssignalen subtraktiv und additiv miteinander verknüpft, das nächste Modul Gruppen von jeweils vier Eingangssignalen additiv und subtraktiv miteinander verknüpft, das dann folgende Modul jeweils Gruppen von acht Eingangssignalen, d.h. acht Ausgangssignalen der vorausgehenden Modul-Stufe, miteinander verknüpft, usw.
  • Aus Kloken, K.L. [u.a.]: Efficient FFT Implementation on an IEEE Floating-Point Digital Signal Processor. In: International Conference on Acoustics, Speech and Signal Processing, ICASSP-89, Vol.2. New York: IEEE, 1989, Seiten 1302-1305 ist ein Prozessor zur Ausführung eines FFT-Algorithmus bekannt. Bei dem Prozessor handelt es sich um einen Gleitkomma-Prozessor, der innerhalb eines Befehlszyklus bis zu drei Gleitkommaergebnisse liefern kann. Außer der FFT kann z.B. auch noch die WHT (Walsh-Hadamard-Transformation) gebildet werden, indem eine sukzessive Zerlegung in kleinere Transformationen gleichen Typs erfolgt. Diese kleineren Transformationen werden dann in mehreren Stufen durch eine Folge von "Butterfly"-Anordnungen errechnet.
  • Der Erfindung liegt die Aufgabe zugrunde, einen Prozessor zum Erzeugen einer Walsh-Transformierten zu schaffen, der sich durch eine einfache Struktur und eine vergleichsweise geringe Anzahl von Bauteilen auszeichnet.
  • Gelöst wird diese Aufgabe durch die in Anspruch 1 angegebene Erfindung. Vorteilhafte Ausgestaltungen und Weiterbildung ergeben sich aus den abhängigen Ansprüchen.
  • In einer Ausführungsform sieht die vorliegende Erfindung einen Prozessor zum Erzeugen einer Walsh-Transformation durch im wesentlichen gleichzeitiges Berechnen von M Kombinationen aus M Eingangswerten vor, wobei M = 2N gilt und die Eingangswerte binäre Werte in Zweierkomplementdarstellung sind. Der Prozessor weist N elektrisch in Reihe geschaltete Stufen auf, wobei jede Stufe ein Kreuznetzwerk (dem einschlägigen Fachmann auch als "criss-crossnetwork" bekannt) von in einem vorbestimmten Muster mit einem Satz von M/2 Schmetterlingsflügel-Schaltungen oder "Butterfly"-Schaltungen elektrisch verbundenen Leitern aufweist, wobei jede Butterfly-Schaltung eine Einrichtung zum Berechnen einer Summe und einer Differenz aus zwei entsprechenden, durch ihr Kreuznetzwerk vorgelegten Werten aufweist, und die Summe und die Differenz entsprechenden Leitern des Kreuznetzwerks der nächsten Stufe vorlegt. Die Eingangswerte werden dem Kreuznetzwerk der ersten Stufe seriell und mit dem niedrigstwertigen Bit zuerst vorgelegt, wobei die Walsh-Transformation der Eingangswerte durch die Butterfly-Schaltungen der N-ten Stufe seriell und im wesentlichen synchron dazu erzeugt wird.
  • Bezüglich eines Aspektes der Erfindung umfasst die Recheneinrichtung einen seriellen Addieren und einen seriellen Subtrahieren,, und der serielle Addieren enthält eine Einrichtung zum Speichern des durch den Addierer festgestellten Übertragsbits, und der serielle Subtrahieren enthält eine Einrichtung zum Speichern eines durch den Subtrahieren festgestellten Übertragsbits.
  • Bezüglich eines anderen Aspektes der Erfindung weist die Recheneinrichtung einen kombinierten seriellen Addieren/Subtrahierer auf, der eine Einrichtung zum Speichern eines Addieren-Übertragsbits und eine Einrichtung zum Speichern eines Subtrahieren-Übertragsbits enthält.
  • Die Merkmale und Vorzüge der vorliegenden Erfindung werden durch Kenntnisnahme der folgenden ausführlichen Beschreibung in Verbindung mit der Zeichnung erkennbar:
  • 1A veranschaulicht eine schnelle Walsh-Transformation mit M Punkten;
  • 1B veranschaulicht eine schnelle Walsh-Transformation mit acht Punkten;
  • 2 ist ein Blockschaltbild eines seriellen Addierers, der beim Ausführen einer schnellen Walsh-Transformation benutzt werden kann;
  • 2A ist ein Blockschaltbild für einen seriellen Subtrahierer, der beim Ausführen einer schnellen Walsh-Transformation verwendet werden kann.
  • 3 ist ein Blockschaltbild für einen kombinierten seriellen Addieren/Subtrahierer;
  • 3A ist ein Schaltbild eines Zwei-Wege-Schalters, der in dem kombinierten seriellen Addieren/Subtrahieren verwendet werden kann;
  • 4 veranschaulicht ein Kreuznetzwerk für eine schnelle Walsh-Transformation mit sechzehn Punkten.
  • Wenngleich die folgende Beschreibung in den Zusammenhang mit zellulären Kommunikationssystemen gestellt wird, welche tragbare oder mobile Funkte lefone und/oder persönliche Kommunikationsnetzwerke involvieren, ist es für den Fachmann unmittelbar einsehbar, dass die vorliegende Erfindung auch im Zusammenhang mit anderen Anwendungen eingesetzt werden kann.
  • Auf der FWT und der inversen FWT beruhende Vorrichtungen in zellulären Kommunikationssystemen sowie einschlägige Erwägungen dazu sind in der vorstehend zitierten WO92/11716 enthalten. Der vorliegende FWT-Prozessor kann als der in jener Druckschrift beschriebene Blockdecoder eingesetzt werden. Wie untenstehend genauer beschrieben, verarbeitet eine erfindungsgemäße Vorrichtung in effizienter Weise M binäre, seriell mit dem niedrigstwertigsten Bit ("LSB") zuerst vorgelegte Eingangswerte auf M entsprechenden Leitern oder Eingängen.
  • Wie in der vorstehend zitierten WO92/11716 beschrieben, verwenden überlegene Verfahren zum Spreizen des Spektrums eines Informationssignals eine Codierung mit Fehlerkorrektur. Wenn ein einzelnes Informations-Bit bei einem Spreizverhältnis R in eine Pseudozufallssequenz von R Bits expandiert wird, wird die Bandbreite gespreizt, ohne dass ein Gewinn durch Codierung mit Fehlerkorrektur auftritt; diese Technik kann "einfaches Spreizen" genannt werden. Andererseits liefert das Spreizen eines Blocks von P Informations-Bits mit P > 1 auf eine Pseudozufallssequenz von P·R Bits innerhalb des gleichen Spreizfaktors einen Gewinn durch Codieren mit Fehlerkorrektur.
  • Diese letztgenannte Methode wird "intelligentes Spreizen" genannt, welches entweder orthogonales oder bi-orthogonales Blockcodieren des zu übertragenden Informationssignals verwendet. Beim orthogonalen Blockcodieren werden P zu übertragende Bits in eines von M = 2P verfügbaren orthogonalen 2P-Bit-Codeworten konvertiert. Mengen von orthogonalen Codeworten können, wie in der WO92/11716 beschrieben, konstruiert werden.
  • Das Decodieren verwendet die Korrelation eines empfangenen Signals mit allen Mitgliedern aus der Menge orthogonalen Codeworte, und der Index des die größte Korrelation ergebenden Codewortes bringt die gewünschte Information hervor. Wenn beispielsweise die Korrelation eines Signals mit sechzehn 16- Bit-Codeworten, die von 0 bis 15 indexiert sind, mit dem zehnten Codewort die größte Korrelation liefert, ist die gewünschte Signalinformation das 4-Bit-Binärwort 1010 (d.h. zehn in Binärdarstellung). Ein derartiger Code wird auch als ein orthogonaler [16,4]-Blockcode bezeichnet und weist ein Spreizverhältnis R von 16/4 = 4 auf.
  • Falls die komplementären Codeworte ebenfalls verwendet werden (d.h. die Codeworte, in denen alle Bits invertiert sind), kann ein weiteres Informations-Bit pro Codewort transportiert werden. Daher werden fünf Bits durch Übertragen eines Codewortes aus sechzehn Codeworten und ihrer sechzehn Komplemente bei insgesamt zweiunddreißig Codeworten übertragen. Dieser Typ der Codierung ist als bi-orthogonale Codierung bekannt. Für höhere Spreizverhältnisse kann ein [128,8] bi-orthogonaler Blockcode verwendet werden, der ein Spreizverhältnis von 16:1 auf weist. Tatsächlich können bi-orthogonale [256,9], [512,10],..., [32768,16],... Blockcodes verwendet werden.
  • Darüber hinaus kann ein Verschlüsselungs-Code durch Modulo-Zwei-Addition zu dem Blockcode hinzugefügt werden, um sicherzustellen, dass die Codierung für jedes Signal unterschiedlich ist. Der Verschlüsselungs-Code kann sich sogar zufallsartig von Block zu Block ändern. Die Modulo-Zwei-Addition eines Verschlüsselungs-Codes entspricht der Anwendung einer Achsendrehung in einem Galois-Feld. Der Verschlüsselungs-Code kann beim Empfänger durch Modulo-Zwei-Addition des korrekten Verschlüsselungs-Codes entschlüsselt werden, um die Achsen wieder mit den Codeworten zur Deckung zu bringen.
  • Bezeichnenderweise kann ein zusammengesetztes Eingangssignal durch die FWT mit allen orthogonalen Blockcodeworten in einer Menge gleichzeitig effektiv korreliert werden. Im Falle eines [128,7]-Codes werden beispielsweise einhundertachtundzwanzig Abtastpunkte eines zusammengesetzten Eingangssignals in ein Walsh-Spektrum mit 128 Punkten transformiert, in welchem jeder Spektralpunkt den Wert der Korrelation des zusammengesetzten Signals mit einem entsprechenden Codewort darstellt. Die Werte des Walsh-Spektrums stellen den Grad der Korrelation zwischen dem empfangenen zu sammengesetzten Signal mit 128 Punkten und jedem der einhundertachtundzwanzig orthogonalen Codeworte dar. Der Maximalwert im Walsh-Spektrum identifiziert das richtige Codewort, dessen Index sieben Informations-Bits transportiert (orthogonale Codierung). Falls das Vorzeichen ebenfalls identifiziert werden kann, werden insgesamt acht Bits transportiert (bi-orthogonale Codierung). Die Werte der anderen Spektralkomponenten gehen auf Rauschen und die in dem zusammengesetzten Signal anzutreffenden andersartig verschlüsselten Signale zurück.
  • In realen CDMA-Kommunikationssystemen kann Orthogonalität nur dann aufrechterhalten werden, wenn der relative (Zeit-)Abgleich zwischen Vorzeichenmustern streng aufrechterhalten wird; in beweglichen Kommunikationssystemen, wie etwa zellulären Systemen, kann der Zeitabgleich schwierig zu erzielen sein, wie in der WO92/11716 beschrieben ist. Wenn die Orthogonalität des Codes nicht garantiert werden kann, können rauschbasierte Signale erzeugt werden; im Vergleich mit den Energien der ursprünglich codierten Signale ist die Energie der Rauschsignale aber für gewöhnlich klein.
  • Nichtsdestoweniger ist es infolge der gegenseitigen Orthogonalität der Vorzeichenmuster möglich, die Berechnung von M Kombinationen von M Werten in eine Berechnung von N·(M/2) Summen und N·(M/2) Differenzen zu zerlegen, was eine signifikante Verminderung von M2 auf M·N Additionen und Subtraktionen darstellt. Eine derartige Zerlegung wird für eine allgemeine FWT mit M Punkten durch ein in 1A dargestelltes Netzwerk 10 veranschaulicht. Die FWT weist eine Struktur auf, die an die schnelle Fourier-Transformation erinnert, und beide Algorithmen sind wohlbekannt.
  • Wie in 1A dargestellt, werden M Eingangswerte S0 bis SM_1 mit M ≥ 16 in einer ein erstes Kreuznetzwerk 11-1 und einen ersten Satz 12-1 von Butterfly-Schaltungen aufweisenden ersten Stufe in Paaren kombiniert. Jede Butterfly-Schaltung berechnet die Summe und die Differenz eines entsprechenden Paares von Eingangswerten; wie untenstehend beschrieben, können Paare von seriellen Addierern und seriellen Subtrahierern oder kombinierte serielle Addierer/Subtrahierer verwendet werden, um diese Berechnungen auszufüh ren. Die Anzahl der Butterfly-Schaltungen oder Paare von Addieren und Subtrahieren, die in der ersten und jeder nachfolgenden Stufe verwendet werden, beträgt M/2; beispielsweise werden vierundsechzig Paare oder kombinierte serielle Addieren/ Subtrahieren in jeder Stufe verwendet, wenn M=128 gilt.
  • Die M Zwischenwerte 1I0 bis 1IM_1, die von der ersten Stufe erzeugt werden, werden in einer ein zweites Kreuznetzwerk 11-2 und einen zweiten Satz 12-2 von Butterfly-Schaltungen, die beide vorzugsweise mit den jeweils entsprechenden der ersten Stufe identisch sind, aufweisenden zweiten Stufe kombiniert. Die M Zwischenwerte 2I0 bis 2IM_1, welche durch die zweite Stufe hergestellt werden, werden in einer ein drittes Kreuznetzwerk und einen Satz Butterfly-Schaltungen, welche vorzugsweise mit denen in der ersten und der zweiten Stufe identisch sind, aufweisenden dritten Stufe kombiniert usw., bis zur letzten, N-ten Stufe, welche ein N-tes Kreuznetzwerk 11-N und einen N-ten Satz 12-N von Butterfly-Schaltungen aufweist. Die Ausgänge der letzten Stufe der Butterfly-Schaltungen sind die Walsh-Spektralkomponenten Wo bis WM_1. Für einhundertachtundzwanzig Eingangswerte würde ein FWT-Prozessor, wie veranschaulicht, sieben Stufen aufweisen.
  • Die Eingangs-, Zwischen- und Ausgangswerte können durch eine beliebige Numerierungskonvention identifiziert werden; die Verbindungen zwischen den aufeinanderfolgenden Stufen von Butterfly-Operationen sind jedoch kritisch bezüglich der korrekten Berechnung der FWT. Unter einer geeigneten Konvention, wie sie in 1A veranschaulicht ist, werden Eingänge, die um die Hälfte der Gesamtanzahl M der Eingangs werte differierende Indexwerte aufweisen, kombiniert. Als ein spezifisches Beispiel zeigt 1B ein FWT-Netzwerk für M=8, in welchem Eingänge, die sich im Indexwert um vier unterscheiden (d.h. S0 und S4, S1 und S5; S2 und S6 sowie S3 und S7), in der ersten Stufe aus einem Kreuznetzwerk 11-1' und einem ersten Satz 12-1' von Butterfly-Schaltungen kombiniert werden.
  • Die Ergebnisse der durch den ersten Satz 12-1 von Butterfly-Schaltungen implementierten Summen- und Differenzen-Berechnungen, welche als 1I0 bis 1IM_1 (als erste "Zwischenergebnisse") bezeichnet werden können, werden in der folgenden Reihenfolge für die Eingabe in die zweite Stufe von Butterfly-Schaltungen eingerichtet:
    1I0 = S0 + SM/2
    1I1 = S0 – SM/2
    1I2 = S1 + S1+M/2
    1I3 = S1 – S1+M/2
    1I4 = S2 + S2+M/2
    usw.
  • Unter Verwendung dieser Konvention wird die Selektion von Paaren von ersten Zwischenwerten durch das zweite Kreuznetzwerk zur Kombination durch die zweite Stufe in zweite Zwischenwerte nach genau derselben Regel ausgeführt, d.h. durch einen Indexwertunterschied von M/2 getrennte Zwischenpaare werden in die Summen-Differenzen-Schaltungen oder Butterfly-Schaltungen der zweiten Stufe eingespeist. Bei dem in 1B dargestellten Netzwerk werden daher 1I0 und 1I4 durch den zweiten Satz 12-2' von Buterfly-Schaltungen in 2I0 und 2I1 kombiniert; 1I1 und 1I5 werden in 2I2 und 2I3 kombiniert; 1I2 und 1I6 werden in 2I4 und 2I5 kombiniert; und 1I3 sowie 1I7 werden in 2I6 und 2I7 kombiniert. Dieselbe Regel wird für die dritte und jede nachfolgende Stufe verwendet; bei dem in 1B veranschaulichten Beispiel-Netzwerk umfasst die dritte Stufe ein drittes Kreuznetzwerk 11-3' und einen dritten Satz 12-3' von Butterfly-Schaltungen und erzeugt die Ausgänge W0 bis W7.
  • In Übereinstimmung mit einem Aspekt der vorliegenden Erfindung sind Paare von seriellen Additions-Schaltungen und seriellen Subtraktions-Schaltungen in den Butterfly-Schaltungen zum Berechnen der notwendigen Summen und Differenzen vorgesehen, und diese Schaltungen verarbeiten seriell, mit dem LSB zuerst, vorgelegte Binärwerte in Zweierkomplementdarstellung. 2 zeigt einen geeigneten seriellen Addierer 120 mit einer Anzahl herkömmlicher NAND-Gatter 122-128, Negatoren 130-136 und Schalter, der gleichzeitig zwei an beiden seriellen Eingängen A, B vorgelegte Bits und ein an einem Übertrags-Eingang C vorgelegtes Übertragsbit entgegennimmt. Wie in 2 angezeigt, wirkt der Eingang B als ein Steuersignal für einen Schalter SW-1 und der Eingang C wirkt als ein Steuersignal für einen Schalter SW-2. Wenn eines der Steuersignale aktiv (d.h. logisch HIGH oder "1") ist, wird der entsprechende Schalter, der bevorzugterweise als ein Feldeffekt-Transistor ("FET") implementiert werden kann, in die in der Fig. angezeigte "1"-Stellung gebracht. Der Addieren 120 gibt vorteilhafterweise die Ein-Bit-Summe der Eingänge A, B und C auf dem Ausgang D und ein neues Übertragsbit auf den Übertrags-Ausgang E im wesentlichen ohne Verzögerung aus.
  • Das auf dem Übertrags-Ausgang E dargebotene neue Übertragsbit wird durch einen Schalter SW-3, der ein zwischen jedem Wort (das, wie oben beschrieben, 16 Bit lang sein kann) zur Initialisierung des Übertragsbits betätigter FET sein kann, geleitet und zeitweise in einem Speicherelement gespeichert, das vorteilhaft ein dynamisches Logik-Netzwerk M mit einem Paar von Negatoren 134, 136 und einem Trio von Schaltern SW-4, SW-5 und SW-6, die ebenso FETs sein können und die durch ein geeignetes, an einem CLOCK-Eingang vorgelegtes und mit den an den Eingängen A, B vorgelegten Bits synchronisierten digitalen Taktsignal gesteuert werden, aufweist. Das Übertrags-Speicherelement kann ebenso durch andere Vorrichtungen implementiert werden, wie etwa eine geeignete Zwischenspeicher-Schaltung, ein Flip-Flop oder eine andere Speicherzelle. Für Signale, die schnell genug sind, d.h. kürzer als wenige Zehntel von Nanosekunden, wird das Speichernetzwerk M vorzugsweise als dynamische Logik realisiert, die die aus einer einer Siliziumstruktur inhärent innewohnenden Kapazität herrührenden Ausbreitungsverzögerung benutzt. Der Betrieb des seriellen Addierers 120 läuft wie folgt ab.
  • Um den Inhalt des Übertrags-Speichernetzwerks M zu initialisieren, werden die Schalter SW-3 bis SW-5 unmittelbar vor dem Vorliegen gültiger niedrigstwertiger Bits auf den Eingängen A, B durch die Steuersignale CARRY S/R und CLOCK in Stellungen gebracht, die zu den in 2 dargestellten Stellungen entgegengesetzt sind. Bei einem System, in welchem Eingangs-Bits mit einer Rate von dreizehn Megahertz (13 MHz) vorgelegt werden, können die Schalter SW-3 bis SW-5 (der Schalter SW-6 braucht zu diesem Zeitpunkt nicht betätigt zu werden) innerhalb von fünfundzwanzig Nanosekunden (d.h. einem Drittel einer Bit-Periode) vor den gültigen LSBs betätigt werden. Sobald gültige LSBs an den Eingängen A, B vorgelegt sind, begeben sich die Schalter SW-3 bis SW-5 zurück in die in 2 gezeigten Stellungen. Somit wird der Initialisierungswert-Eingang F in das Übertrags-Speichernetzwerk M geladen und dem Übertrags-Eingang C zu der gleichen Zeit vorgelegt, zu der die gültigen LSBs den Eingängen A, B vorgelegt werden.
  • Nach dem Abwarten einer geeigneten Zeitspanne zur Bildung der gültigen Summen- und Übertragsbits an den Ausgängen D, E, beispielsweise ungefähr fünfzig Nanosekunden oder zwei Drittel einer Bit-Periode, werden die Schalter SW-4 bis SW-6 durch das CLOCK-Signal in zu den in 2 gezeigten Stellungen entgegengesetzte Stellungen betätigt, um das neue Übertragsbit in das Übertrags-Speichernetzwerk M zu laden. Danach werden diese Schalter in die dargestellten Stellungen zurückverbracht, sobald die auf das niedrigstwertigste Bit folgenden Bits an den Eingängen A, B vorgelegt werden, um das neue Übertragsbit an dem Übertrags-Eingang C vorzulegen. Diese Reihenfolge von Operationen wird bis zur Bildung von gültigen Summen- und Übertrags-Ausgängen aus den an den Eingängen A, B vorgelegten höchstwertigen Bits fortgesetzt. Ungefähr im letzten Drittel der Bit-Periode betätigen die CARRY S/R- und CLOCK-Signale die Schalter SW-3 bis SW-5, um den Übertragswert wie oben beschrieben zu initialisieren, wodurch das durch die Summe der höchstwertigen Bits gebildete Übertragsbit verworfen wird. Danach ist der Addieren zur Vorlage der nächsten Eingabeworte bereit.
  • Die Schalter SW-3 bis SW-6 können zu geringfügig unterschiedlichen Zeiten betätigt werden, insoweit dies notwendig ist, um einen einwandfreien Betrieb der Schaltung sicherzustellen, können aber den noch durch einen gemeinsamen Zeitsteuer-Signalgenerator angesteuert werden. Derartige relative Verzögerungen können leicht durch Vorsehen von verlustbehafteten Polysilizium-Pfaden zum Verbinden der Steuersignale oder durch unterschiedliche Betätigungs-Schwellenwerte für die Schalter implementiert werden.
  • Der Inhalt des Übertrags-Speichers wird normalerweise zum Beginn einer seriellen Additionssequenz auf "0" initialisiert, aber bei einem anderen Aspekt der Erfindung kann das Übertragsbit auf "1" initialisiert werden, um die Im plementation eines seriellen Subtrahierers wie untenstehend beschrieben zu vereinfachen.
  • Ein serieller Subtrahieren zum Berechnen von A-B kann leicht unter Verwendung eines seriellen Addierers der in 2 gezeigten Art und einer geeigneten Einrichtung zum Negieren der am Eingang B vorgelegten Werte gebildet werden. Somit würde der serielle Addierer den Ausdruck A+(-B) berechnen. Das Negieren eines Wertes in Zweierkomplementdarstellung beinhaltet jedoch das Umkehren des Bit-Musters, beispielsweise durch Hindurchführen durch einen Negator, und die Addition des Wertes Eins, was einen weiteren seriellen Addieren erfordert. In einigen Anwendungen kann der mit dem Vorsehen von Einrichtungen zum Negieren eines Wertes verbundene Komplexitätszuwachs sehr nachteilig sein.
  • Gemäß einem anderen Aspekt der Erfindung ist ein in 2A dargestellter Subtrahierer 138 vorgesehen, in welchem, anstatt dass der Eingangswert B zu negiert wird, der Eingangswert B einfach durch einen Inverter 140 umgekehrt (mit dem Ergebnis A + B, was um Eins kleiner als der gewünschte Wert A-B ist] und einem seriellen Addieren 120 vorgelegt wird, in welchem das Übertragsbit mittels der CARRY S/R- und Initialiserungseingänge F auf den Wert EINS anstelle von NULL (Kompensation für das Defizit] initialisiert wird.
  • Darüber hinaus ermöglicht die Ähnlichkeit der Architektur der Addieren Schaltung und der Subtrahierer-Schaltung ihre vorteilhafte Kombination, wenn beide mit den gleichen Eingängen arbeiten müssen. Eine derartige vorteilhafte Kombination ist ein kombiniertes, serielles Addieren/Subtrahieren-Netzwerk 160, welches in 3 dargestellt ist und welches die signifikanten Vorzüge verminderter Schaltungsfläche und Komplexität genießt.
  • Wie bei dem in 3 dargestellten seriellen Addierer umfasst der kombinierte serielle Addieren/Subtrahierer 160 eine Anzahl herkömmlicher NAND-Gatter 162-176, Negatoren 178-190 sowie Schalter, und er akzeptiert gleichzeitig zwei an beiden seriellen Eingängen A', B' vorgelegte Bits sowie Übertragsbits für die Addierer- und Subtrahieren-Teile des Netzwerks 160, die entsprechend an den Übertrags-Eingängen CA' und CS' vorgelegt werden. Wie in 3 angezeigt, wirken der A'-Eingang und sein durch den Negator 178 hergestelltes Komplement A' als Steuersignale für einen Schalter SW-1', der entweder den B'-Wert oder sein durch den Negator 180 gebildetes Komplement B' mit einem Leiter G' verbindet. Wenn A' aktiv (d.h. logisch "HIGH" oder "1") ist, wird der Schalter SW-1' in die gezeigte "1"-Stellung gebracht, welche B' mit dem Leiter G' verbindet; wenn A' auf HIGH-Pegel liegt, wird der Schalter SW-1' in die "0"-Stellung gebracht, welche B' mit dem Leiter G' verbindet. Daher wird die Ein-Bit-Summe von A' und B' am Leiter G' vorgelegt; die Summe und ihr durch den Negator 182 gebildetes Komplement wird, wie untenstehend näher erläutert, an einen Addieren-Ausgangsanschluß DA' gemäß dem Zustand eines Zwei-Stellungs-, Zwei-Wege-Schalters SW-2' bzw. an einen Subtrahieren-Ausgangsanschluß DS' gemäß dem Zustand eines Zwei-Stellungs-, Zwei-Wege-Schalters SW-3' geliefert.
  • Die Schalter SW-1', SW-2' und SW-3' werden durch Dual-Steuersignale gesteuert und verbinden in beiderlei Richtungen; beispielsweise verbindet der Schalter SW-1' in einer Richtung, beispielsweise zu der "1"-Stellung, wenn A' = 1 und A' = 0 gilt, und in der anderen Richtung, beispielsweise in der "0"-Stellung, wenn A' = 0 und A' = 1 gilt. Derartige Schalter können vorteilhafterweise auf Silizium durch Anordnungen von vier Transistoren, wie in 3A gezeigt, hergestellt werden. Die Transistoren 1-4, die Feldeffekt-Transistoren sein können, sind in zwei parallel verbundenen Paaren entgegengesetzten Typs verbunden (d.h. P-Typ FETs 1, 3 sowie N-Typ FETs 2, 4), welche parallelgeschaltet und an ihren Gate-Anschlüssen jeweils entsprechend durch die Signale A' bzw. A' gesteuert werden. Beim Betrieb wird durch A' = 0 P-FET 1 eingeschaltet und N-FET 4 ausgeschaltet, und durch A' = 1 wird N-FET 2 eingeschaltet sowie P-FET 3 abgeschaltet. Somit liefern die FETs 1, 2 einen Pfad niedriger Impedanz zwischen den Anschlüssen X und Z und einen Pfad hoher Impedanz zwischen den Anschlüssen Y und Z. Unter der Bedingung A' = 1 sowie A' = 0 schalten die FETs 3, 4 durch und die FETs 1, 2 werden hochohmig, wodurch ein Pfad niedriger Impedanz zwischen den Anschlüssen Y und Z und ein Pfad hoher Impedanz zwischen den Anschlüssen X und Z ermöglicht wird.
  • Die vorstehende Anordnung ermöglicht einen sicheren Betrieb der Schalter: Ob der Schalter seinen Zustand ändert, beispielsweise ob der Transistor durchschaltet, würde von den Spannungspegeln des Steuersignals und des geschalteten Signals abhängen, wenn lediglich ein Typ von Transistoren verwendet würde. Es ist selbstverständlich einsehbar, dass andere Bauteile verwendet werden könnten, um ein Gesamtschaltverhalten zu erzielen, das im wesentlichen ähnlich zu dem der dargestellten Anordnung ist. Darüber hinaus kann die in 3A dargestellte Anordnung für alle Schalter in dem Prozessor ohne weiteres verwendet werden, falls gewünscht.
  • Die Zustände der Schalter SW-2', SW-3' werden durch ein die NAND-Gatter 162-176, die Negatoren 184-190 sowie vier Schalter SW-4' bis SW-7', welche durch ein geeignetes, an einem BIT-CLOCK-Eingang in der oben in Verbindung mit dem seriellen Addieren 121 beschrieben Art und Weise vorgelegtes digitales Taktsignal gesteuert werden, bestimmt. Die Negatoren 184, 186 wirken wie das Netzwerk M in dem vorstehend beschriebenen seriellen Addieren 120 als eine Zwischenspeicherung für den Addieren-Übertragswert, und die Negatoren 188, 190 wirken in einer ähnlichen Art und Weise als eine Zwischenspeicherung für den Subtrahieren-Übertragswert.
  • In ähnlicher Weise wirken die Schalter SW-4' bis SW-7' in einer zu der vorstehend in Verbindung mit den Schaltern SW-4 bis SW-6 in dem seriellen Addierer 120 beschriebenen im wesentlichen ähnlichen Art und Weise, obgleich es in dem Netzwerk 160 kein Gegenstück zu dem Schalter SW-3 gibt. Um den Inhalt der Übertrags-Speicherungen zu initialisieren, wird an dem WORD CLOCK-Eingang ein logischer LOW-Pegel vorgelegt, und die Schalter SW-4' bis SW-7' werden unmittelbar vor der Vorlage des niedrigstwertigsten Bits an den Eingängen A', B' durch das Steuersignal BIT CLOCK in Stellungen entgegengesetzt zu jenen, die in 3 dargestellt sind, gelegt. Sobald gültige LSBs an den Eingängen A', B' vorgelegt werden, nimmt der WORD CLOCK-Ein gang einen HIGH-Pegel an (und verbleibt im hochpegeligen Zustand während der Vorlage der Eingangsworte), und die Schalter SW-4' bis SW-7' bewegen sich in die in 3 dargestellten Zustände zurück. Daher übersteuert der WORD CLOCK-Eingang die durch die Gatter 162-168 sowie 170-176 erstellten Übertragswerte, wobei der Übertragswert des Addierers und der Übertragswert des Subtrahierers jeweils entsprechend Null bzw. auf Eins initialisiert wird, und wobei jene Werte den Übertrags-Eingängen CA', CS' zur gleichen Zeit vorgelegt werden, zu der die gültigen LSBs den Eingängen A', B' vorgelegt werden.
  • Nach dem Abwarten einer geeigneten Zeitspanne für die Bildung der gültigen Summen-, Differenz- und Übertragsbits an den Ausgängen DA', DS', EA' sowie ES' werden die Schalter SW-4' bis SW-7' durch das BIT CLOCK-Signal in Stellungen, die entgegengesetzt zu den in 3 dargestellten sind, gebracht, um die neuen Übertragsbits in die Übertrags-Speichernetzwerke zu laden. Jene Schalter werden dann in die dargestellten Stellungen zurückverbracht, sobald die Bits mit der zweitniedrigsten Wertigkeit an den Eingängen A', B' vorgelegt werden, um die neuen Übertragsbits an den Übertrags-Eingängen CA', CS' vorzulegen. Diese Reihenfolge von Operationen wird bis zur Bildung gültigen Summen- und Übertrags-Ausgängen aus den an den Eingängen A', B' vorgelegten höchstwertigsten Bits fortgesetzt. In ungefähr dem letzten Drittel dieser Bit-Periode betätigen die WORD CLOCK- und BIT CLOCK-Signale die Schalter SW-4' bis SW-7', um die Übertragswerte wie obenstehend zu initialisieren, wodurch die durch die Summe und die Differenz der höchstwertigsten Bits gebildeten Übertragsbits verworfen werden. Der kombinierte Addieren/Subtrahieren ist dann für die Vorlage der nächsten Eingabeworte bereit. Es ist ebenfalls verständlich, dass die Schalter SW-4' bis SW-7', wie obenstehend beschrieben, bei geringfügig unterschiedlichen Zeiten betätigt werden können.
  • Beim Gebrauch der in 3 veranschaulichten Struktur wird, mit einer minimalen Schaltungsfläche und im wesentlichen ohne Verzögerung, die Ein-Bit-Summe von A', B' und CA' an dem Ausgangsanschluß DA' und die Ein-Bit-Summe von A', B' sowie CS' an dem Ausgangsanschluß DS' gebildet. Die Notwendigkeit eines Speichers zwischen den Stufen des FWT-Prozessors wird durch das Fehlen von Verzögerungen vermieden.
  • Neben den Paaren von Addier-/Subtrahier-Schaltungen oder dem kombinierten Addieren/Subtrahierer in den Sätzen von Butterfly-Schaltungen können Schaltungsimpiementationen des FWT Kreuzverdrahtungs-Netzwerke zwischen jedem Satz von Butterfly-Schaltungen nutzen, um die korrekte Wertepaar-Auswahl zu erreichen. Abhängig von der gewählten Numerierungskonvention für die Eingabewerte wird der FWT-Prozessor entsprechende Kreuznetzwerke erfordern; jedoch werden alle Netzwerke von gleichwertiger Komplexität sein. Ein die in den 1A und 1B veranschaulichte Konvention verwendender FWT-Prozessor kann die Kreuznetzwerke 11-1, 11-2 usw. verwenden, die in jeder Stufe identisch sind, wodurch die Herstellung des FWT-Prozessors in einer integrierten Schaltung durch einen herkömmlichen graphischen Step-and-Repeat-Prozess erleichtert wird.
  • Um einen geringen Energieumsatz zu erzielen, und auch aus anderen Gründen, wird der FWT-Prozessor vorzugsweise in der als CMOS (Complementary Metal-Oxide-Silicon) bekannten Technologie hergestellt; insbesondere kann eine Version der CMOS-Technologie, die mindestens zwei metallische oder leitfähig verbindende Schichten ermöglicht, zu bevorzugen sein. Der FWT-Prozessor kann jedoch auch durch andere, für die Implementation von digitaler Logik geeignete Halbleiterprozesse aufgebaut werden. Da derartige Technologien allgemein bekannt sind, werden sie hier nicht im Detail beschrieben.
  • In der CMOS-Technologie können die beiden metallischen oder leitfähigen Schichten bevorzugterweise mit einer dazwischengeschobenen Schicht aus isolierendem Material, wie etwa Siliziumdioxid oder Polyamid, überlappt werden, um die Kreuznetzwerke, die die Sätze von Butterfly-Schaltungen verbinden, zu bilden. 4 zeigt ein Beispiel eines ersten Kreuznetzwerks 11-1'' für ein FWT-Netzwerk 10'' für 16 Punkte. Die Eingangswerte S0 bis S15, die an der linken Seite von 4 vorgelegt werden, werden durch die Konfiguration der Leiter zur Vorlage vor den ersten Satz von Butterfly-Schaltungen 12-1'' wie vorstehend beschrieben umgeordnet oder ausgewählt. Das dargestellte Kreuznetzwerk könnte effizient vervielfacht und für die anderen drei Kreuznetzwerke in dem FWT-Prozessor 10'' verwendet werden.
  • In dem dargestellten Beispiel können die Leiter für die Eingangswerte S0 bis S7 in einer Schicht angeordnet und die Leiter für die Eingangswerte S8 bis S15 in der zweiten Schicht angeordnet werden. Die Geometrie der Leiter muss nicht notwendigerweise, wie veranschaulicht, linear sein, vorgesetzt, dass die gewünschte Umordnung der Eingangswerte aufrecht erhalten wird, und dass die Haupterwägung beim Anordnen der Leiter in den Schichten das Vermeiden von Brücken ist. Wie vorstehend beschrieben, kann eine nützliche Anzahl von Punkten für ein CDMA-System einhundertachtundzwanzig betragen; derart viele können jedoch nicht in einem Diagramm klar dargestellt werden.
  • Die Addition zweier Worte mit je L Bits kann ein Wort mit (L+1) Bits erzeugen; daher sind Schritte zum Verhindern von Überlauf ratsam. Beispielsweise könnte einiger Freiraum bei der ursprünglichen Wortlänge des Eingangs erlaubt werden, d.h. die Wortlänge des Eingangs könnte größer sein als der maximale Eingangswert. Ein alternativer Schritt, der gegangen werden könnte, besteht darin, gelegentlich ein LSB bei den Rechnungen fallen zu lassen.
  • Bevorzugte Addieren/Subtrahieren sowie Addieren/Subtrahieren-Schaltungen, wie diejenigen, welche in den 2, 2A und 3 gezeigt sind, erzeugen ihre Ausgangs-Bits im wesentlichen sofort; ein Merkmal, das gemäß der Erfindung auf folgende Weise ausgenutzt wird. Wie in 1A gezeigt, werden beispielsweise die Ausgänge des ersten Satzes 12-1 von Butterfly-Schaltungen in dem zweiten Satz 12-2 von Butterfly-Schaltungen kombiniert, welcher, wie vorstehend beschrieben, ein identischer Satz serieller Schaltungen sein kann, welcher erfordert, dass die Eingänge mit dem LSB zuerst vorgelegt werden. Da die für die Butterfly-Schaltungen der zweiten Stufe benötigten LSBs ohne Verzögerung aus der ersten Stufe austreten, ist kein Zwischenregister oder anderer Speicher zwischen den Stufen erforderlich.
  • Darüber hinaus treten die transformierten Ausgänge WO-WM-1 aus den Butterfly-Schaltungen der letzten Stufe seriell in Gleichschritt mit den seriell vorgelegten Eingangswerten, d.h. synchron und im wesentlichen ohne Verzögerung aus, außer derjenigen, die durch die logischen Ausbreitungsverzögerungen der Schaltungselemente herrührt. Daher wird eine vollständige FWT in der Zeit ausgeführt, die benötigt wird, die Eingangswerte seriell in den FWT-Prozessor zu laden und die Ausgangswerte von dem FWT-Prozessor zu empfangen. Im Fall einer 16-Bit-Wortlänge und einer seriellen Taktrate von 16 MHz wird eine vollständige Transformation im wesentlichen in einer Mikrosekunde ausgeführt.
  • In einer Ausführungsform der vorliegenden Erfindung, die in den in der WO92/11716 beschriebenen CDMA-Kommunikationssystemen nützlich ist, würden einhundertachtundzwanzig zu transformierende Eingangswerte So bis S127in das Kreuznetzwerk der ersten Stufe als serielle 16-Bit-Worte mit dem LSB zuerst eintreten. Die 16-Bit-Worte würden in einem 8-Bit- (oder höchstens 9-Bit-)Format in Zweierkomplementdarstellung vorgelegt werden, wobei die niedrigstwertigen Stellen besetzt sind und die höchstwertigen Stellen das Vorzeichen-Bit angeben (d.h. der Dezimalwert -3 wird durch
    Figure 00190001
    anstatt durch
    Figure 00190002
    dargestellt). Wie vorstehend beschrieben, vermeidet diese Formatierung Überlauf oder Unterlauf durch die sieben Stufen des FWT-Prozessors hindurch (da 128 = 27 gilt).
  • Das erste Kreuznetzwerk ordnet die Eingangswerte um und verbindet sie mit dem ersten Satz von Butterfly-Schaltungen für die Summen- und Differenz-Berechnungen der ersten Stufe. Wie vorstehend beschrieben, kann der Satz von Butterfly-Schaltungen, wie in den 2 und 2A dargestellt, sowohl vierundsechzig serielle Addieren und vierundsechzig serielle Subtrahieren als auch, wie in 3 dargestellt, vierundsechzig kombinierte serielle Addierer/Subtrahierer aufweisen. Die resultierenden einhundertachtundzwanzig Summen und Differenzen gehen aus dem ersten Satz von Butterfly-Schaltungen als die ersten seriellen 16-Bit-Zwischenworte 1I0 bis 1I127 hervor und sind mit dem Kreuznetzwerk der zweiten Stufe verbunden, das in seiner Form identisch mit demjenigen des ersten Kreuznetzwerks ist.
  • Die umgeordneten Ausgänge aus dem zweiten Kreuznetzwerk werden den Eingängen des zweiten Satzes von Butterfly-Schaltungen für die Summen- und Differenz-Berechnungen der zweiten Stufe zugeleitet, welche bezüglich ihrer Form identisch mit dem ersten Satz sind. Die resultierenden einhundertachtundzwanzig Summen und Differenzen gehen als zweite serielle 16-Bit-Zwischenworte 2I0 bis 2I127 hervor und werden mit dem Kreuznetzwerk der dritten Stufe verbunden, das bezüglich seiner Form identisch mit dem ersten und dem zweiten Kreuznetzwerk ist, usw., bis zu einer Gesamtanzahl von sieben Stufen zur Vervollständigung der Transformation, welche als Spektralkomponenten W0 bis W12 7 ausgegeben wird.

Claims (10)

  1. Prozessor zum Erzeugen einer Walsh-Transformierten durch im wesentlichen gleichzeitiges Berechnen von M Kombinationen aus M Eingangswerten, wobei M = 2N, N ist eine positive Ganzzahl, gilt, und. wobei die Eingangswerte Binärwerte in Zweierkomplementdarstellung sind, aufweisend: (a) N elektrisch in Reihe geschaltete Stufen (11,12), wobei jede Stufe ein Kreuznetzwerk (11) aus M in einem vorbestimmten Muster zu einem Satz (12) von M/2 Butterfly-Schaltungen elektrisch miteinander verbunden Leitern (I) aufweist, wobei jede Butterfly-Schaltung (12) eine Einrichtung zum Berechnen einer Summe und einer Differenz von zwei durch das Kreuznetzwerk (11) jeder Butterfly-Schaltung (12) entsprechend vorgelegten Werten aufweist und die Summe und die Differenz entsprechenden Leitern (I) des Kreuznetzwerks (11) der nächsten Stufe (11,12) vorlegt, und (b) wobei die einem Kreuznetzwerk (11) einer ersten Stufe (11-1, 12-1) vorgelegten Eingangswerte (S) seriell und mit den niedrigstwertigsten Bit zuerst vorgelegt werden, und im wesentlichen gleichzeitig damit die Walsh-Transformierte (W) der Eingangswerte durch Butterfly-Schaltungen (12-N) einer N-ten Stufe seriell hergestellt werden.
  2. Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass jedes Kreuznetzwerk (11) M Leiter aufweist, die überlappend in einem Muster in mindestens zwei auf einem Halbleitersubstrat angeordneten leitfähigen Schichten angeordnet sind, wobei die leitfähigen Schichten durch eine isolierende Schicht getrennt sind.
  3. Prozessor nach Anspruch 2, dadurch gekennzeichnet, dass die Muster von mindestens zwei der Kreuznetzwerke (11) im wesentlichen identisch sind.
  4. Prozessor nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass die Recheneinrichtung einen seriellen Addieren (120) und einen seriellen Subtrahieren (138) aufweist, und dass der serielle Addierer (120) eine Ein- richtung zum Speichern eines durch den Addieren (120) bestimmten Übertragsbits aufweist, und dass der serielle Subtrahieren (138) eine Einrichtung zum Speichern eines durch den Subtrahieren bestimmten Übertragsbits aufweist.
  5. Prozessor nach Anspruch 4, dadurch gekennzeichnet, dass jede Übertragsbit-Speichereinrichtung ein dynamisches Logik-Netzwerk mit (a) einem ersten Schalter (SW-4) zum selektiven Verbinden des festgelegten Übertragsbits mit einem ersten Negator (136), (b) einem seriell und selektiv durch einen zweiten Schalter (SW-5) mit dem ersten Negator (136) verbundenen zweiten Negator (134), und (c) einem dritten Schalter zum selektiven Verbinden des zweiten Negators (134) mit einem Übertrags-Eingang (C) eines seriellen Addierers oder seriellen Subtrahierers entsprechend der Übertragsbit-Speichereinrichtung aufweist, (d) wobei die Schalter im wesentlichen gleichzeitig mit der Vorlage der Bits an dem entsprechenden seriellen Addieren oder seriellen Subtrahierer betätigt werden.
  6. Prozessor nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass jeder der seriellen Addieren (120) und seriellen Subtrahieren (138) eine Einrichtung zum Initialisieren der entsprechenden Übertragsbits auf vorbestimmte Werte aufweist.
  7. Prozessor nach Anspruch 6, dadurch gekennzeichnet, dass der serielle Subtrahieren (138) einen zweiten seriellen Addieren (120) und eine Einrichtung (140) zum Invertieren eines vorbestimmten Wertes von den beiden durch das Kreuznetzwerk (11) des Subtrahierers (138) vorgelegten Werten aufweist.
  8. Prozessor nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass die Recheneinrichtung einen kombinierten seriellen Addieren/ Subtrahieren (160) mit einer Einrichtung zum Speichern eines Addieren-Übertragsbits und einer Einrichtung zum Speichern eines Subtrahierer-Übertragsbits aufweist.
  9. Prozessor nach Anspruch 8, dadurch gekennzeichnet, dass jede Übertragsbit-Speichereinrichtung ein dynamisches Logiknetzwerk mit (a) einem ersten Schalter (SW-4') zum selektiven Verbinden des entsprechenden Übertragsbits mit einem ersten Negator (184), (b) einem seriell mit dem ersten Negator (184), verbundenen zweiten Negator (186), sowie (c) einem zweiten Schalter (SW-6') zum selektiven Verbinden des zweiten Negators (186), mit einem entsprechenden Übertrags-Eingang aufweist, wobei (d) die Schalter im wesentlichen gleichzeitig mit der Vorlage der Bits an die dem kombinierten seriellen Addierer/Subtrahieren entsprechenden Übertragsbits-Speichereinrichtungen betätigt werden.
  10. Prozessor nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass der kombinierte serielle Addieren/Subtrahieren (160) eine Einrichtung zum Initialisieren des Addieren-Übertragsbits auf einen ersten vorbestimmten Wert und eine Einrichtung zum Initialisieren des Subtrahieren-Übertragsbits zu einem zweiten vorbestimmten Wert aufweist.
DE4224530A 1991-07-25 1992-07-24 Prozessor zum Erzeugen einer Walsh-Transformierten Expired - Lifetime DE4224530B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/735,805 US5357454A (en) 1991-07-25 1991-07-25 Fast walsh transform processor
US735805 1991-07-25

Publications (2)

Publication Number Publication Date
DE4224530A1 DE4224530A1 (de) 1993-01-28
DE4224530B4 true DE4224530B4 (de) 2004-09-09

Family

ID=24957258

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4224530A Expired - Lifetime DE4224530B4 (de) 1991-07-25 1992-07-24 Prozessor zum Erzeugen einer Walsh-Transformierten

Country Status (6)

Country Link
US (1) US5357454A (de)
DE (1) DE4224530B4 (de)
FR (1) FR2679722A1 (de)
GB (1) GB2258746B (de)
HK (1) HK20996A (de)
SE (1) SE515268C2 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550809A (en) * 1992-04-10 1996-08-27 Ericsson Ge Mobile Communications, Inc. Multiple access coding using bent sequences for mobile radio communications
US5295153A (en) 1992-04-13 1994-03-15 Telefonaktiebolaget L M Ericsson CDMA frequency allocation
MX9603336A (es) 1994-02-17 1997-05-31 Micrilor Inc Red de area local inalambrica de alto indice de datos.
US5574675A (en) * 1994-03-22 1996-11-12 Industrial Technology Research Laboratories State-controlled half-parallel array walsh transform
US5784293A (en) * 1994-11-03 1998-07-21 Motorola, Inc. Apparatus and method for determining transmitted modulation symbols
US5604806A (en) * 1995-01-20 1997-02-18 Ericsson Inc. Apparatus and method for secure radio communication
US5909460A (en) 1995-12-07 1999-06-01 Ericsson, Inc. Efficient apparatus for simultaneous modulation and digital beamforming for an antenna array
US5894473A (en) * 1996-02-29 1999-04-13 Ericsson Inc. Multiple access communications system and method using code and time division
US6330291B1 (en) 1996-03-29 2001-12-11 Qualcomm Inc. Frequency tracking for communication signals using M-ary orthogonal walsh modulation
US5856935A (en) * 1996-05-08 1999-01-05 Motorola, Inc. Fast hadamard transform within a code division, multiple access communication system
US5862182A (en) * 1996-07-30 1999-01-19 Lucent Technologies Inc. OFDM digital communications system using complementary codes
US6452958B1 (en) 1996-07-30 2002-09-17 Agere Systems Guardian Corp Digital modulation system using extended code set
US6404732B1 (en) 1996-07-30 2002-06-11 Agere Systems Guardian Corp. Digital modulation system using modified orthogonal codes to reduce autocorrelation
US5831977A (en) * 1996-09-04 1998-11-03 Ericsson Inc. Subtractive CDMA system with simultaneous subtraction in code space and direction-of-arrival space
US5768307A (en) * 1996-09-13 1998-06-16 Telefonaktiebolaget Lm Ericsson Coherent demodulation with decision-directed channel estimation for digital communication
KR100514682B1 (ko) * 1997-06-30 2005-11-25 주식회사 팬택앤큐리텔 왈시코드발생방법
US6028889A (en) * 1998-02-25 2000-02-22 Lucent Technologies, Inc. Pipelined fast hadamard transform
FR2782425B1 (fr) * 1998-07-31 2000-10-13 France Telecom Procede et dispositif de codage correcteur d'erreurs et procede et dispositif de decodage correspondant
US6526091B1 (en) 1998-08-17 2003-02-25 Telefonaktiebolaget Lm Ericsson Communication methods and apparatus based on orthogonal hadamard-based sequences having selected correlation properties
FR2784525B1 (fr) * 1998-10-12 2006-07-28 Cit Alcatel Procede d'allocation de codes orthogonaux dans un systeme de radiocommunications mobiles du type a acces multiple par repartition de codes utilisant des codes de longueur variable
US6163524A (en) * 1998-10-19 2000-12-19 Telefonaktiebolaget Lm Ericsson (Publ) Code allocation in CDMA
US6505224B1 (en) * 1999-09-29 2003-01-07 Sun Microsystems, Inc. System and computer-implemented method for performing multi-stage fast Walsh transform
AU2578001A (en) * 1999-12-10 2001-06-18 Broadcom Corporation Apparatus and method for reducing precision of data
US6674818B1 (en) 2000-04-17 2004-01-06 Rf Micro Devices, Inc. Reduced complexity decision circuitry
US6693954B1 (en) * 2000-04-17 2004-02-17 Rf Micro Devices, Inc. Apparatus and method of early-late symbol tracking for a complementary code keying receiver
US6661834B1 (en) 2000-04-17 2003-12-09 Rf Micro Devices, Inc. Carrier recovery for spread spectrum communications
US6895421B1 (en) 2000-10-06 2005-05-17 Intel Corporation Method and apparatus for effectively performing linear transformations
US6766342B2 (en) * 2001-02-15 2004-07-20 Sun Microsystems, Inc. System and method for computing and unordered Hadamard transform
KR100424538B1 (ko) * 2001-05-29 2004-03-27 엘지전자 주식회사 이동통신시스템에서의 스크램블링 코드 생성 장치 및 방법
GB2380829A (en) * 2001-10-12 2003-04-16 Siroyan Ltd Organization of fast fourier transforms
US7308019B2 (en) * 2002-05-20 2007-12-11 Telefonaktiebolaget Lm Ericsson (Publ) System and method for Fast Walsh Transform processing in a multi-coded signal environment
US20080109507A1 (en) * 2006-10-23 2008-05-08 L3 Communications Integrated Systems, L.P. System and method for performing an optimized discrete walsh transform
WO2008157679A1 (en) * 2007-06-19 2008-12-24 Raytheon Company Methods and apparatus for receiver having fast walsh transform
CN103488612B (zh) * 2013-09-17 2016-08-24 浙江工业大学 一种应用于数字滤波的沃什-新梅森数快速变换方法
RU2576591C2 (ru) * 2014-04-24 2016-03-10 Александр Васильевич Горепёкин Способ и устройство преобразования сигнала произвольной формы
RU2682862C2 (ru) * 2017-03-06 2019-03-21 Роман Александрович Горепекин Способ и устройство преобразования сигнала произвольной формы с использованием ступенчатых пилообразных функций
US11502715B2 (en) * 2020-04-29 2022-11-15 Eagle Technology, Llc Radio frequency (RF) system including programmable processing circuit performing block coding computations and related methods

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3956619A (en) * 1975-03-31 1976-05-11 General Electric Company Pipeline walsh-hadamard transformations
US4839844A (en) * 1983-04-11 1989-06-13 Nec Corporation Orthogonal transformer and apparatus operational thereby

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3925646A (en) * 1974-04-19 1975-12-09 Battelle Memorial Institute Information and process control enhancement system employing series of square wave components
US4601006A (en) * 1983-10-06 1986-07-15 Research Corporation Architecture for two dimensional fast fourier transform
FR2645985B1 (fr) * 1989-04-18 1994-08-05 Labo Electronique Physique Circuit pour operer une transformation lineaire de donnees numeriques

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3956619A (en) * 1975-03-31 1976-05-11 General Electric Company Pipeline walsh-hadamard transformations
US4839844A (en) * 1983-04-11 1989-06-13 Nec Corporation Orthogonal transformer and apparatus operational thereby

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KLOKER, K.L. (u.a.): Efficient FFT Implementation on an IEEE Floating-Point Digital Signal Proces- sor. In: International Conference on Acoustics, Speech, and Signal Processing, ICASSP-89, Vol. 2, New York: IEEE, 1989, S. 1302-1305 *

Also Published As

Publication number Publication date
SE9202209L (sv) 1993-01-26
GB9215557D0 (en) 1992-09-02
HK20996A (en) 1996-02-09
US5357454A (en) 1994-10-18
SE9202209D0 (sv) 1992-07-20
SE515268C2 (sv) 2001-07-09
GB2258746A (en) 1993-02-17
GB2258746B (en) 1995-02-15
FR2679722A1 (fr) 1993-01-29
FR2679722B1 (de) 1994-12-02
DE4224530A1 (de) 1993-01-28

Similar Documents

Publication Publication Date Title
DE4224530B4 (de) Prozessor zum Erzeugen einer Walsh-Transformierten
DE69435034T2 (de) Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform
DE2747462A1 (de) Integrierte schaltung
DE3700991A1 (de) Digitaler uebertragsvorgriffsaddierer
DE2151974A1 (de) Schnelle-Fourier-Transformations-Verarbeitungseinheit
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE10124351A1 (de) Zeitlich selbstgesteuertes Übertragungssystem und Verfahren zum Verarbeiten von Mehrfachdatensätzen
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE2644506A1 (de) Rechner zur berechnung der diskreten fourier-transformierten
DE3403650C2 (de)
DE2647262A1 (de) Multiplizierschaltung
DE69726248T2 (de) Addierer mit bedingter Summe unter Benutzung von Durchlasstransistor-Logik
DE3722907A1 (de) Maximallaengen-schieberegister-folgegenerator
EP1540460B1 (de) Vorrichtung und verfahren zum umsetzen und addiererschaltung
DE60004409T2 (de) Schaltung und Verfahren zur Zufallszahlerzeugung
DE1803222B2 (de) Verfahren zum zusammenfassen pulscodierter nachrichten
DE2064606B2 (de) Anordnung zur Echtzeitverarbeitung von elektrischen Signalen durch Anwendung der schnellen Fourier-Transformierten
DE2822896A1 (de) Digitale zeitvielfach-koppeleinrichtung
EP1495552B1 (de) Verfahren und vorrichtung zur berechnung eines iterierten zustands einer rueckgekoppelten schieberegisteranordnung
DE3735374A1 (de) Digitale korrelatorschaltung
WO1985003611A1 (en) Self-synchronizing descrambler
EP1430614B1 (de) Verfahren und vorrichtung zur bestimmung von initialisierungszuständen bei pseudo-noise-folgen
DE2647774C3 (de) Schaltungsanordnung zur Kodierung und Dekodierung von Bildern durch Matrizentransformation mit gewichtetem Beitrag mehrerer Bildpunkte zu einem transformierten Bildpunkt
DE60313901T2 (de) Mehrstufige Entspreizung von Spreizspektrum-Kommunikationssignalen
DE2549032A1 (de) Logisches geraet zur multiplikation von digitalen operanden mit vorzeichen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R071 Expiry of right
R071 Expiry of right