fft2
функция преобразует 2D данные в разнос частот. Для примера можно преобразовать 2-D оптическую маску, чтобы показать ее дифракционный шаблон.
Следующая формула задает дискретное Y преобразования Фурье матричного X m -by n.
ωm и ωn являются комплексными корнями единицы, заданными следующими уравнениями.
i - мнимые модули, p и j - это индексы, которые запускаются от 0 до m -1, а q и k - это индексы, которые запускаются от 0 до n -1. Индексы для X и Y сдвинуты на 1 в этой формуле, чтобы отразить матричные индексы в MATLAB®.
Вычисление 2-D преобразования Фурье X эквивалентно сначала вычислению 1-D преобразования каждого столбца X, а затем принятию 1-D преобразования каждой строки результата. Другими словами, командная 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
чтобы вычислить 2-D преобразование Фурье маски и использовать fftshift
функция, чтобы переставить выход так, чтобы компонент нулевой частоты находился в центре. Постройте график полученных частот дифракционного шаблона. Blue указывает на маленькие амплитуды, а желтый - на большие амплитуды.
DP = fftshift(fft2(M));
imagesc(abs(DP))
axis image
Чтобы улучшить детали областей с малыми амплитудами, постройте график 2-D логарифма дифракционного шаблона. Очень маленькие амплитуды затронуты числовой ошибкой округления, а прямоугольная сетка вызывает радиальную асимметрию.
imagesc(abs(log2(DP)))
axis image
[1] Фаулз, Г. Р. Введение в современную оптику. Нью-Йорк: Дувр, 1989.
fft
| fft2
| fftn
| fftshift
| ifft2