DE69435034T2 - Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform - Google Patents

Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform Download PDF

Info

Publication number
DE69435034T2
DE69435034T2 DE69435034T DE69435034T DE69435034T2 DE 69435034 T2 DE69435034 T2 DE 69435034T2 DE 69435034 T DE69435034 T DE 69435034T DE 69435034 T DE69435034 T DE 69435034T DE 69435034 T2 DE69435034 T2 DE 69435034T2
Authority
DE
Germany
Prior art keywords
input
symbol
data
circuit
delayed
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
DE69435034T
Other languages
English (en)
Other versions
DE69435034D1 (de
Inventor
Houtan San Diego DEHESH
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of DE69435034D1 publication Critical patent/DE69435034D1/de
Application granted granted Critical
Publication of DE69435034T2 publication Critical patent/DE69435034T2/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

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Separation Using Semi-Permeable Membranes (AREA)
  • Silver Salt Photography Or Processing Solution Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Saccharide Compounds (AREA)
  • Coils Or Transformers For Communication (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • I. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft digitale Signalverarbeitung. Insbesondere betrifft die vorliegende Erfindung ein neues und verbessertes Verfahren und eine Vorrichtung zum Durchführen von schnellen Hadamard-Transformationen.
  • II. Beschreibung verwandter Techniken
  • Wellenformcodierprozeduren transformieren einen Wellenformensatz in einen verbesserten Wellenformensatz. Der verbesserte Wellenformensatz kann dann verwendet werden, um verbesserte Wahrscheinlichkeit von Bitfehler PB verglichen mit dem ursprünglichen Satz bei Kommunikation vorzusehen. In dem verbesserten Wellenformensatz werden die Signale so unähnlich wie möglich. Ein anderer Weg des Betrachtens dieses ist es, die Kreuzkorrelation zwischen zwei Wellenformen i und j (benannt zij) so klein wie möglich zu machen.
  • Die Kreuzkorrelation (zij) ist folgendermaßen definiert:
    Figure 00010001
    wobei si(t) und sj(t) zwei Wellenformenfunktionen sind. In einen Wellenformensatz, welcher aus bipolaren Pulsen (+1, –1) besteht, kann die Definition der Kreuzkorrelation (zij) folgendermaßen vereinfacht werden:
    Figure 00020001
  • Der kleinste mögliche Wert der Kreuzkorrelation tritt auf, wenn die Signale antikorreliert sind (zj = –1); jedoch kann dies nur erreicht werden, wenn die Anzahl von Wellenformen in dem Satz zwei ist und die Wellenformen antipodisch bzw. entgegengesetzt sind. Im Allgemeinen hat der beste erreichbare Wellenformensatz all die Kreuzkorrelationswerte gleich null. Der Satz wird dann als orthogonal bezeichnet. Die beliebtesten Wellenformencodes, welche für Kommunikationszwecke verwendet werden, sind orthogonale Codes.
  • Ein Verfahren, durch welches ein Datensatz in einen orthogonalen Datensatz transformiert werden kann, ist im Weg einer Hadamard-Transformation. Eine Hadamard-Transformation ist charakterisiert durch eine Hadamard-Matrix, in welcher jede Zeile der Hadamard-Matrix orthogonal zu jeder anderen Zeile der Matrix ist, das heißt gemäß Gleichung 2, ist die Anzahl von Übereinstimmungen gleich der Anzahl von Nicht-Übereinstimmungen für jedes Paar von Zeilen. Jede Zeile der Hadamard-Matrix kann als eine Walshsequenz bezeichnet werden.
  • Eine Hadamard-Matrix der Ordnung n kann rekursiv wie folgt definiert werden:
    Figure 00020002
    wobei H1 folgendermaßen definiert ist: H1 = [1] (4)und H'i = –Hj. somit ist
  • Figure 00030001
  • Ebenso wird es durch Anwendung von Gleichung 3 herausgefunden, dass H4 folgendermaßen aussieht:
    Figure 00030002
    und H8 ist:
    Figure 00030003
  • Schnelle Algorithmen wurden entwickelt, um die Effizienz der Performance von Hadamard-Transformationen zu erhöhen. Diese Implementierungen nutzen die Tatsache aus, dass Hadamard-Matrizen real, symmetrisch und zeilenweise orthogonal sind. Weil die Hadamard-Matrizen nur ±1 Werte enthalten, werden keine Multiplikationen in den Transformationsberechnungen benötigt. Ferner kann die Anzahl von Additionen und Subtraktionen, welche benötigt werden, von n2 auf n·log2n verringert werden, und zwar aufgrund der Tatsache, dass eine Hadamard-Matrix der Ordnung n(Hn) als ein Produkt von n dünnbesetzten Matrizen geschrieben werden kann, das heißt,
    Figure 00040001
  • Man beachte, dass die oberen n/2 Zeilen und die unteren n/2 Zeilen nur zwei von Null verschiedene Ausdrücke pro Zeile enthalten, die Transformation
    Figure 00040002
    kann durch log2n-maliges Anwenden von Hn auf u erreicht werden. Aufgrund der Struktur von Hn werden nur n Additionen und Subtraktionen benötigt, und zwar jedes Mal, wenn Hn auf einen Vektor angewandt wird, was eine Gesamtzahl von n·log2(n) Additionen und Subtraktionen ergibt.
  • US 3,956,619 beschreibt eine Maschine zum Generieren von Sequenz geordneten Walshtransformationskoeffizienten von einer Eingangsdatensequenz, welche eine geordnete Kaskade von identisch konfigurierten Signalprozessormodulen enthält. Jedes Modul enthält zwei Sequenz geordnete Transformationsblöcke von Walshtransformationskoeffizienten, und durch alternierendes Addieren und Subtrahieren von korrespondierenden Elementen in diesen Blöcken erzeugt es die Transformationskoeffizienten der nächst höheren Ordnung.
  • Das Problem, welches mit der Implementierung von schneller Hadamard-Transformation verbunden ist, wie oben stehend beschrieben, ist die Belastung von Speicherressourcen. Zusätzlich bietet sich das oben beschriebene Verfahren nicht selbst zur seriellen Verarbeitung an. Dementsprechend gibt es einen Bedarf für ein verbessertes Verfahren und eine Vorrichtung zum Durchführen von schnellen Hadamard-Transformationen, welche die Belastung von Speicherressourcen verringern und sich für serielle Verarbeitung anbieten. Ein solches Verfahren ist der Gegenstand der vorliegenden Erfindung.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist ein neues und verbessertes Verfahren und eine Vorrichtung zum Durchführen von schneller Hadamard-Transformation gemäß den folgenden Ansprüchen. Eine Hadamard-Transformation der Ordnung 2 kann durch ein Element durchgeführt werden, welches zwei Eingangswerte a und b empfängt, und ansprechend darauf zwei Werte (a + b) und (a – b) ausgibt. Dieses Element kann in Hardware mit einem Addierer und einem Subtrahierer, zwei Multiplexierern, und einem Speicherelement realisiert werden.
  • Das Element, welches oben stehend beschrieben wurde, kann durch Vorsehen der Eingänge seriell auf einen subtrahierenden Eingang des Subtrahierers, auf einen summierenden Eingang des Addierers, und auf einen B Eingang des ersten Multiplexierers erreicht werden. Die Ausgabe des Subtrahierers wird zu dem A Eingang des ersten Multiplexierers geliefert, und die Ausgabe des Addierers wird zu dem A Eingang des zweiten Multiplexierers geliefert. Die Ausgabe des ersten Multiplexierers wird zu dem Eingang des Speicherelements geliefert. Die Ausgabe des Speicherelements wird dann mit dem summierenden Eingang des Subtrahierers, mit dem zweiten summierenden Eingang des Addierers, und mit dem B Eingang des zweiten Multiplexierers gekoppelt. Die Ausgabe wird dann seriell zu dem Ausgang des zweiten Multiplexierers geliefert.
  • Nun um ein Mittel zum Durchführen einer Hadamard-Transformation der Ordnung 4 vorzusehen. Das grundlegende Element, welches oben stehend beschrieben wurde, wird in Serie mit einem anderen solchen Element, welches geringfügig modifiziert wurde, platziert. Das zweite Element in der Serie wird dadurch modifiziert, dass es ein zweites Speicherelement hat, welches in Serie mit dem ersten Speicherelement platziert ist, und zwar derart, dass die Ausgabe von dem ersten Multiplexierer zunächst in dem ersten Speicherelement gespeichert werden würde; dann würden in dem nächsten Taktzyklus die Daten, welche in dem ersten Speicherelement gespeichert sind, zu dem zweiten Speicherelement versetzt werden, bevor sie zu den summierenden Eingängen des Subtrahierers und des Addierers und dem B Eingang des zweiten Multiplexierers bei dem nächsten Taktzyklus geliefert werden.
  • Durch Erweiterung könnte eine Hadamard-Transformation der Ordnung 8 durch Addieren eines dritten modifizierten Elements vorgesehen werden, dieses Mal mit vier Speicherelementen in Serie, und so weiter. Die Anzahl von Speicherelementen des letzten Hadamard-Elements wird eine Anzahl von Speicherelementen gleich zu der Hälfte der Ordnung der Hadamard-Ordnung sein. Es ist wichtig zu bemerken, dass die Speicheranforderungen dieser Speicherelemente nicht die Gleichen sind. Dies ist so, weil die Summe von zwei m Bitnummern eine m + 1 Bitnummer ist. Somit ist es erforderlich, dass die Speicherelemente jeder aufeinander folgender Elementstufen eine Anzahl bzw. Grad von Genauigkeit halten, welche ein Bit größer ist als die der Speicherelemente des vorhergehenden Elements.
  • Um Einsparungen in dem Speicher vorzusehen, welcher notwendig ist, um diese Operation auszuführen, als eine weitere Verbesserung gegenüber den vorher beschriebenen Mitteln, kann die Ordnung der Elemente umgedreht werden. Zum Beispiel kann in dem Fall der Hadamard-Transformation der Ordnung 8 das erste Element vier Speicherelemente haben, wobei das Speicherelement (m + 1) Bits weit ist, wobei m die Anzahl von Bits in der Eingabe ist. Das nächste Element wird zwei (m + 2) weite Speicherelemente haben und das letzte Element in der Serie wird ein einziges (m + 3) weites Speicherelement haben.
  • Es ist deshalb ein Ziel der vorliegenden Erfindung, ein Mittel zum Durchführen von Hadamard-Transformationen unter Verwendung von vereinfachter Hardware vorzusehen. Durch Verwendung von Einfach-Bit-Addierern mit einer Trage-Ressource (Carry-Ressource), kann eine Hadamard-Transformation durchgeführt werden, wobei die Eingaben zu dem Transformer mit einem Bit zu jedem Zeitpunkt serialisiert werden.
  • Es ist ein weiteres Ziel der vorliegenden Erfindung, ein Verfahren und Mittel für eine zusätzliche Einsparung in dem Speicher vorzusehen, welche durch effizientes Abschneiden (Truncation) von Werten erreicht wird, welche in den oben stehend beschrieben Speicherelementen, gespeichert sind.
  • KURZE BESCHREIBUNG DER ZEICHUNGEN
  • Die Merkmale, Ziele und Vorteile der vorliegenden Erfindung werden offensichtlicher werden von der detaillierten Beschreibung, welche unten stehend gegeben wird, wenn sie zusammen genommen wird mit den Zeichnungen, in welchen gleiche Bezugszeichen Korrespondierendes durchgängig identifizieren, und wobei folgendes gilt:
  • 1 ist ein Blockdiagramm einer Hadamard-Transformationsvorrichtung zum Durchführen der Hadamard-Transformation der Ordnung 4;
  • 2 ist ein Blockdiagramm der Hadamard-Transformationsvorrichtung zum Durchführen einer Hadamard-Transformation der Ordnung 64;
  • 3 ist ein Blockdiagramm einer verbesserten Implementierung der Hadamard-Transformationsvorrichtung zum Durchführen einer Hadamard-Transformation der Ordnung 64; und
  • 4 ist ein Blockdiagramm einer seriellen Eingangs-FHT-Stufe.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Die vorliegende Erfindung ist ein Verfahren und eine Vorrichtung zum Durchführen einer schnellen Hadamard-Transformation (FHT = Fast Hadamard Transform). In 1 ist ein exemplarisches Ausführungsbeispiel der vorliegenden Erfindung zum Zweck der Durchführung einer Hadamard-Transformation der Ordnung 4 gezeigt. Wenn zum Beispiel ein Block von vier digitalen Samples (a1, a2, a3, a4) ein Eingangssymbol bildet, führt die in 3 gezeigte Vorrichtung eine FHT an dem Eingangssymbol aus, um ein FHT codiertes Symbol gemäß Gleichung 11 unten stehend zu liefern:
    Figure 00080001
  • Es sei erwähnt, dass die Dimension von vier, welche in dem exemplarischen Ausführungsbeispiel verwendet wird, zur exemplarischen Repräsentation ist, und dass das Verfahren und die Vorrichtung der vorliegenden Erfindung ebenso auf schnelle Hadamard-Transformationen (FHT) von allen definierten Dimensionen angewandt werden können.
  • In dem exemplarischen Ausführungsbeispiel ist jedes der digitalen Samples (a1, a2, a3, und a4) 8 Bit Repräsentationen, obwohl jede andere Bitlänge ebenfalls auf die vorliegende Erfindung anwendbar ist. Das erste Eingangssample a1 wird auf der Eingangssignalleitung vorgesehen. Das Eingangs sample a1 wird auf dem subtrahierenden Eingang des Subtrahierers 2 (ein Addierer, welcher zur Subtraktion konfiguriert ist), den ersten Eingang des Summierers 6, und den Eingang B des Multiplexierers 4 vorgesehen. Der Multiplexierer 4 liefert zu seinem Ausgang entweder das Signal auf der Eingangssignalleitung oder den Ausgang von dem Subtrahierer 2. Während des ersten Eingangszykluses liefert der Multiplexierer 4-Ausgang das Signal auf der Eingangssignalleitung. Bei dem zweiten Eingangszyklus liefert der Multiplexierer 4-Ausgang das Signal von dem Subtrahierer 2-Ausgang zu seinem Ausgang, und alterniert auf diese Art und Weise für jeden Eingangszyklus. Somit liefert der Multiplexierer 4 für den ersten Eingangszyklus das Sample a1 an seinem Ausgang, welches bei dem Speicherelement 10 empfangen und in diesem gespeichert wird.
  • Bei dem zweiten Eingangs- bzw. Eingabezyklus wird das nächste Eingangssample a2 zu dem subtrahierenden Eingang des Subtrahierers 2, den ersten Eingang des Summierers 6, und den Eingang B des Multiplizierers 4 geliefert. Der gespeicherte Wert im Speicherelement 10, a1, wird zu dem addierenden Eingang des Subtrahierers 2, zu dem zweiten Eingang des Summierers 6, und zu dem Eingang B des Multiplexierers 8 geliefert. Ansprechend darauf liefert der Subtrahierer 2 den Wert von (a1 – a2) an seinem Ausgang, welcher auch an den Ausgang des Multiplexierers 4 präsentiert wird und in dem Speicherelement 10 gespeichert wird. Der Summierer 6 liefert den Wert von (a1 + a2) an seinem Ausgang. Der Multiplexierer 8 liefert an seinem Ausgang entweder die Ausgabe von dem Summierer 6 oder die Ausgabe von dem Speicherelement 10. Bei dem zweiten Eingangszyklus liefert der Multiplexierer 8 die Ausgabe von dem Summierer 6 an seinem Ausgang; bei dem dritten Eingangszyklus liefert er die Ausgabe von dem Speicherelement 10 an seinem Ausgang und alterniert zwischen dem Vorsehen dieser Signale an seinen Ausgängen bei jedem Eingangszyklus. Somit liefert der Multiplexierer 8 für den zweiten Eingangszyklus an seinem Ausgang den Wert, welcher von dem Summierer 6 ausgegeben wurde, (a1 + a2).
  • Die Ausgabe des Multiplexierers 8, (a1 + a2), wird zu dem subtrahierenden Eingang des Subtrahierers 12, den ersten Eingang des Summierers 16, und dem B Eingang des Multiplizierers 14 geliefert. Der Multiplizierer 14 liefert als seine Ausgabe das Signal von dem Ausgang des Multiplexierers 8 für die zweiten und dritten Eingangszyklen, dann liefert er die Ausgabe von dem Summierer 12 für die vierten und fünften Eingangszyklen, und alternierend alle zwei Zyklen derart weiter. Somit liefert der Multiplexierer 14 für den zweiten Eingangszyklus die Signalausgabe von dem Multiplexierer 8, (a1 + a2) zu dem Speicherelement 20, wo sie gespeichert wird.
  • Während des dritten Eingangszyklus wird das Sample a3 zu dem subtrahierenden Eingang des Subtrahierers 2, den ersten Eingang des Summierers 6, und den Eingang B des Multiplexierers 4 geliefert. Das Speicherelement 10 liefert seinen gespeicherten Wert (a1 – a2) zu dem addierenden Eingang des Subtrahierers 2, zu dem zweiten Eingang des Summierers 6, und zu dem B Eingang des Multiplexierers 8. Der Multiplexierer 4 liefert den Wert von der Eingangssignalleitung, a3, zu dem Speicherelement 10, wo er gespeichert wird. Der Multiplexierer 8 liefert das Signal an seinem B Eingang (a1 – a2) an seinem Ausgang.
  • Der Wert, welcher durch den Multiplexierer 8 ausgegeben wird, (a1 – a2) wird zu dem subtrahierenden Eingang des Subtrahierers 12, den ersten Eingang des Summierers 16, und den B Eingang zu dem Multiplexierer 14 geliefert. Das Speicherelement 40 transferiert seine Inhalte (a1 + a2) zu dem Speicherelement 22. Der Multiplexierer 14 liefert das Ausgangssignal von dem Multiplexierer 8, (a1 – a2) zu dem Speicherelement 20.
  • In dem vierten Zyklus wird das nächste Eingangssample a4 zu dem subtrahierenden Eingang des Subtrahierers 2, den ersten Eingang des Summierers 6, und den Eingang B des Multiplexierers 4 geliefert. Das Speicherelement 10 liefert seinen gespeicherten Wert a3 zu dem addierenden Eingang des Subtrahierers 2, zu dem zweiten Eingang des Summierers 6, und zu dem B Eingang des Multiplexierers 8. Der Summierer 2 liefert (a3 – a4) zu dem A Ein gang des Multiplexierers 4. Der Multiplexierer 4 liefert die Ausgabe von dem Subtrahierer 2, (a3 – a4) zu dem Speicherelement 10, wo sie gespeichert wird. Der Summierer 6 liefert die Summe (a3 + a4) zu dem A Eingang des Multiplexierers 8. Der Multiplexierer 8 liefert die Signalausgabe von dem Summierer 6, (a3 + a4) an seinem Ausgang.
  • Der Wert, welcher durch den Multiplexierer 8 ausgegeben wird, (a3 + a4), wird zu dem subtrahierenden Eingang des Subtrahierers 12, den ersten Eingang des Summierers 16, und den B Eingang zu dem Multiplexierer 14 geliefert. Das Speicherelement 22 liefert dann seine Inhalte (a1 + a2) zu dem addierenden Eingang des Subtrahierers 12, den zweiten Eingang des Summierers 16, und den B Eingang des Multiplexierers 18. Das Speicherelement 20 transferiert seine Inhalte (a1 + a2) zu dem Speicherelement 22. Der Summierer 12 liefert ansprechend darauf die Summe seiner Eingänge (a1 + a2) – (a3 + a4) zu dem A Eingang des Multiplexierers 14. Der Multiplexierer 14 liefert den Wert, welcher von dem Subtrahierer 12 ausgegeben wird, (a1 + a2) – (a3 + a4) zu dem Speicherelement 20, wo er gespeichert wird. Der Summierer 16 liefert dann die Summe seiner zwei Eingänge (a1 + a2) + (a3 + a4) zu dem A Eingang des Multiplexierers 18. Der Multiplexierer 18 liefert das Signal, welches durch den Summierer 16 ausgegeben wird, für die Eingangszyklen 4 und 5, und dann liefert er die Ausgabe von dem Speicherelement 22 als Ausgabe für die Eingangszyklen 6 und 7, und alterniert danach alle zwei Zyklen. Der Multiplexierer 18 liefert die gewünschte Summe (a1 + a2 + a3 + a4) als die erste Ausgabe der zweiten Stufe der FHT Vorrichtung.
  • In dem fünften Eingangszyklus wird das nächste Eingangssample a5 zu dem subtrahierenden Eingang des Subtrahierers 2, den ersten Eingang des Summierers 6, und dem Eingang B des Multiplexierers 4 geliefert. Das Speicherelement 10 liefert seinen gespeicherten Wert (a3 – a4) zu dem addierenden Eingang des Summierers 2, zu dem zweiten Eingang des Summierers 6, und zu dem B Eingang des Multiplexierers 8. Der Multiplexierer 4 liefert den Wert an der Eingangssignalleitung a5 zu dem Speicherelement 10, wo er ge speichert wird. Der Multiplexierer 8 liefert das Signal, welches von dem Speicherelement 10 ausgegeben wird, (a3 – a4) als seine Ausgabe.
  • Der Wert an der Ausgabe des Multiplexierers 8, (a3 – a4) wird zu dem subtrahierenden Eingang des Summierers 12, den ersten Eingang des Summierers 16, und den B Eingang zu dem Multiplexierer 14 geliefert. Das Speicherelement 22 liefert seine Inhalte, (a1 – a2), zu dem addierenden Eingang des Subtrahierers 12, den zweiten Eingang des Subtrahierers 16, und den B Eingang des Multiplexierers 18. Das Speicherelement 20 transferiert seine Inhalte (a1 + a2) – (a3 + a4) zu dem Speicherelement 22. Der Subtrahierer 12 liefert (a1 – a2) – (a3 – a4) zu dem ersten Eingang des Multiplexierers 14, welcher diesen Wert zu dem Speicherelement 20 liefert. Ebenso liefert der Summierer 16 (a1 – a2) + (a3 – a4), oder (a1 – a2 + a3 – a4) zu dem ersten Eingang des Multiplexierers 18, welcher diesen Wert an seinem Ausgang vorsieht.
  • In dem sechsten Eingangszyklus wird das nächste Eingangssample a6 zu dem subtrahierenden Eingang des Subtrahierers 2, den ersten Eingang des Summierers 6, und den Eingang B des Multiplexierers 4 geliefert. Das Speicherelement 10 liefert seinen gespeicherten Wert a5 zu dem addierenden Eingang des Subtrahierers 2, zu dem zweiten Eingang des Summierers 6, und zu dem B Eingang des Multiplexierers 8. Der Subtrahierer 2 liefert (a5 – a6) zu dem A Eingang des Multiplexierers 4. Der Multiplexierer 4 liefert den Wert an seinem A Eingang, (a5 – a6) zu dem Speicherelement 10, wo es gespeichert wird. Der Summierer 6 liefert (a5 + a6) zu dem A Eingang des Multiplexierers 8. Der Multiplexierer 8 liefert das Signal an seinem A Eingang, (a5 + a6), an seinem Ausgang.
  • Die Ausgabe von dem Multiplexierer 8, (a5 + a6) wird zu dem subtrahierenden Eingang des Subtrahierers 12, dem ersten Eingang des Summierers 16, und dem B Eingang zu dem Multiplexierer 14 geliefert. Das Speicherelement 22 liefert dann seine Inhalte (a1 + a2) – (a3 + a4) zu dem addierenden Eingang des Subtrahierers 12, dem zweiten Eingang des Summierers 16, und dem B Eingang des Multiplizierers 18. Das Speicherelement 20 transferiert seine Inhal te (a1 – a2) – (a3 – a4) zu dem Speicherelement 22. Der Multiplexierer 14 liefert sein B Eingangssignal (a5 + a6) zu dem Speicherelement 20, wo es gespeichert wird. Der Multiplexierer 18 liefert den Wert des B Eingangssignals (a1 + a2) – (a3 + a4) = (a1 + a2 – a3 – a4) an seinem Ausgang.
  • In dem siebten Eingangszyklus wird das nächste Eingangssample a7 zu dem subtrahierenden Eingang des Subtrahierers 2, dem ersten Eingang des Summierers 6, und dem Eingang B des Multiplexierers 4 geliefert. Das Speicherelement 10 liefert seinen gespeicherten Wert, (a5 – a6), zu dem addierenden Eingang des Summierers 2, zu dem zweiten Eingang des Summierers 6, und zu dem B Eingang des Multiplexierers 8. Der Multiplexierer 4 liefert den Wert an dem B Eingang, a7 , zu dem Speicherelement 10, wo er gespeichert wird. Der Multiplexierer 8 liefert das Signal an seinem B Eingang (a5 – a6) an seinem Ausgang.
  • Die Ausgabe des Multiplexierers 8 (a5 – a6), wird zu dem subtrahierenden Eingang des Subtrahierers 12, dem ersten Eingang des Summierers 16, und dem B Eingang zu dem Multiplexierer 14 geliefert. Das Speicherelement 22 liefert dann seine Inhalte, (a1 – a2) – (a3 – a4) zu dem addierenden Eingang des Subtrahierers 12, dem zweiten Eingang des Summierers 16, und dem B Eingang des Multiplexierers 18. Das Speicherelement 20 transferiert seine Inhalte (a5 + a6), zu dem Speicherelement 22. Der Multiplexierer 14 liefert sein B Eingangssignal, (a5 – a6) zu dem Speicherelement 20, wo es gespeichert wird. Der Multiplexierer 18 liefert den Wert des B Eingangsignals, (a1 – a2) – (a3 – a4) = (a1 – a2 – a3 + a4), an seinem Ausgang.
  • Man beachte, dass die FHT der Eingangssequenz (a1, a2, a3, a4), (a1 + a2 + a3 + a4 , a1 – a2 + a3 – a4, a1 + a2 – a3 – a4 , a1 + a2 – a3 – a4) erfolgreich durch die Vorrichtung ausgegeben wurde. Durch Eingeben der nächsten in der Serie zu der Vorrichtung, a8, erscheint das erste Element der FHT der Eingangssequenz (a5, a6, a7, a8), welches a5 + a6 + a7 + a8 ist, an dem Ausgang der Vorrichtung. Der Prozess kann unendlich fortgeführt werden.
  • Das grundlegende Element der FHT Vorrichtung ist in den gestrichelten Linien von Block 24 gezeigt. Block 24 wird aus einem Subtrahierer 12, einem Summierer 16 und zwei Multiplexierern (Multiplexierer 14 und 18) gebildet; dieses Untersystem wird als FHT Maschine bezeichnet. Man beachte, dass der Subtrahierer ein Summierer mit einem invertierenden Eingang ist. In Kombination mit den Speichereinrichtungen oder Speicherelementen bilden sie eine vollständige FHT Stufe. Zusätzliche Stufen können hinzugefügt werden, und zwar durch Liefern einer Ausgabe einer vorhergehenden Stufe zu einer addierten Stufe. Der einzige Unterschied zu einer Stufe und ihrer vorhergehenden Stufe ist, dass die Anzahl von Speicherelementen sich verdoppelt (ebenso muß sich die Anzahl von Bits in einem gegebenen Speicherelement um eins erhöhen) und das Timing, zu welchem die Speicherelemente die Schaltung wechseln, nur halb so oft wie in der vorhergehenden Stufe.
  • In 2 ist ein Blockdiagramm einer FHT Vorrichtung zum Durchführen einer FHT der Ordnung 64 dargestellt. Die FHT Maschinen 30, 34, 38, 42, 46 und 50 sind alle identisch mit der FHT Maschine, welche detailliert in Block 24 von 1 gezeigt ist, und die Speichereinrichtungen 32, 38, 40, 44, 48 und 52 sind eine Vielzahl von verbundenen Speicherelementen oder Datenverriegelungselementen, wie solche, welche durch ein Schieberegister gebildet werden, auch wie in 1 beschrieben. In dem exemplarischen Ausführungsbeispiel bestehen die Daten, welche in die FHT Maschine 30 eingegeben werden, aus acht Bit Zahlen, obwohl die vorliegende Erfindung auch auf Daten von jeglicher Bitlänge angewandt werden kann.
  • Weil in dem exemplarischen Ausführungsbeispiel der Eingangsdatenstrom aus 8 Bit/Sample-Daten besteht, muß das Speicherelement in der Speichereinrichtung 32 dazu in der Lage sein, neun Bits zu behalten, um die möglichen Ausgänge der FHT Maschine 30 ohne Abschneiden aufzunehmen, weil die Summe von zwei n-Bit Zahlen eine (n + 1)-Bit Zahl ist. Ähnlich müssen die Speicherelemente der Speichereinrichtung 36 dazu in der Lage sein, zehn Bits zu speichern. Die Speicherelemente der Speichereinrichtung 40 müssen dazu in der Lage sein, elf Bits zu speichern; diejenige der Spei chereinrichtung 44 müssen dazu in der Lage sein, 12 Bits zu speichern; diejenige der Speichereinrichtung 48 müssen dazu in der Lage sein, 13 Bits zu speichern, und die Speicherelemente der Speichereinrichtung 52 müssen dazu in der Lage sein, 14 Bits zu speichern.
  • 3 zeigt ein verbessertes Ausführungsbeispiel der vorliegenden Erfindung. Die in 3 gezeigte Vorrichtung führt eine schnelle Hadamard-Transformation der Ordnung 64 aus. Die FHT Maschinen 90, 94, 98, 102, 106 und 110 sind identisch in der Konstruktion mit der FHT Maschine 24, welche detailliert in 1 gezeigt ist. Der einzige Unterschied, welcher in dem Betrieb der FHT Maschinen in 3 auftritt, im Unterschied zu denjenigen, welche in 2 gezeigt sind, tritt in dem Schalten der Multiplexierer (nicht gezeigt) der FHT Maschinen 90, 94, 98, 102, 106 und 110 auf. Die Multiplexierer der ersten Stufe der FHT Maschine 90 schalten nur alle 32 Eingangszyklen. Die Multiplexierer von FHT der zweiten Stufe der FHT Maschine 94 schalten alle 16 Eingangszyklen. Die Multiplexierer der letzten Stufe der FHT Maschine 110 schalten jeden Eingangszyklus.
  • Der signifikante Unterschied zwischen dem verbesserten Ausführungsbeispiel, welches in 3 gezeigt ist, und dem in 2 gezeigten Ausführungsbeispiel ist die Einsparung in dem gesamten verwendeten Speicher. Unter Rückbezugnahme auf das exemplarische Ausführungsbeispiel zum Verarbeiten von Daten von Bitlänge acht, musste die erste Speichereinrichtung dazu in der Lage sein, eine 9-Bit Zahl zu speichern, wohingegen die Speichereinrichtungen der nächsten Stufe eine 10-Bit Zahl speichern müssten. Deshalb werden in diesem verbesserten Ausführungsbeispiel die Stufen, in welchen die Speichereinrichtungen die geringste Anzahl von Bits speichern müssen, verwendet, um die größte Anzahl von Werten zu speichern. Die Speichereinrichtung 92 speichert zweiunddreißig 9-Bit Zahlen, die Einrichtung 96 sechzehn 10-Bit Zahlen, die Einrichtung 100 acht 11-Bit Zahlen, die Einrichtung 104 vier 12-Bit Zahlen, die Einrichtung 108 zwei 13-Bit Zahlen und die Einrichtung 112 eine 14-Bit Zahl. Die Anzahl von Bits von Speicher, welcher unter Verwendung dieses verbesserten Ausführungsbeispiels gespart wird, kann durch die folgende unten stehende Formel berechnet werden:
    Figure 00160001
    wobei n die Ordnung der FHT ist, welche durchgeführt wird, und m die Anzahl von Bits pro Eingang.
  • In 4 ist eine alternative Implementierung der vorliegenden Erfindung für empfangene Samples als ein serieller Bitstrom gezeigt. In dieser Implementierung werden die Bits, welche die Eingangssamples beinhalten, zu der FHT Vorrichtung seriell geliefert. Für jedes Eingangssample werden die Bits des Samples an die FHT Maschine geliefert, von geringstwertigen Bit (LSB = Least Significant Bit) zu dem höchstwertigen Bit (MSB = Most Significant Bit). Ein Eingangsbit wird zu dem ersten subtrahierenden Eingang des Subtrahierers 120, einem B Eingang des Multiplexierers 124, und dem ersten addierenden Eingang des Addierers 128 geliefert. Zusätzlich werden die Ausgangsdaten von dem Speicherelement 126 zu dem addierenden Eingang des Subtrahierers 120 geliefert. Die letzte Eingabe zu dem Subtrahierer 120, ein zweiter subtrahierender Eingang, ist das Borrow-Bit bzw. das ausgeliehene Bit von der vorhergehenden Operation, welches durch die Verzögerung 122 geliefert wird. Verzögerungselemente 122 und 130 liefern eine Verzögerung gleich zu einer Einfach-Bit-Periode in der Dauer. Der Subtrahierer 120 subtrahiert dann das verzögerte Borrow-Bit und das derzeitige subtrahierende Eingangsbit von dem addierenden Bit. Diese Operation liefert zwei Bits von Ausgangsdaten, einschließlich eines Borrow-Bits, welches zu der Verzögerung 122 geliefert wird, und eines Differenzbits, welches zu dem A Eingang des Multiplexierers 124 geliefert wird.
  • Der Multiplexierer 124 wählt die Daten auf einem seiner zwei Eingänge zum Liefern zu seinem Ausgang aus. Die Schaltzyklen der Multiplexierer 124 und 132 sind die Gleichen wie vorhergehend beschrieben, man beachte natürlich, dass ein Eingangszyklus als die Zeitperiode definiert ist, welche benötigt wird, um alle Bits zu liefern, welche ein Eingangssample beinhalten. Wie vorhergehend erwähnt wird das Eingangsbit zu dem ersten addierenden Eingang des Addierers 128 geliefert. Die Ausgabe des Speicherelements 126 wird auch zu einem zweiten addierenden Eingang des Addierers 128 geliefert. Zusätzlich wird ein verzögertes Trage-Bit (Carry-Bit) von der vorhergehenden Summieroperation des Addierers 128 durch die Verzögerung 130 zu dem dritten addierenden Eingang des Addierers 128 geliefert. Die Summe der drei Eingänge (das verzögerte Trage-, das Eingangsbit und das Ausgangsbit von dem Speicherelement) werden summiert, um zwei Bits von Daten zu liefern. Das erste Bit, das Tragebit, wird zu dem Verzögerungselement 130 geliefert, und das Summenbit wird zu einem A Eingang des Multiplexierers 132 geliefert. Der Multiplexierer 132 empfängt auch an seinem B Eingang das Ausgangsbit des Speicherelements 126. Der Multiplexierer 132 wählt dann die Daten an einem seiner zwei Eingänge aus, um sie an seinem Ausgang als ein Bit von einem der FHT Koeffizienten gemäß der Schaltoperation wie oben stehend beschrieben zu liefern.
  • Ein schlussendliches Verfahren, welches alleine oder in Kombination mit den oben erwähnten Verbesserungen verwendet werden kann, ist die Art und Weise des Abschneidens. Wenn die Daten in einer parallelen Art und Weise zu der FHT Vorrichtung geliefert werden, kann Abschneiden erreicht werden durch einfaches Vorsehen von nur einer vorbestimmten Anzahl von höchstwertigen Bits von Daten zu den Speicherelementen. In dem Fall, in welchem die Daten, welche zu der FHT Vorrichtung geliefert werden, ein serieller Strom sind, werden die Bits, welche die am geringstwertigsten Bits zu einem Speicherelement liefern, in und evtl. aus dem ersten Speicherelement verschoben, welches sich als ein seriell geladenes paralleles Ausgangsschieberegister verhält. Wenn nur die höchstwertigen Bits in dem Speicher element bleiben, wird Abschneiden erreicht, und diese Bits können dann parallel zu dem nächsten Speicherelement verschoben werden.

Claims (12)

  1. Eine Schaltung zum Ausführen einer Hadamard-Transformations-Operation in einer Vielzahl von Zyklen, wobei die Schaltung eine Vielzahl von sukzessiv gekoppelten schnellen Hadamard-Transformations- bzw. Fast-Hadamard-Transform-(FHT)-Maschinenmitteln (24, 30, 34, 38, 42, 46, 50; 90, 94, 98, 102, 106, 110) aufweist, wobei die Schaltung Folgendes aufweist: eine erste schnelle Transformationsschaltung (30; 90) mit einem ersten Eingang zum Empfangen von Daten, die zu transformieren sind, einem zweiten Eingang zum Empfangen von verzögerten Daten, einem ersten Ausgang zum Vorsehen von verarbeiteten Daten, und einem zweiten Ausgang zum Vorsehen von ersten transformierten Daten zum Ausführen einer Teil-Hadamard-Transformationsfunktion; eine zweite schnelle Transformationsschaltung (24; 34, 38, 42, 46, 50; 94, 98, 102, 106, 110) mit einem ersten Eingang zum Empfangen der ersten transformierten Daten, einem zweiten Eingang zum Empfangen von verzögerten Daten und einem zweiten Ausgang zum Vorsehen von zweiten transformierten Daten zum Ausführen der Teil-Hadamard-Transformationsfunktion; eine erste Verzögerungsschaltung (32; 92) zum Empfangen der verarbeiteten Daten von der ersten schnellen Transformationsschaltung (30; 90) und zum Vorsehen der verzögerten Daten an den zweiten Eingang der ersten schnellen Transformationsschaltung (30; 90); und eine zweite Verzögerungsschaltung (20, 22; 36, 40, 44, 48, 52; 96, 100 104, 108, 112) zum Empfangen der verarbeiteten Daten von der zweiten schnellen Transformationsschaltung (24; 34, 38, 42, 46, 50; 94, 98, 102, 106, 110) und zum Vorsehen der verzögerten Daten an den zweiten Eingang der zweiten Transformationsschaltung (24; 34, 38, 42, 46, 50; 94, 98, 102, 106, 110).
  2. Schaltung nach Anspruch 1, die weiterhin Folgendes aufweist: eine dritte schnelle Transformationsschaltung (38, 42, 46, 50; 98, 102, 106, 110) mit einem ersten Eingang zum Empfangen der zweiten transfor mierten Daten, einem zweiten Eingang zum Empfangen von verzögerten Daten, einem ersten Ausgang zum Vorsehen von verarbeiteten Daten und einem zweiten Ausgang zum Vorsehen von dritten transformierten Daten zum Ausführen der Teil-Hadamard-Transformationsfunktion; und eine dritte Verzögerungsschaltung (40, 44, 48, 52; 100, 104, 108, 112) zum Empfangen der verarbeiteten Daten von der dritten schnellen Transformationsschaltung (38, 42, 46, 50; 98, 102, 106, 110) und zum Vorsehen der verzögerten Daten zu dem zweiten Eingang der dritten schnellen Transformationsschaltung (38, 42, 46, 50; 98, 102, 106, 110).
  3. Schaltung nach Anspruch 2, wobei die dritte schnelle bzw. Schnell-Transformationsschaltung Folgendes aufweist: eine Subtrahier-Schaltung (120) zum Subtrahieren von Daten von dem ersten Eingang von Daten von dem zweiten Eingang, um ein Differenzsymbol zu erzeugen; eine erste Multiplexer-Schaltung (124) zum Auswählen eines verarbeiteten Symbols von dem Differenzsymbol und von Daten von dem ersten Eingang auf eine erste alternierende Art und Weise und Vorsehen des verarbeiteten Symbols an dem ersten Ausgang als die verarbeiteten Daten; eine Summierer-Schaltung (128) zum Summieren der Daten von dem ersten Eingang mit Daten von dem zweiten Eingang, um ein summiertes Symbol vorzusehen; und eine zweite Multiplexer-Schaltung (132) zum Auswählen der transformierten Daten von dem verzögerten verarbeiteten Symbol und dem Summensymbol auf eine zweite alternierende Art und Weise, vorgesehen an dem ersten Ausgang.
  4. Schaltung nach Anspruch 3, wobei die verzögerten Daten der dritten Verzögerungsschaltung verzögert werden um eine Verzögerungsdauer, die doppelt so hoch ist wie die Verzögerungsdauer der verzögerten Daten von der zweiten Verzögerungsschaltung.
  5. Schaltung nach Anspruch 3, wobei die verzögerten Daten der dritten Verzögerungsschaltung um eine Verzögerungsdauer verzögert werden, die halb so lang ist wie die Verzögerungsdauer der verzögerten Daten von der zweiten Verzögerungsschaltung.
  6. Schaltung nach Anspruch 3, wobei die verzögerten Daten der ersten verzögerten Schaltung verzögert werden um eine Verzögerungsdauer, die doppelt so lang ist wie die Verzögerungsdauer der verzögerten Daten von der zweiten Verzögerungsschaltung.
  7. Schaltung nach Anspruch 3, wobei die verzögerten Daten der ersten verzögerten Schaltung verzögert werden um eine Verzögerungsdauer, die halb so lang ist wie die Verzögerungsdauer der verzögerten Daten von der zweiten Verzögerungsschaltung.
  8. Schaltung nach einem der Ansprüche 1 bis 3, wobei die ersten (30, 90) und zweiten (24; 34, 38, 42, 46, 50; 94, 98, 102, 106, 110) Transformationsschaltungen Daten von dem ersten Eingang von Daten von dem zweiten Eingang subtrahieren, um ein Differenzsymbol zu erzeugen, Auswählen eines verarbeiteten Symbols von dem Differenzsymbol und Daten von dem ersten Eingang auf eine erste alternierende Art und Weise und Vorsehen des verarbeiteten Symbols als die verarbeiteten Daten an dem ersten Ausgang, Summieren der Daten von dem ersten Eingang mit Daten von dem zweiten Eingang, um ein Summensymbol vorzusehen, und Auswählen der transformierten Daten aus dem verzögerten, verarbeiteten Symbol und dem Summensymbol auf eine zweite alternierende Art und Weise, vorgesehen an dem ersten Ausgang.
  9. Ein Verfahren zum Ausführen einer Hadamard-Transformation in einer Schaltung in einer Vielzahl von Zyklen, wobei das Verfahren die folgenden sich wiederholenden Schritte aufweist: Empfangen eines Eingabe-Symbols; Subtrahieren des Eingabe-Symbols von einem verzögerten, verarbeiteten Symbol, um ein Differenz-Symbol vorzusehen; Auswählen eines verarbeiteten Symbols von dem Differenz- und dem Eingabe-Symbol gemäß einem ersten vorbestimmten Auswahlformat; Verzögern des verarbeiteten Symbols um eine vorbestimmte Dauer, um das verzögerte verarbeitete Symbol vorzusehen; Summieren des verarbeiteten Symbols mit dem Eingabe-Symbol, um ein Summensymbol vorzusehen; Auswählen eines Ausgabesymbols von dem Summen- und dem verzögerten, verarbeiteten Symbol gemäß einem zweiten vorbestimmten Auswahlformat.
  10. Verfahren nach Anspruch 9, wobei der Schritt des Verzögerns des verarbeiteten Symbols das Speichern des verarbeiteten Symbols in einem Speicherelement aufweist, und zwar für eine vorbestimmte Dauer, um das verzögerte verarbeitete Symbol vorzusehen.
  11. Verfahren nach Anspruch 9 oder Anspruch 10, wobei der Schritt des Verzögerns des verarbeiteten Symbols folgende Schritte aufweist: Verschieben einer Vielzahl von gespeicherten, verarbeiteten Symbolen in einer Anordnung mit unterschiedlichen Indizes; Speichern des verarbeiteten Symbols in einer Anordnung eines Anfangsindex; und wobei das gespeicherte verarbeitete Symbol, das in einer Anordnung mit einem Schlussindex gespeichert ist, als das verzögerte, verarbeitete Symbol vorgesehen wird.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei der Schritt des Empfangens des Eingabe-Symbols das serielle Empfangen der Bits des Eingabe-Symbols aufweist; wobei der Schritt des Subtrahierens des Eingabesymbols von einem verzögerten, verarbeiteten Symbol weiterhin das Subtrahieren eines Leihsymbols (borrow symbol) von dem verzögerten, verarbeiteten Symbol auf weist und weiterhin das Vorsehen des Leihsymbols gemäß dem Schritt des Subtrahierens aufweist; und wobei der Schritt des Summierens des verarbeiteten Symbols mit dem Eingabesymbol weiterhin ein Summieren eines Tragesymbols mit dem verarbeiteten Symbol und dem Eingabesymbol aufweist, um weiter das Tragesymbol vorzusehen.
DE69435034T 1993-12-22 1994-12-20 Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform Expired - Lifetime DE69435034T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US173460 1993-12-22
US08/173,460 US5561618A (en) 1993-12-22 1993-12-22 Method and apparatus for performing a fast Hadamard transform
PCT/US1994/014802 WO1995017727A1 (en) 1993-12-22 1994-12-20 Method and apparatus for performing a fast hadamard transform

Publications (2)

Publication Number Publication Date
DE69435034D1 DE69435034D1 (de) 2007-11-15
DE69435034T2 true DE69435034T2 (de) 2008-07-03

Family

ID=22632139

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69435034T Expired - Lifetime DE69435034T2 (de) 1993-12-22 1994-12-20 Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform

Country Status (19)

Country Link
US (1) US5561618A (de)
EP (1) EP0736205B1 (de)
JP (1) JP3245171B2 (de)
KR (1) KR100253987B1 (de)
CN (1) CN1103084C (de)
AT (1) ATE374974T1 (de)
AU (1) AU683526B2 (de)
BR (1) BR9408414A (de)
CA (1) CA2179758C (de)
DE (1) DE69435034T2 (de)
FI (1) FI120017B (de)
HK (1) HK1011100A1 (de)
IL (1) IL112056A0 (de)
MY (1) MY113296A (de)
RU (1) RU2150141C1 (de)
SG (1) SG47106A1 (de)
TW (1) TW255076B (de)
WO (1) WO1995017727A1 (de)
ZA (1) ZA948425B (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987012A (en) * 1996-12-19 1999-11-16 Motorola, Inc. Method of handing off and a wireless communication device
US5920549A (en) * 1996-12-19 1999-07-06 Motorola, Inc. Method of handing off and a wireless communication device
US6148195A (en) * 1997-02-18 2000-11-14 Itt Manufacturing Enterprises, Inc. Phase agile antenna for use in position determination
US6148219A (en) * 1997-02-18 2000-11-14 Itt Manufacturing Enterprises, Inc. Positioning system for CDMA/PCS communications system
US5938787A (en) * 1997-03-27 1999-08-17 Ericsson Inc. Communications systems and methods employing code rate partitioning with nonorthogonal modulation
US5872774A (en) * 1997-09-19 1999-02-16 Qualcomm Incorporated Mobile station assisted timing synchronization in a CDMA communication system
CN1213612C (zh) * 1997-11-17 2005-08-03 索尼电子有限公司 用于采用离散变换进行数字视频数据去压缩的方法和系统
US6639906B1 (en) 1997-12-09 2003-10-28 Jeffrey A. Levin Multichannel demodulator
US6028889A (en) * 1998-02-25 2000-02-22 Lucent Technologies, Inc. Pipelined fast hadamard transform
US6201827B1 (en) 1998-09-09 2001-03-13 Qualcomm Incorporated System and method for probability based lock detection
US6130923A (en) * 1998-12-11 2000-10-10 Qualcomm Incorporated Lock detection for multipath wireless receiver
US6229841B1 (en) 1998-12-11 2001-05-08 Qualcomm Incorporated Method and apparatus for energy estimation in a wireless receiver capable of receiving multiple instances of a common signal
US6311202B1 (en) * 1999-03-12 2001-10-30 Lucent Technologies Inc. Hardware efficient fast hadamard transform engine
US6735610B1 (en) * 1999-04-29 2004-05-11 Walter E. Pelton Apparatus, methods, and computer program products for determining the coefficients of a function with decreased latency
US7035892B2 (en) * 1999-12-10 2006-04-25 Broadcom Corporation Apparatus and method for reducing precision of data
JP3716695B2 (ja) * 1999-12-24 2005-11-16 日本電気株式会社 高速アダマール変換器
US6895421B1 (en) 2000-10-06 2005-05-17 Intel Corporation Method and apparatus for effectively performing linear transformations
US7113507B2 (en) * 2000-11-22 2006-09-26 Silicon Image Method and system for communicating control information via out-of-band symbols
US6985516B1 (en) 2000-11-27 2006-01-10 Qualcomm Incorporated Method and apparatus for processing a received signal in a communications system
JP3599713B2 (ja) * 2001-02-27 2004-12-08 三星電子株式会社 分割モードによる伝送形式組合せ表示ビットの伝送装置及び方法
US6996292B1 (en) * 2002-04-18 2006-02-07 Sandia Corporation Staring 2-D hadamard transform spectral imager
US7003536B2 (en) * 2002-08-15 2006-02-21 Comsys Communications & Signal Processing Ltd. Reduced complexity fast hadamard transform
US6996163B2 (en) * 2003-03-27 2006-02-07 Arraycomm, Inc. Walsh-Hadamard decoder
KR100577005B1 (ko) * 2003-12-27 2006-05-10 한국전자통신연구원 고속 하다마드 변환 및 고속 푸리에 변환의 선택적 수행장치 및 방법
KR100711088B1 (ko) * 2005-04-13 2007-04-24 광주과학기술원 동화상 인코더를 위한 정수 변환 장치
US8920343B2 (en) 2006-03-23 2014-12-30 Michael Edward Sabatino Apparatus for acquiring and processing of physiological auditory signals
US20080109507A1 (en) * 2006-10-23 2008-05-08 L3 Communications Integrated Systems, L.P. System and method for performing an optimized discrete walsh transform
US11037069B1 (en) 2020-01-17 2021-06-15 Tegze P. Haraszti Method for creating gates and circuits for greatly improved computing apparatus by using symbol transformer

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3792355A (en) * 1970-12-11 1974-02-12 Hitachi Ltd Orthogonal transformation circuit using hadamard matrices
US3899667A (en) * 1972-12-26 1975-08-12 Raytheon Co Serial three point discrete fourier transform apparatus
US3956619A (en) * 1975-03-31 1976-05-11 General Electric Company Pipeline walsh-hadamard transformations
US4210931A (en) * 1978-12-28 1980-07-01 Discovision Associates Video player and/or recorder with Hadamard transform
JPS5737925A (en) * 1980-08-14 1982-03-02 Matsushita Electric Ind Co Ltd High-speed hadamard converter
US4621337A (en) * 1983-08-11 1986-11-04 Eastman Kodak Company Transformation circuit for implementing a collapsed Walsh-Hadamard transform
JP2574312B2 (ja) * 1987-07-24 1997-01-22 松下電器産業株式会社 高速アダマ−ル変換装置
US5097331A (en) * 1990-08-24 1992-03-17 Bell Communications Research, Inc. Multiple block-size transform video coding using an asymmetric sub-band structure
EP0707423B1 (de) * 1994-04-25 2000-06-28 Sony Corporation Videosignalwiedergabeeinrichtung

Also Published As

Publication number Publication date
SG47106A1 (en) 1998-03-20
ATE374974T1 (de) 2007-10-15
IL112056A0 (en) 1995-03-15
EP0736205A1 (de) 1996-10-09
JP3245171B2 (ja) 2002-01-07
CA2179758C (en) 2001-04-03
TW255076B (de) 1995-08-21
FI962573A0 (fi) 1996-06-20
CN1138382A (zh) 1996-12-18
KR100253987B1 (ko) 2000-04-15
AU1375295A (en) 1995-07-10
US5561618A (en) 1996-10-01
HK1011100A1 (en) 1999-07-02
BR9408414A (pt) 1997-08-05
ZA948425B (en) 1995-06-29
WO1995017727A1 (en) 1995-06-29
MY113296A (en) 2002-01-31
CA2179758A1 (en) 1995-06-29
EP0736205B1 (de) 2007-10-03
CN1103084C (zh) 2003-03-12
FI962573A (fi) 1996-08-20
FI120017B (fi) 2009-05-29
DE69435034D1 (de) 2007-11-15
RU2150141C1 (ru) 2000-05-27
JPH09510805A (ja) 1997-10-28
AU683526B2 (en) 1997-11-13

Similar Documents

Publication Publication Date Title
DE69435034T2 (de) Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform
DE3700991C2 (de) Digitaler Übertragsvorgriffsaddierer
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE2145404A1 (de) Nichtrekursive Digitalfiltereinrichtung mit Verzögerungs- und Addier-Anordnung
DE2803425A1 (de) Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken
DE2913327C2 (de) Matrix-Multiplizierer
DE2627405B2 (de) Schaltungsanordnung zur Berechnung der schnellen Fourier-Transformation (FFT)
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE2946846A1 (de) Rundungs-korrekturlogik fuer multiplizierer fuer modifizierten booth-algorithmus
DE4345029C2 (de) Schaltkreis für diskrete Kosinustransformation
DE2644506A1 (de) Rechner zur berechnung der diskreten fourier-transformierten
DE69914087T2 (de) Digitales filter ohne multiplizierer
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE1909657C3 (de) Digitales Filter
DE2900844C2 (de)
DE69830971T2 (de) Pipelineprozessor für die schnelle Fourier-Transformation
DE2517360A1 (de) System zum verbessern von informationen und von prozessregelungen
EP0305708B1 (de) Digitales Dezimierungsfilter
DE2704641A1 (de) Digitalfilter
DE3621446A1 (de) Geraet zum digitalen verarbeiten von kontinuierlichen bitstroemen
DE69821145T2 (de) Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz
DE19635113A1 (de) Multiplizierer
EP1248186A2 (de) Carry-ripple Addierer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition