上图是我的时域信号,黑色区域是我感兴趣的区域。
我想要做的是:
确定全球最低点
查找全局最小点之前的局部最大点
我已经成功确定了这样一个全球最低点:
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. 查找全球最低点之前的本地最高点?
提前致谢
答案 0 :(得分: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
它搜索局部最大值。要找到最小值,您可以反转信号。并且仅在最小值之前的间隔再次限制最大值搜索。