Table Of ContentMeyer-Base
Schnelle digitale Signalverarbeitung
Springer-Verlag Berlin Beideiberg GmbH
Uwe Meyer-Base
Schelle digitale
Signalverarbeitung
Algorithmen, Architekturen, Anwendungen
Mit 138 Abbildungen und 67 Tabellen
i
Springer
Dr. Uwe Meyer-Bäse
University of Florida, Gainesville
2777 SW Areher Road # FF156
32608 Gainesville, FL
USA
ISBN 978-3-642-63200-6
Die Deutsche Bibliothek-CIP-Einheitsaufnahme
Meyer-Bäse, Uwe:
Schnelle digitale Signalverarbeitung :Algorithmen, Architekturen, Anwendungen : Windows-, UNIX
Version I Uwe Meyer-Bäse.-Berlin; Heidelberg; NewYork; Barcelona; Hongkong; London; Mailand;
Paris ; Singapur ; Tokio : Springer, 2000
Additional material to this book can be downloaded from http://extra.springer.com.
ISBN 978-3-642-63200-6 ISBN 978-3-642-57245-6 (eBook)
DOI 10.1007/978-3-642-51245-6
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der
übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funk
sendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in
Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Ver
vielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der
gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9· Sep
tember 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zu
widerhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes.
© Springer-Verlag Berlin Heidelberg 2000
Ursprünglich erschienen bei Springer-Verlag Berlin Heidelberg New York 2000
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk be
rechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daß solche Namen im Sinne der
Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten wären und dahervon jedermann
benutzt werden dürften.
Sollte in diesem Werk direkt oder indirekt auf Gesetze, Vorschriften oder Richtlinien (z.B. DIN, VDl,
VDE) Bezug genommen oder aus ilmen zitiert worden sein, so kann der Verlag keine Gewähr für die
Richtigkeit, Vollständigkeit oder Aktualität übernehmen. Es empfiehlt sich, gegebenenfalls für die ei
genen Arbeiten die vollständigen Vorschriften oder Richtlinien in der jeweils gültigen Fassung hinzu
zuziehen.
Einbandgestaltung: MEDIO, Berlin
Satz: Reproduktionsfertige Vorlage vom Autor
SPIN: 10772675 62/3020 - 5 4 3 2 1 0
Vorwort
Die digit ale Signalverarbeitung hat sich gerade in den letzten Jahren zu einem
Multi-Milliarden DM Geschaft entwickelt und es ist sicherlich eine zukunfts
trachtige Entscheidung, sich in diesem Bereich vertiefte Kenntnisse anzueig
nen. Fundierte Kenntnisse im Bereich der schnellen digitalen Signalverarbei
tung auf einem fiir Ingcnieure, Informatiker und praktische Mathematiker
leicht verstandlichen Niveau darzustellen, ist wohl das wichtigste Anliegen
des vorliegenden Buches.
Fiir ein vertieftes DSP Studium gibt es Biicher zu schnellen Faltungcn
und FFTs [1, 2, 3], digitalen und adaptiven Filtern [4, 5] oder in jiingster
Zeit Filterbanken und Wavelets [6, 7, 8]. Diese Biicher beschreiben zumeist
in aller Ausftihrlichkeit die Theorie der einzelnen Algorithmen, gehen aber
weniger auf die verschiedenen Variant en bei einer konkreten Realisierung ein.
1m Gegensatz dazu befaBt sich das vorliegende Buch mit denjenigen Algorith
men und Architekturen aus der schnellen digitalen Signalverarbeitung, die in
der Praxis auch tatsachlich eingesctzt werden. Es werden daher nicht aUe
moglichen Variant en zu Filtcrn, FFTs oder Wavelets beschriebcn, sondern
insbesondere werden Algorithmen erlautert, die in der Praxis in Hard- oder
Software eingesetzt werden und die man zumeist in einem Grundlagcnbuch
7.ur digitalen Signalverarbeitung nicht findet.
Anders als sonst iiblich, habe ich daher das Buch anhand der Algorith
men und Architektnrcn aus den spateren Kapiteln (8-14) konzipiert und erst
dann die Grundlagen in den ersten Kapiteln (1-7) beschrieben. Man benotigt
Grundlagen aus den Bereichen: Computerarithmetik, Zahlentheorie, abstrak
ter Algebra und digitalem (VLSI) Schaltungsentwurf, wobei eigentlich jedes
Thema allein bereits eine separate Vorlesung bzw. Buch fiillen wiirde. Meine
Zielsetzung fiir die Kapitel (1-7) war daher, so viel wie gerade notig darzustel
len, um die Algorithmen der spateren Kapitel verstehen zu konnen. Zahlreiche
Beispiele und Ubungsaufgaben erleichtern dabei den Zugang zu den verschie
denen Themengebieten, die man benotigt, um erfolgreich schnelle digit ale
Signalverarbeitung betreiben zu konnen. Ideal ware natiirlich, wenn man bc
reits eine Spezialvorlesung zu den einzelnen Grundlagenthemen gehort hat
und dann die entsprechenden KapHel iiberspringen bzw. nur als Referenz
verwenden kann.
VI Vorwort
Heute sind wir in der gliicklichen Lage, viele Fragestellungen in kiirzester
Zeit mit Hilfe unseres Computers zu beantworten. Dies war nicht immer so.
So hat es nahezu 100 Jahre gedauert, bis die (kleine) Fermatsche Vermu
tung aus 1640: "AIle Zahlen der Form 2(2') + 1 sind Primzahlen" von Euler
1732 widerlegt wurde, indem er zeigte, dafl 232 + 1 durch 641 teilbar ist. Mit
den heutigen Rechnern und Software wie MATLAB, Siglab, Abel, MuPAD
oder einem C-Compiler kann man solche Probleme in einigen Minuten selbst
"programmieren" und per Knopfdurck hat man dann in Sekundensehnelle
eine Antwort. Wie viele moderne Biieher zur digitalen Signalverarbeitung,
sind daher auch in dem vorliegenden Buch neben "Papier- und Bleistiftauf
gab en" aueh zahlreiche Ubungsaufgaben vorhanden, die mit Computerhilfe
gelost werden sollen. Damit die Ubungsaufgaben nicht zu einem Program
mierkurs ausarten, sind auf der beigefiigten CD zahlreiche Funktionen fiir
die Programmierspraehe C bereits vorhanden. Ich habe die Programmier
spraehe C ausgewiihlt, da man so recht anschaulich die Algorithmen anhand
von kleinen C Programmen erlautern kann, ohne eine zusatzliche "pseudo"
Sprache erlautern zu miissen. AuBerdem sind zahlreiche Programmefiir FFT
Benchmarks in C verfiigbar und Entwicklungstools fiir programmierbare Si
gnalprozessoren unterstiitzen zumeist auch C-Compiler. Es steht natiirlich
jedem frei eine ihm gelaufige Programmiersprache zu benutzen oder die ent
sprechenden Losungen der Ubungsaufgaben in DSP Software wie MATLAB
oder SigLab zu erstellen.
Ich habe auch versucht, die Nomenklatur fiir Ingenieure typiseh zu ge
stalten, wie z. B. Zeit signal mit Kleinbuchstaben, Frequenzbereich mit GroB
bllchstabcn, Vektoren mit kleinen Buchstaben in Fettschrift und Matrizen
in GroBbuchstaben mit Fcttschrift. Dennoch gelingt cine strikte Trennung
nicht immer, da verschiedene Wissensgebiete in der schnellen digitalen Si
gnalverarbeitung zusammentreffen. So wird z. B. 4> in der Zahlentheorie als
Euler-Totient-Funktion verwendet, bei Wavelets hingegen ist 4> als Bezcich
nung fiir die Skalierungsfunktion iiblich. Sollte man unsieher sein, so kann
man gegebenenfalls das Formelverzcichnis zu Rate ziehen.
Danksagllng. Das vorliegende Buch ware nicht moglich gewesen ohne die groBe
Unterstiitzung von vielen, die ich in den letzten Jahren erfahren habe. Ich hotre, in
der folgenden Danksagung niemanden vergessen zu haben.
Uber die Jahre haben mir Diskussionen auf Tagungen oder im Labor und die
Korrespondenz mit vielen Experten auf ihren Gebieten bei der Erstellung des
Buches sehr geholfen. Ich mochte mich besonders bedanken bei den Professoren
bzw. Doktoren M. Acheroy, D. Achilles, F. Bock, C. Burrus, D. Chester, D. Chil
ders, J. Conway, R. Crochiere, K. Damm, B. Delgllette, A. Dempster, P. Duhamel,
A. Drolshagen, W. Endres, H. Eveking, R. Games, A. Garcia, O. Ghitza, W. Hil
berg, W. Jenkins, I. Koren, A. Laine, R. Laur, J. Mangen, J. Massey, J. McClel
lan, J. Mellott, F. Ohl, S. Orr, H. Scheich, H. Scheid, D. Schulz, M. Soderstrand,
S. Stearns, F. Taylor, M. Vetterli und H. Walter.
Die zahlreichen praktischen Beispiele, die in diesem Buch vorgestellt werden,
waren nicht moglich gewesen, ohne die Mithilfe meiner Studenten im Rahmen ihrer
\Torvvort \TIl
Diplomarbeiten. Mein Dank gilt hier J. Buros, S. Dvvorak, T. Irmler, T. Podzimek,
M. Rosch, O. SpieS, O. Six, O. Tamm, W. Trautmann, R. Watzel und S. Wolf.
Fiir die exzellente Arbeit bei der (mehrfachen) Durchsicht meines Manuskriptes
und zahlreichen vvertvollen Kommentaren danke ich meiner Frau Dr. Anke Meyer
Base, M. Fischer, M. Rosch und M. Katzenberger.
Zuletzt mochte ich mich noch fUr die finanzielle Forderung in den letzten Jahren
bei dem Deutschen Akademischen Austauschdienst, der Deutschen Forschungsge
meinschaft, der European Space Agency und der Max Kade Foundation bedanken.
Gainesville, im Mai 2000 Uwe Meyer-Base
Formelverzeichnis
Mathematische Formelzeichen
0_ Zeitbereich ~ Frequenzbereich (S. 196)
Multiplikation (S. 16)
*
Faltung (S. 60)
® Zyklische Faltung (S. 61)
®
Zyklische Faltung der Lange N (S. 61)
o
Kompentenweise Multiplikation A 0 B ai,j . bi,j (S. 68)
¢=::::}
= =
IX 1 Nachste grofiere Ganzzahl (11,41 11,61 2) (S. 100)
l x J Nachste kleinere Ganzzahl (ll, 4J = ll, 6J = 1) (S. 20)
[xJ Niichste gerundete Ganzzahl ([1,4J = 1; [1,6J = 2) i (S. 289)
~ Circa (S. 89)
adj(A) Adjunkte von A (S. 183)
diag[a[O,OJ,a[l,lJ, ...J Diagonalmatrix (S. 150)
rank(A) Rank einer Matrix (S. 284)
grad(A(x)) Grad eines Polynoms (S. 59)
x Kartesisches Produkt (IE x IE ¢=::::} (Xl,X2)) (S. 55)
kongruent (a == k· M + a mod M) (S. 45)
B ('(10m2,">",) (rl,r2, ... ) B Binarzahl (rl,r2, ... ) RNS-Darstellung (S. 54)
¢- nicht kongruent (-1 ¢- 4 mod 4) (S. 45)
Z, J Qudratwurzel von -1 oder positive Losung der
Gleichung i2 + 1 = 0 (S. 16)
E Element von (0 E N) (S. 16)
min(a,b) Minimum von a und b (S. 19)
max(a,b) Maximum von a und b (S. 19)
modM; %M; ('}M Modulo Operation 5%3 = 2 oder (z2 -
l}z+l = 0 (S. 45)
/ Division (5/3 = 1 fUr IE oder (z2 - l)/(z + 1) = z - 1) (S. 55)
Proportional (S. 308)
sin(x) Sinus von x (S. 12)
cos(x) Kosinus von x (S. 12)
cas(x) sin(x) + cos(x) (S. 12)
~ strukturgleich; homomorph 1E15 ~ 1E3 X 1E5 (S. 55)
sinc(x) = sin(x)/x sinc-Funktion (S. 227)
-+ Abbildung oder es folgt daraus (Sei x E IE dann ist
f( x) = x2 eine Abbildung f : IE -+ N) (S. 110)
kgv(a, b) kleinstes gemeinsames Vielfache a und b (S. 19)
alb a ist Teiler von b oder "es gilt" (siehe Q) (S. 17,16)
atb a ist kein Teiler von b (S. 17)
ggt(a,b) grosster gemeinsamer Teiler von a und b (S. 19)
M Beliebige Zahlenmenge (S. 16)
N Menge der natiirlichen Zahlen {O, 1,2, ... } (S. 16)
FORMELVERZEICHNIS IX
Q Menge der rationalen Zahlen {% la, bE Z, b i= O} (S. 16)
Z Menge der ganzen Zahlen { ... ,0,±1,±2, ... } (S. 16)
ZM Menge des endlichen, ganzen Zahlenkorpers {0,1,2, ... ,M -I}
(S. 16)
JR Menge der reellen Zahlen (Q und irrationale Zahlen wie )2) (S. 16)
C Menge der complexen Zahlen ({a + ibla, b E JR, A = i}) (S. 16)
indg(x) Index von x beziiglich des primitiven Elements g g~nd(x) = x (S.
48)
L:
Summe (S. 6)
IT
Produkt (S. 17)
S Imaginarteil (S. 12)
!R Realteil (S. 12)
ordM(r) die Ordnung von r im Ring M (S. 46)
O(Nlog(N)) Komplexitat eines Algorithmus (S. 308)
k, 1, n Laufindex bei Algorithmen oder Formeln
Lateinische Formelzeichen
A Matrix (S. 335)
a Vektor (S. 335)
W~ ej27rk/N (S. 339)
a[n],a(t) Zeitdiskret bzw. zeitkontinuierlich (S. 6,141)
y[n], Y(z) Ausgangsgrofien (S. 3)
h(t),h[n],H(z) Impulsantwort oder Ubertragungsfunktion (S. 217)
Ft t-te Fermat-Zahl: 2(2') + 1 (S. 19)
Mp Mersenne-Zahl: 2P - 1 (S. 42)
Griechische Formelzeichen
Konstruktionselement bei DFT und NTT (S. 6)
0:
J Vorzeichen beim CORDIC-Algorithmus (S. 134)
J(t),J[n] Dirac-Dclta-Funktion (S. 239, 303)
"t Euler-Konstante (S. 24)
7m,n(l) Gabor-Funktion (S. 283)
IL(n) Mobius-Funktion: Anzahl der zu n teilerfremden Zahlen
kleiner n (S. 27)
ii:n,n(l) Morlet-Funktion (S. 288)
w = 27rt Frequenzvariable (S. 215)
4>(n) Euler-Totient-Funktion: Anzahl der zu n teilerfremden Zah
len kleiner n (S. 23)
4>( t) Skalierungsfunktion bei Wavelets (S. 297)
1jJ(t) Wavelet-Funktion (S. 297)
7(n) Anzahl der Teiler von n 7(15) = #{1,3,5,15} = 4 (S. 25)
(h Drehwinkel beim CORDIC-Algorithmus (S. 134)
A bkiirzungsverzeichnis
ADC Analog to Digital Converter (S. 276)
ADD Addition (S. 92)
ADSP Analog Device Digital Spignalprozessor (S. 175)
AFT arithmetische Fourier-Transformation (S. 205)
ASAP Athena Sensor Arithmetic Processor (S. 178)
ASCII American Standard Code for Information Interchange (S. 107)
ASIC Anwender spezifischer Schaltkreis (S. 133)
CFA common factor algorithm (S. 156)
CIC Cascaded Integrator Comb (S. 256)
CLB Configurable Logic Block (S. 89)
CMOS Complementary metal oxide (S. 331)
CORDIC COordinate Rotation DIgital Computer (S. 133)
CPLD Komplexe Programmierbare Logikbausteine (S. 176)
CPU Central processing unit (S. 332)
CQF conjugate mirror filter (S. 248)
CRNS Komplexe RNS (S. 111)
CRT Chinesische Reste-Theorem (S. 54)
CSD Canonical Signed Digit, quasiternares Zahlensystem (S. 37)
CWT kontinuierliche Wavelet-Transfromation (S. 280)
DA Distributed Arithmetic (verteilte Arithmetik) (S. 121)
DCT Diskrete Kosinus-Transformation (S. 12)
DFT Diskrete Fourier-Transformation (S. 6)
DGT Diskrete Gabor-Transformation (S. 282)
DHT Diskrete Hartley-Transformation (S. 12)
DIF dezimation in frequency (S. 160)
DIT dezimation in time (S. 178)
DMT Diskrete Morlet-Transformation (S. 286)
DSP Digitaler Signalprozessor (S. 124)
DWT Diskrete Wavelet-Transformation (S. 294)
ERNS Eisenstein RNS (S. 209)
ESA European Space Agency (S. 310)
FFT Schnelle Fourier-Transformation (Fast Fourier Transform) (S. 155)
FIR Finite Impulse Response (endlicher Impulsantwort) (S. 219)
FNT Fermat NTT (S. 324)
FPGA Field Programmable Gate Array (S. 133)
FPL Field Programmable Logik (PLD, CPLD oder FPGA) (S. 133)
FSF Frequenzabtastfilter (Frequency Sampling Filter) (S. 293)
Ie Integrierter Schaltkreis (S. 179)
IDFT Inverse diskrete Fourier-Transformation (S. 167)
IFFT Inverse diskrete Fourier-Transformation (S. 234)
IIR Infinite Impulse Response (unendliche Impulsantwort) (S. 221)
JPEG Joint Picture Expert Group (S. 311)