如何在MATLAB中找到X轴值与信号峰值的关系

时间:2017-08-08 09:10:10

标签: matlab machine-learning signal-processing

我需要帮助在x轴上找到与找到的峰值相关的值。

有没有什么方法可以通过查看峰值直接绘制一条线,因为这个命令给出了y轴上的峰值位置和值,但不幸的是我的x轴没有很好地定义。

因为我也使用了x_max_value = x(索引),但它没有给我正确的值。

我想找出第一个和第三个峰值的2个峰值的x轴值的差异。这就是我需要这个的原因。

如何根据信号中的峰值找到X轴值。

我尝试过这些命令,但遗憾的是没有用。

inoremap ii <esc>

这就是为什么我想直接在峰下画一条线来清楚地得到x轴值。

           x_at = x( firstpeak_1_loc)
           x_at = x( lastpeak_1_loc)


     %     ind = find(f== lastpeak_2);
      %     x(ind)

我是否有可能在我找到x轴峰值的点处绘制一条垂直线,因为我遇到x轴值问题?

我想找出第一个和第三个峰值的2个峰值的x轴值的差异。这就是我需要这个的原因。

1 个答案:

答案 0 :(得分:1)

您有&#39; locs&#39;中的峰值索引,如果您想订购峰值,请在&#39; findpeaks&#39;中使用排序选项:

clear;
y = [2 3 4 5 10 7 8 15 5 6 ];
N=length(y);
x=linspace(-6,4,N); % the data must contain x for each y

[y_atpeak,locs] = findpeaks(y,'SortStr','descend');
x_atpeak = x(locs);

plot(x,y,'r-',x_atpeak,y_atpeak,'go')

if length(y_atpeak)>=1
    Yhighest=y_atpeak(1)
end
if length(y_atpeak)>=2
    Ysecond=y_atpeak(2)
end