View previous topic :: View next topic |
Author |
Message |
ichbinsisyphos Guru


Joined: 08 Dec 2006 Posts: 547
|
Posted: Mon Mar 16, 2009 5:27 pm Post subject: Fast Fourier Transform |
|
|
Hat jemand hier Ahnung von FFT?
Ich versuch grad, ein Interferogramm fourier-zu-transformieren um das Spektrum zu erhalten.
Ich weiß Bescheid über die kontinuierliche Fourier-Transformation, die diskrete mit numpy.fft produziert aber bisher nur Müll. |
|
Back to top |
|
 |
manuels Advocate


Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
|
Back to top |
|
 |
ichbinsisyphos Guru


Joined: 08 Dec 2006 Posts: 547
|
Posted: Mon Mar 16, 2009 5:54 pm Post subject: |
|
|
manuels wrote: | Was sind denn das für Daten? Und wie "FFTst" du überhaupt? |
Ich fft'e indem ich die Intensitätswerte des Interferogramms in ein array lade, gefolgt von numpy.fft.fft(array).
Entstanden ist das Interferogramm in einem Michelson-Interferometer mit einer inkohärenten Weißlichtquelle, die Werte entsprechen den mit einem Photomultiplier gemessenen Intensitätswerten des vorbeilaufenden Interferenzmusters, dabei wurde mit einem Stellmotor automatisch der bewegliche Spiegel verstellt, also die Weglänge in einem Arm verändert. Das ist aber glaub ich nicht wichtig, nur damit man sich was vorstellen kann.
Das ist das gemessene Interferogramm:
http://omploader.org/vMWUwbQ
FFT-Versuch #1:
http://omploader.org/vMWUwbg
Was ist, bzw. woher kommt das extreme Maximum bei x=0?
FFT-Versuch, Zoom:
http://omploader.org/vMWUwbw
FFT-Versuch, Zoom
Das Array, das ich erhalte ist komplex, hier hab ich noch den Betrag gebildet:
http://omploader.org/vMWUwcQ |
|
Back to top |
|
 |
manuels Advocate


Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Mon Mar 16, 2009 6:54 pm Post subject: |
|
|
Hmm, der Null-Frequenz-Anteil ist wirklich ziemlich stark.
Deine X-Achse ist die Wellenzahl.
Ist deine X-Achse äquidistant? Übergibst du eine Array für die X-Achse?
EDIT: Hast du mal den Mittelwert deines gemessenen Signals?
EDIT2: Ich meine den Mittelwert der Array, welche du "FFTen" willst _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
 |
ichbinsisyphos Guru


Joined: 08 Dec 2006 Posts: 547
|
Posted: Mon Mar 16, 2009 7:12 pm Post subject: |
|
|
Ja, ist äquidistant, und ich übergeb keine x-Achse - muss ich das zweidimensional rechnen?
X-Achse ist nur der Verstellweg von -30 bis 30 Mikrometer, also die halbe Wegdifferenz. Die Bewegung ist gleichförmig.
Also wie kann man das interpretieren? Erst mal der 0-Frequenzanteil weg, was überbleibt is symmetrisch. Ist das dann 2mal das Spektrum?
edit: Mittelwert ist ziemlich genau 0.5, ist ja normiert auf Maximal-Intensität = 1. |
|
Back to top |
|
 |
manuels Advocate


Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Mon Mar 16, 2009 7:50 pm Post subject: |
|
|
Nein, das reicht eindimensional.
Zur Interpretation: Die 0-Frequenz entspricht dem Mittelwert des Signals (kann man auch ganz einfach an der FFT-Formel nachrechnen).
Also kannst du diese Frequenz außer acht lassen, wobei dieser Wert ja an und für sich ja 0,5 entsprechen sollte.
Sofern ich mich recht erinnere, ist ein Teil des von dir geplotteten Signals der komplexkonjugierte des anderen. Der erste Anteil müsste im Negativen Frequenzraum liegen - eigentlich ist das aber uninteressant. _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
 |
ichbinsisyphos Guru


Joined: 08 Dec 2006 Posts: 547
|
Posted: Tue Mar 17, 2009 7:07 am Post subject: |
|
|
Das heißt also, ich gleich mal die gesamte linke Hälfte verwerfen?
Was mach ich wegen der komplexen Werte? Kann ich mir von denen jeweils Real- oder Imaginärteil aussuchen?
edit: Wohl eher nicht, Real- und Imaginärteil werden beide auch negativ.
Betrag bilden? Wär mir neu. |
|
Back to top |
|
 |
manuels Advocate


Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Tue Mar 17, 2009 12:49 pm Post subject: |
|
|
Du kannst von numpy.fft.fft(a, n=None, axis=-1) über n die Länge des ausgegebenen Frequenzintervalls bestimmen.
Das läßt du dann einfach nur bis zur Nyquist-Frequenz-Stützstelle laufen.
Zum Re-/Im-Teil: Der Realteil ist der Anteil der Frequenz, der Imaginärteil die Phasenverschiebung. _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
 |
ichbinsisyphos Guru


Joined: 08 Dec 2006 Posts: 547
|
Posted: Tue Mar 17, 2009 5:26 pm Post subject: |
|
|
Bist du dir da sicher? Ich war bis jetzt wieder im Labor und hab mit meinem Professor etwas darüber geredet. Er hat offenbar auch nicht viel Erfahrung damit, aber wir haben uns darauf geeinigt, den Absolutwert zu nehmen. Phase ergibt sich ja dann durch atan(Im/Re).
Die physikalische Interpretation dieser Transformation fällt mir immer noch schwer, aber sowohl Imaginär- als auch Realteil werden positiv und negativ. Das Spektrum kann einfach nicht so ein Verhalten zeigen. Durch Betragbildung fällt das schonmal weg.
Und von wegen dem n-Wert in numpy.fft, ich dachte das ist nur die zurückgegebene Anzahl an Werten der Transformierten, also quasi die Auflösung.
Du scheinst im Gegensatz zu mir Ahnung von Signalverarbeitung zu haben. "Nyquist-Frequenz-Stützstelle" ... ist das die Grenzfrequenz, die höchste Frequenz die aufgelöst werden kann, also 1/2*Abtastfrequenz?
Die Transformierte müsste sowieso dort enden, oder? Frequenzen darüber können sich gar nicht erst im Interferogramm befinden? |
|
Back to top |
|
 |
manuels Advocate


Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Wed Mar 18, 2009 12:12 pm Post subject: |
|
|
ichbinsisyphos wrote: | Bist du dir da sicher? Ich war bis jetzt wieder im Labor und hab mit meinem Professor etwas darüber geredet. Er hat offenbar auch nicht viel Erfahrung damit, aber wir haben uns darauf geeinigt, den Absolutwert zu nehmen. Phase ergibt sich ja dann durch atan(Im/Re).
| Ohh, hier kannst du mich kalt erwischt haben. Die Vorlesung ist schon zwei Jahre her...
Quote: |
Du scheinst im Gegensatz zu mir Ahnung von Signalverarbeitung zu haben. "Nyquist-Frequenz-Stützstelle" ... ist das die Grenzfrequenz, die höchste Frequenz die aufgelöst werden kann, also 1/2*Abtastfrequenz?
|
Ja, das ist sie. Also müsstest du für n = Abtastfrequenz/(Delta f)+1 rechnen. Delta f ist die Frequenzauflösung, die sich aus deiner Signalauflösung ergibt und + 1 für die 0-Frequenz.
Quote: |
Die Transformierte müsste sowieso dort enden, oder? Frequenzen darüber können sich gar nicht erst im Interferogramm befinden? | Jo, richtig. _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
 |
ichbinsisyphos Guru


Joined: 08 Dec 2006 Posts: 547
|
Posted: Wed Mar 18, 2009 9:43 pm Post subject: |
|
|
Ok, ich konnte heute nochmal mit einem HeNe-Laser als Referenz arbeiten und seither ist mir einiges klar.
Der Frequenzschritt (und die kleinste auflösbare Frequenz) ergibt sich aus c/L, wobei L die gesamte abgefahrene Wegstrecke ist.
Die Frequenzen ergeben sich dann durch Aufsummieren dieser \delta f's. Insbesondere ergibt sich die Maximalfrequenz aus \delta f * N/2, das gesamte Spektrum ist dann gleichverteilt zwischen f=0 und dieser Maximalfrequenz (linke Hälte der Transformierten).
Null-Frequenzanteil ist eigentlich nur ein Normierungsproblem.
Und die Nyquist-Frequenz muss auch nicht explizit berücksichtigt werden - die ist mit der Schrittweite \delta x = L/N schon drin.
Danke für die Hilfe. |
|
Back to top |
|
 |
|