【问题标题】:Getting a cross-section from power-spectrum从功率谱中获取横截面
【发布时间】:2016-07-11 15:12:37
【问题描述】:

我目前正在尝试使用光谱方法来分析地形景观。

当我对景观进行 FFT 并绘制功率谱时。从功率谱中可以找到景观中结构的方向。

2D 功率谱:-

在这个功率谱中,我想做一个横截面。 当峰值幅度方向沿 x 或 y 轴时,这很容易。 但对于这个领域(和其他领域),情况并非如此。

另一个区域的横截面 - 沿 y 轴方向:-

我的问题是我想沿着 1 中的山峰制作一个横截面,但我似乎无法弄清楚如何做。

如果有人能指出我对此的一些解决方案。卡在这里好几天了。

编辑 1 我希望横截面是沿峰方向的一条线。

编辑 2 改进了第一张图片以显示我想要的横截面

【问题讨论】:

  • 取 iFFT 图每一行的最大值?你的问题有点模糊,你想让你的横截面是一条线还是每行/列的最大值?
  • 是的,我知道它有点模糊:/ 我希望它是一条线,所以我可以看到这条线上的山峰。我已经用最大值尝试过了,并没有真正给我一个包含新信息的情节。
  • 嗯。您是否想在图像上画出您正在寻找的线条?
  • 我已经更新了图像 1 以显示我想在哪里做我的横截面
  • 你可能会做一个窗口平均,选择几个最高的点,然后对其进行线性插值,并使用强制插值强制它通过原点。这应该会给你这条线,然后你需要使用类似in.mathworks.com/matlabcentral/fileexchange/1853-linepoints 的东西来获取你感兴趣的 iFFT 矩阵的坐标。

标签: matlab fft


【解决方案1】:

正如 GameOfThrows 建议的那样,我的解决方案是:

  • 在我想要的方向上选择 2 个(或更多)点
  • 在点上使用最小二乘法创建直线
  • 为插值设置网格。
  • 在新行上使用 interp2 函数。
  • 为截面定义合适的轴

在我的最后一个横截面中,我最终有多条线,这样我肯定会达到最大振幅。

我对我的问题的答案有点了解,但我一直很忙 :)

【讨论】:

    【解决方案2】:

    您可以使用 ginput 内置 matlab 函数来存储功率谱的 2 (x,y) 坐标,然后使用此值来界定要插值的轮廓。

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      相关资源
      最近更新 更多