2016-11-15 58 views
0

我想要获得某些图像所有频率的一维功率直方图。我将描述迄今为止我所做的。MATLAB:从FFT2频谱获取功率直方图

  1. 读取的图像(如果neccessary,转换为灰度)
  2. 计算FFT2和移位它
  3. 在傅立叶域,应用一些滤波器
  4. 重新转换到空间域和显示(为视觉验证过滤器工作)

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

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

现在开始棘手的部分。对于功率直方图,我必须得到所有涉及频率的特定频率的所有值。 有了一个连续的信号,我只需要从0到2pi为所有频率进行积分,就是这样。

但我不能整合离散值,至少我认为这是错误的。对于从0到2pi的积分,我不得不总结所有与第0频率有一定距离的值。 我不能那样做,因为那么我必须确定距离中心的距离,因为这些值位于方形矩阵中,所以会失败。 如果我要总结一个有限宽度环的值,那么我必须确保不多次选择某些值。

也许我只是在一个错误的方向思考,因为我相对较新的MATLAB。但是,我怎样才能计算这样的功率直方图?

Phreak

回答

0

这看起来像你需要:FEX

虽然我不知道你为什么会不直接使用二维信息。

+0

谢谢,我找到了一个在寻找此事。我试图用这个项目来达到我的目的,但是没有成功。我会仔细看看。我有类似的问题,关于所有角度的直方图,即我试着总结第0频率的“楔子”。 – PhreakShow

+0

使用以0频率为中心的坐标创建网格。然后将网格中的X和Y坐标转换为极坐标。使用scatteredInterpolant获取字段,然后在特定的r和theta步骤均匀采样以获得您的直方图。 –