Der FFT-Verarbeitungsgewinn ergibt sich aus der Tatsache, dass die DFT (von der FFT einfach eine schnelle Implementierung ist) eine nicht normalisierte lineare Transformation ist. Dies ist ein Schluck, also schauen wir uns an, was dies bedeutet.
Ich gehe davon aus, dass Sie wissen, was eine lineare Transformation ist. Wir haben nämlich die Vektoren und und eine Matrix wir habenxyEIN
y =A x .
DFT ist eine solche Transformation. Tatsächlich können Sie den MATLAB- dftmtx
Befehl verwenden, um diese Matrix basierend auf der Länge des Vektors für Sie zu generieren . Dies ist der Fall,x
y =DFT( x ).
Diese Matrix hat einige Eigenschaften. Zuallererst ist es eine quadratische Matrix, was bedeutet, dass sie wahrscheinlich invertierbar ist (und tatsächlich ist es das!). Es sagt uns auch, dass wir im Wesentlichen Komponenten von x nehmen und eine Basisänderung durchführen, die durch die Spalten von , um seine DFT zu erhalten. So weit, ist es gut.EINEIN
Kommen wir nun zu einigen wichtigeren Eigenschaften. Matrix ist orthogonal. Dies bedeutet, dass jede Spalte von senkrecht zu jeder anderen Spalte steht, oder mathematisch gesehen ist eine diagonale Matrix (Sie müssen möglicherweise ein wenig darüber nachdenken, warum dies wahr ist). Dies ist eine sehr schöne Eigenschaft, da wir durch einfaches Transponieren der Matrix etwas erhalten, das ihrer Umkehrung sehr nahe kommt.EINEINEINT.EIN
Um diese Transverse Inverse-Beziehung streng zu machen, soll die Matrix auch normal sein . Dies ist eine Matrix, deren jeder Spaltenvektor die Länge 1 hat. Mit anderen Worten, wenn eine Spalte von , dann ist Wenn eine Matrix sowohl orthogonal als auch normal ist, nennen wir sie orthonormal und in diesem Fall , also in der Tat das inverse ist . Ordentlich!↔EINeinEINeinT.ein- -- -- -√= 1.EINT.A = I.EINT.EIN
Die übliche DFT-Matrix (oder die übliche DFT-Transformation) ist orthogonal, aber nicht orthonormal. Wenn die DFT-Matrix ist, dann ist wobei die Anzahl der Spalten (oder Zeilen, es ist quadratisch!) In . Um es orthonormal zu machen, sollten wir stattdessen verwenden. Wenn Sie es lange genug betrachten, stellen Sie fest, dass wir sowohl Vorwärts- als auch Rückwärtstransformationen mit skalieren. Wir leisten zusätzliche Arbeit bei der Durchführung der Berechnungen, sodass wir normalerweise nur nach skalieren invers.D.D.T.D = N.N.D.D.N.√1N.√1N.
Es gibt bessere theoretische Gründe dafür, dies auf einer Seite zu tun, als auf beiden. Siehe meine Antwort hier für weitere Informationen.