Спасибо, на самом деле ошибка была в том, что я смотрел несколько ссылок и не определил L так, как должно быть: длина интервала!
сь использовать NumPy для быстрого дифференцирования с преобразованием Фурье. В приведенном ниже коде я создаю простую функцию синуса и пытаюсь получить косинус. Результат показан на картинке. Кажется, есть нормализатор, который я не понимаю, несмотря на чтение документации, и который мешает мне получить правильные результаты.
Можете ли вы сказать мне, как избавиться от фактора нормализации или я терплю неудачу по-другому? Также, пожалуйста, объясните, почему частота Найквиста отсутствует, когда длина массива нечетна.
x = np.arange(start=-300., stop=300.1, step=0.1)
sine = np.sin(x)
Y = np.fft.rfft(a=sine, n=len(x))
L = 2.*np.pi #period
N = size(Y)
for k, y in enumerate(Y):
Y[k] *= 2.*np.pi*1j*k/L
# if N is even, the last entry is the Nyquist frequency.
#if N is odd, there it is not there.
if N%2 == 0:
Y[-1] *= 0.
cosine = np.fft.irfft(a=Y, n=len(x))