"Gibt es eine praktische Anwendung?" Auf jeden Fall ja, zumindest um Code zu überprüfen und Fehler zu binden.
"In Theorie, Theorie und Praxis stimmen sie überein. In der Praxis tun sie das nicht." Also, mathematisch gesehen, nein, wie von Matt beantwortet. Weil (wie bereits beantwortet) F(F(x(t)))=x(−t) (bis zu einem möglichen Skalierungsfaktor). Es kann jedoch rechnerisch nützlich sein, da die obige Gleichung normalerweise über die diskrete Fourier-Transformation und ihren schnellen Avatar, die FFT, implementiert wird.
Ein erster Grund ergibt sich aus dem Willen zu überprüfen, ob die Fourier-Implementierung, ob von Ihnen, jemand anderem oder aus einer Bibliothek codiert, das tut, was sie für Ihre Daten tun sollte. Probenreihenfolge, Skalierungsfaktoren, Grenzen des Eingabetyps (Realität, Bittiefe) oder Länge sind Quellen für mögliche nachfolgende Fehler bei Fourier-Implementierungen wie der FFT. Zur Überprüfung der Integrität ist es immer gut zu überprüfen, ob die implementierten Versionen zumindest ungefähr die theoretischen Eigenschaften erben. Wie Sie sehen werden, stellen Sie, wie von Machupicchu gezeigt, nicht genau eine umgekehrte reale Eingabe wieder her: Oft ist der Imaginärteil nicht genau Null, und der Realteil ist das, was erwartet wird, aber aufgrund unvollständiger Computerberechnungen innerhalb eines kleinen relativen Fehlers (Gleitkomma) innerhalb einer maschinenabhängigen Toleranz. Dies wird auf dem folgenden Bild sichtbar gemacht. Die FFT wird zweimal auf ein zufälliges 32-Abtast-Signal angewendet und umgedreht. Wie Sie sehen können, ist der Fehler bei Verwendung von Floats mit doppelter Genauigkeit gering.
Wenn der Fehler nicht relativ klein ist, kann der von Ihnen verwendete Code fehlerhaft sein.
x01 e 6xk + 1= R e ( f( f( f( f( xk) ) )))
fmax | xk- x0|
10001000 × 1000 × 1000
Das Begrenzen des Fehlers und das Bewerten seines Verhaltens über Iterationen kann dazu beitragen, solche Verhaltensweisen zu erkennen und dann durch geeignete Schwellenwerte oder Rundungen zu reduzieren.
Zusätzliche Information:
Die inverse Fourier-Transformation, die auf ein Zeitbereichssignal angewendet wird, ergibt nur das Spektrum mit Frequenzinversion. Schauen Sie sich diese Antwort für weitere Details an.
quelle
Während Sie die Fourier-Transformation direkt zweimal hintereinander durchführen, erhalten Sie nur eine triviale Zeitinversion, die ohne FT viel billiger zu implementieren wäre. Es gibt jedoch nützliche Dinge, die Sie tun können, indem Sie eine Fourier-Transformation durchführen, eine andere Operation anwenden und dann noch einmal Fourier transformiert das Ergebnis davon. Das bekannteste Beispiel ist die Autokorrelation , eine Art Faltung eines Signals mit sich selbst. Und Faltungen sind O ( n 2 ), wenn sie naiv implementiert werden, aber nur O ( n · log n) bei einem Umweg über Fourier-Transformation. Die Autokorrelation erfolgt also im Allgemeinen durch FT'ing eines Signals, Aufnehmen des absoluten Quadrats und IFT-Zurücksetzen dieses Signals in den Zeitbereich.
quelle
https://ch.mathworks.com/help/matlab/ref/fft2.html
Versuche dies:
und vergleiche mit:
eher so. Ich habe fft2 mal angewendet, nicht ifft2 das zweite Mal. Ich denke, das zeigt, was @Matt L. gesagt hat:
"Die zweimalige Fourier-Transformation entspricht einer Zeitinversion",
Sie können sehen, dass das Bild aufgrund des imaginären Negativs -i anstelle des Positivs in ifft () invertiert ist.
Ich habe es auch für ein 1D-Signal gemacht (zB zeitlich):
quelle
Um die zweite Frage, in der digitalen Kommunikation zu beantworten gibt es eine Technik , bei Einsatz in Handys jetzt , die von der Anwendung des IFFT auf ein Zeitsignal guten Gebrauch macht. OFDM wendet eine IFFT auf eine Zeitbereichssequenz von Daten am Sender an und kehrt diese dann mit einer FFT am Empfänger um. Während die Literatur gerne IFFT-> FFT verwendet, macht es wirklich keinen Unterschied, welches zuerst kommt.
Der Hauptvorteil hier hängt stark mit der Antwort von leftaroundabout zusammen. Es gibt eine Art von Verzerrung, die aufgerufen wird Multipath-Fading bezeichnet wird , und Mobiltelefone in dichten städtischen Gebieten müssen sich mit vielem auseinandersetzen. Wir modellieren Multipath-Fading gerne als Faltung mit unbekannten Koeffizienten. Da die Ereigniskette ungefähr so aussieht wie IFFT-> Senden-> Multipath-> Empfangen-> FFT anwenden, durchläuft das Multipath-Fading die FFT und wird zu einer einfachen Punkt-für-Punkt-Multiplikation mit unbekannten Werten. Diese Werte sind viel einfacher vorherzusagen und zu korrigieren als die Faltungskoeffizienten.
Dieser Effekt macht ein Signal auch widerstandsfähiger gegen Mehrweg / Fading, das einen gesamten Frequenzkanal herausnehmen (oder "null") könnte. Dieser Artikel beschreibt, wie
quelle
Diese Informationen wurden vom Benutzer "Birdwes" bereitgestellt, aber er hatte nicht genug Ruf, um sie selbst zu veröffentlichen, daher werde ich sie hier für ihn veröffentlichen, da sie relevant und nützlich erscheinen.
"Ich habe nicht genug Punkte in diesem Forum, um einen Kommentar hinzuzufügen, also mache ich es hier: Schauen Sie sich den Quellcode für Accord.Math Hilbert Transform an und Sie werden sehen, warum dies eine praktikable Option sein kann: https: //github.com/primaryobjects/Accord.NET/blob/master/Sources/Accord.Math/Transforms/HilbertTransform.cs
Praktische Anwendungen umfassen den Bau von SSB-Sendern oder fast jeden Modulationsplan. Wenn Sie die IQ-Modulation nachschlagen, werden Sie sehen, warum die Phasenverschiebung von -90 Grad relevant ist. Ein Produkt trigonometrischer Prinzipien. zB https://user.eng.umd.edu/~tretter/commlab/c6713slides/ch7.pdf
Die Hilbert-Transformation verwendet einen mittleren Schritt zwischen den FFTs, um negative Komponenten auf Null zu setzen. Sie können es missbrauchen, um auch andere Frequenzen herauszufiltern. "
quelle