Some mistakes
[sigproz.git] / ausarb2.txt
index e7f0901cf7cd7acc8968b2dbcdb4be2d4de78226..963474ed988a170808ceab4b835d5d77d68e42e5 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 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
        
        [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:
        [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?
 
 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: 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?
 
 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?
 
 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
 
        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)
        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
 
 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 nötig, die Bits mit zusätzlichen Befehlen zu 
+       korrigieren oder Speicherinhalte auszutauschen. [doc]