+Ausarbeitung der typischen Prüfungsfragen zur Vorlesung "Signalprozessoren"
+Teil 2/2 - von Sebastian Falbesoner <e0725433@student.tuwien.ac.at>
+
+14 - Wie kann mit der DFT das Spektrum einer aperiodischen Funktion annähernd
+ berechnet werden?
+ Die DFT funktioniert nur für periodische Folgen, deshalb ist die
+ Signaldarstellung im Zeit- und Frequenzbereich immer periodisch. In
+ der Realität hat jedes Signal aber einen Anfang und ein Ende. Um eine
+ nicht-periodische Funktion anzunähern benutzt man Zero-Padding, d.h.
+ man fügt in die periodische Funktion Nullen ein.
+ Falls man die Anzahl der Nullen gegen Unendlich laufen lässt, erhält
+ man die DTFT (Discrete Time Fourier Transformation), die aber nur von
+ theoretischem Interesse ist, da sie ein unendliches Spektrum hat.
+ [inff]
+
+15 - Sie wollen benachbarte Spektrallinien der Frequenzen f und f + delta(f)
+ auflösen. Wie stellen Sie sicher, dass die Spektrallinien getrennt werden?
+ Hinweis: Zero Padding verbessert die Trennung zweier Nahe nebeneinander
+ liegender Spektralkomponenten nicht!
+ Um die spektrale Auflösung von zwei Signalen zu verbessern, müssen bei
+ der Abtastung mehr Signalproben (ungleich Null) genommen werden.
+
+ Um zwei benachbarte Spektrallinien auflösen zu können, muss der Abstand
+ der Spektrallinien <= als der Abstand des Frequenzrasters sein!
+
+ [Frequenzraster = f_s / N
+ f_s ... Abtastfrequenz des Originalsignals
+ N ... Anzahl der Samples]
+
+16 - Was ist die FFT und wie wird sie berechnet?
+ Die FFT (Fast Fourier Transformation) ist ein Algorithmus zur
+ effizienten Berechnung der Werte einer DFT. Es handelt sich um ein
+ "divide and conquer" (Teile und Herrsche) Verfahren und im Gegensatz
+ zur direkten Berechnung werden zuvor berechnete Zwischenergebnisse
+ wiederverwendet, was arithmetische Rechenoperationen einspart.
+ Voraussetzung: Anzahl der Abtastpunkte ist eine Zweierpotenz!
+
+ Eine N-Punkt-Folge wird aufgeteilt in zwei N/2-Punkt Folgen
+ [Zahl der Operationen: Reduzierung von ~N^2 auf 2x(N/2)^2 = N^2/2]
+ Dieser Prozess wird fortgesetzt bis eine 2-Punkt-Folge übrigbleibt
+ [Zahl der Operationen: Reduzierung von ~N^2 auf N*log_2(N)]
+
+17 - Welche Zahlendarstellungen für negative Festkommazahlen sind in der DSP
+ gebräuchlich und welche Vor- und Nachteile haben Sie?
+ Einerkomplement (One's complement):
+ - Bildung negativer Zahl: alle Bits invertieren
+ - 0 ist zweimal vorhanden (-0, +0)
+ Zweierkomplement (Two's complement):
+ - meistens verwendet in DSPs
+ - Addition und Subtraktion mit selber Hardware möglich
+ - Bildung negativer Zahl: Einerkompliment + 1
+ - 0 ist nur einmal vorhanden
+ Sign-Magnitude:
+ - Einfache Erzeugung negativer Zahlen
+ - schlecht geeignet zum Rechnen
+ - nur in speziellen Hardware-Implementierungen verwendet
+ - Bildung negativer Zahl: MSB auf 1 setzen, Rest bleibt gleich
+ Offset Binary:
+ - verwendet in A/D-Wandlern
+ - Bildung negativer Zahl: wie Zweierkomplement, MSB vertauscht
+
+18 - Wie wirken sich Quantisierungsfehler auf ein Signal aus?
+
+19 - Welche Bedeutung hat der Lastfaktor?
+
+20 - Wie hängen Dynamikbereich und Genauigkeit bei der Festkommadarstellung
+ zusammen?
+ Bei der Festkommadarstellung befindet sich der Dezimalpunkt für
+ Kommazahlen an einem fixen Punkt und für den Bereich nach und vor
+ diesem wird eine fixe Anzahl an Bits verwendet; man beschreibt daher
+ dieses Format auch mit Qm.n
+
+ Je mehr Bits man für den Bereich nach dem Fixpunkt spendiert, desto
+ höher wird natürlich die Genauigkeit der Kommazahlen. Das selbe
+ gilt für den Dynamikbereich: je mehr Bits für die Stellen vor dem
+ Fixpunkt verwendet werden, desto mehr ganzzahlige Werte vor dem
+ Dezimalpunkt sind möglich.
+ Die Qm.n Formate haben aber insgesamt eine fixe Größe, deshalb gilt
+ hier, je höher der Dynamikbereich, desto weniger Bits bleiben für
+ den Nachkommaanteil übrig und desto ungenauer werden die Kommazahlen,
+ und umgekehrt fällt der ganzzahlige Anteil umso kleiner aus, je mehr
+ Bits man für hohe Genauigkeit investiert.
+
+ Die Extreme eines 16-Bit Qm.n sind zum Beispiel:
+ Q0.15: höchste Präzision, jedoch insgesamt nur ein Wertebereich von
+ -1 bis 0.999999...
+ Q15.0: höchster Dynamikbereich, Nachkommaanteil gar nicht vorhanden,
+ entspricht einem Integer mit Wertebereich -32768 bis 32767!
+
+21 - Welche Vor- und Nachteile haben Fest- und Gleitkomma-DSPs?
+ Eigenschaften Festkommazahlen:
+ - gleichmäßige Auflösung über den gesamten Zahlenbereich
+ - kleiner Dynamikbereich
+ - Festkomma-DSPs sind billiger, verbrauchen weniger Strom,
+ haben eine höhere Taktfrequenz, werden aber nur sehr schwach
+ von C-Compilern unterstützt (meist in Assembler programmiert);
+ Overflow- und Quantisierungsfehler müssen softwareseitig
+ gelöst werden
+
+ Eigenschaften Gleitkommazahlen:
+ - feinere Auflösung für kleine Zahlen, gröbere Auflösung für
+ große Zahlen
+ - größerer Dynamikbereich
+ - Gleitkomma-DSPs sind teurer, verbrauchen mehr Strom,
+ haben eine niedrigere Taktfrequenz, werden aber gut von
+ C-Compilern unterstützt und sind einfacher zu programmieren
+ (keine Skalierung notwendig!)
+
+22 - Was ist das IEEE Gleitkomma-Format?
+ genaue Bezeichnung IEEE 754; Norm die Standarddarstellungen für binäre
+ Gleitkommazahlen in Computern definiert, legt aber auch genaue
+ Verfahren für die Durchführung mathematischer Operationen, insbesondere
+ für Rundungen, sowie Exceptions (Division durch Null, Overflow etc.)
+ fest!
+
+ allgemeine Darstellung einer Gleitkommazahl:
+ x = s * m * b^e
+ s ... Vorzeichen (bestehend aus 1 Bit)
+ m ... Mantisse
+ b ... Basis (hier b=2)
+ e ... Exponent
+
+ zwei Grunddatenformate:
+ single precision (32 bit, len(m)=23 bit, len(e)=8 bit)
+ double precision (64 bit, len(m)=52 bit, len(e)=11 bit)
+ zwei erweiterte Formate:
+ single extended (>42 bit, len(m)>30 bit, len(e)>10 bit)
+ double extended (>78 bit, len(m)>62 bit, len(e)>14 bit)
+
+ enthält auch Konventionen für die Darstellungen spezieller Zahlen,
+ z.B. NaN (not a number), oder Unendlich (Spezialwerte vom Exponent
+ 0 und 255!)
+
+23 - Was ist Pipelining und welche typischen Stufen treten in einer Pipeline
+ auf?
+ Prinzip: Instruktionen werden in mehrere Phasen zerlegt, diese
+ Phasen können parallel ausgeführt werden; die Verwendung von
+ unabhängigen Prozessor-Ressourcen wird dadurch optimiert.
+ Sobald die Pipeline voll ist, kann theoretisch eine ganze Instruktion
+ pro Taktzyklus abgearbeitet werden!
+ Typische Phasen:
+ Instr. PreFetch: store address of instruction to be fetched
+ Instr. Fetch: loads operation code
+ Instr. Decode: decodes the fetched instruction
+ Instr. Access: reading operand address, modifying registers
+ Instr. Read: reads data from the data buses
+ Instr. Execute: executes instruction and writes if required
+
+24 - Was versteht man unter Superskalar-Architekturen? Was versteht man unter
+ VLIW-Architekturen? Wodurch unterscheiden sich die beiden?
+ Superskalarität: Fähigkeit eines Prozessors, mehrere Befehle aus einem
+ Befehlsstrom gleichzeitig mit mehreren parallel arbeitenden
+ Funktionseinheiten zu verarbeiten. Es handelt sich dabei um eine
+ Parallelität auf Befehlsebene, bei der die feinkörnige Nebenläufigkeit
+ zwischen den einzelnen Befehlen ausgenutzt wird.
+ VLIW-Architektur: VLIW steht für "Very Long Instruction Word" und
+ bezeichnet eine Befehlssatzarchitektur-Technik, bei der deutlich
+ längere Befehle zum Einsatz kommen, die die parallel auszuführenden
+ Befehle enthalten. Es handelt sich dabei ebenfalls um Parallelität auf
+ Instruktionsebene.
+
+ Unterschiede: bei superskalaren Architekturen werden die Befehle
+ vom Prozessor dynamisch auf die einzelnen Funktionseinheiten verteilt,
+ während VLIW diese Aufteilung statisch vom Compiler erledigen lässt.
+ [doc]
+
+25 - Was sind Kaskaden in IIR-Filtern? Warum verwendet man sie?
+ Beim kaskadieren, d.h. hintereinanderschachteln, von IIR-Filtern werden
+ stets welche (max.) 2. Ordnung verwendet, was folgende Vorteile bringt:
+ - einfacher zu entwerfen, weniger Entwicklungsaufwand
+ - weniger anfällig für Quantisierungsfehler
+ - weniger anfällig für Stabilitätsprobleme
+ Ein großer Nachteil ist jedoch, dass die Aufteilung der Pole und
+ Nullstellen auf die Subsysteme 2. Ordnung nicht trivial ist!
+
+26 - Was versteht man unter einem Zirkulärbuffer?
+ Auch "Ringbuffer" genannt - in solch einem Buffer wird das älteste
+ Element durch das neueste ersetzt und der Pointer auf dieses Element
+ gesetzt. Er kommt vor allem bei FIR-Filtern zum Einsatz, da mit
+ einem Ringbuffer effizient auf die letzten Elemente zugegriffen werden
+ kann. [inff]
+
+27 - Was versteht man unter Bit-Reversal bei DSP-Architekturen?
+ Die Bit-Reversed-Adressierung ist nützlich, um FFTs (Fast Fourier
+ Transformationen) schneller zu implementieren. Da das Endergebnis
+ solcher Transformationen "bit-reversed" ist, kann diese Adressierung
+ dazu verwendet werden, die errechneten Daten in brauchbarer Form im
+ Speicher abzulegen. Es ist also nicht nötig, die Bits mit zusätzlichen
+ Befehlen zu korrigieren und Speicherinhalte auszutauschen. [doc]