MATLAB:从 FFT2 频谱获取功率直方图

MATLAB: Get power histogram from FFT2 spectrum

我正在尝试获取某些图像所有频率的一维功率直方图。我将描述到目前为止我所做的事情。

  1. 读取图像(如有必要,转换为灰度)
  2. 计算 FFT2 并移动它
  3. 在傅立叶域中,应用一些滤波器
  4. 重新转换到空间域并显示(用于视觉验证过滤器是否有效)

  5. FFT2 和 fftshift 新创建的图像(可选,我也可以使用以前的 ifft2 输入)

  6. 计算功率谱,即.^2所有傅里叶域值

棘手的部分现在开始。对于功率直方图,我必须获得特定频率的所有值,涉及所有频率。 对于连续信号,我只需对所有频率从 0 到 2pi 进行积分,仅此而已。

但是我不能和离散值进行整合,至少我认为是错误的。对于从 0 到 2pi 的积分,我必须将与第 0 频率有一定距离的所有值相加。 我不能那样做,因为那时我必须确定距中心的距离,这将失败,因为值位于方矩阵中。 如果我要对有限宽度的环中的值求和,那么我必须确保不要多次 select 某些值。

也许我只是想错了方向,因为我对 MATLAB 比较陌生。但是我怎样才能计算出这样的功率直方图呢?

飞鸟

这看起来像您需要的:FEX

虽然我不确定你为什么不直接使用二维信息。