exponenta event banner

2-D Преобразования Фурье

fft2 функция преобразует 2-D данные в частотное пространство. Например, можно преобразовать 2-D оптическую маску, чтобы показать ее дифракционную картину.

Двумерное преобразование Фурье

Следующая формула определяет дискретное преобразование Фурье Y матрицы m-на-n X.

Yp+1,q+1=∑j=0m−1∑k=0n−1ωmjpωnkqXj+1,k+1

startm и startn - комплексные корни единицы, определяемые следующими уравнениями.

startm = e 2οi/mü n = e − 2āi/n

i - мнимая единица, p и j - индексы, которые работают от 0 до m-1, а q и k - индексы, которые работают от 0 до n-1. Индексы для X и Y сдвигаются на 1 в этой формуле для отражения матричных индексов в MATLAB ®.

Вычисления 2-го Фурье преобразовывают X, эквивалентно первым вычислениям 1-D, преобразовывают каждой колонки X, и затем взятие 1-D преобразовывает каждого ряда результата. Другими словами, команда fft2(X) эквивалентно Y = fft(fft(X).').'.

2-D Дифракционная картина

В оптике преобразование Фурье может быть использовано для описания дифракционной картины, создаваемой плоской волной, падающей на оптическую маску с малой апертурой [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

Figure contains an axes. The axes contains an object of type image.

Использовать fft2 чтобы вычислить 2-го Фурье преобразовывают маски и используют fftshift функция для переупорядочивания выходного сигнала таким образом, чтобы нулевая частотная составляющая находилась в центре. Постройте график результирующих частот дифракционной картины. Синий цвет обозначает малые амплитуды, а желтый - большие амплитуды.

DP = fftshift(fft2(M));
imagesc(abs(DP))
axis image

Figure contains an axes. The axes contains an object of type image.

Чтобы улучшить детали областей с небольшими амплитудами, постройте график 2-D логарифма дифракционной картины. На очень малые амплитуды влияет численная погрешность округления, и прямоугольная сетка вызывает радиальную асимметрию.

imagesc(abs(log2(DP)))
axis image

Figure contains an axes. The axes contains an object of type image.

Ссылки

[1] Фаулз, Г. Р. Введение в современную оптику. Нью-Йорк: Дувр, 1989.

См. также

| | | |

Связанные темы