Schnelle Walshtransformation


Tabelle 1: Schnelle Algorithmen und ihre Autoren Die Schnelle Walshtransformation berechnet dasselbe Rechenergebnis wie die Diskrete Walshtransformation (DWT), lediglich etwas schneller. Es existieren diverse schnelle Algorithmen. Wie schon bei der DWT gibt es diese nur, wenn die Anzahl der Elemente im Signalvektor eine Zweierpotenz ist, und dann auch selten für die sehr populäre Sequenzordnung, das heißt, es sind ggf. Umsortierungen erforderlich.

Larsen-Algorithmus:

Exemplarisch sei hier der Algorithmus von H. Larsen aus dem Jahre 1976 vorgestellt. Der Algorithmus arbeitet in-place, das heißt, es wird nur ein Feld erforderlich sein. Anfangs befinden sich dort die Elemente des Signalvektors s, und im selben Feld sind nach Beendigung der Transformation die Walshkoeffizienten s' zu finden.

s' = DWT· s

Die Walshkoeffizienten s' liegen erst nach einer sich anschließenden Bitumkehr-Umordnung der Vektorelemente (bit-revers order) in Sequenzordnung vor. Die Walshkoeffizienten werden normiert, indem jeder Koeffizient geteilt wird durch die Anzahl N der Vektorelemente in s. Abbildung 1 zeigt ein Struktogramm für den Larsen-Algorithmus [1]:

Abb. 1: Struktogramm [1]

MATLAB:

Abbildung 2 zeigt ein MATLAB-Skript für den Larsen-Algorithmus:

Abb. 2: MATLAB

C-Programm:

Abbildung 3 zeigt ein C-Programm für den Larsen-Algorithmus:

Abb. 3: C-Programm

Mathcad-Programm:

Abbildung 4 zeigt ein Mathcad-Programm für den Larsen-Algorithmus:

Abb. 4: Mathcad-Programm

PHP-Programm:

Abbildung 5 zeigt ein PHP-Programm für den Larsen-Algorithmus:

Abb. 5: PHP-Programm

Python-Programm:

Abbildung 6 zeigt ein Python-Programm für den Larsen-Algorithmus:

Abb. 6: Python-Programm

Assembler-Programm:

Abbildung 7 zeigt ein Assembler-Programm [1] für den 8-bit-Mikroprozessor U880 (Zilog Z80):

Abb. 7: Assembler-Programm [1]

Pascal-Programm:

Die Abbildungen 8 und 9 zeigen Pascal-Programme für den Larsenalgorithmus:

Abb. 8: Pascal-Programm Abb. 9: Pascal-Programm

Rechenzeiten:

Abbildung 10 zeigt die Rechenzeiten für die Ermittlung von N sequenzgeordneten Walshkoeffizienten mit Hilfe eines 8-bit-Mikroprozessors U880 (Takt 2,5 MHz):

Abb. 10: Rechenzeiten [1]

Literatur:

  1. Hochmuth, O.: Der Einsatz der Sequenztechnik zur mikrorechnergestützten Klassifikation von Mustern und ihre Anwendung zur Biosignalanalyse. Dissertation A, Humboldt-Universität zu Berlin, 1986
  2. Langer, H., Meffert, B.: Die Sequenztechnik in der Informationsverarbeitung - Grundlagen und Anwendungen. Dissertation B, Humboldt-Universität zu Berlin, 1983
  3. Bibliography on Hadamard (Walsh) Transforms

© Dr. O. Hochmuth
Dipl.-Inf. Steffen Mankiewicz,
Enrico May,
Rainer Schnabel (Programme)
19.02.2009, 18:00:56