Hochgeladen von g.spahlinger

Algorithmen und Schaltungen zur Signalverarbeitung

Werbung
Günter Spahlinger
Algorithmen und
Schaltungen zur
Signalverarbeitung
Manuskript zur gleichnamigen Vorlesung
an der Universität Stuttgart
Algorithmen und Schaltungen
zur Signalverarbeitung
Systemtheorie
Signaldarstellung
Hardwarekonzepte
Signalprozessoren
c Günter Spahlinger, 1989, 2009, 2014
Reproduktion des Inhalts nur mit Genehmigung des Verfassers.
Für fehlerhafte Angaben und deren Folgen wird keine Haftung übernommen.
ii
Inhaltsverzeichnis
1
Signale und Systeme
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
Zeitkontinuierliche Signale und Systeme . . . . . . . . . . . . . . . . .
1.1.1 Determinierte Signale . . . . . . . . . . . . . . . . . . . . . .
1.1.2 Lineare kontinuierliche Systeme mit determinierten Signalen . .
1.1.3 Stochastische Signale . . . . . . . . . . . . . . . . . . . . . . .
1.1.4 Lineare, kontinuierliche Systeme mit stochastischen Signalen .
Zeitdiskrete Signale und Systeme . . . . . . . . . . . . . . . . . . . . .
1.2.1 Determinierte Signale . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Lineare diskrete Systeme mit determinierten Signalen . . . . .
1.2.3 Stochastische Signale . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 Lineare diskrete Systeme mit stochastischen Signalen . . . . . .
Multivariablensysteme . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Determinierte Signale . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Stochastische Signale . . . . . . . . . . . . . . . . . . . . . . .
Umwandlung zeitkontinuierlicher Signale in zeitdiskrete Signale . . . .
1.4.1 Der allgemeine lineare und zeitrasterinvariante Abtaster . . . .
1.4.2 Der Punktabtaster . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.3 Punktabtastung spezieller Spektren . . . . . . . . . . . . . . .
1.4.4 Synchrone Punktabtastung korrelierter Rauschsignale . . . . . .
1.4.5 Abgetastetes farbiges Rauschen . . . . . . . . . . . . . . . . .
Umwandlung zeitdiskreter Signale in zeitkontinuierliche Signale . . . .
1.5.1 Der allgemeine lineare und zeitrasterinvariante Impulsformer . .
1.5.2 Der ideale Impulsformer . . . . . . . . . . . . . . . . . . . . .
1.5.3 Der Rechteck-Impulsformer . . . . . . . . . . . . . . . . . . .
1.5.4 Kausaler Rechteck-Impulsformer . . . . . . . . . . . . . . . .
Die Stufenübertragungsfunktion . . . . . . . . . . . . . . . . . . . . .
Systemanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7.1 Analyse linearer kontinuierlicher Systeme . . . . . . . . . . . .
1.7.2 Analyse diskreter Systeme . . . . . . . . . . . . . . . . . . . .
1.7.3 Kontinuierliche Systeme mit treppenförmigen Eingangssignalen
1.7.4 Auswertung der Übertragungsfunktion . . . . . . . . . . . . . .
Simulation von Systemen . . . . . . . . . . . . . . . . . . . . . . . . .
1.8.1 Diskrete Systeme . . . . . . . . . . . . . . . . . . . . . . . . .
1.8.2 Kontinuierliche Systeme . . . . . . . . . . . . . . . . . . . . .
1.8.3 Gemischte Systeme . . . . . . . . . . . . . . . . . . . . . . . .
Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
4
4
4
5
6
6
7
7
8
9
10
10
12
13
14
14
15
16
16
17
18
19
20
21
22
22
24
24
25
25
26
iii
Inhaltsverzeichnis
1.9.1 Zeitvariante SC-Schaltung . . . . .
1.9.2 Analyse der Schaltung . . . . . . .
1.9.3 Aufbau des Simulationsprogramms
1.10 Übungsaufgaben zu Kapitel 1 . . . . . . .
2
2.2
2.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Festkommaarithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Binäre Kodierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Vorzeichen-Betrags-Darstellung . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 Zweierkomplement-Kodierung . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 Binäres Zahlensystem mit negativer Basis . . . . . . . . . . . . . . . . . .
2.1.5 Umwandlung von binären Zahlen mit positiver Basis in Zahlen mit negativer
Basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.6 Vorzeichenbehaftete Kodes . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.7 Einfacher Booth-Kode . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.8 Erweiterter Booth-Kode . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.9 Der CSD-Kode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gleitkommaarithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Mantisse in Vorzeichen-Betragsdarstellung . . . . . . . . . . . . . . . . .
2.2.2 Exponent in Zweierkomplement-Darstellung . . . . . . . . . . . . . . . .
2.2.3 Exponent in Exzess-Kodierung . . . . . . . . . . . . . . . . . . . . . . . .
Übungsaufgaben zu Kapitel 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
35
35
36
36
37
.
.
.
.
.
.
.
.
.
.
37
38
38
39
40
41
42
42
42
43
3.3
3.4
3.5
3.6
3.7
Die logischen Funktionen . . . . . . . . . . . . . . . .
Addition binärer Zahlen . . . . . . . . . . . . . . . . .
3.2.1 Volladdierer in CMOS-Technik . . . . . . . .
3.2.2 Addierwerke mit seriellem Übertrag . . . . . .
3.2.3 Addierwerke mit parallelem Übertrag . . . . .
3.2.4 Mehrfachaddierer . . . . . . . . . . . . . . . .
3.2.5 Akkumulierwerke . . . . . . . . . . . . . . .
Schiebewerke für binäre Zahlen . . . . . . . . . . . .
Prioritätsenkoder . . . . . . . . . . . . . . . . . . . .
Normierwerke . . . . . . . . . . . . . . . . . . . . . .
Multiplizierer . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Kodewandler . . . . . . . . . . . . . . . . . .
3.6.2 Serielle Multiplizierwerke . . . . . . . . . . .
3.6.3 Parallele Multiplizierwerke . . . . . . . . . . .
Analog-Digital-Wandler . . . . . . . . . . . . . . . .
3.7.1 Wägeverfahren . . . . . . . . . . . . . . . . .
3.7.2 Parallel-Wandler . . . . . . . . . . . . . . . .
3.7.3 Quantisierung . . . . . . . . . . . . . . . . . .
3.7.4 Signal-Rausch-Verhältnis . . . . . . . . . . . .
3.7.5 Überabtastung . . . . . . . . . . . . . . . . .
3.7.6 Überabtastung mit quantisierter Rückkopplung
26
26
28
33
35
Rechenschaltungen
3.1
3.2
iv
.
.
.
.
Zahlendarstellung und Codierung
2.1
3
.
.
.
.
45
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
46
47
47
53
54
54
55
55
56
59
60
61
63
64
65
65
66
67
69
69
70
Inhaltsverzeichnis
3.8
3.9
4
3.7.7 Sigma-Delta-Wandler . . . . . . . . .
3.7.8 Anwendungsbeispiele . . . . . . . . .
DA-Wandler . . . . . . . . . . . . . . . . . . .
3.8.1 Wandler mit schaltbaren Stromquellen .
3.8.2 Wandler mit schaltbaren Widerständen
3.8.3 Wandler mit Überabtastung . . . . . .
Übungsaufgaben zu Kapitel 3 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Signalprozessoren
4.1
4.2
4.3
4.4
Aufbau von Signalprozessoren . . . . . .
4.1.1 Arithmetik-Einheit . . . . . . . .
4.1.2 Adress-Generator . . . . . . . . .
4.1.3 Programmsteuerwerk . . . . . . .
4.1.4 Bedingungslogik . . . . . . . . .
4.1.5 Instruktionsdekoder . . . . . . . .
4.1.6 Register-File . . . . . . . . . . .
4.1.7 Daten- und Programmspeicher . .
4.1.8 Peripherie-Einheiten . . . . . . .
4.1.9 Takterzeugung und Steuerung . .
4.1.10 Prozessorbusse . . . . . . . . . .
Beispiele industrieller Signalprozessoren .
4.2.1 Blockdiagramm des TMS 32020 .
4.2.2 Blockdiagramm eines ADSP 2100
Programmierung . . . . . . . . . . . . .
4.3.1 FIR-Filter mit TMS32020 . . . .
4.3.2 FIR-Filter mit ADSP2100 . . . .
Entwicklungswerkzeuge . . . . . . . . .
4.4.1 Compiler . . . . . . . . . . . . .
4.4.2 Assembler . . . . . . . . . . . .
4.4.3 Linker . . . . . . . . . . . . . . .
4.4.4 Simulator . . . . . . . . . . . . .
4.4.5 Emulator . . . . . . . . . . . . .
4.4.6 PC-Entwicklungskarten . . . . .
73
73
74
74
74
75
76
79
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
80
83
84
84
85
85
85
85
86
86
86
86
87
91
91
92
93
94
94
94
94
95
95
v
Inhaltsverzeichnis
vi
1 Signale und Systeme
Der erste Teil dieses Kapitels enthält eine Zusammenfassung systemtheoretischer Grundlagen, auf
denen die folgenden Abschnitte aufbauen. Zur Vertiefung eignen sich einschlägige Lehrbücher, wie
beispielsweise [1] oder [2].
1.1 Zeitkontinuierliche Signale und Systeme
1.1.1 Determinierte Signale
Zeitkontinuierliche Signale sind kontinuierliche Funktionen der Zeit. Ein zeitkontinuierliches Syx 0 .t/
✻
✲ t
Bild 1.1: Zeitkontinuierliches Signal
stem verarbeitet zeitkontinuierliche Signale (Bild 1.1). Die Kenngrößen (Zeitfunktionen, Spektren,
Systemfunktionen usw.) kontinuierlicher Systeme und Signale werden im Gegensatz zu den später
eingeführten diskreten Kenngrößen mit einem Strich (0 ) bezeichnet.
Fouriertransformation
Zu jeder Zeitfunktion x 0 .t / gehört ein Spektrum X 0 .j!/ (Fourierintegral):
0
X .j!/ D
Z1
x 0 .t /e
j!t
dt
(1.1)
1
X 0 .j!/ ist komplexwertig. ! D 2f ist die Kreisfrequenz, f ist die natürliche Frequenz. Die Verallgemeinerung p D j! vollführt den Übergang in die komplexe p-Ebene. Falls das Fourierintegral
1
1 Signale und Systeme
(1.1) nicht konvergiert, muß der Übergang zur Distributionentheorie vollzogen werden. Dabei wird
die ı-Funktion eingeführt:
Z1
ı.t t0 /g.t /dt D g.t0 /
(1.2)
1
(Ausblendeigenschaft). Das Fourierintegral der ı-Funktion wird damit:
Z1
j!t
ı.t /e
dt D 1
(1.3)
1
Rücktransformation
Zu jedem Spektrum X 0 .j!/ ergibt sich die Zeitfunktion über die Rücktransformationsformel:
1
x .t / D
2
0
Z1
X 0 .j!/e j!t d!
(1.4)
1
Durch die Rücktransformation läßt sich eine weitere Definition für die ı-Funktion aufstellen:
1
ı.t / D
2
Z1
e j!t d!
(1.5)
1
Symbolische Darstellung der Transformation:
F
x 0 .t /
X 0 .j!/
(1.6)
Für die ı-Funktion gilt:
F
1
ı.t /
(1.7)
1.1.2 Lineare kontinuierliche Systeme mit determinierten Signalen
Ein Signal x 0 .t / mit dem Spektrum X 0 .j!/ wirke auf den Eingang eines linearen, zeitinvarianten
Systems (Bild 1.2). Am Ausgang wird das Signal y 0 .t / mit dem Spektrum Y 0 .j!/ beobachtet. Es
gilt:
Y 0 .j!/ D H 0 .j!/X 0 .j!/
(1.8)
Dabei heißt H 0 .j!/ die Systemfunktion oder Übertragungsfunktion des Systems.
Die Funktion h0 .t / mit
F
h0 .t /
2
H 0 .j!/
(1.9)
1.1 Zeitkontinuierliche Signale und Systeme
❜
x 0 .t/
F
F
X 0 .j!/
H 0 .j!/
y 0 .t/
❜
Y 0 .j!/
Bild 1.2: Lineares, kontinuierliches System mit determiniertem Eingangssignal
ist die Impulsantwort des Systems, die als Reaktion auf den Diracstoß ı.t / auftritt. Damit ist eine
Systembeschreibung im Zeitbereich möglich (Faltungsintegral):
y 0 .t / D
Z1
h0 .t
y 0 .t / D
Z1
h0 . /x 0 .t
/x 0 . /d (1.10)
1
(1.11)
/d 1
Symbolische Darstellung der Faltung:
y 0 .t / D h0 .t / x 0 .t /
(1.12)
1.1.3 Stochastische Signale
Gegeben sei ein stochastisches Signal mit der (unbekannten) Zeitfunktion x 0 .t /. Die Autokorrelationsfunktion ist definiert durch
ZT
1
Rxx . / D lim
T !1 2T
x 0 .t /x 0 .t C /dt
(1.13)
T
Die Fouriertransformierte der Autokorrelationsfunktion ist das Leistungsdichtespektrum
F
Sxx .j!/
Rxx . /
Sxx .j!/ D
Z1
Rxx . /e
j!
d
(1.14)
1
Aus dem Leistungsdichtespektrum läßt sich die mittlere Signalleistung errechnen:
1
Nx D
2
Z1
Sxx .j!/d!
(1.15)
1
3
1 Signale und Systeme
1.1.4 Lineare, kontinuierliche Systeme mit stochastischen Signalen
Am Eingang eines Systems mit der Übertragungsfunktion H 0 .j!/ wirke ein Signal x 0 .t / mit dem
Leistungsdichtespektrum Sxx .j!/ (Bild 1.3). Dann hat das Ausgangssignal y 0 .t / das Leistungs❜
x 0 .t/
y 0 .t/
H 0 .j!/
Sxx .j!/
Syy .j!/
❜
Bild 1.3: Lineares, kontinuierliches System mit stochastischem Eingangssignal
dichtespektrum
Syy .j!/ D Sxx .j!/jH 0 .j!/j2
(1.16)
1.2 Zeitdiskrete Signale und Systeme
1.2.1 Determinierte Signale
Unter einem zeitdiskreten Signal versteht man eine Folge von Signalwerten (Zahlenwerten) fx./g;
D 0; ˙1; ˙2; : : : (Bild 1.4).
x./
❜
❜
✻
❜
❜
❜
❜
❜
❜
❜
✲ Bild 1.4: Zeitdiskretes Signal
´-Transformation:
Zu jedem zeitdiskreten Signal existiert eine zweiseitige ´-Transformierte:
X.´/ D
4
1
X
D 1
x./´
(1.17)
1.2 Zeitdiskrete Signale und Systeme
und eine einseitige ´-Transformierte
X.´/ D
1
X
x./´
(1.18)
D0
Die Transformationsbeziehung zwischen einer Folge und ihrer ´-Transformierten wird durch dieses
Symbol ausgedrückt:
Z
X.´/
x./
Bilinear-Transformation
Die Abbildung
1Cw
´ 1
I wD
1 w
´C1
überführt die Funktion X.´/ in eine Funktion XQ .w/ (Bilinear-Transformation):
1Cw
Q
X .w/ D X
1 w
(1.19)
´D
(1.20)
Für die Beziehung zwischen x./ und XQ .w/ steht das Symbol
W
x./
XQ .w/
Rücktransformationsformeln
Die Rücktransformationsformeln lauten:
I
1
X.´/´ 1 d´
x./ D
2j
Z1
1 C jv 2
1
Q
dv
X .j v/
x./ D
2
1 C v2 1 j v
(1.21)
(1.22)
1
1.2.2 Lineare diskrete Systeme mit determinierten Signalen
Ein zeitdiskretes System (Bild 1.5) wird beschrieben durch seine Übertragungsfunktion H.´/ bzw.
/. Die Ausgangsfolge y./ mit y./
HQ .w/ D H. 1Cw
1 w
gegeben mit
Y .´/ D
Q
Y .w/ D
Z
H.´/X.´/
HQ .w/XQ .w/
W
Y .´/ bzw. y./
YQ .w/ ist
(1.23)
(1.24)
5
1 Signale und Systeme
❜
x./
y./
H.´/
HQ .w/
Q
X.´/;X.w/
Y .´/;YQ .w/
❜
Bild 1.5: Lineares, diskretes System mit determiniertem Eingangssignal
Die Reaktion des Systems auf die Einheitsfolge fı./g ist seine Impulsantwort h./ mit
Z
W
h./
H.´/ bzw. h./
HQ .w/. Mit Hilfe der Impulsantwort ist eine Darstellung des
Systemverhaltens im Zeitbereich möglich (Faltung):
y./ D
y./ D
1
X
/
(1.25)
/x./
(1.26)
h./x.
D 1
1
X
h.
D 1
oder kurz
(1.27)
y./ D h./ x./
1.2.3 Stochastische Signale
Die Autokorrelationsfolge
xx ./
eines stochastischen, diskreten Signals x./ ist gegeben durch
xx ./
D lim
N
X
1
x.n/x.n C /
N !1 1 C 2N
(1.28)
nD N
Durch Anwendung der zweiseitigen ´-Transformation und der Bilineartransformation erhält man
Q
zwei Funktionen ‰.´/ und ‰.w/
(die die Rolle eines Leistungsdichtespektrums spielen) mit
Z
W
‰xx .´/I
xx ./
xx ./
Q xx .w/
‰
(1.29)
1.2.4 Lineare diskrete Systeme mit stochastischen Signalen
Speist man ein lineares diskretes System H.´/ bzw. HQ .w/ mit einer Folge x./ mit ‰.´/ bzw.
Q
‰.w/
(Bild 1.6), so erscheint am Ausgang ein Signal y./ mit der Autokorrelationsfolge yy ./
mit den Transformierten
Z
yy ./
6
W
‰yy .´/I
yy ./
Q yy .w/
‰
(1.30)
1.3 Multivariablensysteme
❜
x./
H.´/
HQ .w/
Q xx .w/
‰xx .´/;‰
y./
❜
Q yy .w/
‰yy .´/;‰
Bild 1.6: Lineares, diskretes System mit stochastischem Eingangssignal
Für die Transformierten gilt:
‰yy .´/
Q
‰yy .w/
H.´/H.´ 1/‰xx .´/
Q xx .w/
HQ .w/HQ . w/‰
D
D
Für die mittlere Leistung eines Signals x./ gilt:
I
1
Nx D
‰xx .´/´ 1 d´
2j
Z1
1
Q xx .j v/ 2
dv
‰
Nx D
2
1 C v2
(1.31)
(1.32)
(1.33)
(1.34)
1
1.3 Multivariablensysteme
1.3.1 Determinierte Signale
Zeitkontinuierliche Systeme
Gegeben sei ein System mit n Eingängen und m Ausgängen (Bild 1.7). Eingangs- und Ausgangssignale werden durch (Zeilen-) Vektoren beschrieben:
X0 .j!/ D X10 .j!/ Xn0 .j!/
(1.35)
0
0
0
Y .j!/ D Y1 .j!/ Ym .j!/
(1.36)
Dabei ist H0 .j!/ eine n; m-Matrix der Teilübertragungsfunktionen:
1
0
0
0
.j!/
.j!/ H1;m
H1;1
C
B
::
::
H0 .j!/ D @
A
:
:
0
0
Hn;1
.j!/ Hn;m
.j!/
(1.37)
Das Systemverhalten wird beschrieben durch:
Y0 .j!/ D X0 .j!/H0 .j!/
(1.38)
7
1 Signale und Systeme
X10 .j!/ ❜
::
:
Xn0 .j!/ ❜
❜ Y 0 .j!/
1
X0 .j!/ ❜
H0 .j!/
::
:
H0 .j!/
❜ Y0 .j!/
❜ Ym0 .j!/
Bild 1.7: Multivariablensystem
Zeitdiskrete Systeme
Entsprechend werden zeitdiskrete Multivariablensysteme im ´-Bereich bzw. im w-Bereich definiert.
Im ´-Bereich gilt
Y.´/ D X.´/H.´/
(1.39)
wobei X.´/ der Vektor der Eingangssignale, Y.´/ der Vektor der Ausgangssignale und H.´/ die
Übertragungsmatrix sind.
1.3.2 Stochastische Signale
Zeitkontinuierliche Systeme
Es seien xi0 .t /; i D 1; 2; : : : n n stochastische Eingangssignale. Die Kreuzkorrelationsfunktion ist
definiert durch
ZT
1
xi0 .t /xk0 .t C /dt
(1.40)
Rxi xk . / D lim
T !1 2T
T
Die Elemente Rxi xk bilden zusammen die Korrelationsmatrix
0
1
Rx1 x1 . / Rx1 xn . /
B
C
::
::
Rxx . / D @
A
:
:
Rxn x1 . / Rxn xn . /
(1.41)
Durch Fouriertransformation der Kreuzkorrelationsfunktion gelangt man zum Kreuzleistungsdichtespektrum:
F
Rxi xk . /
8
Sxi xk .j!/
1.4 Umwandlung zeitkontinuierlicher Signale in zeitdiskrete Signale
und zur Matrix zusammengefaßt:
1
Sx1 x1 .j!/ Sx1 xn .j!/
C
B
::
::
Sxx .j!/ D @
A
:
:
Sxn x1 .j!/ Sxn xn .j!/
0
(1.42)
Zum Ausgangssignal gehören die m; m-Matrizen Ryy . / und Syy .j!/. Für die Leistungsdichten
gilt:
Syy .j!/ D H0 .j!/Sxx .j!/H0 .j!/
(1.43)
Zeitdiskrete Systeme
Die Eingangssignale sind gegeben durch einen Vektor mit den Elementen xi ./. Die Kreuzkorrelationsfunktion ist dann:
N
X
1
xi .n/xk .n C /
xi xk ./ D lim
N !1 1 C 2N
(1.44)
nD N
Zusammenfassung zur Matrix:
xx ./
Transformation in den ´-Bereich:
0
B
[email protected]
x1 x1 ./
::
:
xn x1 ./
x1 xn ./
xn xn ./
::
:
1
C
A
(1.45)
Z
xi xk ./
Als Matrix:
‰xi xk .´/
0
1
‰x1 x1 .´/ ‰x1 xn .´/
B
C
::
::
‰xx .´/ D @
(1.46)
A
:
:
‰xn x1 .´/ ‰xn xn .´/
Wirkt das derart beschriebene Signal auf das oben definierte diskrete Multivariablensystem, so beobachtet man am Ausgang ein Signal mit den statistischen Kenngrößen yy ./ bzw. ‰yy .´/ und es
gilt
‰yy .´/ D H .´/‰xx .´/H.´/
(1.47)
1.4 Umwandlung zeitkontinuierlicher Signale in zeitdiskrete
Signale
Die Umformung eines zeitkontinuierlichen Signals x 0 .t / in ein zeitdiskretes Signal x./ erfolgt
durch einen Abtaster, definiert durch den Operator A (bzw A im transformierten Bereich):
x./ D Afx 0 .t /g
(1.48)
9
1 Signale und Systeme
X.´/ D AfX 0 .p/g
(1.49)
Ein Abtaster ist linear, wenn für beliebige Funktionen x10 .t / und x20 .t / gilt:
Afx10 .t / C x20 .t /g D Afx10 .t /g C Afx20 .t /g
(1.50)
Ein Abtaster ist zeitrasterinvariant mit der Abtastzeit T , wenn für eine beliebige Zahl gilt:
x. C / D Afx 0 .t C T /g
(1.51)
1.4.1 Der allgemeine lineare und zeitrasterinvariante Abtaster
Die Abtastvorschrift A für den allgemeinen linearen und zeitrasterinvarianten Abtaster ist:
x./ D
Z1
sa0 .t /x 0 .T
x./ D
Z1
sa0 .T
t /dt
(1.52)
t /x 0 .t /dt
(1.53)
1
1
Dabei ist
sa0 .t /
eine für den Abtaster typische Funktion.
1.4.2 Der Punktabtaster
Die Abtastvorschrift A0 des Punktabtasters erhält man mit
sa0 .t / D ı.t /
(1.54)
Dann ist aufgrund der Ausblendeigenschaft der ı-Funktion
x./ D x 0 .T /
(1.55)
d.h., dem kontinuierlichen Signal x 0 .t / (Bild 1.8) werden zu diskreten Zeitpunkten T Proben entnommen. Für den Punktabtaster wird die im Bild 1.9 gezeigte Darstellung verwendet.
Es sei nun
F
x 0 .t /
Mit
Z
X 0 .j!/I
1
x./ D
2
Z1
X.´/
x./
X 0 .j/e j T d
(1.56)
(1.57)
1
und
X.´/ D
10
1
X
D 1
x./´
(1.58)
1.4 Umwandlung zeitkontinuierlicher Signale in zeitdiskrete Signale
❜
❜
x./ x 0 .t/
✻
❜
❜
❜
❜
❜
✲
t
T
;
Bild 1.8: Punktabtaster
❜
x 0 .t/
X 0 .j!/
x./
✞☎
❜ ❜ ❜
❜
✝ ✆ X.´/
Bild 1.9: Symbol des Punktabtasters
wird
X.e
j!T
/D
Wendet man die Substitution u D
Z1
1
X
1
2
1
D
X 0 .j/e j .
!/T
d
(1.59)
1
!/ und die Summenformel von Poisson an:
.
1
1 X
e
2 D 1
j uT
D
1
1 X
ı.u
T nD 1
n
2
/
T
(1.60)
dann wird
X.e
j!T
/
D
Z1
1
2
X 0 .j/
D
1
T
1
1 X
T nD 1
j uT
d
1
X
ı.u
n
2
/d
T
X 0 .j/ı.!
n
X 0 .j/
nD 1
1
D
e
D 1
1
Z1
1
X
Z1
2
/d
T
1
und es ergibt sich mit der Ausblendeigenschaft der ı-Funktion:
X.e
Die Funktion
j!T
/ D A0
˚
1
1 X
X .j!/ D
X 0 .j.!
T nD 1
0
XO .j!/ D X.e j!T /T
n
2
//
T
(1.61)
(1.62)
11
1 Signale und Systeme
wird als diskretes Spektrum bezeichnet:
F
O
X.j!/
Das diskrete Spektrum ist eine mit !A D
2
T
XO .j!/ D
(1.63)
x./
periodische Funktion und es gilt:
1
X
X 0 .j.!
n!A //
(1.64)
nD 1
1.4.3 Punktabtastung spezieller Spektren
Es sei nun X 0 .p D j!/ eine in p rationale Funktion
0
X .p/ D
l
P
i D0
m
P
ai p i
(1.65)
bi
pi
i D0
mit l < m und einfachen Polen pi . Dann ist eine Partialbruchzerlegung möglich:
X 0 .p/ D
m
X
i D1
ci
p
(1.66)
pi
Das abgetastete diskrete Spektrum ist
XO .j!/ D
m
1 X
X
nD 1 i D1
j.!
ci
n!A /
pi
(1.67)
Mit der Substitution u D j!!Api , Vertauschen der Summationsreihenfolge und Zusammenfassen der
konjugiert komplexen Terme ist
!
1
m
X
ci 1 X 2u
O
C
(1.68)
X.j!/ D
!A u nD1 n2 C u2
i D1
Für juj > 0 kann die innere Summe berechnet werden:
XO .j!/ D
m
X
ci
coth u
!A
(1.69)
i D1
Macht man die Substitution rückgängig, ergibt sich
XO .j!/ D
12
m
X
ci T e j!T C e pi T
2 e j!T e pi T
i D1
(1.70)
1.4 Umwandlung zeitkontinuierlicher Signale in zeitdiskrete Signale
Setzt man noch ´ D e j!T so wird
m
X
ci ´ C e pi T
2 ´ e pi T
X.´/ D
(1.71)
i D1
Die ´-Transformierte des abgetasteten Signals ist also ebenfalls eine rationale Funktion.
1.4.4 Synchrone Punktabtastung korrelierter Rauschsignale
Gegeben sei ein Vektor x0 .t / von n kontinuierlichen, stochastischen Signalen mit der Korrelationsmatrix Rxx . /. Jede Komponente dieses Vektors werde nun der Punktabtastung unterworfen, sodaß
ein diskretes stochastisches Signal
x./ D x0 .T /
(1.72)
mit der zu bestimmenden Korrelationsmatrix
xx ./
entsteht. Zunächst gilt:
N
X
1
xi0 .nT /xk0 .nT C T /
N !1 1 C 2N
xi xk ./ D lim
(1.73)
nD N
Das Rauschsignal x 0 .t / sei stationär. Dann gilt für alle t :
xi xk ./
N
X
1
xi0 .nT C t /xk0 .nT C T C t /
N !1 1 C 2N
D lim
(1.74)
nD N
andererseits ist
1
Rxi xk . / D lim
T0 !1 2T0
ZT0
xi0 .t /xk0 .t C /dt
(1.75)
T0
Zerlegung in eine Summe von Integralen:
ZT =2
N
X
1
Rxi xk . / D lim
N !1 T .2N C 1/
nD N T =2
xi0 .nT C t /xk0 .nT C C t /dt
(1.76)
Für D T und Vertauschung der Reihenfolge von Integration und Summation ist:
Rxi xk .T / D
ZT =2
T =2
N
X
1
1
xi0 .nT C t /xk0 .nT C T C t /dt
lim
T N !1 2N C 1
(1.77)
nD N
oder
Rxi xk .T / D
ZT =2
1
T
xi xk ./
dt D
xi xk ./
(1.78)
T =2
13
1 Signale und Systeme
damit ist also
xx ./
(1.79)
D Rxx .T /
Die diskrete Kreuzkorrelationsmatrix entsteht durch Punktabtastung der kontinuierlichen Kreuzkorrelationsmatrix. Es ergeben sich die Transformierten
F
Z
Sxx .j!/I
Rxx . /
(1.80)
‰xx .´/
xx ./
und das diskrete Leistungsdichtespektrum
O xx .j!/ D ‰xx .e j!T /T
‰
Damit ist
O xx .j!/ D
‰
1
X
nD 1
(1.81)
(1.82)
Sxx .j.! C n!A //
1.4.5 Abgetastetes farbiges Rauschen
Das Leistungsdichtespektrum einer Rauschquelle sei
Syy .j!/ D
p12
p1
C !2
(1.83)
Partialbruchzerlegung:
1
Syy .j!/ D
2
Punktabtastung:
‰yy .´/ D A0
˚
1
1
C
p1 C j!
p1 j!
1
Syy .j!/ D
4
´Ce
´ e
p1 T
p1 T
´ C e p1 T
´ e p1 T
(1.84)
!
(1.85)
Nach einigen Vereinfachungen erhält man für das punktförmig abgetastete Signal
‰yy .´/ D
´2
´ sinh p1 T
2´ cosh p1 T C 1
(1.86)
1.5 Umwandlung zeitdiskreter Signale in zeitkontinuierliche
Signale
Es ist die Aufgabe des Impulsformers, aus einem zeitdiskreten Signal, nämlich der Zahlenfolge y./,
ein zeitkontinuierliches Signal y 0 .t / zu bilden. Dies geschieht durch eine Operation I:
y 0 .t / D Ify./g
14
(1.87)
1.5 Umwandlung zeitdiskreter Signale in zeitkontinuierliche Signale
Der Impulsformer I ist linear, wenn für alle Folgen y1 ./ und y2 ./ gilt:
Ify1 ./ C y2 ./g D Ify1 ./g C Ify2 ./g
(1.88)
Der Impulsformer ist zeitrasterinvariant wenn für alle gilt:
y 0 .t C T / D Ify. C /g
(1.89)
1.5.1 Der allgemeine lineare und zeitrasterinvariante Impulsformer
Die zeitkontinuierliche Funktion y 0 .t / wird durch eine Modellfunktion si0 .t / gebildet (Bild 1.10).
y./
❜
❜
✻
❜
❜
❜
❜
❜ 1
si0 .t/
❜
❜
✲ ✻
✲
t
T
✲
t
T
1
y 0 .t/
✻
1
Bild 1.10: Linearer Impulsformer
y 0 .t / D
1
X
y./si0 .t
(1.90)
T /
D 1
Das Spektrum von y 0 .t / ist
0
Y .j!/ D
Z1 X
1
y./si0 .t
T /e
j!t
dt
(1.91)
1 D 1
15
1 Signale und Systeme
nach Vertauschen der Reihenfolge von Summation und Integration und der Substitution D t T
ist
Z1
1
X
0
Y .j!/ D
y./
si0 . /e j!. CT / d (1.92)
D 1
und mit ´ D e j!T :
1
X
0
Y .j!/ D
Z
Mit y./
1
y./´
D 1
Z1
si0 . /e
j!
d
(1.93)
1
F
Y .´/ und si0 .t /
Si0 .j!/ ist
Y 0 .j!/ D Y .e j!T /Si0 .j!/
(1.94)
Es sei YO .j!/ D Y .e j!T /T das diskrete Spektrum von y./ Damit ist
1 O
Y .j!/Si0 .j!/
T
Y 0 .j!/ D
(1.95)
1.5.2 Der ideale Impulsformer
Der ideale Impulsformer sendet ı-Impulse aus:
si0 .t / D T ı.t /
(1.96)
Y 0 .j!/ D YO .j!/
(1.97)
Damit wird
1.5.3 Der Rechteck-Impulsformer
Hier ist (Bild 1.11)
si0 .t /
D
0 für
1 für
jt j > T =2
jt j < T =2
(1.98)
(1.99)
Das zugehörige Spektrum ist
Si0 .j!/
!T
D T si
2
und es ist
Y 0 .j!/ D YO .j!/si
16
!T
2
(1.100)
1.5 Umwandlung zeitdiskreter Signale in zeitkontinuierliche Signale
s 0 .t/
✻i
1
✲
1
t
T
Bild 1.11: Rechteckimpulsformer
1.5.4 Kausaler Rechteck-Impulsformer
Beim „kausalen“ Rechteck-Impulsformer ist (Bild 1.12)
0 für jt T =2j > T =2
si0 .t / D
1 für jt T =2j < T =2
(1.101)
s 0 .t/
✻i
1
✲
1
t
T
Bild 1.12: Kausaler Rechteckimpulsformer
Das Spektrum dieses Impulses ist
Si0 .j!/ D
1
e j!T
j!
(1.102)
Der (kausale) Rechteckimpulsformer überführt also eine Folge y./ in eine Treppenfunktion y 0 .t /
(Bild 1.13). Im Bild 1.14 ist das Symbol des kausalen Rechteckimpulsformers gezeigt.
y./ y 0 .t/
✻
❜
❜
❜
❜
❜
1
❜
❜
✲ ;
t
T
Bild 1.13: Treppenförmiges Ausgangssignal des Rechteckimpulsformers
17
1 Signale und Systeme
y./
Y .´/
❜
❜
❜
y 0 .t/
Y 0 .j!/
Bild 1.14: Symbol des Rechteckimpulsformers
1.6 Die Stufenübertragungsfunktion
Gesucht wird die zeitdiskrete Nachbildung eines kontinuierlichen Systems [3]. Dabei wird das kontinuierliche System von einer Treppenfunktion angeregt. Ein kausaler Rechteckimpulsformer wandelt
ein diskretes Signal x./ in das kontinuierliche Signal x 0 .t / um, womit das kontinuierliche System
H 0 .p/ gespeist wird. Dessen Ausgangssignal y 0 .t / wird punktförmig abgetastet, wobei das diskrete
Signal y./ entsteht (Bild 1.15). Das System H.´/ soll sich bezüglich der Eingangs- und Ausgangs-
x./
❜
X.´/
❜
❜
x 0 .t/
X 0 .j!/
H 0 .p/
y./
✄
❜ ❜ ❜
✂ ✁ Y .´/
y 0 .t/
Y 0 .j!/
x./
y./
H.´/
X.´/
Y .´/
Bild 1.15: Diskrete Nachbildung eines kontinuierlichen Systems
signale identisch verhalten. Der Impulsformer erzeugt ein Ausgangsspektrum
X 0 .j!/ D X.e j!T /
1
e j!T
j!
(1.103)
Am Ausgang des kontinuierlichen Systems entsteht ein Spektrum
Y 0 .j!/ D H 0 .j!/X.e j!T /
1
e j!T
j!
(1.104)
Nach der Punktabtastung wird
Mit ´ D e j!T ist also
˚
Y .e j!T / D A0 Y 0 .j!/
1
Y .´/ D A0 H 0 .j!/X.e j!T /
(1.105)
e j!T
j!
Wegen der Linearität und Zeitrasterinvarianz des Punktabtasters ist
0
1
j!T H .j!/
Y .´/ D .1 ´ /A0 X.e
/
j!
18
(1.106)
(1.107)
1.7 Systemanalyse
Aus demselben Grund und mit p D j! ist
Y .´/ D X.´/.1
´
1
1
/A0
/A0
H 0 .p/
p
(1.108)
die gesuchte Funktion H.´/ ist also
H.´/ D .1
´
H 0 .p/
p
(1.109)
Es sei nun H 0 .p/ in p rational und als Partialbruchentwicklung gegeben:
H 0 .p/ D
m
X
ci pi
p pi
(1.110)
i D1
Wegen
1
pi
1
D
p p pi
p pi
1
p
(1.111)
ist dann
H.´/ D .1
´
1
/A0
(m
X
i D1
ci
1
p
1
p
pi
)
(1.112)
Das abgetastete Spektrum läßt sich nach Gl. (67) und mit ´i D e pi T im ´-Bereich darstellen:
H.´/ D .1
´
1
/
m
X
ci ´ C ´i
2 ´ ´i
i D1
´C1
´ 1
(1.113)
oder umgeformt
m
X
˚
´i 1
H.´/ D S H 0 .p/ D
ci
´ ´i
(1.114)
i D1
H.´/ ist die Stufenübertragungsfunktion von H 0 .p/. Allgemein gilt
0
˚
H .p/
S H 0 .p/ D .1 ´ 1 /A0
p
(1.115)
1.7 Systemanalyse
Unter Analyse eines Systems wird hier dessen Beschreibung durch Differenzen- oder Differentialgleichungen oder die Angabe seiner Übertragungsfunktion(en) verstanden. Dabei können die inneren Signale miteinbezogen sein, mitunter genügt die Beschreibung des Verhaltens bezüglich der
äußeren Signale.
19
1 Signale und Systeme
1.7.1 Analyse linearer kontinuierlicher Systeme
Bei elektrischen Netzwerken können die bekannten Methoden wie Maschenstrom- oder Knotenspannungs-Analyse verwendet werden.
In der Regel kann ein lineares System durch Beschreibung des Verhaltens seiner Zustandsvariablen charakterisiert werden. Zustandsvariablen sind Energiespeicher mit integrierender Funktion,
wie Kondensatoren oder Induktivitäten.
Voraussetzung ist, daß im System ein Satz voneinander unabhängiger Zustandsvariablen s0 .t / gefunden werden kann (Bild 1.16).
x0 .t/
✲
y0 .t/
✲
statisches
Netzwerk
✻
0
✲
s .t/
1 R
T dt
Bild 1.16: Kontinuierliches System mit Zustandsvariablen
Dann ist mit den Matrizen A0 ; B0 ; C0 ; D0
S0 .p/ D
Y0 .p/ D
1
.S0 .p/A0 C X0 .p/C0 /
pT
S0 .p/B0 C X0 .p/D0
(1.116)
(1.117)
oder als Signalflußgraph, wie im Bild 1.17 gezeigt.
X0
r
C0
✲❡
✻
A0
D0
1 R
T dt
r
❡ Y
✲❄
B0
S0
0
Bild 1.17: Signalflußgraph des kontinuierlichen Systems
Die Zustandsgleichung kann nach S0 .p/ aufgelöst werden:
1 0
0
0 1 0
A
S .p/ D X C p1
T
T
20
1
(1.118)
1.7 Systemanalyse
schließlich Y0 berechnet werden.
1.7.2 Analyse diskreter Systeme
Neben dem direkten Anschreiben der Differenzengleichung kann auch hier die Zustandsvariablenform verwendet werden. Die Zustandsvariablen sind hier Verzögerer, die voneinander unabhängig
sein müssen (Bild 1.18).
x./
✲
y./
✲
statisches
Netzwerk
✻
s./
✲ ´
1
Bild 1.18: Diskretes System mit Zustandsvariablen
Hier ist mit den Matrizen A; B; C; D
S.´/
Y.´/
D
D
´ 1 .S.´/A C X.´/C/
S.´/B C X.´/D
(1.119)
(1.120)
oder als Signalflußgraph wie im Bild 1.19 gezeigt.
X
r
C
✲❡
✻
D
1
´
A
r
✲❄
❡ Y
B
S
Bild 1.19: Signalflußgraph des diskreten Systems
Die nach S.´/ aufgelöste Gleichung lautet:
S.´/ D X.´/´
1
C 1
´
1
A
1
(1.121)
21
1 Signale und Systeme
1.7.3 Kontinuierliche Systeme mit treppenförmigen Eingangssignalen
In Analogie zur Stufenübertragungsfunktion läßt sich auch die Signalflußdarstellung des kontinuierlichen Systems mit treppenförmigen Eingangssignalen durch ein diskretes System ersetzen. Dabei
gilt:
0
eA
B0
0
C0 .e A
D0
D
D
D
D
A
B
C
D
Hierbei ist
0
eA D1C
1/A0
1
A0 2
A0
C
C
1Š
2Š
(1.122)
(1.123)
(1.124)
(1.125)
(1.126)
und
A0
A0 2
C
C (1.127)
2Š
3Š
Die Reihen müssen nach einem geeigneten Konvergenzkriterium abgebrochen werden. Dieses Verfahren vermeidet die bei der Berechnung der Stufenübertragungsfunktion notwendige Nullstellenberechnung des Nennerpolynoms.
.e A
0
1/A0
1
D1C
Praktische Ausführung
Man beginnt mit der Berechnung der Matrizenfunktion
f.X/ D .e X
1/X
1
(1.128)
Um die Konvergenz bei der Reihenentwicklung zu verbessern, kann das Simulationsintervall auf das
2 n -fache verkleinert werden, d.h., es wird zunächst
f.2
n
X/
(1.129)
berechnet. Dann wird durch n-malige Anwendung der Rekursionsgleichung
1 2
Xf .X/ C f.X/
2
das Intervall n-mal verdoppelt. Schließlich wird die Exponentialfunktion gemäß
f.2X/ D
e X D Xf.X/ C 1
(1.130)
(1.131)
berechnet.
1.7.4 Auswertung der Übertragungsfunktion
Bei kontinuierlichen und diskreten Systemen muß häufig die Übertragungsfunktion ausgewertet werden, wobei der Betrag, die Phase, bzw. die Gruppenlaufzeit von H 0 .j!/ bzw H.´/ interessieren.
22
1.7 Systemanalyse
Betrag
Bei der Bestimmung des Betrags muß eine komplexwertige Funktion der Art F .jx/ mit reellem x
berechnet werden. Dabei ist bei kontinuerlichen Systemen
F .jx/ D H 0 .j!/I
(1.132)
xD!
Bei diskreten Systemen wählt man
F .jx/ D H.e j!T / D HQ
e j!T 1
e j!T C 1
!T
D HQ j tan
2
(1.133)
d. h., hier ist x D tan !T
. Falls F .jx/ eine in jx rationale Funktion ist, gilt stets
2
G.x 2 / D jF .jx/j2
(1.134)
Dabei ist G.y/ eine in y D x 2 rationale und reelle Funktion. Es sei mit u D jx
F .u/ D
m
P1
D0
m
P2
a1 u
(1.135)
a2
u
D0
und
G.y/ D
m1
P
D0
m2
P
b1 y (1.136)
b2 y D0
Dann gilt für i D 1; 2
min.;mi /
bi D ai2 C
Dabei gelte
P0
1
X
2. 1/ ai;
ai;C
(1.137)
D1
D 0.
Phase
Im kontinuierlichen Fall ist die Phase gegeben durch
'.!/ D I ln.H 0 .j!//
(1.138)
'.!/ D I ln.H.e j!T //
(1.139)
und im diskreten Fall
23
1 Signale und Systeme
Gruppenlaufzeit
Im kontinuierlichen Fall ist die Gruppenlaufzeit
ˇ
d
0
ˇ
d'.!/
dp H .p/ ˇ
.!/ D
DR
ˇ
d!
H 0 .p/ ˇ
(1.140)
pDj!
und im diskreten Fall
ˇ
d
´T d´
H.´/ ˇˇ
d'.!/
DR
.!/ D
ˇ
d!
H.´/ ˇ
(1.141)
´De j!T
1.8 Simulation von Systemen
1.8.1 Diskrete Systeme
Diskrete Systeme werden durch Angabe ihrer Zustandsgleichungen charaktersiert. Die Zustandsgleichungen sind Differenzengleichungen in Matrizenform. Bei bekannten Matrizen A, B, C, D können
diese Differenzengleichungen simuliert werden. Das folgende Fortran-Programm liest einen Eingangsvektor X ein und erzeugt einen Ausgangsvektor Y. Der Vektor der Zustandsvariablen S wird
bei jedem Aufruf neu berechnet. Die Matrizen und deren Dimensionen werden an das Programm als
Argumente übergeben.
SUBROUTINE STEP(X,Y,S,A,B,C,D,N,M,L)
DIMENSION X(N),S(M),Y(L),
*A(M,M),B(M,L),C(N,M),D(N,L)
CALL
CALL
CALL
CALL
END
M_MUL
M_MUL_ADD
M_MUL
M_MUL_ADD
(S,B,Y,M,L)
(X,D,Y,N,L)
(S,A,S,M,M)
(X,C,S,N,M)
Die Unterprogramme M_MUL und M_MUL_ADD führen Matrizenmultiplikation bzw. Multiplikation
und Addition durch. Bei der Simulation müssen die Datenfelder A, B, C und D in einer Initialisierungsphase belegt werden. Das Unterprogramm STEP wird anschließend in der Hauptsimulationsschleife einmal pro Simulationsschritt aufgerufen.
Falls nur das Eingangs- Ausgangsverhalten des Systems interessiert, kann die Funktion H(z) berechnet und durch Programmierung eines Digitalfilters simuliert werden:
SUBROUTINE D_FILTER(X,Y,A,B,S,N,K)
DOUBLE PRECISION A(0:*),B(0:*),S(0:*),U,V,SS
J=K
24
1.8 Simulation von Systemen
10
U=X
V=0
DO 10 I=1,N
J=J-1
IF(J.LT.0)J=N-1
V=V+S(J)*A(I)
U=U-S(J)*B(I)
CONTINUE
V=V+A(0)*U
S(J)=U
Y=V
K=J+1
RETURN
END
Dabei ist X das Eingangssignal, Y das Ausgangssignal, S der Vektor der Zustandsvariablen, A und B
die Zähler- und Nennerkoeffizienten, N der Filtergrad und K ein zyklisch umlaufender Zeiger. Durch
die zyklische Addressierung wird ein Umspeichern der Zustandsvariablen vermieden.
1.8.2 Kontinuierliche Systeme
Auch hier liefert die Analyse entweder eine Beschreibung im Zustandsraum oder die Übertragungsfunktion. Bei Ansteuerung mit rechteckförmigen Signalen können beide Formen durch eine äquivalente zeitdiskrete Form ersetzt werden. Diese Ersatzsysteme können wie gezeigt simuliert werden.
Bei nicht rechteckförmigen Eingangssignalen ist bei genügend feiner Abtastung eine approximative
Nachbildung möglich.
1.8.3 Gemischte Systeme
Hier ist folgende Vorgehensweise möglich:
1. Aufsuchen der Schnittstellen zwischen kontinuierlichen und diskreten Teilen (Abtaster und Impulsformer, bzw. AD- und DA-Wandler).
2. Transformieren der kontinuierlichen Teile in diskrete Ersatzformen.
3. Analyse des nun vollständig diskreten Systems.
4. Simulation des Systems nach einer der angegebenen Methoden.
25
1 Signale und Systeme
1.9 Beispiel
1.9.1 Zeitvariante SC-Schaltung
Gegeben sei die im Bild 1.20 gezeigte SC-Schaltung, die als integrierender Abtaster verwendet werden kann. Der (invertierende) Operationsverstärker ist nichtideal und wird beschrieben durch die
C1
r
❜
❜
X ❄ R1
❜
r
r
r
❜
❜
Verstärker: v; !g ; R3
Y
C2
Schalter: R4
❄
❜
Bild 1.20: Zeitvariante SC-Schaltung
Leerlaufverstärkung v, die Grenzfrequenz !g und den Ausgangswiderstand R3 . Die Schaltung kann
je nach Schalterstellung einen von zwei Zuständen annehmen. Der Durchlaßwiderstand des Schalters sei R4 .
1.9.2 Analyse der Schaltung
Zunächst Einführen einer Ersatzschaltung für den Verstärker. Dann Analyse der Schaltung in beiden
Zuständen. Die Zustandsvariablen sind die 3 Kondensatorspannungen. Für die beiden Schalterstellungen erhält man die im Bild 1.21 und Bild 1.22 dargestellten Schaltungsstrukturen. Das RC-Glied
S1
✛
r
❜
X ❄
❜
R1
C2
r
r
C1
1
R2
r v
r
R3
R4
Y
Zustand „1“
S2
❄
S3
❄
r
C3
Bild 1.21: Schaltung im ersten Zustand
26
❜
❄
❜
1.9 Beispiel
S1
✛
C1
1
R2
❜
r v
Zustand „2“
❜
R3
R1
S3
X ❄
❜
r
❄ C3
r
C2
r
r
r
R4
Y
S2
❄
❄
❜
Bild 1.22: Schaltung im zweiten Zustand
R2 C3 bestimmt die Grenzfrequenz des Operationsverstärkers: !g D R21C3 Zunächst bestimmt man
die Zustandsgleichungen für den zeitkontinuierlichen Fall in beiden Zuständen. Mit den Abkürzungen
t1
D
t2
D
t3
D
t4
D
t5
D
t6
D
t7
D
t8
D
t9
D
T
.R3 C R4 /C1
vT
.R3 C R4 /C1
T
.R3 C R4 /C2
vT
.R3 C R4 /C2
T
R1 C2
v!g TR4
R3 C R4
!g T
!g TR4
R3 C R4
!g TR3
R3 C R4
ergeben sich die Matrizen A01 ; B01 ; C01 ; D01 für den ersten und A02 ; B02 ; C02 ; D02 für den zweiten Zustand
gemäß den Gleichungen (1.116,1.117) zu
1
0
t1
t3
t8
A01 D @ t1 t3 t5 t8 C t7 A
t2
t4
t6 t7
0
1
0
0
t7
A02 D @ 0 t3 t5 t9 A
0
t4
t6
27
1 Signale und Systeme
B01
D
B02
D
1
!g T
1
!g T
C01
D01
D
D
t9
t9
t6
0 t9
t6
C02 D 0 t5
D02 D 0
0
Bei stufenförmigem Eingangssignal kann dieses kontinuierliche System durch ein äquivalentes diskretes System mit den Matrizen A1 ; B1 ; C1 ; D1 bzw. A2 ; B2 ; C2 ; D2 gemäß Gl. (1.122...1.125) für
die beiden Zustände ausgedrückt werden.
1.9.3 Aufbau des Simulationsprogramms
Der folgende Ausdruck zeigt den Aufbau eines Simulationsprogramms für die SC-Schaltung:
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION AA1(3,3),AA2(3,3),
*CC(3),S0(4),S1(3),S2(3),
*AL1(3,3),AL2(3,3),DU1(3,3),
*DU2(3,3),BB1(3),BB2(3)
COMMON /C_SC/R1,R2,R3,R4,
*C1,C2,C3,V
COMMON /MAT_SC/AA1,AA2,CC,
*BB1,BB2
COMMON /TIME/T
C
C
C
C
Eingabe des Simulationsintervalls
READ*,NN
T0=5.E-7/NN
C
C
C
C
Definition der
Bauteilewerte
R1=10.E3
R2=1.E6
R3=200.
R4=30.
C1=200.E-12
C2=200.E-12
C3=100.E-9
V=-3.7E6
C
C
C
Betrag des Eingangssignals
XIN=1.
C
C
C
C
Berechnung der
"kontinuierlichen" Matrizen
CALL SETUP_SC
C
C
C
C
Berechnung der
"diskreten" Matrizen
CALL MAT_TRANS
28
1.9 Beispiel
*
(AA1,DU1,AL1,DU2,3,T0)
CALL MAT_TRANS
*
(AA2,DU1,AL2,DU2,3,T0)
C
C
C
C
200
C
C
C
Beginn der Hauptsimulationsschleife
CONTINUE
3*NN Takte im Zustand "1"
DO 220 J=1,3*NN
C
C
C
Zustandsuebergang
CALL STEP_STATE
(S0,S1,AA1,CC,3,XIN)
CALL STEP_STATE
*
(S1,S2,AL1,CC,3,0.Q0)
DO 210 I=1,3
S0(I)=T0*S2(I)+S0(I)
*
210
C
C
C
C
Berechnung des
Ausgangssignals
CALL DOUT(S0,BB1,S0(4),3)
T=T+T0
C
C
C
Ausgabe
CALL DSPL(S0)
CONTINUE
220
C
C
C
2*NN Takte im Zustand "2"
DO 240 J=1,2*NN
C
C
C
Zustandsuebergang
CALL STEP_STATE
(S0,S1,AA2,CC,3,XIN)
CALL STEP_STATE
*
(S1,S2,AL2,CC,3,0.Q0)
DO 230 I=1,3
S0(I)=T0*S2(I)+S0(I)
*
230
C
C
C
C
Berechnung des
Ausgangssignals
*
C
C
C
240
CALL DOUT
(S0,BB2,S0(4),3)
T=T+T0
Ausgabe
CALL DSPL(S0)
CONTINUE
XIN=-XIN
GOTO 200
END
Berechnen der Matrizen während der Initialisierungsphase:
SUBROUTINE SETUP_SC
IMPLICIT REAL*8 (A-H,O-Z)
29
1 Signale und Systeme
*
DIMENSION AA1(3,3),AA2(3,3),
CC(3),BB1(3),BB2(3)
COMMON /C_SC/R1,R2,R3,R4,C1,C2,C3,V
COMMON /MAT_SC/AA1,AA2,CC,BB1,BB2
T=1./(R3+R4)
T1=-T/C1
T2=V*T/C1
T3=-T/C2
T4=V*T/C2
T5=1./(R1*C2)
T6=V*T*R4/(R2*C3)
T7=1./(R2*C3)
T8=-T*R4/(R2*C3)
T9=T*R3/(R2*C3)
AA1(1,1)=T1
AA1(1,2)=T1
AA1(1,3)=T2
AA1(2,1)=T3
AA1(2,2)=T3-T5
AA1(2,3)=T4
AA1(3,1)=T8
AA1(3,2)=T7+T8
AA1(3,3)=T6-T7
AA2(1,1)=0.
AA2(1,2)=0.
AA2(1,3)=0.
AA2(2,1)=0.
AA2(2,2)=T3-T5
AA2(2,3)=T4
AA2(3,1)=-T7
AA2(3,2)=T9
AA2(3,3)=T6
CC(1)=0.
CC(2)=T5
CC(3)=0.
BB1(1)=T*R3
BB1(2)=T*R3
BB1(3)=V*T*R4
BB2(1)=0.
BB2(2)=T*R3
BB2(3)=V*T*R4
RETURN
END
Bildung der zeitdiskreten Matrizen
1
15
30
SUBROUTINE MAT_TRANS(A,B,C,D,N,TT)
IMPLICIT REAL*8 (A-H,O-Z)
INTEGER BB,DD
DIMENSION A(N,N),B(N,N),C(N,N),D(N,N)
ISC=0
CONTINUE
CALL UNIT_D(B,N)
CALL UNIT_D(C,N)
K=1
K=K+1
T=TT/2**ISC
F=T/K
CALL MMULD(A,B,D,N,F)
CALL MCOPD(D,B,N)
CALL MADDD(C,B,C,N)
XB=ABSM_D(B,N)
XC=ABSM_D(C,N)
IF(XB.GT.10000) THEN
ISC=ISC+1
1.9 Beispiel
30
40
GOTO 1
ENDIF
IF(XB.LT.XC*1.D-12) GOTO 30
GOTO 15
CONTINUE
DO 40 I=1,ISC
CALL MMULD(A,C,D,N,0.5D0*T)
T=T*2.
CALL MADD1_D(D,N)
CALL MMULD(C,D,B,N,1.D0)
CALL MCOPD(B,C,N)
END
Berechnung der Zustandsübergänge
10
20
SUBROUTINE STEP_STATE(S0,S1,A,B,N,X)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION A(N,N),B(N),S0(N),S1(N)
DO 10 I=1,N
S1(I)=X*B(I)
DO 20 J=1,N
DO 20 I=1,N
S1(I)=S1(I)+S0(J)*A(I,J)
RETURN
END
Berechnung des Ausgangssignals
10
SUBROUTINE DOUT(S,C,Y,N)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION S(N),C(N)
Y=0.
DO 10 I=1,N
Y=Y+S(I)*C(I)
RETURN
END
Hilfsprogramme zur Matrizenmanipulation
10
20
5
10
SUBROUTINE UNIT_D(A,N)
REAL*8 A(N,N)
DO 10 I=1,N
DO 10 J=1,N
A(I,J)=0.
DO 20 I=1,N
A(I,I)=1.
END
SUBROUTINE MMULD(A,B,C,N,F)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION A(N,N),B(N,N),C(N,N)
DO 10 I=1,N
DO 10 J=1,N
X=0.
DO 5 K=1,N
X=X+A(I,K)*B(K,J)
C(I,J)=X*F
RETURN
END
SUBROUTINE MCOPD(A,B,N)
31
1 Signale und Systeme
10
10
10
10
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION A(N,N),B(N,N)
DO 10 I=1,N
DO 10 J=1,N
B(I,J)=A(I,J)
RETURN
END
SUBROUTINE MADDD(A,B,C,N)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION A(N,N),B(N,N),C(N,N)
DO 10 I=1,N
DO 10 J=1,N
C(I,J)=A(I,J)+B(I,J)
RETURN
END
SUBROUTINE MADD1_D(A,N)
REAL*8 A(N,N)
DO 10 I=1,N
A(I,I)=A(I,I)+1.
END
FUNCTION ABSM_D(A,N)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION A(N,N)
AM=0.
DO 10 I=1,N
DO 10 J=1,N
AX=ABS(A(I,J))
IF(AX.GT.AM)AM=AX
CONTINUE
ABSM_D=AM
END
.50
s1
-.50
s2
s3
y
.5
.0
-.5
2
0
-2
E-7
.5
.0
-.5
1
2
3
4
5
6
7
E-6
Bild 1.23: Ergebnis eines Simulationslaufs
Das Ergebnis eines Simulationslaufs mit diesen Programmen ist für NN=30 im Bild 1.23 dargestellt.
32
1.10 Übungsaufgaben zu Kapitel 1
1.10 Übungsaufgaben zu Kapitel 1
1. Leiten Sie eine den Gleichungen (1.33) und (1.34) entsprechende Gleichung für die mittlere
O
Leistung eines diskreten Signals her, wenn dessen diskretes Leistungsdichtespektrum ‰.j!/
gegeben ist (vgl. Gl. (1.81) und (1.82)).
2. Gegeben sei das im Bild 1.24 dargestellte Netzwerk, das als Multivariablensystem behandelt
werden soll. Geben Sie die Matrix H0 .j!/ der Übertragungsfunktionen nach Gl. (1.37) an!
❜
X10 .j!/
R1
❜
R2
X20 .j!/
❄ ❄
❜ ❜
r
r
r
C1
C2 0
Y2 .j!/
❜
❜
Y10 .j!/
❄ ❄
❜ ❜
Bild 1.24: RC-Netzwerk
Zur Vereinfachung der Rechnung wähle man
R1 D 2RI R2 D RI C1 D C I C2 D 2C:
3. Beim System von Aufgabe 2 werde der Eingang X10 .j!/ von einem weißen Rauschsignal mit
der Leistungsdichte 1V2 s gespeist, der Eingang X20 .j!/ sei kurzgeschlossen. Geben Sie die
Matrix der Kreuzleistungsdichtespektren Syy .j!/ nach Gl. (1.42) am Ausgang des Systems
an!
4. Die stochastischen Ausgangssignale des Systems nach Aufgabe 3 werden synchron durch
einen Punktabtaster abgetastet. Geben Sie die Hauptdiagonalelemente des hierbei entstehenO yy .j!/ unter Verwendung der Gl. (1.83)...(1.86)
den diskreten Leistungsdichtespektrums ‰
an. Dabei sei T D RC .
5. Zeigen Sie, daß der mit (1.52) und (1.53) definierte Abtaster linear und zeitinvariant ist.
6. Geben Sie eine Gleichung zur Beschreibung dieses Abtasters im Frequenzbereich an!
7. Ein zeitrasterinvarianter Abtaster A mit der Abtastzeit T erzeuge aus einem Signal x 0 .t / eine
Folge x./. Im Unterbereich sei der Zusammenhang beschrieben mit X.´/ D AfX 0 .j!/g.
Zeigen Sie, daß der folgende „Verschiebungssatz“ gültig ist:
˚
˚
A X 0 .j!/e j!nT D ´ n A X 0 .j!/
8. Ein Punktabtaster überführe X 0 .j!/ in X.´/, d.h. es gelte X.´/ D A0 fX 0 .j!/g. Zeigen Sie
allgemein die Gültigkeit der folgenden Regel:
dX.´/
dX 0 .j!/
T ´ D A0
d´
dj!
33
1 Signale und Systeme
9. Die Gleichungen (1.66) und (1.71) beschreiben den Abtastvorgang für rationales X 0 .p/ mit
einfachen Polen. Geben Sie eine entsprechende Vorschrift für doppelte Pole an. Dabei kann
das in der vorigen Aufgabe gewonnene Ergebnis benutzt werden.
10. Wie muß ein Impulsformer beschaffen sein, der das kontinuierliche Signal durch lineare Interpolation aus dem diskreten Signal erzeugt? Wie lautet dessen Beschreibung im Frequenzbereich?
11. Die Stufenübertragungsfunktion überführt ein kontinuierliches System in ein diskretes, wobei ein Rechteck-Impulsformer zugrundeliegt. Wie sehen die entsprechenden Ergebnisse bei
Anwendung des interpolierenden Impulsformers nach Aufgabe 10 aus?
12. Die Schaltung nach Aufgabe 2 werde mit treppenförmigen Eingangssignalen gespeist. Die
Ausgangssignale werden punktförmig abgetastet. Beschreiben Sie das System durch eine Matrix von Stufenübertragungsfunktionen!
13. Geben Sie die Schaltung für ein zeitdiskretes System an, das die Stufenübertragungsfunktionen der vorigen Aufgabe nachbildet.
14. Entwickeln Sie ein System von Rekursionsgleichungen, die dieses zeitdiskrete System beschreiben.
15. Zeigen Sie die Gültigkeit der Gl. (1.122)...(1.125), die den Übergang von einer kontinuierlichen zur entsprechenden diskreten Zustandsvariablenform beschreiben.
16. Bei der Umwandlung einer kontinuierlichen in eine diskrete Zustandsvariablenform tritt eine
Matrizenfunktion
f.X/ D .e X 1/X 1
nach Gl. (1.128) auf. Zeigen Sie die Gültigkeit der Gl. (1.130)!
17. Geben Sie ein Rechnerprogramm zur Umwandlung der Koeffizienten für F .j!/ in die Koeffizienten von G.y/ nach Gl. (1.134) an!
18. Gegeben sei die Übertragungsfunktion
H 0 .p/ D
1
a0 C a1 p C a2 p 2
Welche Gruppenlaufzeit .!/ gehört zu dieser Übertragungsfunktion?
19. Gegeben sei die Übertragungsfunktion
H.´/ D a0 C a1 ´
1
C a2 ´
2
Welche Gruppenlaufzeit .!/ gehört zu dieser Übertragungsfunktion?
20. Wie kann die Gruppenlaufzeit bei rationalen Übertragungsfunktionen berechnet werden?
34
2 Zahlendarstellung und Codierung
2.1 Festkommaarithmetik
Eine ausführliche Darstellung der binären Arithmetik ist in [4] enthalten. In der Regel ist die Zahlendarstellung in der Form
m
X
´D
ai ci
(2.1)
i Dn
möglich. Lediglich die Vorzeichen-Betragsdarstellung ist nicht in dieser Form möglich. Die ci sind
die Stellenwertigkeiten des Zahlensystems, die ai sind die Ziffern der Zahl ´. Häufig ist ci D b i . b
ist die Basis des Zahlensystems.
2.1.1 Binäre Kodierung
Bei der binären Kodierung kann jede Ziffer ai nur zwei Werte annehmen, d.h. es gilt ai 2 f0; 1g und
b D 2, d.h.:
m
X
´D
ai 2i
(2.2)
i Dn
Zur Veranschaulichung ist eine Darstellung als Kodierschema möglich. Für binäre Zahlen hat es die
im Bild 2.1 gezeigte Form. Die dargestellte Zahl lautet in binärer Schreibweise ´ D 001110:10. Die
m
n
i 5 4 3
ci 32 16 8
ai
2
1
0 -1 -2
4
2
1
X X X
1
0 X X
´D
0
0
1
1
1
4
X
X
1
1
2
0 r1
X
0
= 14,5
Bild 2.1: Kodierschema für binäre Zahlen
35
2 Zahlendarstellung und Codierung
binäre Kodierung gestattet die Darstellung positiver gebrochener Zahlen im Bereich
´ 2 Œ0 ; 2mC1
2n 
(2.3)
Um die Lage des Punktes, der den ganzzahligen Teil vom gebrochenen Teil trennt, zu definieren, ist
eine Formatangabe der Art m C 1: n üblich. Im Beispiel wäre das Format „6.2“.
2.1.2 Vorzeichen-Betrags-Darstellung
Hier wird einem in binärer Kodierung ausgedrückten Betrag j´j noch ein Vorzeichenbit v vorangestellt. Bei gesetztem Vorzeichenbit ist die Zahl negativ. Die Zahl -14,5 würde also im 6.2-Format als
´ D 101110:10 geschrieben.
2.1.3 Zweierkomplement-Kodierung
Hier gilt
ci D
2i
2m
für i 6D m
für i D m
(2.4)
i 2 Œn; m
(2.5)
und
ai 2 f0; 1gI
Das Kodierschema ist im Bild 2.2 gezeigt. Der Zahlenbereich der Zweierkomplementkodierung ist
m
n
i 5 4 3
ci -32 16 8
ai
2
1
0 -1 -2
4
2
1
1 X X
0
´D
1
1
4
X X
X X X
1
1
2
0
0
0
1 r1
X
0
D
14; 5
Bild 2.2: Kodierschema für Zweierkomplementzahlen
gegeben durch
´ 2 Œ 2m ; 2m
2n 
Die Zahl -14,5 wird im 6.2-Format als ´ D 110001:10 geschrieben.
36
(2.6)
2.1 Festkommaarithmetik
2.1.4 Binäres Zahlensystem mit negativer Basis
Hier ist die Basis b D
2 und es gilt
m
X
´D
i Dn
ai0 . 2/i I
ai0 2 f0; 1g
(2.7)
Die Zahl 14,5 wird hier also als ´ D 010011:10 kodiert (Bild 2.3). Durch Zusammenfassen von je
m
n
i 5 4 3 2 1 0 -1 -2
ci -32 16 -8 4 -2 1 1 1
2 4
1
ai0
X
0 X
´D
X X X
X X
0
1
0
0
1
1 r1
X
0
D 14; 5
Bild 2.3: Kodierschema für binäre Zahlen mit negativer Basis
zwei Bits erhält man eine neue Darstellung. Setzt man
n0
D
m0
D
ak00
ck00
n
2
m
(2.8)
1
(2.9)
2
0
a2k
k
D
D
0
2a2kC1
I
0
k D n ; :::; m
4
0
(2.10)
(2.11)
so ergibt sich ein vierstufiger Kode zur Basis 4 (Bild 2.5):
0
´D
m
X
kDn0
ak00 4k I
ak00 2 f 2; 1; 0; 1g
(2.12)
2.1.5 Umwandlung von binären Zahlen mit positiver Basis in Zahlen mit
negativer Basis
Beispiel:
37
2 Zahlendarstellung und Codierung
m0
n0
2
16 4
1
X
0
ak00
0
1
k
ck00
1
1
1
4
X
X
1
X
2
´D
1 r 2 D 14; 5
0
1
Bild 2.4: Kodierschema des 4-stufigen Kodes zur Basis 4
´
´0
´ D ´ C ´0
=
=
=
´
=
Komplementieren:
0
1
1
x
0
0
0
1
1
1
1
x
0
1
1
0
0
0
1
1
0
x
1
0.
0.
1.
1.
1
1
0
x
1
0
0
0
(Basis 2)
(Basis 2)
(Basis 2)
0
(Basis -2)
2.1.6 Vorzeichenbehaftete Kodes
Bei vorzeichenbehafteten Binärkodes ist
´D
m
X
i Dn
ai 2i I
(2.13)
ai 2 f 1; 0; 1g
2.1.7 Einfacher Booth-Kode
Hier drückt man ´ in der Form 2´ ´ aus, wobei die Subtraktion bitweise und übertragsfrei ausgeführt wird, sodaß sich negative Werte für die Ziffern ergeben (Bild 2.5):
´
2´
´
2´ ´
38
=
=
=
=
0
0
0
0
0
1
0
1
1
1
-1
0
1
1
-1
0
1
0
-1
-1
0.
1.
0.
1.
1
0
-1
-1
0
0
0
0
(Binär)
(Binär)
(Binär)
(Booth, einfach)
2.1 Festkommaarithmetik
m
n
i 5 4 3
ci 32 16 8
2
1
0 -1 -2
4
2
1
X
1
ai 0 X
X X
´D
0
0
1
0
1
4
X
X
X
1
1
2
X
1 1 r 1 0
D 14; 5
Bild 2.5: Kodierschema des einfachen Booth-Kodes
2.1.8 Erweiterter Booth-Kode
Der erweiterte Booth-Kode ist ebenfalls ein 3-stufiger Kode. Er wird gewonnen, indem man die
Ziffern des einfachen Booth-Kodes zu Zweiergruppen zusammenfaßt, und, falls dort die Ziffernpaare
1,-1 oder -1,1 auftreten, diese durch die gleichwertigen Paare 0,1 bzw. 0,-1 ersetzt. Der so gewonnene
Kode hat dann pro Ziffernpaar nur noch ein von Null verschiedenes Element. Beispiel für ´ D 14; 5:
einfacher Booth-Kode:
erweiterter Booth-Kode:
01
01
00
00
-1 1.
0 -1.
-1 0
-1 0
Auch hier kann man die Zweiergruppen zu einer Ziffer zusammenfassen und erhält dann einen 5stufigen Kode zur Basis 4 (Bild 2.6):
n0
D
m0
D
ak00
ck00
n
2
m
(2.14)
1
(2.15)
2
0
a2k
k
D
D
C
0
2a2kC1
I
0
k D n ; :::; m
0
4
(2.16)
(2.17)
mit
0
´D
m
X
kDn0
ak00 4k I
ak00 2 f 2; 1; 0; 1; 2g
(2.18)
Man kann die Ziffern ak0 des erweiterten Booth-Kodes und die Ziffern ak00 des daraus abgeleiteten
Basis-4-Kodes unter Anwendung einer Kodiertabelle direkt aus den Koeffizienten ak der binären
Darstellung gewinnen:
39
2 Zahlendarstellung und Codierung
m0
2
k
ck00
n0
1
16 4
0
1
1
4
1
2
1
ak00 0
X
X
X
1
X
2
´D
1
0
1 r 2 D 14; 5
Bild 2.6: Kodierschema des erweiterten Booth-Kodes
a2kC1
0
0
0
0
1
1
1
1
a2k
0
0
1
1
0
0
1
1
a2k
0
1
0
1
0
1
0
1
1
0
a2kC1
0
0
0
1
-1
0
0
0
0
a2k
0
1
1
0
0
-1
-1
0
ak00
0
1
1
2
-2
-1
-1
0
Beispiel für die Umwandlung nach Tabelle für ´ D 14; 5:
0 0 1 1 1 0. 1 0
Binär
Booth, erw. 0 1 0 0 0 -1. -1 0
0
-1.
Basis-4
1
-2
2.1.9 Der CSD-Kode
Die vorzeichenbehafteten Kodes sind i. a. nicht eindeutig. Eine eindeutige Darstellung erhält man,
wenn man fordert, daß jede von Null verschiedene Ziffer eine Null als Nachbarn hat, d. h.
´D
m
X
i Dn
ai0 2i I
ai0 2 f 1; 0; 1g
(2.19)
mit
aj0 aj0
40
1
D 0I
für
j D n C 1; :::m
(2.20)
2.2 Gleitkommaarithmetik
Der so erhaltene CSD-Kode (CSD=canonical signed digit) ist eindeutig, existiert für jede Zahl ´
und besitzt das Minimum an von Null verschiedenen Elementen. Man gewinnt diesen Kode, indem
man zunächst in binärer Schreibweise zur Zahl ´ die um eine Stelle nach rechts geschobene Zahl 21 ´
addiert und anschließend bitweise ohne Übertrag wieder subtrahiert:
´
1
2´
´ C 21 ´
1
2´
´
=
=
=
=
=
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
-1
0
1
1
0
-1
-1
0.
1.
1.
-1.
0.
1
0
1
0
1
0
1
1
-1
0
(Binär)
(Binär)
(Binär)
(CSD)
Ähnlich wie beim Booth-Kode erhält man durch Zusammenfassen zweier benachbarter Elemente
wieder einen 5-stufigen Kode zur Basis 4. Das Kodierschema für ´ D 14; 5 ist im Bild 2.7 zu sehen.
m0
k
ck00
n0
1
0
16 4
1
2
1
1
4
X
2
1
ak00 0
X
X
1
X
2
´D
1
0
2r2
D 14; 5
Bild 2.7: Kodierschema des CSD-Kodes
2.2 Gleitkommaarithmetik
Eine Gleitkommazahl wird in der Regel in der folgenden Form dargestellt:
´ D 2e m
(2.21)
wobei der Exponent e eine ganze Zahl und die Mantisse (oder Signifikand) m eine gebrochene Zahl
in Festkommadarstellung sind.
Für e und m sind verschiedene Kodierungen und Aufteilungen der Bitfelder üblich.
Die Norm ANSI/IEEE-754 hat einen Standard festgelegt.
41
2 Zahlendarstellung und Codierung
2.2.1 Mantisse in Vorzeichen-Betragsdarstellung
Die Mantisse m wird als Produkt eines Vorzeichens v und des Betrags m0 D jmj in binärer Kodierung dargestellt. Das Vorzeichen v wird durch ein Bit kodiert. Die Mantisse heißt normiert, wenn
m0 D jmj 2 Œ0; 5I 1/
(2.22)
erfüllt ist. Durch geeignete Wahl des Exponenten e ist die Darstellung einer Gleitkommazahl ´ in
der Regel durch eine normierte Mantisse möglich. Beim Überschreiten des Zahlenbereichs von e
und für ´ D 0 ist die normierte Darstellung jedoch nicht möglich.
2.2.2 Exponent in Zweierkomplement-Darstellung
Der Exponent wird in Zweierkomplement-Darstellung ausgedrückt. Die Zahl ´ wird dann beispielsweise folgendermaßen kodiert:
´ D vjejm0 D 0j1100j:1010000 D 1 2
4
0; 625 D 0; 0390625
Im normierten Fall ist das MSB von m0 , d.h., das Bit mit der Wertigkeit 0,5 immer gesetzt, und kann
deshalb unterdrückt werden. Man kodiert also nicht m0 sondern m00 D m0 0:5. Es gilt:
´ D v 2e .m00 C 0; 5/
(2.23)
Bei dieser Darstellung ist die Zahl ´ D 0 nicht mehr darstellbar.
2.2.3 Exponent in Exzess-Kodierung
Man kann den Exponenten in der Form
e D e0
(2.24)
ausdrücken, wobei ein fester Wert ist, und e 0 eine positive Zahl ist, die binär kodiert wird. Dann ist
´ D v 2e
0
.m00 C 0; 5/
(2.25)
Beispiel mit D 8 W
´ D vje 0 jm00 D 0j0100j010000 D 1 24
8
.0:5 C 0:125/ D 0; 0390625
Auch hier ist die Zahl ´ D 0 nicht mehr darstellbar. Man kann für diesen Fall jedoch einen bestimmten Kode reservieren, beispielsweise e 0 D 0I m00 D 0.
42
2.3 Übungsaufgaben zu Kapitel 2
2.3 Übungsaufgaben zu Kapitel 2
21. Zeigen Sie die Gültigkeit der Gl. (2.3) und (2.6) für den Zahlenbereich der binären bzw. Zweierkomplement-Kodierung!
22. Geben Sie den Zahlenbereich der binären Kodierung mit negativer Basis gemäß Gl. (2.7) an!
23. Leiten Sie die Gl. (2.8...2.11) zur Erzeugung des Basis-4-Kodes her!
24. Erklären Sie, warum das im Manuskript angebene Verfahren zur Umwandlung von Binärkodes
mit positiver in solche mit negativer Basis richtig ist!
25. Leiten Sie die Umwandlungstabelle für den erweiterten Booth-Kode her!
26. Warum erzeugt das in 2.1.9 angegebene Verfahren den CSD-Kode?
43
2 Zahlendarstellung und Codierung
44
3 Schaltungstechnische Realisierung der
Rechenfunktionen
Digitale Signalverarbeitung kann realisiert werden durch festverdrahtete oder programmierbare bzw.
programmierte Bausteine.
Die programmierbare Lösung basiert auf Signalprozessoren. Architektur und Programmierung von
Signalprozessoren wird im nächsten Abschnitt behandelt.
Bei Hochgeschwindigkeitsanwendungen (Bildverarbeitung, breitbandige Regler) ist oft nur die festverdrahtete Lösung möglich.
Praktische Realisierung durch kundenspezifische integrierte Schaltungen (Gate-Arrays, Standardzellen).
Entwurfshilfsmittel stehen für das Design auf verschiedenen Abstraktionsebenen zur Verfügung:
Transistorebene
Gatterebene
Datenpfad-Ebene
Die Entwicklungssysteme enthalten leistungsfähige Werkzeuge zum weitgehend automatischen Entwurf wie Datenpfad-Compiler, Simulatoren für verschiedene Entwurfsebenen. Es stehen Bibliotheken mit komplexen Makros zur Verfügung wie:
Gatter, Multiplexer, Selektoren usw.
Register, Speicher, Schiebewerke, Bustreiber usw.
Addierer, Multiplizierwerke, Zähler usw.
Es existiert eine Beschreibungssprache für die Hardware-Struktur solcher Systeme (VHDL).
Die folgenden Unterabschnitte zeigen den prinzipiellen Aufbau einiger Grundfunktionen in CMOSTechnik.
45
3 Rechenschaltungen
3.1 Die logischen Funktionen
Die arithmetischen Funktionen beruhen auf logischen Schaltungen (kombinatorische Netzwerke) die
meist als Gatteranordnungen dargestellt werden. Die Gatter selbst bestehen aus CMOS-Transistoren,
d.h. aus selbstsperrenden n-Kanal und p-Kanal Feldeffekt-Transistoren.
Die üblicherweise verwendeten Gatterfunktionen sind in der im Bild 3.1 gezeigten Aufstellung zusammengefaßt. Wie diese Funktionen durch Transistorschaltungen ausgebildet werden, ist in den
a
a
1
1
b
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
yand D a ^ b
b
a
yor D a _ b
b
a
b
a
b
0
✌
☞
r
ynand D a ^ b
✌
☞
a
a
0
☞
r
ynot D a
✌
☞
b
b
a
˚
✌
☞
r
ynor D a _ b
✌
☞
yexor D a ˚ b
✌
☞
˚r
yex nor D a ˚ b
✌
Bild 3.1: Symbol und Wahrheitstabelle üblicher Gatter
folgenden Bildern zu sehen. Zur Vereinfachung der Darstellung werden für die Transistoren besondere Symbole eingeführ (Bild 3.2). Der p-Kanal-Transistor leitet bei negativ vorgespanntem Gate,
der n-Kanal-Transistor leitet bei positiver Gate-Spannung. Die Inverterfunktion (Bild 3.3) wird durch
zwei Transistoren verwirklicht. Bei positiver Eingangsspannung (1) leitet der n-Kanal-Transistor und
verbindet den Ausgang mit Masse (0), bei negativem Eingangspegel (0) leitet der p-Kanal-Transistor
und verbindet den Ausgang mit der Betriebsspannung (1). Die Realisierung der NAND- und NORFunktion erfordert Serien- und Parallelschaltung von Transistoren (Bild 3.4). Dasselbe gilt für die
Realisierung der XOR-Funktion (Bild 3.5). Häufig werden Selektoren verwendet, die abhängig von
einem Steuersignal c einen von den beiden Eingängen a oder b auswählen und auf den Ausgang y
46
3.2 Addition binärer Zahlen
c
P-Kanal-MOSFET
a
c
✎☞
✍✌
P
a
b
N-Kanal-MOSFET
a
b
c
c
N
a
b
b
Bild 3.2: Symbole für Feldeffekttransistoren
1
a
☞
r y
✌
a
r
r
0
1
✎☞
P
a
y
N
✍✌
r
y
a
0
Bild 3.3: Inverter
schalten (Bild 3.6).
3.2 Addition binärer Zahlen
Die Addition binärer Zahlen erfolgt i. a. ziffernweise unter Berücksichtigung eines Übertrags von
rechts. Für jede Stellenwertigkeit wird neben dem Summenbit s ein Übertrag c 0 für die nächste Stelle
erzeugt.
3.2.1 Volladdierer in CMOS-Technik
Der Volladdierer berechnet für jede Stelle der Binärzahl das Summenbit s und das Übertragsbit c 0
aus den Eingangsbits a b und c gemäß der Gleichung
s
c
0
D
D
D
.aN ^ bN ^ c/ _ .aN ^ b ^ c/
N _ .a ^ bN ^ c/
N _ .a ^ b ^ c/
a˚b˚c
.a ^ b/ _ .a ^ c/ _ .b ^ c/
(3.1)
(3.2)
47
3 Rechenschaltungen
1
☞
r
a
✌
b
1
✎☞ ✎☞
b
✍✌ ✍✌
r r
y
a
y
a
„NAND“
b
0
1
☞
r
a
✌
b
✎☞
✍✌
✎☞
a
„NOR“
y
a
b
✍✌
r r
y
b
0
0
Bild 3.4: NAND- und NOR-Funktion
1
✎☞
✎☞
b
✍✌
r
✍✌
r
b
✍✌
✍✌
a
r ✲ b✛ r
✎☞
✎☞
a
a
b
˚
✏
✑
1
y
„XOR“
a
y
r
a
a
b
b
0
0
0
b
Bild 3.5: XOR-Gatter
Wahrheitstabelle und Symbol für den Volladdierer gehen aus dem Bild 3.7 hervor. Im folgenden
werden einige Realisierungen der logischen Netzwerke für Summenbit und Übertragsbit als vonein-
48
3.2 Addition binärer Zahlen
„Selektor“
r
a
c
a
0
b
1
y
r
b
✎☞
✍✌
c
c
✎☞
✍✌
c
r
☞☞
r r y
✌✌
r
r
c
☞
r ✲ c
✌
c
Bild 3.6: Selektor
a
b
c
c0
s
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
a
c
b
c0
s
Bild 3.7: Wahrheitstabelle und Symbol für den Volladdierer
ander getrennte Schaltungen und als Netzwerke mit gemeinsamen Schaltungsteilen vorgestellt.
Kombinatorische Netwerke für das Summenbit
Aus dem oberen Teil der logischen Gleichung für das Summenbit läßt sich die nur aus NANDGattern bestehende Schaltung ableiten (Bild 3.8). Wenn die Gatter wie beschrieben mit CMOSTransistoren aufgebaut werden, ist der Gesamtaufwand 38 Transistoren.
Man kann auch den zweiten Teil der logischen Gleichung umsetzen und erhält dann eine Schaltung
mit XOR-Gattern (Bild 3.9). Verwendet man die oben vorgestellten XOR-Gatter, dann benötigt die
Schaltung 18 Transistoren.
49
3 Rechenschaltungen
a
b
c
r
r
r
☞
r
☞
r r
✌
r
☞
r r
✌
r
☞
r r
✌
r
✌
☞
r
☞
r
✌
✌
☞
✌
☞
r
s
r
✌
Bild 3.8: Schaltnetz für Summenbit
a
b
c
˚
✜
✢ ˚
✜
✢
s
Bild 3.9: Alternatives Netzwerk für die Summe
Kombinatorische Netzwerke für den Übertrag
Aus der logischen Gleichung für den Übertrag läßt sich direkt die Schaltung im Bild 3.10 ableiten.
Bei Verwendung von CMOS-Gattern beträgt der Aufwand 18 Transistoren.
Eine Schaltung mit geringerem Aufwand ergibt sich, wenn man das Komplement des Übertrags erzeugt. Das Bild 3.11 zeigt eine Realisierung als CMOS-Verbundgatter. Eine weitere Möglichkeit
ist die Realisierung als Brückenschaltung mit demselben Aufwand (Bild 3.12). Die Komplementierung kann durch einen Inverter rückgängig gemacht werden. Dann benötigen die beiden letzten
Schaltungen 12 Transistoren.
Netzwerke für Summe und Übertrag mit gemeinsamen Schaltungsteilen
Baut man einen kompletten Volladdierer mit den oben gezeigten Schaltungen auf, dann beträgt der
Aufwand im günstigsten Fall 30 Transistoren, bei Verwendung regulärer Gatter sogar 56 Transistoren. Einsparungen sind möglich durch Verwendung gemeinsamer Teile.
50
3.2 Addition binärer Zahlen
☞
r
r
a
b
c
r
r
✌
☞ ☞
r
r
✌ ✌
☞
c0
r
✌
Bild 3.10: Kombinatorisches Netzwerk für den Übertrag
1
1
1
✎☞ ✎☞ ✎☞
b
✍✌
✍✌ ✍✌
r
✎☞
✎☞
a
a
✍✌
r
c
c
a
0
r
b
✍✌
r
c0
b
b
a
0
0
Bild 3.11: Verbundgatter für den Übertrag
Man kann die Wahrheitstabelle des Volladdierers folgendermaßen interpretieren:
Wenn a und b gleich sind, ist c 0 D a D b
Wenn a und b verschieden sind, ist c 0 D c
Daraus läßt sich das Konzept des im Bild 3.13 gezeigten Addierers mit geschaltetem Übertrag ableiten. Das Summenbit wird wieder mit zwei XOR-Gattern bestimmt. Der Ausgang des ersten Gatters
zeigt gerade die obige Bedingung an. Ein Selektor wählt, abhängig von der genannten Bedingung,
die richtige Quelle für c 0 aus. Verwendet man die angebenen Gatter und den angebenen Selektor,
dann benötigt dieser Volladdierer 26 Transistoren.
Mit 24 Transistoren kommt die Schaltung mit Verbundgattern im Bild 3.14 aus, die allerdings das
51
3 Rechenschaltungen
1
1
✎☞
✎☞
b
✍✌
r
✍✌
r
b
✍✌
✍✌
✎☞
r
r
c
✍✌
✎☞
✎☞
a
a
a
b
r
c0
r
c
a
b
0
0
Bild 3.12: Brückenschaltung für den Übertrag
a
b
c
r
˚
r
✜
r
✢ ˚
1
0
✜
✢
s
c0
Bild 3.13: Volladdierer mit geschaltetem Übertrag
Komplement von s und c 0 liefert.
Als weitere Variante ist eine Brückenschaltung mit 20 Transistoren möglich (Bild 3.15).
In der Literatur sind Anordungen mit nur bis zu 16 Transistoren beschrieben.
Nicht nur der Aufwand sondern auch das dynamische Verhalten und der sogenannte fan-out spielen
eine Rolle bei der Schaltungsauswahl.
52
3.2 Addition binärer Zahlen
1
1
1
1
1
1
✎☞
1
✎☞ ✎☞ ✎☞ ✎☞ ✎☞ ✎☞ ✍✌
✎☞
a
a
c
a
b
b
✍✌ ✍✌
✍✌ ✍✌ ✍✌
✍✌ b
✍✌
r
r
✎☞
✎☞
✎☞
✎☞
✍✌
r
c
c
r
a
b
✍✌
r
c0
b
a
c
✍✌
r
✍✌
r
s
c
0
c
c0
r
b
b
a
a
b
c
0
0
0
0
0
a
0
0
Bild 3.14: Volladdierer mit Verbundgattern
1
1
1
1
✎☞
✎☞
✎☞
✎☞
b
✍✌
r
✍✌
r
✍✌
r
c
✍✌
r
c
✍✌
✍✌
✎☞
r
r
b
✍✌
✎☞
✎☞
b
✍✌
✍✌
✎☞
r
r
c
✍✌
✎☞
✎☞
a
b
r
c
0
a
a
r
c
c0
c
r
b
a
0
s
c0
r
a
b
c0
a
0
0
0
0
Bild 3.15: Volladdierer mit Brückenschaltung
3.2.2 Addierwerke mit seriellem Übertrag
Bei der Addition binärer Zahlen wird für jede Stelle ein Volladdierer benötigt. Verwendet man
als Eingangsübertrag der laufenden Stelle den Ausgangsübertrag der vorhergehenden Stelle, dann
spricht man von einem seriellen Addierwerk (Bild 3.16). Da sich die Durchlaufverzögerungszeiten
53
3 Rechenschaltungen
für die Überträge addieren, kommt es zu relativ großen Additionszeiten, insbesondere bei großen
Wortlängen. Man kann sich den Additionsvorgang auch „vektoriell“, d.h., auf die ganze Binärzahl
a2 b2
c20
a
c0
a1 b1
b sc
s2
a
a
c0
a
c0
a0 b0
b sc
a
c0
b sc
s1
c0
s0
b
a
b
b sc
a
s b
1
s
s
Bild 3.16: Addierwerk mit seriellem Übertrag
angewandt, vorstellen. Die entsprechende Darstellung ist im Bild 3.16 unten links zu sehen. Das
Weiterreichen des Übertrags an die höherwertigere Stelle ist durch eine Schiebeoperation angedeutet. Das Symbol für ein Addierwerk ohne die Darstellung der inneren Überträge ist unten rechts zu
sehen.
3.2.3 Addierwerke mit parallelem Übertrag
Den Nachteil der großen Additionszeiten umgeht das Konzept des Addierwerks mit parallelem
Übertrag, bzw. mit Übertragsvorbestimmung. Ein eigenes logisches Netzwerk berechnet aus den
Eingangssummanden alle Überträge bzw. die Überträge für Gruppen von Addieren (Siehe Übungsaufgabe).
3.2.4 Mehrfachaddierer
In der Signalverarbeitung muß häufig die Summe mehrerer Terme berechnet werden. Auch die
Multiplikation wird auf die Summe vieler Einzelterme zurückgeführt. Legt man auf eine geringe
Gesamtlaufzeit Wert, kommen parallel arbeitende Mehrfachaddierer mit Baumstruktur in Betracht
(Bild 3.17). Die Einzelelemente sind hier binäre Addierwerke mit seriellem Übertag bzw. Übertragsvorbestimmung. Man kann aber auch Arrays von Volladdierern verwenden, die ihren Übertrag
54
3.3 Schiebewerke für binäre Zahlen
a1 a2 a3 a4 a5 a6 a7 a8
a
s b
a
a
s b
a
s b
a
s b
a
a
s b
s b
s b
s
Bild 3.17: Mehrfachaddierer als binärer Baum
an die nächste Ebene weiterleiten (Carry-Save-Prinzip). Jede Ebene reduziert die Summandenzahl
hier maximal um 23 . In der letzten Ebene ist wieder eine normale binäre Addition notwendig. Der
gezeigte Addiererbaum (Bild 3.18) ist auch unter dem Namen Wallace tree bekannt.
3.2.5 Akkumulierwerke
Eine besondere Art von Mehrfachaddierern sind die Akkumulierwerke, bei denen die Summe (zeitlich) seriell in einem Register (Akkumulator) aufgebaut wird (Bild 3.19). Auch hier sind die Varianten mit dem normalen binären Addierer und das Carry-Save-Prinzip möglich.
3.3 Schiebewerke für binäre Zahlen
Schiebewerke sind für den Aufbau von Multiplizierern und in der Signalverarbeitung zur Realisierung von Koeffizienten von Bedeutung. Es gibt fest eingestellte und einstellbare Schiebewerke. Fest
eingestellte Schiebewerke bestehen einfach aus entsprechend verdrahteten Bitleitungen (Bild 3.20).
Bei Zweierkomplementzahlen ist die korrekte Behandlung des Vorzeichenbits zu beachten. Einstellbare Parallelschiebewerke bestehen aus durch Selektoren auswählbaren fest eingestellten Verschiebern (Barrel-Shifter) (Bild 3.21). Soll eine große Zahl verschiedener Schiebepositionen möglich
sein, wird der Schaltungsaufwand des Barrel-Shifters groß. Mit weniger Bauteilen kommt das binär
gestaffelte Schiebewerk aus (Bild 3.22).
55
3 Rechenschaltungen
a1 a2 a3 a4 a5 a6 a7 a8 a9
a
b sc
c0
a
c0
1
a
b sc
a
c0
1
1
b sc
c0
a
1
a
b sc
c0
b sc
1
b sc
c0
1
a
c0
b sc
1
a
s b
s
Bild 3.18: Wallace tree
3.4 Prioritätsenkoder
Der Prioritätsenkoder findet bei einem gegebenen Bitmuster der Länge L die Position p der ersten „1“ (von links oder rechts gesucht). Anwendung: Normierung von Gleitkommazahlen, serielle
Multiplikation, parallele AD-Wandlung. Beispiel:
x D 00010101
Hier ist L D 8 und p D 3 (von links). Falls alle Elemente von x gleich Null sind, ist p D L. Falls
alle Elemente von x gleich Eins sind, ist p D 0. Im folgenden sei L eine Zweierpotenz mit
L D 2k
1
(3.3)
Dann läßt sich p als binäre Zahl mit k Stellen angeben. Es seien zwei Bitmuster xa und xb der Länge
L mit den Positionen der ersten „1“ an den Stellen pa und pb gegeben.
Die Zahlen pa und pb bestehen aus k Binärstellen. Zerlegt man sie in das führende Bit und den Rest,
dann ist
pa D pa;k 1 jpa0 I pb D pb;k 1 jpb0
56
3.4 Prioritätsenkoder
a
a
a
b sc
c0
a
s b
R
1
R
s
a
s b
s
Bild 3.19: Akkumulierwerk
x
y D x2k
k
y
Bild 3.20: Fest verdrahtetes Schiebewerk
Setzt man die beiden Muster xa und xb zu einem neuen Muster
x D xa jxb
der Länge 2L zusammen, dann läßt sich die Position p der ersten „1“ mit k C 1 Binärstellen ausdrücken. Zerlegt man diese Zahl in die beiden führenden Bits und den Rest, dann ist
p D pk jpk
1 jp
00
Die Zahl p läßt sich nun aus pa und pb nach der folgenden Tabelle bestimmen:
pa;k
0
1
1
1
pa0
u
0
0
pb;k
v
0
1
1
pb0
w
w
0
pk
0
0
1
pk
0
1
0
1
p 00
u
w
0
(1)
(2)
(3)
57
3 Rechenschaltungen
x
1
0
2
3
0
1
1
s0
0
s1
1
y
Bild 3.21: Einstellbares Schiebewerk
x
1
0
s0
1
2
0
s1
1
4
0
s2
1
y
Bild 3.22: Binär gestaffeltes Schiebewerk
In Zeile (1) ist die gesuchte „1“ im Muster xa , d.h. es gilt p D pa . In Zeile (2) ist die gesuchte „1“
im Muster xb , d.h. es ist p D pb C L. In Zeile (3) gibt es keine „1“, d.h. es ist p D 2L. Als logische
Funktion ausgedrückt ist
pk
pk
58
1
D
D
pa;k
pa;k
^ pb;k
1 ^ pb;k
1
1
1
(3.4)
(3.5)
3.5 Normierwerke
p
00
D
für
für
pa0
pb0
pa;k
pa;k
1
1
D0
D1
(3.6)
Aus dieser Funktion des Zusammenfassens von zwei Bitmustern läßt sich die Schaltung im Bild
3.23 für einen „Expander“ eines Prioritätsenkoders ableiten. Ein vollständiger Enkoder wird durch
pa;k
1
pb;k
1
✟
r
✠
r
✟
r
✠
r
pa0
✟
pk
r
✠
✟
pk 1
r
✠
r
0
p 00
1
pb0
Bild 3.23: Expander für Prioritätsenkoder
eine baumartige Struktur von Expandern aufgebaut (Bild 3.24). Die Expander der obersten Ebene
sind einfache Inverter.
x7
1
x6
x5
1
x4
1
x3
1
1
x2
x1
1
x0
1
1
✡r ✠✡r ✠✡r ✠✡r ✠✡r ✠✡r ✠✡r ✠✡r ✠
1
1
1
1
1
1
1
1
Expander Expander Expander Expander
2
Expander
2
2
2
Expander
3
3
Expander
p
4
Bild 3.24: Vollständiger Prioritätsenkoder
3.5 Normierwerke
Bei Gleitkommaoperationen muß häufig eine Mantisse m in die normierte Form
jmj 2 Œ0; 5I 1/
59
3 Rechenschaltungen
gebracht werden, bei der das führende Bit gleich „1“ ist. Hierzu wird gemäß (Bild 3.25) durch einen
Prioritätsenkoder die Zahl nN der führenden Nullen bestimmt, die dann durch ein Schiebewerk „herausgeschoben“ werden. nN ist auch der Wert, um den der Exponent der Gleitkommazahl verkleinert
werden muß. Eine weitere Möglichkeit mit geringerem Aufwand ist das binär gestaffelte Normierjmj
Prioritätsenkoder
nN
rn
r
nN
❄
❄
Bild 3.25: Normierwerk mit Prioritätsenkoder
werk nach Bild 3.26, das außerdem schneller arbeitet.
✡ r
r
✡ r
r
✡ r
r
✠
✠
✠
r
r
r
r
0=4
r
r
0=2
r
0=1
Bild 3.26: Binär gestaffeltes Normierwerk
3.6 Multiplizierer
Es soll die Multiplikation zweier Zahlen x und ´ durchgeführt werden:
y D´x
60
(3.7)
3.6 Multiplizierer
Dabei sei z in einer der bekannten Kodierungen gegeben:
´D
m
X
ai b i
i Dn
(b=Basis der Zahlendarstellung). Dann ist
yD
m
X
ai b i x
(3.8)
i Dn
Die in Betracht kommenden Kodes sind neben dem Binärkode mit b D 2 Basis-4-Kodes (b D 4)
die aus dem Basis-(-2)-, CSD- und dem Booth-Kode abgeleitet sind:
Binär
Basis-(-2)
CSD
Booth
2
4
4
4
f0; 1g
f 2; 1; 0; 1g
f 2; 1; 0; 1; 2g
f 2; 1; 0; 1; 2g
3.6.1 Kodewandler
Die Umsetzung des Binärkodes in die daraus abgeleiteten Kodierungen erfolgt durch parallele oder
serielle Kodewandler. Ein paralleler Wandler ist gemäß Bild 3.27 aus einzelnen Blöcken zusammengesetzt. Ein serieller Wandler besteht aus einem einzigen Block, einem Schieberegister und
a5
r
✛
c6
a4
a3
a2
r
a1
a0
r
0
CodeCodeCodewandler- ✛ wandler- ✛ wandler- ✛ 0
Block c4
Block c2
Block c0
a200
a100
a000
Bild 3.27: Schema eines parallelen Kodewandlers
einem Zwischenspeicher für ein Bit (Bild 3.28). Aus den im 2. Kapitel beschriebenen Umwandlungsverfahren für die verschiedenen Kodierungen lassen sich die folgenden Wahrheitstabellen für
den Kodewandler ableiten:
Basis-(-2):
61
3 Rechenschaltungen
´
!2
ci C2
Takt
c
✛i
CWB
✲ C
ak00 I
k D 2i
Bild 3.28: Serieller Kodewandler
ai C1
0
0
0
0
1
1
1
1
ai C2
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
62
ai
0
0
1
1
0
0
1
1
ai C1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
ci
0
1
0
1
0
1
0
1
ak00
0
-1
-1
-2
-2
1
1
0
CSD:
ai ci
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
ci C2
0
0
0
0
0
1
1
1
ak00
0
1
2
1
2
-1
0
-1
0
1
-2
1
-2
-1
0
-1
ci C2
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
3.6 Multiplizierer
Die Wahrheitstabelle für den Booth-Kode ist im 2. Kapitel hergeleitet worden.
3.6.2 Serielle Multiplizierwerke
Das durch eine Summe
yD
m
X
ai b i x
i Dn
ausgedrückte Produkt läßt sich durch einen seriellen Mehrfachaddierer entwickeln. Dabei gibt es
grundsätzlich zwei Möglichkeiten.
Akkumulator-Schiebearchitektur
Gemäß Bild 3.29 wird die bei der Summation notwendige Schiebeoperation b i durch eine feste Verx
´
ai
Codewand.
L
L
k
L
R1
R0
Bild 3.29: Akkumulator-Schiebe-Architektur
schiebung um 1 (b D 2) bzw. 2 (b D 4) Stellen nach rechts vor jeder Akkumulation berücksichtigt.
Für den Basis(-2)-Kode ergibt sich das im Bild 3.30 gezeigte Multiplizierwerk. Die Multiplikation
mit ak00 wird durch den Selektorbaum durchgeführt, der die entsprechenden Faktoren auswählt. Bei
der Multiplikation mit 1 bzw. 2 wird der Komplementer verwendet, der in Verbindung mit einem
in den Addierer eingespeisten Eingangsübertrag das Zweierkomplement herstellt.
Operanden-Schiebearchitektur
Wenn man die Schiebeoperation am Operanden x vornimmt, erhält man die im Bild 3.31 dargestellte
Grundstruktur.
63
3 Rechenschaltungen
r
!2
´
1
CWB ✛
0
rx
1
0
0
1
C
Komplem.
r
0
1
c
r
✡✠
2
R1
R2
Bild 3.30: Multiplizierwerk mit Basis (-2)-Kode
x
´ CodeWand.
i
vi
r
i
Komplem.
c
✡r ✠
R
Bild 3.31: Operanden-Schiebearchitektur
3.6.3 Parallele Multiplizierwerke
Bei Verwendung eines parallelen Kodewandlers und eines parallelen Mehrfachaddierers erhält man
ein parallel arbeitendendes Multiplizierwerk (Bild 3.32).
64
3.7 Analog-Digital-Wandler
´
x
CWB ✛ CWB ✛ CWB ✛ CWB
a000
a100
a200
a300
b 00 3 b 00 2 b 00 1 b 00 0
Mehrfachaddierer
y
Bild 3.32: Parallelmultiplizierer
3.7 Analog-Digital-Wandler
Es gibt eine ganze Reihe von Verfahren zur AD-Wandlung. Spannungs-Frequenzumsetzer und Rampenverfahren sind in der Signalverarbeitung von geringer Bedeutung. Wichtiger sind das Wägeprinzip, die Parallelwandlerverfahren und die verschiedenen Spielarten der Wandler mit Überabtastung
[5].
3.7.1 Wägeverfahren
Der AD-Wandler nach dem Wägeverfahren (Bild 3.33) besteht aus
❜
Komparator
Eingang
r
✛
Näherungsregister
r
DA-Wandler
r
❜
❜
Takt
❜
Ausgang
Bild 3.33: AD-Wandler nach dem Wägeverfahren
Komparator
65
3 Rechenschaltungen
Näherungsregister
Digital-Analogwandler
Das Verfahren beruht auf dem Vergleich der unbekannten Eingangsspannung mit dem vom DAWandler gelieferten Wert. Der DA-Wandler wird von einem digitalen Näherungsregister gesteuert,
dessen Wert, abhängig vom Ergebnis des Vergleichs, solange variiert wird, bis eine hinreichend gute
Approximation erreicht wird. Die digitale Ausgangsgröße ist dann der Inhalt des Näherungsregisters. Der Ablauf dieser sukzessiven Approximation (Bild 3.34) beginnt mit einem zu Null gesetzten
8
✻
7
T
6
5
4
T
S
R
T
S
3
T=Testen
2
S=Setzen
1
R=Rücksetzen
✲ t
Bild 3.34: Sukzessive Approximation
Registerinhalt. Dann wird probeweise das MSB am gesetzt. Dann wird anhand des Komparatorsignals geprüft, ob der vom DA-Wandler gelieferte Wert das Eingangssignal überschreitet oder nicht.
Im ersten Fall wird das Bit zurückgesetzt, im zweiten Fall bleibt es gesetzt. Dann wiederholt sich
der Vorgang mit dem nächsten Bit am 1 . Mit Erreichen des LSB an wird der Vorgang abgebrochen.
3.7.2 Parallel-Wandler
Beim n-Bit Parallel-Wandler (Flash-Wandler), (Bild 3.34) wird das Eingangssignal mit 2n 1 Komparatoren gleichzeitig mit 2n 1 gleichmäßig über den Spannungsbereich des Wandlers verteilten
Referenzspannungen verglichen, die von einer Spannungsteilerkette geliefert werden. Damit ist eine
Zuordnung des Eingangssignals zu einem von 2n Intervallen möglich. Ein nachgeschalteter Prioritätsenkoder liefert die binär verschlüsselte Intervallnummer (n Bit), die dann als Ergebnis zur Verfügung steht.
66
3.7 Analog-Digital-Wandler
Uref ❛
Ui n ❛
R
q
q
R
q
R
q
R
q
R
q
R
q
R
R
q
q
PrioritätsEn- X
out
koder
q
q
q
q
Bild 3.35: Parallelwandler
3.7.3 Quantisierung
Die Analog-Digital-Wandlung besteht aus der zeitlichen Abtastung eines zeitkontinuierlichen Signals x 0 .t / mit der Abtastzeit T und der anschließenden Quantisierung mit dem Quantisierungsintervall q (Bild 3.36). Die Größe q entspricht der Wertigkeit des niederwertigen Bits des vom AD-
x 0 .t/
✲
A
x./
✲
Q
xq ./
✲
Bild 3.36: Abtastung und Quantisierung
Wandler gelieferten digitalen Datenworts. Die Umsetzung der wertekontinuierlichen Folge x./ in
die wertediskrete Folge xq ./ läßt sich durch eine Quantisierungskennlinie beschreiben 3.37. Die
xq ./
✻
q
2
q
2
✲ x./
Bild 3.37: Quantisierungskennlinie
67
3 Rechenschaltungen
Quantisierung hat einen von x./ abhängigen Quantisierungsfehler r./ zur Folge (Bild 3.38). Zur
x 0 .t/
r./
x
x./
q
❄
✲ ❞ ./
✲
A
Bild 3.38: Berücksichtigung des Quantisierungsfehlers
Vereinfachung der Analyse wird in der Regel ein von x./ unabhängiger, und im Intervall . q2 ; q2 /
gleichverteilter Quantisierungsfehler r.t / angenommen (Bild 3.39). Das Signal r./ wird demnach
als weißes Rauschen betrachtet. Die mittlere Leistung dieses Signals ist
pr .R/
✻1
q
q
2
q
2
✲R
Bild 3.39: Verteilungsfunktion des Quantisierungsfehlers
Z1
D
Nr
pr .R/ R2 dR
(3.9)
1
Bei der angenommenen Gleichverteilung ist
q
Nr
D
Z2
q
2
1 2
R dR
q
D
q2
12
(3.10)
O rr .j!/ ist die Rauschleistung andererseits
Bei einer gegebenen diskreten Rauschleistungsdichte ‰
!A
Nr
D
1
2
Z2
O rr .j!/ d!
‰
(3.11)
!A
2
Bei weißem Rauschen ist die Leistungsdichte konstant:
2
O rr D T Nr D T q
‰
12
68
(3.12)
3.7 Analog-Digital-Wandler
3.7.4 Signal-Rausch-Verhältnis
Gegeben sei ein Wandler mit einer Wortbreite von n Bit. In Zweierkomplementdarstellung ist der
Betrag des darstellbaren Zahlenbereichs q .2n 1/. Ein Sinussignal maximaler Amplitude wäre
dann gegeben durch
2n 1
x./ D q sin.˛/
2
Die mittlere Leistung dieses Signals ist
q2
q2
4n
(3.13)
8
8
Bezieht man die maximale Nutzsignalleistung auf die Leistung des Quantisierungsrauschens, dann
wird das Signal-Rausch-Verhältnis
Ns D .2n
1/2
Ns
3
D .2n
Nr
2
und
SNR D 10 log
1/2 3 n
4
2
(3.14)
Ns
6; 02 n C 1; 76
Nr
(3.15)
.dB/
3.7.5 Überabtastung
Von Überabtastung spricht man, wenn die Abtastfrequenz des AD-Wandlers höher ist, als die für
die weitere Verarbeitung des Signals gewählte, bzw. der Bandbreite des analogen Signals angepaßte
Taktfrequenz. Siehe hierzu Bild 3.40. Die Taktzeit des Wandlers sei T , diejenige des AusgangssiT1
T
x 0 .t/
❄
AD
x./
G.´/
y./
❄
Abtaster
y./
Bild 3.40: AD-Wandlung mit Überabtastung
gnals sei
T1 D k T
k ist der Überabtastfaktor. Ein Dezimierungsfilter G.´/ mit einer Grenzfrequenz !g D
die notwendige Bandbegrenzung für die nachfolgende Abtastung mit T1 .
(3.16)
T1
sorgt für
Die Überabtastung verfolgt zwei Ziele
Verlagerung der zur Abtastung notwendigen Filterung im wesentlichen auf den digitalen Teil
des Systems.
Reduktion des Quantisierungsrauschens
69
3 Rechenschaltungen
AD-Wandler mit einfacher Überabtastung
Verwendet man bei der oben gezeigten Kettenschaltung einfache AD-Wandler, so ist das Quantisierungsrauschen am Eingang des Filters G.´/ weiß, mit der diskreten Leistungsdichte
2
O rr D T q
‰
12
Das Filter hat eine Grenzfrequenz
D
T1
kT
und begrenzt damit die Bandbreite des Rauschens. Die mittlere Leistung des Quantisierungsrauschens am Ausgang des Filters ist dann
!g D
Nr0 D
1
2
ZkT
kT
q2
q2
T d! D
12
12k
(3.17)
Die Leistung des Quantisierungsrauschens ist damit um den Faktor k reduziert. Das Signal-RauschVerhältnis wird dann
Ns
3
3
D .2n 1/2 k 4n k
(3.18)
Nr0
2
2
Um ein Bit an Auflösung zu gewinnen, muß also die Abtastfrequenz des Wandlers vervierfacht
werden. Wollte man mit einem 4-Bit-Wandler eine Auflösung von 16 Bit erreichen, müßte der Überabtastfaktor k D 412 D 16777216 betragen. Bei einer Taktfrequenz am Ausgang von 44,1 kHz
müßte die Taktfrequenz des Wandlers also bei etwa 740 GHz liegen.
3.7.6 Überabtastung mit quantisierter Rückkopplung
Wandelt man das Signal am Ausgang des AD-Wandlers wieder in die analoge Darstellung zurück,
und bildet über ein analoges Filter H 0 .j!/ einen Regelkreis, kann das Spektrum des Quantisierungsrauschens so geformt werden, daß ein Großteil seiner Energie im Sperrbereich des nachgeschalteten Dezimierungsfilters G.´/ liegt (Bild 3.41). Um diese Anordnung analysieren zu können,
0 .p/
X✲
❛ H 0 .p/
✻
AD
DA
X.´/q
G.´/
Y .´/
Bild 3.41: AD-Wandler mit quantisierter Rückkopplung
werden im Signalflußdiagramm zunächst einige Umformungen vorgenommen (Bild 3.42). Dabei
70
3.7 Analog-Digital-Wandler
X0❛
✲
✻
X0
X0
H 0 .p/
✄
✂❛ ✁❛ ❛
H 0 .p/
✄
✂❛ ✁❛ ❛
Q
q
❄
❛
Q
✻
q
H 0 .p/
✄
✂❛ ✁❛ ❛
H 0 .p/
✄
✂❛ ✁❛ ❛ ✲ ❛ - Q
✻
q
❛
X
❛
X
❛ ❛
❛ ❛
X
H.´/
Bild 3.42: Umformung zur Bildung der Stufenübertragungsfunktion
werden kontinuierliche und diskrete Teile entkoppelt. In der Regelschleife wird die kontinuierliche
Übertragungsfunktion H 0 .p/ durch die äquivalente Stufenübertragungsfunktion H.´/ ersetzt, und
schließlich die äquivalenten Rauschquelle R einführt (Bild 3.43). Bei System erster Ordnung ist
✄
❄
✂❛ ✁❛ ❛ ✲ ❛ - ✲ ❛
✻
R
X0
H 0 .p/
X
q
H.´/
Bild 3.43: Quantisierte Rückkopplung mit äquivalenter Rauschquelle
H 0 .p/ ein einfacher Integrator:
H 0 .p/ D
p0
p
(3.19)
Die Verstärkung p0 kann zunächst frei gewählt werden. Die zugehörige Stufenübertragungsfunktion
ist dann:
´ 1
(3.20)
H.´/ D p0 T
1 ´ 1
Die Analyse der Schaltung liefert dann
X.´/ D
1
p0
1 ´ 1
0
R.´/ C A0 X .p/
´ 1 .1 p0 T /
p
(3.21)
71
3 Rechenschaltungen
Man beachte, daß aus Stabilitätsgründen p0 T 2 .0; 2/ gelten muß. Das Ausgangssignal X.´/ dieses
Wandlers wird einem Dezimierungsfilter G.´/ zugeführt, das die notwendige Bandbegrenzung mit
der Grenzfrequenz !g sicherstellt. Außerdem soll es für ! < !g eine Entzerrung der durch den
Wandler bedingten Übertragungsfunktion durchführen, d.h. es ist mit ´ D e j!T und p D j!
G.´/ D
´ 1 .1 p0 T / p
I
1 ´ 1
p0
1
! < !g
Bei genügend bandbegrenztem Eingangssignal ist dann für ! < !g
p
Y .´/ D X.p/ C
R.´/
p0
(3.22)
(3.23)
Es ist zu sehen, daß der Anteil des Rauschens mit steigendem p0 abnimmt. Andererseits muß aus
Stabilitätsgründen
p0 T < 2 sein. Um die folgende Abschätzung zu vereinfachen, sei p0 T D
p
= 3 D 1; 8138. Dann gilt für die Rauschleistung am Ausgang des Filters:
1
Nr0 D
2
ZkT
q2
q2 !2
T
d!
D
12 p02
12k 3
kT
(3.24)
Die Leistung des Quantisierungsrauschens nimmt also mit der dritten Potenz des Überabtastfaktors
ab. Für das Signal-Rausch-Verhältnis gilt:
3
Ns
D .2n
0
Nr
2
1/2 k 3 3 n 3
4 k
2
(3.25)
Den im obigen Beispiel geforderten Genauigkeitszuwachs von 12 Bit würde man hier bereits bei
k D 256, d.h., bei einer Taktfrequenz von 11,36 MHz erhalten.
Eine weitere Verbesserung des Signal-Rausch-Verhältnisses erhält man, wenn der Grad m der Übertragungsfunktion in der Rückkoppelschleife weiter erhöht wird. Ein Beispiel für m D 3 ist im
Bild 3.44 gezeigt, wo eine Anordnung mit 3 Integratoren dargestellt ist. Die Wahl der Parameter
X ❛
✲
✻
0
p0
p
✲❛
✻
q
p1
p
✲❛
✻
q
p2
p
AD
X
DA
Bild 3.44: Quantisierte Rückkopplung dritten Grades
p0 , p1 und p2 wird auch hier durch Stabilitätsbedingungen eingeschränkt. Für das Signal-RauschVerhältnis erhält man allgemein:
Ns
.2n
Nr0
1/2 k 2mC1 4n k 2mC1
wobei die Proportionalitätskonstante noch von der speziellen Dimensionierung abhängt.
72
(3.26)
3.7 Analog-Digital-Wandler
3.7.7 Sigma-Delta-Wandler
Wenn man beim Prinzip der quantisierten Rückkopplung nur zwei Quantisierungsstufen, repräsentiert durch einen positiven und negativen Impuls, verwendet, d.h., mit nur einem Bit (n D 1) bei der
AD-Wandlung arbeitet, dann ergeben sich eine Reihe schaltungstechnischer Vereinfachungen:
Statt eines AD-Wandlers wird ein einfacher Komparator verwendet.
Der DA-Wandler entfällt. Man kann direkt die digitalen Impulse, ggf. durch eine Impulsformerstufe regeneriert, verwenden.
Ein Abtast-Halteglied kann entfallen.
Das Signal-Rausch-Verhältnis des Sigma-Delta-Wandlers ergibt sich rein formal für n D 1 zu
Ns
k 2mC1
Nr0
(3.27)
Diese Gleichung ist für den Extremfall n D 1 jedoch nur näherungsweise gültig. Genaue Werte kann
man für ein derartig hochgradig nichtlineares System im Einzelfall nur durch Simulation erhalten.
Die Simulation ist bei Verwendung der im ersten Kapitel angegebenen Verfahren exakt möglich.
3.7.8 Anwendungsbeispiele
Die Industrie bietet ein breites Spektrum an Wandlern an. Die folgende Auswahl ist examplarisch
und willkürlich und stellt keine Bewertung dar.
Beispiel für einen Wandler nach dem Wägeprinzip:
AD764A (Analog Devices). Daten:
Kompletter 12-Bit-Wandler mit Referenzspannung und Takt.
15s Wandlungszeit.
Beispiel für einen Parallel-AD-Wandler:
MP7684A (Micropower Systems). Daten:
Auflösung: 8 Bit.
Maximale Abtastfrequenz: 14 MHz.
Beispiel für einen Delta-Sigma-Wandler:
DSP56ADC16 (Motorola). Daten:
Analog- und Digitalfunktionen einschließlich Dezimierungsfilter G.´/ integriert.
73
3 Rechenschaltungen
Überabtastfaktor m D 64.
Grad: k D 3.
Taktrate am Eingang: maximal 6,4 MHz.
Taktrate am Ausgang: maximal 100 kHz.
Frequenzbereich: 0-45.5 kHz.
Welligkeit: 0.001 dB.
Auflösung: 16 Bit.
3.8 DA-Wandler
Für Signalverarbeitungszwecke kommen folgende DA-Wandler-Verfahren in Betracht:
Wandler mit schaltbaren, binär gewichteten Stromquellen.
Wandler mit schaltbaren, binär gewichteten Widerständen.
Wandler mit R
2R-Netzwerken.
Wandler mit geschalteten Kondensatoren.
Wandler mit Überabtastung und Noise-Shaping
3.8.1 Wandler mit schaltbaren Stromquellen
Jedem Bit im Datenwort wird eine Stromquelle mit einem der Bitwertigkeit proportionalem Strom
zugeordnet. Jedes Bit der Datenleitung schaltet die Stromquelle ein oder aus. Alle Ströme werden
summiert und ggf. mit einem Operationsverstärker in eine Spannung umgewandelt (Bild 3.45). Diese
Art von Wandlern wird vorwiegend in bipolarer Technik hergestellt, da hier die Stromquellen leicht
zu realisieren sind.
3.8.2 Wandler mit schaltbaren Widerständen
Dem Konzept der binär gewichteten Stromquellen sehr ähnlich ist das Prinzip mit binär gewichteten,
schaltbaren Widerständen. Die Widerstandskaskade ist mit einer Referenzspannungsquelle verbunden, und speist binär gewichtete, schaltbare Ströme in den Summierknoten ein (Bild 3.46). Eine
weitere Variante ist das geschaltete R 2R-Netzwerk nach Bild 3.47. Hier wird die binäre Gewichtung durch fortwährende Halbierung des Stroms erreicht. Bei dieser Methode läßt sich eine bessere
Paarungsgenauigkeit erreichen, als bei den binär gestuften Widerständen.
74
3.8 DA-Wandler
R
❜
r
❜
❜
❜
♠
♠
I0
r
❜
❜
❜
❜
❜
❜
♠
♠
♠
♠
2I0
r
4I0
r
❜
❜
r
r
-
Y
♠
♠
8I0
Bild 3.45: DA-Wandler mit schaltbaren Stromquellen
R
❜
r
❜
❜
❜
r
❜
R
r
❜
❜
r
❜
2R
r
❜
❜
r
❜
4R
r
❜
r
-
r
Y
8R
r
Uref
Bild 3.46: DA-Wandler mit schaltbaren Widerständen
3.8.3 Wandler mit Überabtastung
Ähnlich wie bei den AD-Wandlern gibt es auch bei der DA-Wandlung die Methode der Überabtastung (Bild 3.48). Das Signal X.´/ ist bereits mit dem k-fachen der internen Taktfrequenz abgetastet,
und kommt von einem Interpolationsfilter. Der Block Q reduziert die Wortbreite auf n Bits, wodurch
ein zusätzliches Rundungsrauschen entsteht. Die Regelschleife mit H.´/ bewirkt eine spektrale Formung dieses Rauschens. Nach der Reduktion der Wortbreite erfolgt die eigentliche DA-Wandlung
mit nachfolgender Filterung. Für das Signal-Rausch-Verhältnis gelten im Prinzip die gleichen Formeln wie bei der AD-Wandlung mit Überabtastung. Da das nachgeschaltete Analogfilter G.´/ keine
scharfen Filterflanken realisiert, ist die Filterung des Rundungsrauschens weniger perfekt. Auch bei
dem DA-Wandler ist das Überabtastprinzip mit 1 Bit möglich.
75
3 Rechenschaltungen
R
❜
r
❜
❜
❜
r
❜
2R
Uref
r
R
❜
❜
r
❜
2R
r
R
❜
❜
r
❜
2R
r
R
❜
✲ ❜ ✲ H.´/
✻-
Q
-
r
Y
2R
2R
r
Bild 3.47: DA-Wandler mit R
X
r
r
2R-Netzwerk
❜
❜
❜
G 0 .p/
Y
Bild 3.48: DA-Wandler mit Überabtastung
3.9 Übungsaufgaben zu Kapitel 3
27. Erklären Sie die Funktion der Schaltung für das XOR-Gatter in diesem Kapitel!
28. Weisen Sie die korrekte Funktion für die Brückenschaltung für den Übertrag c 0 nach.
29. Weisen Sie die korrekte Funktion der beiden Schaltungen für den Volladdierer nach.
30. Aus dem vorgestellten Prinzip des geschalteten Übertrags für einen Volladdierer läßt sich ein
Konzept für eine parallele, hierarchische Übertragsvorbestimmung herleiten. Die Steuervariable des Selektors heiße x. Wie lauten die Gleichungen für c 0 für die beiden Möglichkeiten?
31. Man gehe davon aus, daß das Prinzip des geschalteten Übertrags auch für eine ganze Gruppe
von Volladdierern gilt. Ein Selektor schaltet dabei in Abhängigkeit von einer Steuervariablen
entweder den Eingangsübertrag c1 der Gruppe oder eine zunächst noch unbekannte Variable
y, die unabhängig vom Eingangsübertrag ist, durch. Zeichnen Sie den Selektor mit seinen
logischen Variablen auf!
32. Es werden nun zwei Gruppen mit x1 ; y1 und x2 ; y2 zusammengefaßt. Wie lauten die logischen
Variablen x und y für den beide Gruppen zusammenfassenden Selektor für den Ausgangsübertrag?
76
3.9 Übungsaufgaben zu Kapitel 3
33. Entwickeln Sie eine Schaltung, die die zugehörigen logischen Gleichungen realisiert!
34. Zeigen Sie, wie ausgehend von Gruppen mit einem Addierer durch fortlaufendes Zusammenfassen unter Anwendung der hergeleiteten Schaltung sich eine baumartige hierarchische
Struktur für einen n-stufigen binären Addierer mit Übertragsvorbestimmung ergibt!
35. Es soll ein Wallace-tree mit Volladdierern, die das Komplement von Summe und Übertrag liefern, aufgebaut werden. Wie kann die Zahl der zusätzlich notwendigen Inverter klein gehalten
werden? Man studiere hierzu die Wahrheitstabelle für den Volladdierer.
36. Für den Aufbau von Multiplizierwerken werden auf dem Basis(-2)-Kode, dem CSD-Kode und
dem Booth-Kode aufbauende Kodewandlerblöcke eingesetzt. Geben Sie schaltungstechnische
Realisierungen für die drei Fälle an!
37. Die vorgestellten Normierwerke sind auf die Vorzeichen-Betrags-Darstellung zugeschnitten.
Geben Sie die entsprechenden Schaltungen für die Zweierkomplement-Darstellung an!
38. Entwickeln Sie die Schaltung für ein serielles Multiplizierwerk, das nach dem OperandenSchiebe-Prinzip arbeitet, und den CSD-Kode verwendet. Additionsschritte mit einem Faktor
von 0 sollen vermieden werden.
39. Beim Aufbau von Parallelmultiplizierern, die Kodes mit negativen Koeffizienten ausnützen, entsteht ein mit dem Vorzeichenbit der Summanden zusammenhängendes Problem, das
scheinbar einen unnötig großen Schaltungsaufwand zur Folge hat. Beschreiben Sie die Problematik!
40. Geben Sie ein Verfahren an, das dieses Problem umgeht.
41. Welches sind die spezifischen Vor- und Nachteile der verschiedenen MultiplikatorKodierungen bei Multiplizierern? Unterscheiden Sie dabei parallel arbeitende Schaltungen
und die beiden Spielarten von seriellen Strukturen.
42. Ein Audio-Signal soll mit 44.1 kHz und 96 dB Signal-Rauschabstand abgetastet und mit einem
AD-Wandler umgesetzt werden. Welche Wortbreite ist notwendig?
43. Dasselbe Signal soll mit einem 12-Bit-Wandler umgesetzt werden. Wie hoch muß bei der einfachen Überabtastung die Taktfrequenz gewählt werden, damit die Forderungen erfüllt werden?
44. Entwickeln Sie die Schaltung für einen dreistufigen Delta-Sigma-Wandler, der mit drei einfachen Integratoren arbeitet.
45. Wandeln Sie die Schaltung in eine für die Analyse und Simulation günstige Form um.
46. Berechnen Sie die Übertragungsfunktion dieses Wandlers. Dabei gehe man von einer linearisierten Darstellung aus.
47. Machen Sie eine Aussage über die Stabilität.
48. Berechnen Sie das durch den Quantisierungsprozeß hervorgerufene Rauschspektrum am Ausgang des Wandlers, wobei weißes und gleichverteiltes Quantisierungsrauschen unterstellt
wird.
77
3 Rechenschaltungen
78
4 Signalprozessoren
Signalprozessoren sind speziell auf die Belange der digitalen Signalverarbeitung zugeschnittene Mikroprozessoren. Der Vorteil von Signalprozessorsystemen gegenüber „festverdrahteten“ kundenspezifischen Lösungen ist die durch die Programmierbarkeit gewonnene Flexibilität beim Entwurf.
Typische Anwendungen sind
Modems
Echo-Entzerrer
Vocoder
Spiele
Meßgeräte
Graphik-Verarbeitung (Laserdrucker)
Regelungs- und Steuerungsaufgaben
4.1 Aufbau von Signalprozessoren
Der Aufbau der gängigen Signalprozessoren entspricht mehr oder weniger dem im Bild 4.1 gezeigten
Schema.
Aufzählung der Baueinheiten:
Funktionseinheiten
– Arithmetische und logische Einheit
– Adress-Generator
– Programmsteuerwerk
– Bedingungslogik
– Instruktionsdekoder
– Register-File
79
4 Signalprozessoren
Programm-Bus
✻
❄
Instruktionsdekoder
✲
❄
Bedingungslogik
✲
✲
✻
❄
❄❄
✲ ProgrammSpeicher
steuerwerk
✻
Program-Adress-Bus
Programm-
Adressgenerator
❄
Daten-Adress-Bus
✛
✲
❄
❄
❄
EinAusgabe
Register-
DatenSpeicher
File
✻
❄
✻
❄
✻
❄
Daten-Bus
✻
❄
✲
Arithmetische
und logische
Einheit
Takterzeugung
und Steuerung
Bild 4.1: Architektur eines Signalprozessors
– Datenspeicher
– Programmspeicher
– Peripherieeinheiten
– Takterzeugung und Steuerung
Busse
– Datenbus
– Daten-Adress-Bus
– Programmbus
– Programm-Adress-Bus
4.1.1 Arithmetik-Einheit
In der Arithmetikeinheit laufen die eigentlichen Signalverarbeitungsfunktionen ab. Der Kern der
Einheit besteht meist aus einem oder mehreren Multiplizierern und Addierern. Dazu kommen in der
Regel Schiebewerke und eine Einheit für logische Operationen.
Klassifizierung
Zur Klassifizierung eignen sich die folgenden Gesichtspunkte:
Zahlendarstellung und Wortbreite
80
4.1 Aufbau von Signalprozessoren
Festkommarechenwerke. Die Arithmetikeinheit verarbeitet Festkommazahlen. Zu dieser Kategorie
gehören:
16 Bit:
Texas Instruments: TMS32010 ... TMS32025 und TMS32050
AT&T: DSP16
Analog Devices: ADSP2100
24 Bit:
Motorola: DSP56000
Texas Instruments: TMS32030
AT&T: DSP32
32 Bit:
*Motorola: DSP96000
Die mit * gekennzeichneten Prozessoren arbeiten auch mit Gleitkommazahlen.
Gleitkommarechenwerke. Die Arithmetikeinheit verarbeitet Gleitkommazahlen.
32 Bit:
Texas Instruments: TMS32030
Motorola: DSP96000
AT&T: DSP32
Gegenseitige Verschaltung von Addierer und Multiplizierer
Unabhängige Funktion. Addierer und Multiplizierer arbeiten parallel und weitgehend voneinander
unabhängig. Beispiel: TMS32030, (Bild 4.2).
MAC-Anordnung. Dem Multiplizierer ist ein als Akkumulator arbeitender Addierer nachgeschaltet.
Beispiel: DSP32, (Bild 4.3).
Das p-Register wirkt als Pipeline-Register. Dadurch können die vom Multiplizierer berechneten Produkte erst im nächsten Takt vom Addierer verarbeitet werden. Dieser Effekt muß beim Programmieren berücksichtigt werden. Andere Signalprozessoren haben eine MAC-Struktur ohne Pipelining
(ADSP2100, DSP56000).
Weitere Klassifizierungsmerkmale:
Zusammenwirken mit Registern
81
4 Signalprozessoren
CPU1
CPU2
REG1
REG2
❄ ❄
❄ ❄
❄
❄ ❄
❄
❄ ❄
❄
Multiplizierer
❄
ALU/Shifter
❄
❄
Register
Bild 4.2: Addierer und Multiplizierer beim TMS 32030
❄
❄
y
x
❄ ❄
❄ ❄
Multiplizierer
❄
❄
❄
❄
p
s
❄
RegisterFile
Bild 4.3: MAC-Anordnung
Spezielle Register für spezielle Operationen wie beim TMS32010.
Allgemeine Register für alle Operationen verwendbar wie beim TMS302030, DSP56000.
Teilweise spezialisierte Register beim ADSP2100.
Mehrfache Genauigkeit.
Addition und Multiplikation auf mehrere Worte ausdehnbar ist zufriedenstellend nur beim ADSP2100 gelöst.
82
4.1 Aufbau von Signalprozessoren
4.1.2 Adress-Generator
Viele Algorithmen arbeiten mit indizierten Variablen. Es muß daher mit Zeigern auf Speicherbereiche zugegriffen werden können. Alle Signalprozessoren besitzen spezielle Adress-Register, die
als Index- bzw. Offset-Register verwendet werden können. Diese Zeiger können meist automatisch
modifiziert werden (Autoinkrement, -dekrement). Oft gibt es hierzu eigene Modifikationsregister
(DSP56000, ADSP2100, TMS32030).
Viele Algorithmen verschieben Variable durch Verzögererketten (FIR-Filter). Dieses Verschieben
kann eliminiert werden, wenn durch geeignete Zeigeroperationen die Lage der Variablen zu einem Zeiger verändert wird. Voraussetzung dafür ist die Fähigkeit zur zyklischen Adressierung von
Speicherbereichen. Ein spezielles Längenregister bestimmt die Länge eines zyklischen Datenblocks.
Die Zeigermodifikationen erfolgen dann stets modulo der Länge des Blocks.
Häufig muß die Summe von Produkten aus Faktoren, die beide indiziert sind, berechnet werden
(FIR-Filterung, Korrelation). Zu diesem Zweck sind meist zwei voneinander unabhängige AdressGeneratoren vorhanden, die parallel zur Akkumulation der Teilprodukte arbeiten.
Der Algorithmus der schnellen Fouriertransformation erfordert eine bit-inverse Adressierung. Hierzu
wird das vom Adressgenerator erzeugte Adresswort gespiegelt. Beim DSP56000 wird die Richtung
des Übertragsdurchlaufs im Adressrechenwerk umgekehrt.
Als Beispiel sei im Bild 4.4 einer von zwei Adressgeneratoren beim ADSP2100 gezeigt:
DMD Bus
✻
✻
✻
❄❄
❄
LRegister
4x14
❄
IRegister
4x14
ModulusLogik
q
✻✻
❄
BitReverse
q q
❄
❄
MRegister
4x14
❄
q
❄
Adresse
Bild 4.4: Adressgenerator des ADSP2100
83
4 Signalprozessoren
4.1.3 Programmsteuerwerk
Das Programmsteuerwerk erzeugt die Adressen für den Programmspeicher, in dem die Instruktionen
des Programms abgelegt sind. Diese Adressen werden von einem Programmzähler geliefert. Im
normalen Betrieb wird der Zähler nach jeder Instruktion inkrementiert, um den nächsten Befehl zu
adressieren.
Neben diesem sequentiellen Programmablauf gibt es weitere Möglichkeiten. Bei programmierten
Sprungbefehlen (JUMP) wird der Programmzähler mit einem vorgebenen Wert überschrieben.
Mit dem Programmzähler verbunden ist üblicherweise ein Stack, in dem der momentane Programmzählerstand zum Zweck der späteren Rückspeicherung abgelegt wird. Das ist der Fall bei Unterprogrammaufrufen (CALL). Wird im Unterprogramm ein Return-Befehl ausgeführt, wird der Zählerstand nach dem CALL-Befehl des rufenden Programms zurückgespeichert.
Auch Programmschleifen sind eine Abweichung vom linearen Programmlauf. Spezielle Schaltungseinheiten speichern Anfang und Ende des mehrfach auszuführenden Programmteils, sowie die Zahl
der Durchläufe. Der Rücksprung zum Schleifenanfang erfolgt üblicherweise ohne zusätzlichen Zeitverlust. In der Regel können Schleifen mehrfach verschachtelt werden. Zu diesem Zweck existiert
ein eigener Stack für die Schleifenparameter.
Eine weitere Ausnahme vom linearen Programmlauf ist die Unterbrechung (Interrupt). Sie kann von
internen oder externen Ereignissen ausgelöst werden, und wirkt dann wie ein Unterprogrammaufruf
mit einer fest gegebenen Adresse. Neben dem Programmzähler werden dabei häufig noch weitere
Register auf dem Stack zwischengespeichert.
4.1.4 Bedingungslogik
Viele Algorithmen führen Programmteile nur aus, wenn bestimmte interne oder externe Bedingungen zutreffen. Die Bedingungslogik beeinflußt das Programmsteuerwerk in der Weise, daß bedingte
Programmverzweigungen möglich sind. Solch Bedingungen können sein:
Interne Bedingungen:
ALU=0
ALU negativ
Übertrag der ALU
Überlauf der ALU
Überlauf des MAC
Schleifenzähler abgelaufen
84
4.1 Aufbau von Signalprozessoren
Externe Bedingungen:
Status von Schnittstellen
Abfrage spezieller Signale
4.1.5 Instruktionsdekoder
Der Instruktionsdekoder arbeitet im Prinzip gleich wie bei normalen Mikroprozessoren. Er entschlüsselt das gerade aus dem Programmspeicher geholte Befehlswort, und leitet die notwendigen
Informationen an die betroffenen Einheiten weiter.
4.1.6 Register-File
Signalprozessoren haben wie Mikroprozessoren eine Reihe von Registern. Diese sind jedoch häufig bestimmten Einheiten zugeordnet, und nicht frei verfügbar. Insbesondere benötigen die AdressGeneratoren oft eine Vielzahl von Hilfsregistern.
4.1.7 Daten- und Programmspeicher
Daten- und Programme können in getrennten Speichern mit eigenen Bussen (Harvard-Architektur)
oder in demselben Speicher (von Neumann-Architektur) untergebracht sein. Beim DSP56000 gibt es
für die Daten getrennte X- und Y-Speicher.
Speicher können sowohl auf dem Chip oder extern angeordnet sein. Verschiedene Prozessoren haben
einen Festwertspeicher (ROM oder EPROM) auf dem Chip. Andere Prozessoren gestatten die Verwendung eines langsamen externen Boot-EPROMS, dessen Inhalt während der Initialisierungsphase
automatisch in das schnelle interne Programm-RAM gespeichert wird.
Einige Signalprozessoren haben auf dem Chip einen Cache-Speicher, in dem Instruktionen des Programmspeichers „eingefroren“ werden können, beispielsweise bei Programmschleifen. Damit wird
der Programmbus für zusätzliche Zugriffe, z.B. auf dort abgelegte Daten, frei.
4.1.8 Peripherie-Einheiten
Externe periphere Einheiten (AD- und DA-Wandler) können über den Prozessorbus angesprochen
werden. Viele Prozessoren besitzen Peripherieeinheiten auf dem Chip (DMA-Steuereinheiten, synchrone, serielle Schnittstellen, CODEC-Schnittstellen).
85
4 Signalprozessoren
4.1.9 Takterzeugung und Steuerung
Diese Einheit erzeugt aus einem externen Takt alle notwendigen internen Takte, und steuert den
Ablauf der internen Funktionen.
4.1.10 Prozessorbusse
Jeder Signalprozessor besitzt interne und externe Busse. Die internen Busse erlauben den Datenaustausch der Funktionseinheiten. Der externe Bus verbindet den Prozessor mit dem externen Speicher
und den Peripherieeinheiten, und überträgt Adressen und Daten des Programm- und Datenspeichers
und der Peripherie.
4.2 Beispiele industrieller Signalprozessoren
4.2.1 Blockdiagramm des TMS 32020
Als Beispiel für einen in der Praxis häufig verwendeten Signalprozessor ist im Bild 4.5 der Aufbau
des TMS32020 gezeigt [6]. Darin bedeuten
ACCH
ACCL
ARn
ARAU
ARB
ARP
DP
DRR
DXR
GREG
IFR
IMR
RPTC
IR
PR
PRD
TIM
TR
ST0,ST1
86
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Accumulator high
Accumulator low
Auxiliary register
Auxiliary register arithmetic unit
Auxiliary register pointer buffer
Auxiliary register pointer
Data memory page pointer
Serial port data receive register
Serial port data transmit register
Global memory allocation register
Interrupt flag register
Interrupt mask register
Repeat instruction counter
Instruction register
Product register
Period register for timer
Timer
Temporary register
Status register
4.2 Beispiele industrieller Signalprozessoren
Program Bus
✛16
❄ ❄
❄
16
✛
✻
✛
✛
A15-A0
16
16
✲
16
16
❄ ❄
16
✻
16
16
❄
16
❄
3
✲
3
Program Bus
✲
16
✲
16
❄
TR(16)
❄ ❄
Data Bus
✻
❄
❄
16
❄
9
AR0(16)
AR1(16)
AR2(16)
AR3(16)
AR4(16)
16
DP(9)
Shifter(0-16)
7
MUL
❄
16
Block B2
(32x16)
Data RAM
Block B1
(256x16)
✻
16
❄
✛
PR(32)
16
❄ 16
❄
❄
32
32
Shifter(-6,0,1,4)
❄ 32
❄
16
16
16
9
ARAU
✛
❄ ❄
DRR(16)
DXR(16)
TIM(16)
PRD(16)
IMR(6)
GREG(8)
16
✻❄
❄
ARB(3)
✛3 ✻
✲
16
✲
❄
✲
✲
✲
✲
✲
✲
16
16
16
16
6
8
Stack
(4x16)
3
ARP(3)
16
✲
16
16
D15-D0
✛
IR(16)
ST0(16)
ST1(16)
RPTC(8)
IFR(6)
16
PC(16)
✛
❄
✲✻
✲
✲
16
Controller
16
❄ ❄
❄
❄
32
❄
16
Data/Prog
RAM(256x16)
Block B0
32
❄
32
ACCH(1) ACCL(16)
✻
❄
❄
16
Shifter(0,1,4)
✻
16
❄
16
16
❄
✲
Data Bus
Bild 4.5: Architektur des TMS 32020
4.2.2 Blockdiagramm eines ADSP 2100
Auch der ADSP2100 [7] (Bild 4.6) hat getrennte Busse für Daten und Instruktionen. Der PMA(program memory address) Bus führt die Adressen des Programmspeichers, der DMD- (data memory address) Bus führt die Adressen des Datenspeichers. Die zu und von diesen Bussen fließenden
Daten laufen über den PMD- (program memory data) bzw. DMD- (data memory data) Bus. Der
PMD-Bus kann außer Instruktionen auch Daten, die im Programmspeicher liegen können, übertragen. Die drei Recheneinheiten ALU, MAC und Shifter stehen daher mit dem PMD- und DMD-Bus
in Verbindung. Daneben besitzen sie noch einen eigenen gemeinsamen R- (result) Bus, über den
auf Daten von speziellen Ergebnisregistern der drei Einheiten zugegriffen werden kann. Zur Adressierung der Operanden der Recheneinheiten dienen die beiden Adressgeneratoren, die bereits beschrieben worden sind. Sowohl die ALU wie auch der MAC können gleichzeitig zwei Operanden
87
4 Signalprozessoren
❄
✻
❄
Instruction
Register
✻
❄
Data
Address
Generator
1
❄
Data
Address
Generator
2
Program
Sequencer
❄
❄
❄
PMA Bus (14)
DMA Bus (14)
✻❄
❄
PMD Bus(24)
✲
✲
✛
✲
PMA
DMA
PMD
✻
❄
Bus
exchange
✻
❄
❄
DMD Bus (16)
✻
✻
✻
✲ Input
❄Regs❄ ✻
✲ Input
❄Regs❄ ✻
✲ Input
❄Regs
ALU
Output Regs
❄
MAC
✛
Output Regs
❄
✛
✲
DMD
✻
Shifter
✛
R Bus(16)
Output Regs
❄
✛
Bild 4.6: Architektur des ADSP 2100
mit völlig unabhängigen Adressierungsarten ansprechen, falls ein Operand im daten- und der andere
im Programmbereich des Speichers liegt. Das Programmsteuerwerk besteht aus dem ProgrammSequenzer und dem Instrukionsdekoder. Die ALU (Bild 4.7) besteht aus dem eigentlichen ALUKern, der neben Additionen und Subtraktionen auch logische Operationen wie AND, OR, negieren
u.s.w. durchführen kann. Das Ergebnis dieser Operation kann wahlweise in ein Ergebnis-Register
(AR) oder ein Rückführregister (AF) geschrieben werden. Das Ergebnisregister kann auch direkt
vom DMD-Bus beschrieben werden. Die Eingänge des ALU-Kerns bilden einen X- und einen YZweig. der X-Zweig hat Zugriff auf den R-Bus oder die Register AX0 und AX1. Über den R-Bus
können das Ergebnisrregister AR oder die Ergebnisregister der anderen Recheneinheiten angesprochen werden. Der Y-Zweig hat Zugriff auf das Rückführregister AF oder die Register AY0 und
AY1. Das Laden der Register AX0,AX1 vom DMD-Bus bzw. AY0,AY1 vom DMD- oder PMD-Bus
geschieht über spezielle Registertransferoperationen, die auch parallel zur ALU-Funktion ablaufen
können. Falls die Y-Register vom PMD-Bus geladen werden und dabei den Adressgenerator 2 benutzen, kann eine Paralleloperation von ALU und X- und Y-Datentransfer stattfinden, wobei die
Adressierungsarten unterschiedlich sein können. Die ALU liefert noch eine Reihe von Bedingungssignalen (Null, Overflow usw.), die vom Programmsteuerwerk zur Steuerung des Programmflusses
verwendet werden können. Der MAC (multiplier-accumulator, Bild 4.8) besteht aus dem eigentlich MAC=Kern, der zwei 16-Bit-Operanden multipliziert und gegebenenfalls zu dem Inhalt des aus
den Registern MR2(8), MR1(16), MR0(16) bestehenden 40-bit Akkumulators addiert, bzw. davon
subtrahiert. Diese Register sind die Ergebnisregister und können auf den R-Bus geschaltet werden.
Auch hier gibt es ein Rückführregister MF. Der X-Operand kann vom R-Bus oder vom MX0,MX1Register geholt werden, der Y-Operand vom Rückführregister oder vom MY0,MY1-Register. MX0
und MX1 werden vom DMD-Bus geladen, MY0,MY1 vom DMD- oder PMD-Bus. Bezüglich des
88
4.2 Beispiele industrieller Signalprozessoren
❄ ❄
✻
✻
PMD Bus (24)
DMD Bus(16)
MUX
❄
AX0, AX1
❄
AY0, AY1
Register
Register
❄ ❄
❄ ❄
MUX
MUX
AZ
AN
AC
AV
AS
AQ
❄ ❄
✛
✛
✛
✛
✛
✛
AF
Register
✛ Cl
ALU
❄ ❄
MUX
❄
AR
Register
❄
R Bus (16)
Bild 4.7: Blockdiagramm der ALU
✻
❄
MX0, MX1
❄ ❄ ✻
MUX
❄
MY0, MY1
Register
Register
❄ ❄
MUX
❄
❄ ❄
MUX
❄
MF
Register
Multiplier
❄
❄
Add/Subtract
R1
R2
❄ ❄
MUX
❄
MR2
Register
❄
❄ ❄
MUX
❄
MR1
Register
❄
✻
PMD Bus (24)
DMD Bus (16)
✲
MV
R0
❄ ❄
MUX
❄
MR0
Register
✲M
✲U
✲X
❄
R Bus (16)
Bild 4.8: Blockdiagramm des MAC
89
4 Signalprozessoren
Datentransfers und der Adressierung gilt dasselbe wie bei der ALU. Das Schiebewerk (Bild 4.9) be-
✻
✲
❄ ❄ ✻
MUX
❄
SB
Register
❄
SE
Register
✻
MUX
Neg
✻
From Instruction
✻
DMD Bus (16)
❄ ❄
MUX
✛
✛
x
❄ ❄
✲
✲
Hi/Lo
✻✻✻
❄
SI
Register
SS
Exponent
Detector
Compare
❄ ❄
MUX
❄
✻
Shifter
Array
❄
❄
OR/PASS
❄ ❄
MUX
❄
SR1
❄ ❄
MUX
❄
SR0
Register
Register
❄
❄
MUX
✻ ✻
R Bus (16)
Bild 4.9: Blockdiagramm des Schiebewerks
steht aus dem Shifter-Array, das wahlweise von dem Eingangsregister SI oder dem R-Bus gespeist
werden kann. Die Zahl der gewünschten Verschiebungen kann, eventuell mit negativem Vorzeichen, dem SE-Register entnommen werden, oder kann direkt in der Instruktion verschlüsselt sein.
Das Eingangsregister SI wird vom DMD-Bus geladen, das Register SE wird vom DMD-Bus oder
von einer Exponenten-Detektor-Einheit geladen. Das Ergebnis der Schiebeoperation wird in ein aus
den Registern SR1(16),SR0(16) bestehendes 32-Bit-Ergebnisregister geschrieben. Wahlweise kann
auch eine Oder-Verknüpfung mit dem vorigen Inhalt erfolgen. Das Programmsteuerwerk (Bild 4.10)
besteht aus dem Programmzähler und einem Selektor der die Adresse der nächsten Instrukion auswählt. Das kann entweder der inkrementierte Programmzähler (Normalfall), eine in der Instruktion
enthaltene Adresse (JUMP, CALL, Schleifenrücksprung), eine im PC-Stack gespeicherte Adresse
(RETURN, RETURN from Interrupt), oder ein Inrerrupt-Vektor sein. In den PC-Stack wird stets
der inkrementierte Inhalt des Programmzählers kopiert (bei CALL, Interrupt, Setzen des Beginns
einer Programmschleife). Programmschleifen können ohne zusätzliche Verzweigungsbefehle programmiert werden. Hierzu dient ein Loop-Stack in Verbindung mit einem Loop-Comparator. Ein
DO address UNTIL condition -Befehl speichert die letzte Adresse address der Schleife zusammen mit einem Kode condition für die Abbruchbedingung in den Loop-Stack. Gleichzeitig wird
der inkrementierte Inhalt des Programmzählers als Anfangsadresse der Schleife in den PC-Stack
geschrieben. Abbruchbedingungen können vom arithmetischen Status (Null, Carry, Overflow...) der
ALU abgeleitet werden oder von einem speziellen Zähler (down counter) stammen, mit dem eine
vorgebene Zahl von Schleifendurchläufen programmiert werden kann. Auch dieser Zähler ist mit einem Stack verbunden. Jeder Schleifenbefehl (DO) bewirkt eine PUSH-Operation von Loop- PC- und
Count-Stack, sodaß Schleifen verschachtelt werden können. Ist eine Schleife programmiert worden,
vergleicht ein Loop-Komparator beständig die laufende Programmadresse mit der im Loop-Stack
stehenden Schleifen-Endadresse. Besteht Übereinstimmung, wird anhand der Abbruchbedingung
90
4.3 Programmierung
DMD Bus (16)
✻ ✻
Count Stack
4 14
❄ ❄ ✻
MUX
❄
From Instruction Register
Down
Counter
❄
Loop Stack
418
Status Stack
4 16
✲
Arithmetic
Status
IRQ0-4
✲
❄ ❄ ✻
MUX
❄
✲
✲
Status
Registers
❄ ❄
Condition
Logic
✻
✻
❄
MUX
Program
counter
❄
Interrupt
PC Stack
1614
Controller
Next Address MUX
PMA Bus(14)
✻ ✻
❄
Increment
❄ ✻ ❄
❄
❄
Loop
Comparator
❄ ❄❄❄❄
Next Address
✛ Source
Select
❄
Bild 4.10: Blockdiagramm des Programmsteuerwerks des ADSP2100
(ebenfalls im Loop-Stack stehend) und des arithmetischen Status bzw. Schleifenzählers entschieden, ob zum Anfang der Schleife (Adresse auf PC-Stack) gesprungen werden muß. In diesem Fall
wird der PC-Stack in den Programmzähler geladen. Andernfalls wird der Programmzähler inkrementiert, und es wird eine POP-Operation von Loop- PC- und Count-Stack durchgeführt. Dadurch
wird gegebenenfalls eine übergeordnete Schleife wieder sichtbar. Der Interrupt-Controller reagiert
auf einen von vier externen Interrupts. Der Programmzähler wird im PC-Stack gerettet und mit einem Interrupt-Vektor überschrieben. Der arithmetische Status wird in einem Status-Stack gerettet.
Anschließend läuft eine Interruptroutine ab, die mit RTI (return from interrupt) abgeschlossen wird.
Dabei wird eine POP-Operation des PC- und Status-Stacks durchgeführt, d.h. der unterbrochene
Programmablauf wird fortgesetzt.
4.3 Programmierung
4.3.1 FIR-Filter mit TMS32020
Als Beispiel für die Programmierung des TMS32020 ist das Programm eines FIR-Filters wiedergegeben.
91
4 Signalprozessoren
IN
CNFP
0,AD
LARP
LRLK
MPYK
RPTK
MACD
AR1
7
0
7
COF,*-
APAC
SACH
0
OUT
0,DA
;Wert in Datenspeicher schreiben
;Konfiguriere Block B0 als Programm;speicher
;ARP zeigt auf AR1
;Setze Zeiger auf N-1
;Setze Multipliziererausgang auf 0
;Setze Wiederholzaehler auf N-1
;Berechne Summe und schiebe Daten;werte
;Akkumuliere letzten Wert
;Akkumulator in Datenadresse 0
;speichern
;Wert ausgeben
Wirkungsweise des Programms:
Der Grad des FIR-Filters sei 8. Die Koeffizienten des Filters sind im Speicher ab der Adresse COF
abgelegt. Die Eingangswerte des Filters sind im Datenspeicher ab Adresse 0 gespeichert. Zunächst
wird ein AD-Wandler Wert gelesen, und in Adresse 0 gespeichert. Die alten Signalwerte sind bereits
im Speicher verschoben worden, so daß die Adresse 0 frei ist. Dann wird ein Zeiger für den Datenspicher definiert und auf das Ende des Datenbereichs gesetzt. Der Akkumulator wird gelöscht. Dann
erfolgt die eigentliche Akkumulation. Hierzu wird der Befehl MACD N-1 mal ausgeführt. Er führt
in einem Zyklus folgende Operationen durch:
Modifizieren eines Zeigers (PC) für die Koeffizienten im Datenspeicher.
Multiplizieren von ci und xj
Akkumulieren des Produkts
Verschieben eines Signalwerts im Datenspeicher
Dekrementieren des Datenzeigers
Dann wird die Akkumulieroperation abgeschlossen und das Ergebnis dem DA-Wandler übergeben.
Siehe hierzu das Schema im Bild 4.11.
4.3.2 FIR-Filter mit ADSP2100
Bei der FIR-Filterung kann der ADSP2100 sinnvoll die zyklische Adressiermethode verwenden.
Das Programm verwendet dei Indexregister I0 für den Datenbereich in dem die Signalwerte stehen,
und I4 für den Programmbereich, in dem die Koeffizienten stehen. Nach jeder Operation mit diesen
Zeigern werden sie automatisch mit den Werten in M0 und M4 modifiziert. damit die zyklische
Adressierung wirksam wird, müssen die Längenregister L0 und L4 auf N (hier 8) gesetzt sein. Ln,
Mn und In werden nur einmal beim Start des Prozessors geladen. Das Programm für die Filterung
könnte folgendermaßen beschaffen sein:
92
4.4 Entwicklungswerkzeuge
AD
✲ ACC ✲ C❥
✻ x9
c7
x9✲
x8
x7
x6
x5
x4
x3
x2
c6
x8
c5
x7
c4
x6
✛ x5
c3 ✲ ❥
c2
x4 ✛
c1
x4
c0
x3
Bild 4.11: FIR-Filterung mit TMS 32020
AX0=DM(AD);
CNTR=7;
MR=0,
MX0=DM(I0,M0),MY0=PM(I4,M4);
DO LP UNTIL CE;
LP: MR=MR+MX0*MY0(SS),MX0=DM(I0,M0),MY0=PM(I4,M4);
MR=MR+MX0*MY0(RND),
DM(I0,M0)=AX0;
DM(DA)=MR1;
Auch hier wird zunächst der AD-Wandler gelesen, Schleifenzähler gesetzt, und der Akkumulator
gelöscht. Die Anweisung mit der Marke LP: wird N-1 mal ausgeführt. Im einzelnen wird hier zum
Akkumulatorinhalt das neue Teilprodukt MX0*MY0 addiert. Mit Hilfe der beiden Adressgeneratoren werden gleichzeitig die neuen Werte für MX0 und MY0 aus dem Speicher geholt, wobei die
Zeiger I0 und I4 modifiziert werden. Nach Ablauf der Schleife wird die Akkumulation abgeschlossen und gleichzeitig das älteste Datenwort im Datenspeicher vom neuen Signalwert überschrieben
und der Datenzeiger um 1 erhöht. Damit ist aufgrund der zyklischen Adressierung beim nächsten
Ablauf des Filteralgorithmus der Zeiger immer jeweils um 1 größer, sodaß ohne explizite Verschiebung der Datenwerte die richtigen xi adressiert werden. Siehe Bild 4.12.
4.4 Entwicklungswerkzeuge
Für die Entwicklung von Signalprozessorsystemen steht für die meisten Fabrikate eine Reihe von
Werkzeugen in Form von Entwicklungsprogrammen für verschiedene Rechner (VAX, IBM-PC ...)
zur Verfügung.
93
4 Signalprozessoren
✲ ACC ✲ C❥
✻ x8
c0
c1
x9
c2
x2
c3
x3
◗
s ❥ x
c4 ◗
4
❦
◗
◗ x5
c5
c6
x6
c7
x7
x8
x
x10 9
AD ✲ x2
x3
x4
x5
x6
x7
Bild 4.12: FIR-Filterung mit ADSP 2100
4.4.1 Compiler
Compiler erlauben die Beschreibung der Algorithmen in einer höheren Programmiersprache. Üblich
ist C, ADA und FORTRAN. Der Nachteil dieser Compiler ist die häufig geringere Effizienz des
übersetzten Programms.
4.4.2 Assembler
Assembler gestatten die Beschreibung des Algorithmus in einer maschinennahen, dem Prozessor
angepaßten Form. Die Effizienz des Programms ist meist hoch, hängt aber von den Kenntnissen des
Programmierers über die Architektur des Prozessors ab.
4.4.3 Linker
Die Verwendung modularer Programmiertechniken führt dazu, daß viele kleine Programm-Module
entwickelt werden, die einzeln übersetzt und ausgetestet werden können. Das Zusammenbinden solcher Module zu einem Ganzen ist mit dem Linker möglich.
4.4.4 Simulator
Das Austesten eines Programms kann mit einem Simulator geschehen, der die Arbeitsweise des
Signalprozessorsystems auf dem Entwicklungsrechner nachbildet. Er erlaubt Einblick in den Programmlauf, Daten- und Programmspeicher, zeigt Registerinhalte an und gestattet das Setzen von
Breakpoints.
94
4.4 Entwicklungswerkzeuge
4.4.5 Emulator
Im Gegensatz zum Simulator erlaubt der Emulator das Austesten in Echtzeit an der OriginalHardware. Hierzu wird der Prozessor physikalisch durch den Emulator ersetzt, der die Funktion
nachbildet, und ähnlich wie der Simulator Einblick in den Programmlauf gestattet.
4.4.6 PC-Entwicklungskarten
Für IBM-PCs sind Entwicklungskarten mit einem kompletten Signalprozessorsystem erhältlich. Die
auf dem PC entwickelten Programme können direkt in den Speicher des Signalprozessors geladen
und zur Ausführung gebracht werden. Auch hier ist eine Überwachung des Programmablaufs und
die Anzeige von Speicher- und Registerinhalten möglich.
95
4 Signalprozessoren
96
Literaturverzeichnis
[1] U, R.: Systemtheorie, Grundlagen für Ingenieure. R. Oldenburg Verlag 1990, ISBN
3-486-21513-2.
[2] S̈, H. W.: Digitale Signalverarbeitung, Band I. Springer-Verlag 1988, ISBN 3-54018438-4.
[3] S, A. D.: Digitale Verarbeitung analoger Signale. R. Oldenburg Verlag 1984, ISBN
3-486-23102-2.
[4] R, G. W.: Binary arithmetic, Advances in Computers, Vol. 1, Academic Press,
New York.
[5] E, L., P̈, J., W, J.: A/D- und D/A-Wandler. Franzis-Verlag München, 1988,
ISBN 3-7723-9811-1.
[6] T I: Second-Generation TMS320 User’s Guide. Texas Instruments, 1988,
ISBN 2-86886-027-3.
[7] A D: ADSP-2100 User’s Manual. Analog Devices, Inc, 1989.
[8] K, K.: Statistische Nachrichtentheorie. Erster Teil, Signalerkennung und Parameterschätzung. Springer-Verlag 1986, ISBN 3-540-17153-3.
[9] K, K.: Statistische Nachrichtentheorie. Zweiter Teil, Signalschätzung. SpringerVerlag 1988, ISBN 3-540-50125-8.
[10] G, A.: Applied Optimal Estimation. The M.I.T. Press, 1982, ISBN 0-262-70008-5.
97
Herunterladen