FFT Problem mit FFTW.

OP #1022945
Hallo,

wenn man einen Dirac-Impuls Fourier-Transformiert, erhält man doch die 
sin(x)/x Funktion, soweit ich weiß ...

Ich hätte jetzt auch angenommen, dass bei einer DFT mit einem Array mit 
zB 512 Elementen, von dem nur das erste Element den Wert 1 hat und der 
Rest 0 ist, dann ebenfalls die Funktion ergeben sollte, nur eben 
diskret.

Bei mir kommt aber statt dem erwarteten Ergebnis nur komplexe Werte mit 
R=1 und I=0 raus.

Ich verwende die Real->Complex FFT von FFTW. Hat die schonmal jemand 
ausprobiert und kann dazu was sagen?

Hintergrund ist die Faltung im Frequenzraum, wobei mein Filterkernel 
erstmal einfach nur den Wert 1 hat. Dann sollte das ursprüngliche Bild 
rauskommen, was leider nicht funktioniert.

MfG
Thomas Pototschnig

PS: z.B. eine Bildzeile hin- und zurücktransformiert funktioniert 
einwandfrie und gibt das gewünschte Ergebnis ...
Thomas Pototschnig wrote:
> Hallo,
>
> wenn man einen Dirac-Impuls Fourier-Transformiert, erhält man doch die
> sin(x)/x Funktion, soweit ich weiß ...
>

Leider falsch.

Der Dirac gibt eine Linie übers gesamte Spektrum.

Die si-Fkt (sin(x)/x) kommt vom Rechteck. Und wenn du das Rechteck 
zusammenschiebst (zum Dirac) haste eine unendlich breite si-Fkt.

Kai
OP
Kai W. wrote:
> Thomas Pototschnig wrote:
>> Hallo,
>>
>> wenn man einen Dirac-Impuls Fourier-Transformiert, erhält man doch die
>> sin(x)/x Funktion, soweit ich weiß ...
>>
>
> Leider falsch.
>
> Der Dirac gibt eine Linie übers gesamte Spektrum.
>
> Die si-Fkt (sin(x)/x) kommt vom Rechteck. Und wenn du das Rechteck
> zusammenschiebst (zum Dirac) haste eine unendlich breite si-Fkt.
>
> Kai

Dann kapier ich bald garnichts mehr ... Wenn ich eine diskrete Funktion 
mit einem [0 0 0 1 0 0 0] Filterkernel falte, dann kommt die gleiche 
Funktion wieder raus. Wenn ich das Ganze per FFT transformiere, dann 
wird aus der Faltung eine Multiplikation, aber die Multiplikation macht 
mir alle Imaginär-Teile meiner transformieren Funktion kaputt, weil dann 
immer mit 0 multipliziert wird. Seltsam irgendwie ...

MfG
Thomas Pototschnig
Gast
Hallo Thomas,

> Dann kapier ich bald garnichts mehr ... Wenn ich eine diskrete Funktion
> mit einem [0 0 0 1 0 0 0] Filterkernel falte, dann kommt die gleiche
> Funktion wieder raus.
Ok.

> Wenn ich das Ganze per FFT transformiere, dann
> wird aus der Faltung eine Multiplikation,
Einverstanden.

> aber die Multiplikation macht
> mir alle Imaginär-Teile meiner transformieren Funktion kaputt, weil dann
> immer mit 0 multipliziert wird. Seltsam irgendwie ...
Da stehst Du jetzt aber ganz böse auf dem Schlauch.
Du schreibst doch selbst:

>> Bei mir kommt aber statt dem erwarteten Ergebnis nur komplexe Werte mit
>> R=1 und I=0 raus.
Dann multiplizier doch mal alle Spektrallinien mit der "komplexen" Zahl 
(1+0*j)=1. Da ändert sich doch wirklich nicht sehr viel.


Liebe Grüße
Michael
OP
>>> Bei mir kommt aber statt dem erwarteten Ergebnis nur komplexe Werte mit
>>> R=1 und I=0 raus.
> Dann multiplizier doch mal alle Spektrallinien mit der "komplexen" Zahl
> (1+0*j)=1. Da ändert sich doch wirklich nicht sehr viel.

Aaaaarrrggh ... Okay, ich sag nichts mehr :-)

Ohje ...

MfG
Thomas Pototschnig

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.