Функция fft2
преобразовывает 2D данные в пространство частоты. Например, можно преобразовать 2D оптическую маску, чтобы показать ее дифракционный шаблон.
Следующая формула задает дискретное преобразование Фурье Y m-by-n матричный X.
ωm и ωn являются комплексными корнями из единицы, заданными следующими уравнениями.
i является мнимой единицей, p и j являются индексами, которые запускаются от 0 до m –1, и q и k являются индексами, которые запускаются от 0 до n –1. Индексы для X и Y переключены 1 в этой формуле, чтобы отразить матричные индексы в MATLAB®.
Вычисление 2D преобразования Фурье X эквивалентно первому вычислению 1D преобразования каждого столбца X и затем взятия 1D преобразования каждой строки результата. Другими словами, команда fft2(X)
эквивалентна Y = fft(fft(X).').'
.
В оптике преобразование Фурье может использоваться, чтобы описать дифракционный шаблон, произведенный инцидентом плоской волны на оптической маске с маленькой апертурой [1]. Этот пример использует функцию fft2
на оптической маске, чтобы вычислить ее дифракционный шаблон.
Создайте логический массив, который задает оптическую маску с маленькой, круговой апертурой.
n = 2^10; % size of mask M = zeros(n); I = 1:n; x = I-n/2; % mask x-coordinates y = n/2-I; % mask y-coordinates [X,Y] = meshgrid(x,y); % create 2-D mask grid R = 10; % aperture radius A = (X.^2 + Y.^2 <= R^2); % circular aperture of radius R M(A) = 1; % set mask elements inside aperture to 1 imagesc(M) % plot mask axis image
Используйте fft2
, чтобы вычислить 2D преобразование Фурье маски и использовать функцию fftshift
, чтобы перестроить вывод так, чтобы нулевая частотная составляющая находилась в центре. Постройте получившиеся дифракционные частоты шаблона. Синий указывает, что маленькие амплитуды и желтый указывают на большие амплитуды.
DP = fftshift(fft2(M));
imagesc(abs(DP))
axis image
Чтобы улучшить детали областей с маленькими амплитудами, постройте 2D логарифм дифракционного шаблона. Очень маленькие амплитуды затронуты числовой ошибкой округления, и прямоугольная сетка вызывает радиальную асимметрию.
imagesc(abs(log2(DP)))
axis image
[1] Фаулз, G. R. Введение в современную оптику. Нью-Йорк: Дувр, 1989.
fft
| fft2
| fftn
| fftshift
| ifft2