低通和高通滤波相

时间:2017-09-17 03:33:19

标签: matlab image-processing

我有this, matrix of complex numbers表示图像(模拟输出) 我想使用低通和高通滤镜过滤此图像的阶段

我的代码(仅限低通滤镜):

%% Calculate the phase
   field_phase = angle(field);

%% Low-pass filter
   % Gaussian filter
   fieldPhase_Filtered = imgaussfilt(field_phase, 2);

输出:

imagesc(fieldPhase_Filtered); colorbar;

1)我的步骤是否正确?

2)在计算相位为they did here之前,是否需要执行傅里叶变换?

3)如果我有多个矩阵,在计算相位和应用滤波器之前是否需要对它们进行标准化?

1 个答案:

答案 0 :(得分:0)

如果是图像的傅里叶变换,可以使用ifft2将其转换回来。

imagesc(log(abs(fftshift(ifft2(fftshift(field))))))

这看起来很漂亮,但我看不出这个图像是如何形成相位的。使用angle

,您可以轻松找到傅里叶变换的各个阶段
imagesc(angle(field))

如您所见,它们是pi,-pi或0。

[编辑]

我看到你想分析模拟激光穿过光纤的数据?您想从图像或其他内容中找到模式索引吗? https://www.rp-photonics.com/lp_modes.html