Я спробував гуглінг та вікіпедію, але відповіді не отримав, окрім "це тому, що частота вхідного сигналу сидить між двома бункерами".
Я розумію, що це причина, але те, що я не можу зрозуміти, це те, чому витік, здається, поширюється на кілька сусідніх бункерів, а не лише на один сусідній контейнер.
Щоб проілюструвати те, про що я говорю, ось деякі імітовані дані (код в кінці публікації):
Вище - спектр FFT (нанесений на логарифмічну шкалу) синусоїди частотою 10. Частота вибірки одна, а кількість зразків - 100. Графік зміщений FFT. У ящику 10 явно лише пік, а решта - в порядку числової помилки, або приблизно.
Це спектр частот на генерованій частоті 10,1. Зрозуміло, що "витік" в більше сміттєвих контейнерів, ніж просто безпосередньо сусідній контейнер.
Це графік з частотою 10,5.
Запитання: Чому існує цей витік і чому він поширюється на всі інші бункери, а не на безпосередньо сусідній контейнер?
Код для всіх, хто зацікавлений (код 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()
Я змінив xFreq
значення з 10.0
на 10.5
тощо.