Амплитуда результатов FFT NumPy должна быть умножена на период выборки?

Я пытаюсь подтвердить мое понимание NumpyБПФ с примером: преобразование Фурьеexp(-pi*t^2) должно бытьexp(-pi*f^2) когда масштабирование не применяется к прямому преобразованию.

Тем не менее, я считаю, что для получения этого результата мне нужно умножить результат БПФ на коэффициентdt, который является временным интервалом между двумя точками выборки в моей функции. Я нене понимаю почему. Кто-нибудь может помочь?

Вот пример кода:

# create data
N = 4097
T = 100.0
t = linspace(-T/2,T/2,N)
f = exp(-pi*t**2)

# perform FT and multiply by dt
dt = t[1]-t[0]
ft = fft(f)  * dt      
freq = fftfreq( N, dt )
freq = freq[:N/2+1]

# plot results
plot(freq,abs(ft[:N/2+1]),'o')
plot(freq,exp(-pi*freq**2),'r')
legend(('numpy fft * dt', 'exact solution'),loc='upper right')
xlabel('f')
ylabel('amplitude')
xlim(0,1.4)

Ответы на вопрос(1)

Ваш ответ на вопрос