Tentei pesquisar no Google e pesquisá-lo na Wikipedia, mas não obtive respostas além de 'é porque a frequência do sinal de entrada está entre duas caixas'.
Entendo que esse é o motivo, mas o que não consigo entender é por que o vazamento parece se estender a vários compartimentos adjacentes, em vez de apenas a um compartimento adjacente.
Para ilustrar o que estou falando, aqui estão alguns dados simulados (código no final da postagem):
Acima está o espectro da FFT (plotado em uma escala logarítmica) de uma onda senoidal de frequência 10. A taxa de amostragem é uma e o número de amostras é 100. O gráfico foi deslocado pela FFT. Claramente, existe apenas um pico no compartimento 10, e o restante está na ordem de erro numérico ou aproximadamente.
Este é o espectro de frequências a uma frequência gerada de 10,1. Claramente, há 'vazamento' em mais compartimentos do que apenas no compartimento imediatamente adjacente.
Este é o gráfico para uma frequência de 10,5.
Pergunta: Por que esse vazamento ocorre e por que ele se estende a todos os outros compartimentos, e não ao compartimento adjacente imediato?
Código, para quem estiver interessado (código Python)
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()
Alterei o xFreq
valor de 10.0
para 10.5
etc.