Из моего понимания функций fft (например, из вопросов, подобных этому )
Предполагая, что 1D БПФ, учитывая N точек реальных данных, я получу двухстороннее БПФ длины N (но сложное) + 1 для нулевой частоты. Если я возьму тот же вывод fft и запусту ifft, я получу N реальных значений, и в идеальном случае это будет точно соответствовать исходному вводу fft.
В cufft это выглядит очень по-другому.
Согласно Nvidia, предоставление N реальных компонентов приведет к N2 + 1 комплексным компонентам для БПФ, а N2 + 1 комплексных компонентов приведет к N реальным компонентам.
см. здесь (R = действительное, C = сложное, 2 = до):
Обратите внимание, что я распознаю , что половина сложных компонентов по существу дублирована (но сопряжена и перевернута) и, таким образом, не требуется, чтобы выходные значения вывода сохраняли всю дату, необходимую для реконструкции, но это не Ничего не объясняет, как Nvidia утверждает, что длина входных и выходных данных fft должна быть структурирована, длина ввода и вывода cufft делает противоположное тому, что я ожидал от учета этого сценария.