【问题标题】:How find and plot intersection of specific points on the graph如何在图形上查找和绘制特定点的交点
【发布时间】:2015-10-29 15:47:38
【问题描述】:

简介: 时域有两个信号,第一个是时域的振动信号,另一个是同一时域的相位信号。

问题:

现在的目标是在振动信号上准确地标记点,即我们在相位信号中具有峰值的点,如图所示。我不想要图形的交点!!!!当我在参考相位信号中有一个峰值时,我只想找到振动信号上的点。

以上是在同一时域中绘制的振动信号(红色)和参考信号(蓝色)。

[pk,lc] = findpeaks(reference_signal,'MinPeakDistance',0.001,'MinPeakHeight',0.05);

使用 find peaks 函数在 Time 中查找(相位信号)峰值的位置,这意味着对于整个信号范围,我将在时间轴上仅获得 13 个独特点 (lc),如

lc = [ 0.0015, 0.0030, 0.0045, 0.0060, 0.0075, 0.0090, 0.0105, 0.0120, 0.0135, 0.0150, 0.0165, 0.0180, 0.0195]

而实际振动信号的时域看起来像这样。

Time_Vibration_signal = [0.00047, 0.00049, 0.00051, 0.00053, 0.00055, 0.00057, 0.00059, 0.00061, 0.00063 and so on]

现在我想准确地标记振动信号上的点lc。即,当振动信号穿过第一个点(峰值)时,比如 0.0015 秒,我想要在振动信号和第二个点上做一个标记,依此类推。

在这一点之后我被困住了。有人可以帮我吗?任何提示或建议都会有所帮助。提前致谢。

【问题讨论】:

  • 您能否发布一个包含您的数据等的最小但完整的示例,以便其他人可以运行它并验证他们是否确实找到了您要查找的内容。另外,您的图表也不是很好。使线条更粗,例如'LineWitdth',5
  • @kkuilla,感谢您的建议。我更新了我的问题。

标签: matlab plot


【解决方案1】:

您可以使用polyxpoly 查找两条线之间的交点。

假设你必须是正弦曲线并且想找到所有的交点,你可以试试这个:

x1      = 0:10*pi/99:10*pi;
y1      = sin(x1);
x2      = 0:10*pi/49:10*pi;
y2      = 0.2*cos(x2);
[ix,iy] = polyxpoly(x1,y1,x2,y2);     % intersection points
plot(x1,y1,'r',x2,y2,'k');
hold on
plot(ix,iy,'r.','markersize',30)

你会得到这样的东西:

【讨论】:

  • 很抱歉有一点混乱。我编辑了我的问题,请看一下。我不是在寻找图表的交集。谢谢
猜你喜欢
  • 2019-12-10
  • 1970-01-01
  • 2015-11-13
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
相关资源
最近更新 更多