【发布时间】:2015-12-20 17:11:55
【问题描述】:
我有一个离散函数 y(n), n=1..8000 有两个区域,可以用几乎水平的直线来近似,如图所示。
我想找到这些区域与功能快速增长部分相交的点的坐标 x1、x2。在 Matlab 中,y(n) 是一维向量。
【问题讨论】:
-
您可以对数据做出哪些假设?总会有两个平坦的部分吗?平面部分会不会有小尖刺?扁平部件有最小保证尺寸吗?
-
是的,两个平坦的部分将永远是,没有任何尖峰,并且它们的坡度与陡峭部分的坡度相比会很小。平面部分的最小尺寸约为 600。Here,我将变量 y 保存到 mat 文件中。
-
你应该看看衍生品 (
diff)。在平坦部分它将(大约)为零,并且在 x1 和 x2 处它会突然发生强烈变化。然后您可以使用findpeaks来定位这些峰。它可能需要一些用户指定的阈值来区分实际峰值与噪声或斜率的微小变化。您也可以自动执行此操作,但我不确定这是否值得。 -
在这种情况下,我会先做一个 y 值的直方图,以粗略估计平坦部分的截止值,然后执行稳健回归。