二维傅里叶变换

        fft2 函数将二维数据变换为频率空间。例如,可以变换二维光学掩膜以揭示其衍射模式。

二维傅里叶变换

        以下公式定义 m×n 矩阵 X 的离散傅里叶变换 Y。

         是以下方程所定义的复单位根。 

        i 是虚数单位,p 和 j 是值范围从 0 到 m–1 的索引,q 和 k 是值范围从 0 到 n–1 的索引。在此公式中,X 和 Y 的索引平移 1 位,以反映 MATLAB® 中的矩阵索引。

        计算 X 的二维傅里叶变换等同于首先计算 X 每列的一维变换,然后获取每行结果的一维变换。换言之,命令 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 计算掩膜的二维傅里叶变换,并使用 fftshift 函数重新排列输出,从而使零频率分量位于中央。绘制生成的衍射模式频率。蓝色指示较小的幅值,黄色指示较大的幅值。 

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

        如图所示: 

        为增强小幅值区域的细节,需绘制衍射模式的二维对数。极小的幅值会受数值舍入误差影响,而矩形网格则会导致径向非对称性。

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

        如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值