【问题标题】:Low and high pass filtering the phase低通和高通滤波相位
【发布时间】:2017-09-17 03:33:19
【问题描述】:

我有 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) 如果我有多个矩阵,我需要在计算相位和应用过滤器之前对它们进行归一化吗?

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

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

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

    这看起来很漂亮,但我看不出这张图片有什么相位。使用angle 可以很容易地找到傅立叶变换的相位

    imagesc(angle(field))
    

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

    [编辑]

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

    【讨论】:

    • 您能否详细说明您的答案?您的意思是 angle() 与 FT 的结果比 angle() 更好英尺?应用过滤器怎么样?在使用滤波器之前,我是否需要在相位上再次执行 FT?还是我之前的代码是正确的?
    • angle 给出复数的角度。在傅立叶变换中,这等于该频率处波的相位。我不明白您所说的“angle() 没有 FT”是什么意思。复数的含义是什么?为什么它很复杂?
    • 关于你之前的问题“你想从你的图像或其他东西中找到模式索引吗?”。不,我不是要查找模式索引,遗憾的是我无法在此处分享所有详细信息。 我不明白你所说的“没有 FT 的角度()”是什么意思我的意思是在角度()之前没有执行 fftshift(fft2(field)); 用傅里叶变换(FT)变成这样: field_ft = fftshift(fft2(field)); field_phase = 角度 (field_ft);
    • angle 计算复数值的角度。就像abs 计算复数的模一样。我不知道你有什么数据或者你想要什么。
    猜你喜欢
    • 2014-07-29
    • 1970-01-01
    • 2018-10-30
    • 2013-09-12
    • 2010-09-07
    • 2011-12-26
    • 2013-03-29
    • 1970-01-01
    • 2014-02-09
    相关资源
    最近更新 更多