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 .