Почему ввод и вывод для cufft сильно отличается от традиционного fft? - PullRequest
2 голосов
/ 09 апреля 2019

Из моего понимания функций fft (например, из вопросов, подобных этому )

Предполагая, что 1D БПФ, учитывая N точек реальных данных, я получу двухстороннее БПФ длины N (но сложное) + 1 для нулевой частоты. Если я возьму тот же вывод fft и запусту ifft, я получу N реальных значений, и в идеальном случае это будет точно соответствовать исходному вводу fft.

В cufft это выглядит очень по-другому.

Согласно Nvidia, предоставление N реальных компонентов приведет к N2 + 1 комплексным компонентам для БПФ, а N2 + 1 комплексных компонентов приведет к N реальным компонентам.

см. здесь (R = действительное, C = сложное, 2 = до):

enter image description here

Обратите внимание, что я распознаю , что половина сложных компонентов по существу дублирована (но сопряжена и перевернута) и, таким образом, не требуется, чтобы выходные значения вывода сохраняли всю дату, необходимую для реконструкции, но это не Ничего не объясняет, как Nvidia утверждает, что длина входных и выходных данных fft должна быть структурирована, длина ввода и вывода cufft делает противоположное тому, что я ожидал от учета этого сценария.

1 Ответ

5 голосов
/ 09 апреля 2019

Здесь вы видите, что ваш браузер не может правильно отображать содержимое MathML.Похоже, та же самая таблица, отображаемая в Firefox 66.0.2, показывает то, что вы ожидаете:

enter image description here

...