Hilf mir, die FFT-Funktion zu verstehen (Matlab)

7

1) Neben den negativen Frequenzen, welche die minimale Frequenz der FFT-Funktion ist? Ist es Null? 2) Wenn es Null ist, wie plotten wir Null auf einer logarithmischen Skala? 3) Das Ergebnis ist immer symmetrisch? Oder es scheint nur symmetrisch zu sein?
4) Wenn ich abs (fft (y)) verwende, um 2 Signale zu vergleichen, kann ich etwas Genauigkeit verlieren?

    
Jader Dias 11.01.2009, 22:09
quelle

5 Antworten

14
  

1) Neben den negativen Frequenzen, welche die minimale Frequenz der FFT-Funktion ist? Ist es Null?

fft(y) gibt einen Vektor mit den 0-ten bis (N-1) -ten Abtastungen der DFT von y zurück, wobei y (t) als auf 0 ... N-1 definiert betrachtet werden sollte (Daher kann man sich die periodische Wiederholung von y (t) als periodisches Signal vorstellen, das über Z definiert ist).

Die erste Stichprobe von fft(y) entspricht der Häufigkeit 0. Die Fourier-Transformation von reellen, zeitdiskreten periodischen Signalen hat ebenfalls eine diskrete Domäne, und sie ist periodisch und hermitesch (siehe unten). Daher ist die Transformation für negative Frequenzen die Konjugation der entsprechenden Abtastwerte für positive Frequenzen.

Wenn Sie zum Beispiel (die periodische Wiederholung von) y als periodisches reales Signal definieren, das über Z definiert ist (Abtastperiode == 1), dann sollte die Domäne von fft(y) als N gleichläufige Punkte 0 interpretiert werden. 2 & pgr; / N ... 2 & pgr; (N-1) / N. Die Abtastwerte der Transformation bei den negativen Frequenzen -π ... -π / N sind die Konjugate der Abtastwerte bei Frequenzen π ... π / N und sind gleich den Abtastungen bei Frequenzen & pgr; ... 2 & pgr; (N-1) / N.

  

2) Wenn es Null ist, wie zeichnen wir null auf einer logarithmischen Skala?

Wenn Sie eine Art Bode-Plot zeichnen möchten, können Sie die Transformation nur für positive Frequenzen plotten, wobei die Samples ignoriert werden entsprechend den niedrigsten Frequenzen (insbesondere 0).

  

3) Das Ergebnis ist immer symmetrisch? Oder es scheint nur symmetrisch zu sein?

Es hat eine hermitesche Symmetrie , wenn y real ist: Sein realer Teil ist symmetrisch, sein imaginärer Teil ist anti- symmetrisch. Mit anderen Worten, seine Amplitude ist symmetrisch und seine Phase antisymmetrisch.

  

4) Wenn ich abs (fft (y)) verwende, um zwei Signale zu vergleichen, kann ich dann etwas an Genauigkeit verlieren?

Wenn Sie abs(fft(x - y)) meinen, ist das OK und Sie können damit eine Vorstellung von der Häufigkeitsverteilung der Differenz (oder des Fehlers, wenn x eine Schätzung von y ist) erhalten. Wenn du abs(fft(x)) - abs(fft(y)) (???) meinst, verlierst du mindestens Phaseninformation.

    
Federico A. Ramponi 12.01.2009, 01:42
quelle
2

Nun, wenn Sie die Fast Fourier Transformation verstehen wollen, wollen Sie zu den Grundlagen zurückkehren und die DFT selbst verstehen. Aber das hast du nicht gefragt, also schlage ich dir vor, dass du das in deiner eigenen Zeit tust:)

Aber als Antwort auf Ihre Fragen:

  1. Ja (abgesehen von Negativen, wie Sie gesagt haben) ist es Null. Der Bereich ist 0 bis (N-1) für eine N-Punkt-Eingabe.
  2. In MATLAB? Ich bin mir nicht sicher, ob ich Ihre Frage verstehe - plotten Sie Nullwerte wie jeden anderen Wert ... Obwohl, wie von Duffymo richtig ausgeführt, gibt es keinen natürlichen Logarithmus von Null.
  3. Es ist im Wesentlichen einer Sinc (Sinus-Kardinal) -Funktion ähnlich. Es wird jedoch nicht unbedingt symmetrisch sein.
  4. Sie werden keine Genauigkeit verlieren, Sie werden nur die Magnitude-Antwort haben (aber ich nehme an, Sie wussten das schon).
James Burgess 11.01.2009 22:20
quelle
2

Beratung "Numerische Rezepte in C", Kapitel 12 "Schnelle Fourier-Transformation" sagt:

  1. Die Frequenz reicht von negativ fc bis positiv fc, wobei fc die kritische Nyquistfrequenz ist, die gleich 1 / (2 * delta) ist, wobei delta das Abtastintervall ist. Frequenzen können also durchaus negativ sein.

  2. Sie können etwas nicht zeichnen, das nicht existiert. Es gibt keinen natürlichen Logarithmus von Null. Sie zeichnen entweder die Frequenz als x-Achse oder wählen einen Bereich, der für Ihre halb-logarithmische Achse keine Null enthält.

  3. Das Vorhandensein oder Fehlen von Symmetrie im Frequenzbereich hängt von der Art der Funktion im Zeitbereich ab. Sie können eine Darstellung in der Frequenzdomäne haben, die nicht symmetrisch um die y-Achse ist.

  4. Ich glaube nicht, dass es eine gute Idee ist, den absoluten Wert zu nehmen. Sie werden viel mehr über Faltung, Korrektur und Signalverarbeitung lesen müssen, um zwei Signale zu vergleichen.

duffymo 11.01.2009 22:45
quelle
2
  1. Ergebnis von fft kann 0. bereits von anderen Personen beantwortet werden.
  2. um die Frequenz von 0 zu plotten, besteht der Trick darin, sie auf eine sehr kleine positive Zahl zu setzen (ich benutze exp (-15) für diesen Zweck).
  3. schon von anderen Leuten beantwortet.
  4. Wenn Sie nur an der Größe interessiert sind, ja, können Sie das tun. Dies gilt beispielsweise für viele Bildverarbeitungsprobleme.
PolyThinker 12.01.2009 02:28
quelle
0

Die Hälfte Ihrer Frage:

3) Die Ergebnisse der FFT-Operation hängen von der Art des Signals ab; daher gibt es nichts, was erfordert, dass es symmetrisch ist, obwohl, wenn es ist, können Sie weitere Informationen über die Eigenschaften des Signals erhalten

4) Das wird die Größen eines Paares von Signalen vergleichen, aber diejenigen, die gleich sind, garantieren nicht, dass die FFTs identisch sind (vergiss die Phase nicht). Es kann jedoch für Ihre Zwecke ausreichen, aber Sie sollten sich dessen sicher sein.

    
Dan 11.01.2009 23:00
quelle

Tags und Links