Я написал простую тестовую программу, в которой я выполнял сложную и сложную FT, и я просто сгенерировал некоторые данные 1..50 и вставил их в вещественную и мнимую части для каждого индекса массива.
Когда я выполняю такую операцию, как IFFT (FFT (A)) = A
чтобы проверить их, я получаю разные результаты для каждой библиотеки.
БПФ, мне нужно разделить вывод на len (A), чтобы вернуть оригинал A
Однако, продвигаясь вперед, затем переворачивая FFT с помощью CUFFT, похоже, мне нужно разделить на (sqrt (2) * 50), чтобы вернуться к исходным данным.
Откуда берется этот дополнительный квадратный корень?
согласно документации CUFFT:
CUFFT выполняет ненормализованные FFT; то есть, выполняя форвард
БПФ на входном наборе данных с последующим обратным БПФ на результирующем
набор дает данные, которые равны входу, масштабированному по количеству
элементы. Масштабирование либо преобразование на обратную величину размера
набор данных оставлен для пользователя, чтобы работать как считает нужным.
Заранее спасибо