Ich habe versucht, es zu googeln und zu wikipedia, aber ich habe keine Antworten erhalten, außer "es liegt daran, dass die Frequenz des Eingangssignals zwischen zwei Bins liegt".
Ich verstehe, dass dies der Grund ist, aber was ich nicht verstehe, ist, warum sich die Leckage auf mehrere benachbarte Behälter zu erstrecken scheint und nicht nur auf einen benachbarten Behälter.
Um zu veranschaulichen, wovon ich spreche, hier einige simulierte Daten (Code am Ende des Beitrags):
Oben ist das FFT-Spektrum (aufgetragen auf einer logarithmischen Skala) einer Sinuswelle der Frequenz 10 dargestellt. Die Abtastrate ist eins und die Anzahl der Abtastungen beträgt 100. Die Grafik wurde FFT-verschoben. Es gibt eindeutig nur einen Peak bei Bin 10, und der Rest liegt in der Größenordnung von numerischen Fehlern oder ungefähr dort.
Dies ist das Frequenzspektrum bei einer erzeugten Frequenz von 10,1. Es liegt eindeutig ein Leck in mehr Behältern als nur in dem unmittelbar benachbarten Behälter vor.
Dies ist die Darstellung für eine Frequenz von 10,5.
Frage: Warum tritt dieses Leck auf, und warum erstreckt es sich auf alle anderen Fächer und nicht auf das unmittelbar benachbarte Fach?
Code für alle Interessierten (Python-Code)
import numpy as np
import matplotlib.pyplot as plt
xFreq = 10.5
xSize = 100.0
xPeriod = xSize/xFreq
x = np.linspace(1,xSize,xSize)
data = np.sin(2*np.pi*x/xPeriod)
fft = np.fft.fft(data)
fft = np.fft.fftshift(fft)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(abs(fft), "o")
ax.set_yscale('log')
plt.show()
Ich habe den xFreq
Wert von 10.0
auf 10.5
usw. geändert .
quelle
Antworten:
Eine FFT hat eine endliche Länge und bildet somit ein voreingestelltes rechteckiges Fenster in einem Datenstrom. Ein Fenster im Zeitbereich führt zu einer Faltung im Frequenzbereich mit der Transformation des Fensters. Beachten Sie, dass die Transformation eines rechteckigen Fensters eine Sinc-Funktion (sin (x) / x) ist, die eine unendliche Breite hat. Es sind nicht nur 2 Fächer breit. Somit werden die Welligkeiten der Sinc-Funktion als "Leck" weit entfernt von jeglichen Spektralspitzen angezeigt, die in der Länge der FFT nicht perfekt periodisch sind.
Das folgende Bild zeigt einen Teil des Frequenzgangs der sinc-Funktion. Wenn der Ton auf einem der Bins zentriert ist, werden alle anderen Punkte mit den Nullen im Frequenzgang ausgerichtet. Wenn es nicht auf einem Bin zentriert ist, wird der gesamte Frequenzgang verschoben, wodurch die anderen Bins auf Nicht-Null-Bereiche des Frequenzgangs fallen.
Eine andere Sichtweise ist, dass eine FFT nur eine Filterbank ist, bei der jeder Filterstoppbandboden viele Welligkeiten aufweist und die Dämpfung mit Sicherheit nicht mehr als 1 Bin von der Mittenfrequenz entfernt ist. Einige Fenster (von Hann usw.), Die nicht rechteckig sind, haben untere Anschlagbänder, was ein Grund für ihre beliebte Verwendung ist.
quelle
hotpaw2
Die Antwort ist gut, aber ich möchte noch etwasuser5133
näher auf den Kommentar eingehen:und gleichzeitig auch die Frage beantworten. Beachten Sie, dass ich ein Experte auf diesem Gebiet bin - zögern Sie nicht zu kommentieren, zu korrigieren oder zu bestätigen.
Aber die Fourier-Transformation eines Produkts ist die Faltung der Fourier-Transformationen:
quelle