Как разделить матрицу на серию бинов на основе полярных координат - PullRequest
0 голосов
/ 23 апреля 2011

Я пытаюсь написать программу в Octave / Matlab, которая стремится сделать изображение, выполнить 2D быстрое преобразование Фурье для этого изображения, а затем взять данные FFT и разделить их на ряд элементов, из которых среднее значениеИнтенсивность БПФ можно рассчитать.Эти ячейки должны вычислять интенсивность спектра Фурье для каждого 5-градусного сегмента этого спектра:

т.е. представьте массив 500x500, а затем разделите его на 72 равных кусочка (как нарезка пиццы), причем каждый кусочек будет5 градусов друг от друга.Эти срезы затем формируют ячейки и вычисляется среднее значение в них.

Я понимаю, что для получения этого я должен преобразовать декартовы координаты результирующего БПФ в полярные координаты, чтобы я мог рассчитать бины, используя значения тета.Кроме того, чтобы разрезать массив, как пиццу, полярные координаты должны начинаться в центре изображения.У меня есть хорошая идея, как это сделать, но я застрял на том, как разделить массив на корзины после того, как я завершил это.

Кто-нибудь может помочь?Предполагая, что это объяснение имеет смысл?

1 Ответ

0 голосов
/ 23 апреля 2011

На самом деле, это не совсем понятно.

Но я предполагаю, что вы имеете в виду полярные координаты в области Фурье , и в этом случае вы можете получить угол каждой точки из чего-то вроде atan2(f_y, f_x), где f_y и f_x - это y и координаты х в области Фурье. В случае БПФ они обычно связаны с индексом массива следующим образом:

f = [0, 1, 2, ..., n/2-1, -n/2, ..., -1]

Для Matlab см. Также fftshift

...