e7f0901cf7cd7acc8968b2dbcdb4be2d4de78226
[sigproz.git] / ausarb2.txt
1 Ausarbeitung der typischen Prüfungsfragen zur Vorlesung "Signalprozessoren"
2 Teil 2/2 - von Sebastian Falbesoner <e0725433@student.tuwien.ac.at>
3
4 14 - Wie kann mit der DFT das Spektrum einer aperiodischen Funktion annähernd
5      berechnet werden?
6         Die DFT funktioniert nur für periodische Folgen, deshalb ist die
7         Signaldarstellung im Zeit- und Frequenzbereich immer periodisch. In
8         der Realität hat jedes Signal aber einen Anfang und ein Ende. Um eine
9         nicht-periodische Funktion anzunähern benutzt man Zero-Padding, d.h.
10         man fügt in die periodische Funktion Nullen ein.
11         Falls man die Anzahl der Nullen gegen Unendlich laufen lässt, erhält
12         man die DTFT (Discrete Time Fourier Transformation), die aber nur von
13         theoretischem Interesse ist, da sie ein unendliches Spektrum hat.
14         [inff]
15
16 15 - Sie wollen benachbarte Spektrallinien der Frequenzen f und f + delta(f)
17      auflösen. Wie stellen Sie sicher, dass die Spektrallinien getrennt werden?
18         Hinweis: Zero Padding verbessert die Trennung zweier Nahe nebeneinander
19         liegender Spektralkomponenten nicht!
20         Um die spektrale Auflösung von zwei Signalen zu verbessern, müssen bei
21         der Abtastung mehr Signalproben (ungleich Null) genommen werden.
22         
23         Um zwei benachbarte Spektrallinien auflösen zu können, muss der Abstand
24         der Spektrallinien <= als der Abstand des Frequenzrasters sein!
25         
26         [Frequenzraster = f_s / N
27          f_s ... Abtastfrequenz des Originalsignals
28          N   ... Anzahl der Samples]
29
30 16 - Was ist die FFT und wie wird sie berechnet?
31         Die FFT (Fast Fourier Transformation) ist ein Algorithmus zur
32         effizienten Berechnung der Werte einer DFT. Es handelt sich um ein
33         "divide and conquer" (Teile und Herrsche) Verfahren und im Gegensatz
34         zur direkten Berechnung werden zuvor berechnete Zwischenergebnisse
35         wiederverwendet, was arithmetische Rechenoperationen einspart.
36         Voraussetzung: Anzahl der Abtastpunkte ist eine Zweierpotenz!
37
38         Eine N-Punkt-Folge wird aufgeteilt in zwei N/2-Punkt Folgen
39         [Zahl der Operationen: Reduzierung von ~N^2 auf 2x(N/2)^2 = N^2/2]
40         Dieser Prozess wird fortgesetzt bis eine 2-Punkt-Folge übrigbleibt
41         [Zahl der Operationen: Reduzierung von ~N^2 auf N*log_2(N)]
42
43         by wurm:
44         mathematischer ausfuehren.
45         algorithmus (pseudocode?)
46         ned nur fuer 2-Punkt-Folge sondern auch fuer 4-Punkt-Folge?
47
48 17 - Welche Zahlendarstellungen für negative Festkommazahlen sind in der DSP
49      gebräuchlich und welche Vor- und Nachteile haben Sie?
50         Einerkomplement (One's complement):
51                 - Bildung negativer Zahl: alle Bits invertieren
52                 - 0 ist zweimal vorhanden (-0, +0)
53         Zweierkomplement (Two's complement):
54                 - meistens verwendet in DSPs
55                 - Addition und Subtraktion mit selber Hardware möglich
56                 - Bildung negativer Zahl: Einerkompliment + 1
57                 - 0 ist nur einmal vorhanden
58         Sign-Magnitude:
59                 - Einfache Erzeugung negativer Zahlen
60                 - schlecht geeignet zum Rechnen
61                 - nur in speziellen Hardware-Implementierungen verwendet
62                 - Bildung negativer Zahl: MSB auf 1 setzen, Rest bleibt gleich
63         Offset Binary:
64                 - verwendet in A/D-Wandlern
65                 - Bildung negativer Zahl: wie Zweierkomplement, MSB vertauscht
66
67 18 - Wie wirken sich Quantisierungsfehler auf ein Signal aus?
68         TODO
69
70 19 - Welche Bedeutung hat der Lastfaktor?
71         TODO
72
73 20 - Wie hängen Dynamikbereich und Genauigkeit bei der Festkommadarstellung
74      zusammen?
75         Bei der Festkommadarstellung befindet sich der Dezimalpunkt für 
76         Kommazahlen an einem fixen Punkt und für den Bereich nach und vor
77         diesem wird eine fixe Anzahl an Bits verwendet; man beschreibt daher
78         dieses Format auch mit Qm.n
79
80         Je mehr Bits man für den Bereich nach dem Fixpunkt spendiert, desto
81         höher wird natürlich die Genauigkeit der Kommazahlen. Das selbe
82         gilt für den Dynamikbereich: je mehr Bits für die Stellen vor dem 
83         Fixpunkt verwendet werden, desto mehr ganzzahlige Werte vor dem
84         Dezimalpunkt sind möglich.
85         Die Qm.n Formate haben aber insgesamt eine fixe Größe, deshalb gilt
86         hier, je höher der Dynamikbereich, desto weniger Bits bleiben für
87         den Nachkommaanteil übrig und desto ungenauer werden die Kommazahlen,
88         und umgekehrt fällt der ganzzahlige Anteil umso kleiner aus, je mehr
89         Bits man für hohe Genauigkeit investiert.
90
91         Die Extreme eines 16-Bit Qm.n sind zum Beispiel:
92         Q0.15: höchste Präzision, jedoch insgesamt nur ein Wertebereich von
93                -1 bis 0.999999...
94         Q15.0: höchster Dynamikbereich, Nachkommaanteil gar nicht vorhanden,
95                entspricht einem Integer mit Wertebereich -32768 bis 32767!
96
97 21 - Welche Vor- und Nachteile haben Fest- und Gleitkomma-DSPs?
98         Eigenschaften Festkommazahlen:
99                 - gleichmäßige Auflösung über den gesamten Zahlenbereich
100                 - kleiner Dynamikbereich
101                 - Festkomma-DSPs sind billiger, verbrauchen weniger Strom,
102                   haben eine höhere Taktfrequenz, werden aber nur sehr schwach
103                   von C-Compilern unterstützt (meist in Assembler programmiert);
104                   Overflow- und Quantisierungsfehler müssen softwareseitig
105                   gelöst werden
106
107         Eigenschaften Gleitkommazahlen:
108                 - feinere Auflösung für kleine Zahlen, gröbere Auflösung für
109                   große Zahlen
110                 - größerer Dynamikbereich
111                 - Gleitkomma-DSPs sind teurer, verbrauchen mehr Strom,
112                   haben eine niedrigere Taktfrequenz, werden aber gut von
113                   C-Compilern unterstützt und sind einfacher zu programmieren
114                   (keine Skalierung notwendig!)
115
116 22 - Was ist das IEEE Gleitkomma-Format?
117         genaue Bezeichnung IEEE 754; Norm die Standarddarstellungen für binäre
118         Gleitkommazahlen in Computern definiert, legt aber auch genaue
119         Verfahren für die Durchführung mathematischer Operationen, insbesondere
120         für Rundungen, sowie Exceptions (Division durch Null, Overflow etc.)
121         fest!
122
123         allgemeine Darstellung einer Gleitkommazahl:
124                 x = s * m * b^e
125         s ... Vorzeichen (bestehend aus 1 Bit)
126         m ... Mantisse
127         b ... Basis (hier b=2)
128         e ... Exponent
129
130         zwei Grunddatenformate:
131                 single precision (32 bit, len(m)=23 bit, len(e)=8 bit)
132                 double precision (64 bit, len(m)=52 bit, len(e)=11 bit)
133         zwei erweiterte Formate:
134                 single extended (>42 bit, len(m)>30 bit, len(e)>10 bit)
135                 double extended (>78 bit, len(m)>62 bit, len(e)>14 bit)
136
137         enthält auch Konventionen für die Darstellungen spezieller Zahlen,
138         z.B. NaN (not a number), oder Unendlich (Spezialwerte vom Exponent
139         0 und 255!)
140
141 23 - Was ist Pipelining und welche typischen Stufen treten in einer Pipeline 
142      auf?
143         Prinzip: Instruktionen werden in mehrere Phasen zerlegt, diese
144         Phasen können parallel ausgeführt werden; die Verwendung von
145         unabhängigen Prozessor-Ressourcen wird dadurch optimiert.
146         Sobald die Pipeline voll ist, kann theoretisch eine ganze Instruktion 
147         pro Taktzyklus abgearbeitet werden!
148         Typische Phasen:
149                 Instr. PreFetch: store address of instruction to be fetched
150                 Instr. Fetch: loads operation code
151                 Instr. Decode: decodes the fetched instruction
152                 Instr. Access: reading operand address, modifying registers
153                 Instr. Read: reads data from the data buses
154                 Instr. Execute: executes instruction and writes if required     
155
156 24 - Was versteht man unter Superskalar-Architekturen? Was versteht man unter
157      VLIW-Architekturen? Wodurch unterscheiden sich die beiden?
158         Superskalarität: Fähigkeit eines Prozessors, mehrere Befehle aus einem
159         Befehlsstrom gleichzeitig mit mehreren parallel arbeitenden 
160         Funktionseinheiten zu verarbeiten. Es handelt sich dabei um eine
161         Parallelität auf Befehlsebene, bei der die feinkörnige Nebenläufigkeit
162         zwischen den einzelnen Befehlen ausgenutzt wird.        
163         VLIW-Architektur: VLIW steht für "Very Long Instruction Word" und
164         bezeichnet eine Befehlssatzarchitektur-Technik, bei der deutlich
165         längere Befehle zum Einsatz kommen, die die parallel auszuführenden
166         Befehle enthalten. Es handelt sich dabei ebenfalls um Parallelität auf
167         Instruktionsebene.
168         
169         Unterschiede: bei superskalaren Architekturen werden die Befehle
170         vom Prozessor dynamisch auf die einzelnen Funktionseinheiten verteilt,
171         während VLIW diese Aufteilung statisch vom Compiler erledigen lässt.
172         [doc]
173
174 25 - Was sind Kaskaden in IIR-Filtern? Warum verwendet man sie?
175         Beim kaskadieren, d.h. hintereinanderschachteln, von IIR-Filtern werden
176         stets welche (max.) 2. Ordnung verwendet, was folgende Vorteile bringt:
177                 - einfacher zu entwerfen, weniger Entwicklungsaufwand
178                 - weniger anfällig für Quantisierungsfehler
179                 - weniger anfällig für Stabilitätsprobleme
180         Ein großer Nachteil ist jedoch, dass die Aufteilung der Pole und
181         Nullstellen auf die Subsysteme 2. Ordnung nicht trivial ist!
182
183 26 - Was versteht man unter einem Zirkulärbuffer?
184         Auch "Ringbuffer" genannt - in solch einem Buffer wird das älteste
185         Element durch das neueste ersetzt und der Pointer auf dieses Element
186         gesetzt. Er kommt vor allem bei FIR-Filtern zum Einsatz, da mit
187         einem Ringbuffer effizient auf die letzten Elemente zugegriffen werden
188         kann. [inff]
189
190 27 - Was versteht man unter Bit-Reversal bei DSP-Architekturen?
191         Die Bit-Reversed-Adressierung ist nützlich, um FFTs (Fast Fourier
192         Transformationen) schneller zu implementieren. Da das Endergebnis
193         solcher Transformationen "bit-reversed" ist, kann diese Adressierung
194         dazu verwendet werden, die errechneten Daten in brauchbarer Form im
195         Speicher abzulegen. Es ist also nicht nötig, die Bits mit zusätzlichen
196         Befehlen zu korrigieren und Speicherinhalte auszutauschen. [doc]