信号的一部分的最大值

Maximum of a part of a signal

signal 中这样创建:

Tinitial =0; 
Tfinal = 1;
NbEch = 300;
Tech = (Tfinal - Tinitial)/(NbEch-1); 
t = Tinitial : Tech: Tfinal; % time vector
signal = sin(2*pi*t*3) + 0.25*sin(2*pi*t*50) + randn(size(t))/10;

figure
plot(t,signal)

我想计算 0% 到 10% 的时间和 50% 到 60% 的时间的信号最大值。我试过在图中使用 ginput,但希望它自动完成,因为我在一个循环中有几条相同类型的曲线。

计算时间百分比

tpct = (t-Tinitial)/(Tfinal - Tinitial);

使用逻辑索引和我们刚刚创建的百分比向量计算最大值。

sigMax0_to_10  = max( signal(tpct >= 0.0 & tpct <= 0.1) ); % max between 0% - 10% time
sigMax50_to_60 = max( signal(tpct >= 0.5 & tpct <= 0.6) ); % max between 50% - 60% time

您可以轻松地对其进行调整,将上限和下限阈值放在一个数组中并对其进行循环。