Lineare Phase bei analoge Filter
[sigproz.git] / ausarb2.txt
index e7f0901cf7cd7acc8968b2dbcdb4be2d4de78226..83764e9958d1db9b8878bd2565561b5800b51b47 100755 (executable)
@@ -21,7 +21,7 @@ Teil 2/2 - von Sebastian Falbesoner <e0725433@student.tuwien.ac.at>
        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!
+       der Spektrallinien >= als der Abstand des Frequenzrasters sein!
        
        [Frequenzraster = f_s / N
         f_s ... Abtastfrequenz des Originalsignals
@@ -41,9 +41,46 @@ Teil 2/2 - von Sebastian Falbesoner <e0725433@student.tuwien.ac.at>
        [Zahl der Operationen: Reduzierung von ~N^2 auf N*log_2(N)]
 
        by wurm:
-       mathematischer ausfuehren.
-       algorithmus (pseudocode?)
-       ned nur fuer 2-Punkt-Folge sondern auch fuer 4-Punkt-Folge?
+       Im Text wird der 2-Punkt Algorithmus naeher ausgefuehrt:
+       Im ersten Schritt fuehren wir die Beziehung
+       > W^k_N = e^{-j\frac{2 \pi}{N}k}
+       ein. Man kann erkennen, dass W^k_N fuer alle k=0,1,...,N-1 eine gewissen
+       Symmetrie aufweist:
+       > W^k_N = -W^{k+(N/2)}_N bzw. W^{k+(N/2)}_N = -W^k_N
+       man kann nun die Folge x[n] in eine gerade und ungerade Liste aufteilen,
+       und erhaelt damit folgenden Term:
+       > X[k] = \sum^{N-1}_{m=0} x[n] W^{kn}_N =
+       > \sum^{N/2 -1}_{m=0} x[2m] W^{2mk}_N +
+       > \sum^{N/2 -1}_{m=0} x[2m+1] W^{(2m+1)k}_N = //W^k_N rausziehen
+       > \sum^{N/2 -1}_{m=0} x[2m] W^{2mk}_N +
+       > W^k_N \sum^{N/2 -1}_{m=0} x[2m+1] W^{2mk}_N
+
+       weiters kann man nun die Beziehung
+       > W^2_N = W_{N/2}
+       ausnutzen, die sich wie folgt ergibt:
+       > W^2_N = e^{-j\frac{2\pi 2}{N}} = e^{-j\frac{2\pi}{N/2}}
+
+       also erhalten wir:
+       > X[k] = \sum^{N/2 -1}_{m=0} x[2m] W^{mk}_{N/2} +
+       > W^k_N \sum^{N/2 -1}_{m=0} x[2m+1] W^{mk}_{N/2}
+
+       vereinfacht angeschrieben ist das:
+       > X[k] = X_g[m] + W^k_N \cdot X_u[m]
+
+       die Symmetrieeigenschaft ausgenutzt, koennen wir nun behaupten:
+       > X[k] = X_g[k] + W^k_N \cdot X_u[k]
+       > X[k + (N/2)] = X_g[k] - W^k_N \cdot X_u[k]
+       > fuer k=0,1,\dots{},(N/2)-1
+
+       beim 2-Punkt Algorithmus wird x[n] also so lange in geraden und ungeraden
+       Folgen aufgeteilt bis nur noch 2 Elemente in der Liste enthalten sind.
+       Daraus folgt dass x[n] immer eine Laenge von 2^n haben muss bzw. wenn das
+       nicht der Fall ist, mit Nullen aufgefuellt werden muss.
+       Weiters gibts noch leicht abgeaenderte Varianten, z.B. den 4-Punkt bzw.
+       8-Punkt Algorithmus. Hier reduziert sich die Anzahl der Multiplikationen
+       um zirka um 25% bzw. 40%, haben aber den Nachteil dass die Laenge der
+       Eingangsfolge eine Potenz von 4 bzw. 8 sein muss (und dementsprechend
+       groessere Speicherelemente benoetigt).
 
 17 - Welche Zahlendarstellungen für negative Festkommazahlen sind in der DSP
      gebräuchlich und welche Vor- und Nachteile haben Sie?
@@ -62,13 +99,52 @@ Teil 2/2 - von Sebastian Falbesoner <e0725433@student.tuwien.ac.at>
                - Bildung negativer Zahl: MSB auf 1 setzen, Rest bleibt gleich
        Offset Binary:
                - verwendet in A/D-Wandlern
-               - Bildung negativer Zahl: wie Zweierkomplement, MSB vertauscht
+               - Bildung negativer Zahl: wie Zweierkomplement, MSB vertauschen
 
 18 - Wie wirken sich Quantisierungsfehler auf ein Signal aus?
        TODO
 
 19 - Welche Bedeutung hat der Lastfaktor?
-       TODO
+       Der Lastfaktor wird fuer die Berechnung der SNR benoetigt;
+       > SNR = \frac{Signalpower}{Noisepower} =
+       > 10 log (\frac{\sigma^2_{Signal}}{\sigma^2_{A/D-Rauschen}})
+       10log deswegen, weil es sich um einen Leistungsterm handelt.
+
+       Der Rauschanteil berechnet sich durch statistische Annahmen:
+       > \sigma^2_{A/D-Rauschen} = \int^{q/2}_{-q/2} e^2 p(e) de =
+       > \frac{1}{q} * \int^{q/2}_{-q/2} e^2 de = \frac{q^2}{12}
+       > wobei q = \frac{2 U_p}{2^b} = LSB
+       > =>
+       > \sigma^2_{A/D-Rauschen} = \frac{(2 U_p)^2}{12(2^b)} =
+       > \frac{U^2_p}{3\cdot 2^{2b}}
+
+       Der Lastfaktor berechnet sich nun wie folgt:
+       > LF = \frac{Effektivwert}{Spitzenwert}
+
+       Ein Rechtecksignal hat z.B. einen LF=1; ein Sinussignal
+       LF=\frac{1}{\sqrt{2}} = 0.71
+
+       Anders angeschrieben berechnet sich der Lastfaktor
+       > LF = \frac{\sigma_{Signal}}{U_p}
+       daraus folgt
+       > \sigma^2_{Signal} = (LF)^2 U^2_p
+
+       in die SNR Formel eingesetzt ergibt das also
+       > SNR = 10log (\frac{(LF)^2 U^2_p}{U^2_p / 3 \cdot 2^{2b}}) =
+       > 10log ((LF)^2 (3\cdot 2^{2b})) =
+       > 4.77 + 6.02 * b + 20 log (LF)
+
+       Der Lastfaktor wird bei Sinusschwingungen nie groesser als -3dB, daraus
+       koennen wir die maximale Sinusaussteuerung fuer den A/D-Wandler berechnen:
+       > SNR = 4.77 + 6.02 * b + 20 log (1/\sqrt{2}) =
+       > 1.76 + 6.02 * b
+
+       Reale A/D-Wandler reduzieren die ideale SNR um 3-6dB. Es ist unvorsichtig
+       einen A/D-Wandler voll auszusteuern, da sonst die Gefahr der Uebersteuerung
+       besteht. Es muss ein Effektivwert gesucht werden, der den A/D-Wandler nicht
+       uebersteuert!
+       Weiters ist es unzweckmaessig einen A/D-Wandler einzusetzen der einen
+       deutlich besseres SNR hat als das zu wandlende kontinuierliche Signal!
 
 20 - Wie hängen Dynamikbereich und Genauigkeit bei der Festkommadarstellung
      zusammen?
@@ -127,6 +203,15 @@ Teil 2/2 - von Sebastian Falbesoner <e0725433@student.tuwien.ac.at>
        b ... Basis (hier b=2)
        e ... Exponent
 
+       bei IEEE 754:
+       x = (-1)^s * m * 2^{e-127}
+       IEEE 32-Bit floating-point:
+       s ... 1 Bit
+       e ... Bit 1 bis 8 (=8 Bits)
+       m ... Bit 9 bis 31 (=23 Bits)
+
+       warum 2^{e-127}? Leichtere Vergleichbarkeit!
+
        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)
@@ -189,8 +274,9 @@ Teil 2/2 - von Sebastian Falbesoner <e0725433@student.tuwien.ac.at>
 
 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]
+       Transformationen) schneller zu implementieren. Da die Eingangswerte
+       nicht der ueblichen numerischen Ordnung folgen (bei einer 8-Punktfolge
+       ist die Ordnung 0, 4, 2, 6, 1, 5, 3, 7), kann diese Adressierung
+       dazu verwendet werden, die benoetigten Daten schneller anzulegen
+       Es ist also nicht noetig, die Bits mit zusaetzlichen Befehlen zu
+       korrigieren oder Speicherinhalte auszutauschen. [doc]