1) Имеет ли последовательность последовательность [R2C], C2C, [C2R]? Нет, в преобразовании Фурье есть две области: пространство и частота. Преобразование переходит из пространства в частоту с CUFFT_FORWARD
и частоты в пространство с CUFFT_INVERSE
.
2) Должен ли я запускать C2C в одном направлении один раз? В зависимости от использования эрмитовой симметрии вам необязательно нужно C2C
(см. Ниже).
3) В каком направлении следует использовать (вперед или назад)? Если вы хотите применить фильтр обработки изображений, то ваш результат, скорее всего, будет в том же пространстве, что и ваш вход, поэтому вы должны применить его как одно прямое преобразование и одно обратное преобразование.
Заметки о компоновке данных и R2C
/C2R
оптимизации
При использовании C2R
или R2C
преобразования, cufft
is making use of the Hermitian symmetry из частотно-пространственного вектора, следовательно, исключительно сохранение в первой половине вектора (оставшаяся часть не является даже прикоснулся):
Помимо общего комплекса к сложному (C2C) преобразования, CUFFT реализует эффективно два типа: в режиме реального к сложному (R2C) и комплекса к реальному (C2R). Во многих практических приложениях входной вектор вещественный. Нетрудно показать, что в этом случае выход удовлетворяет эрмитовой симметрии (X k = X N - k *, где звезда обозначает комплексное сопряжение). Обратное также верно: для комплексно-эрмитовых входов обратное преобразование будет чисто вещественнозначным. cuFFT использует эту избыточность и работает только в первой половине эрмитова вектора.
Если операция вы выполняете в частотной области не имеют одинаковую эрмитовое симметрию, оптимизация не так больше, а C2R
операция не даст вам ожидаемого результата.
Также обратите внимание на требования к данным и компоновку подхода, который немного отличается от подхода для C2C
.
В [CUFFT] нет F2C или C2F (http://docs.nvidia.com/cuda/cufft/index.HTML # аннотация). Возможно, вы имеете в виду R2C и C2R. Действительно хороший ответ здесь (IMO) требует очень долгого ответа, в основном учебника по преобразованию Фурье. Мне кажется, это довольно широкий вопрос. Неясно, какие знания, если у вас есть, преобразований Фурье, что они делают и как они используются (что является темой, которая полностью не зависит от CUDA). –