【问题标题】:MATLAB: Get power histogram from FFT2 spectrumMATLAB:从 FFT2 频谱中获取功率直方图
【发布时间】:2017-03-29 17:22:30
【问题描述】:

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

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

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

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

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

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

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

飞客

【问题讨论】:

    标签: matlab fft histogram dft


    【解决方案1】:

    这看起来像你需要的:FEX

    虽然我不确定你为什么不只使用 2D 信息。

    【讨论】:

    • 谢谢,我在搜索这个问题时找到了那个。我尝试将那个项目用于我的目的,但没有成功。我会仔细看看。我有类似的问题,关于所有角度的直方图,即我尝试对源自第 0 个频率的“楔形”求和。
    • 创建一个网格,您的坐标以 0 频率为中心。然后将网格网格中的 X 和 Y 坐标转换为极坐标。使用scatterInterpolant 获取该字段,然后在特定的r 和theta 步长处均匀采样以获得您的直方图。
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多