在如此创建的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
,但希望自动完成,因为我在循环中有几条相同类型的曲线。
答案 0 :(得分:3)
计算时间百分比
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
您可以轻松地对此进行调整,以使您的上限和下限位于数组中并循环遍历它们。