Python Numpy БПФ быстрое преобразование Фурье - странные результаты - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь получить фазовое распределение 2D-апертуры, используя БПФ. На входе находится круг, где все внутри круга имеет значение 1, а снаружи - значение 0. Чтобы сделать хорошее преобразование, я использую входной массив, который в 200 раз больше радиуса круга, и получаю 5000x5000 Сетка из этого. Это гарантирует, что круг на самом деле является круглым, и вокруг достаточно места, чтобы не происходило никаких событий Найквиста.

Мне нужно 2D-преобразование Фурье апертуры и затем вычисление фазы преобразования Фурье в каждой точке. Функция, которую я использую для создания входа (диафрагмы): создание входной апертуры

Затем выполните 2D-преобразование Фурье numpy fft2: Апертура преобразования Фурье

И результатом этого является двумерный комплексный массив (как и ожидалось!), НО с мнимыми частями, намного намного меньшими, чем у реальных частей (мнимые части с разницей в 17 порядков величин ~ 10E-17). Это не ожидается и, скорее всего, неправильно. Что пошло не так?

1 Ответ

1 голос
/ 19 марта 2020

Результат фазы БПФ для абсолютно симметричного c входа равен нулю, например, строго реальный результат, т.е. atan2 (Im, Re) == 0 (все мнимые компоненты равны нулю, кроме шума округления).

(четная симметрия относительно (0,0) по кругу или (n / 2, n / 2))

Фаза станет ненулевой (таким образом, ненулевая мнимая составляющая в результат БПФ), когда вход смещен от центра или иным образом сделан несимметричным c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...