2017-08-18 393 views
0

Time Domain SignalMATLAB找到局部最大值在一定的范围内

图是我的时域信号,并包含在黑色区域是我的感兴趣的区域。

我想要做的是以下几点:

  1. 确定全球最低点

  2. 找到全局最低点

我有之前出现最大值点成功确定了这样一个全球最低点:

for ii=1:Size(1) 
     for jj=1:Size(2) 
      [min_amp, min_index]=min(signal(ii,jj,:)); 
      min_time(ii,jj)=time(min_index); 
     end 
    end 

    Minbound = floor(mean(min_time(:))*Fs); 

尺寸(1)和尺寸(2)代表扫描区域,我试图找出每个点出现全局最小值的时间并取平均值。

谁能帮我

2.找到全局最低点之前出现最大值点?

在此先感谢

回答

2

目前尚不清楚你的可变信号(3D)是如何取向。 我会假定第三维是时间,否则搜索最小值就没有任何意义。

一旦你确定的最低

[min_amp, min_index]=min(signal(ii,jj,:)); 

你所在的索引(min_index),现在你必须限制你的最大搜索到了这一点(因为它是在此之前, )。

[max_amp, max_index]=max(signal(ii,jj,start_index:min_index)); 

正如前面提到的,我不知道你的信号的尺寸,无论是在黑框或整个时间序列的时期。取决于start_index可以是1或黑框历元的开始索引。

您应该考虑检查最大值是否是实际峰值或者是您的间隔开始时的最大值。

看一看在内置的功能

findpeaks 

它会搜索本地最大值。要找到最小值,你可以反转信号。仅在最小值之前的时间间隔内再次限制最大值搜索。

+0

是的,我的时间信号的尺寸为450x450x200,其中200是我的时间范围,450x450代表扫描区域 – Joonie

+0

我按照您的说法努力尝试!非常感谢! – Joonie

+0

很高兴我能帮到你 – Irreducible

相关问题