最大部分信号

时间:2018-04-20 09:39:50

标签: matlab max signal-processing

在如此创建的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,但希望自动完成,因为我在循环中有几条相同类型的曲线。

1 个答案:

答案 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

您可以轻松地对此进行调整,以使您的上限和下限位于数组中并循环遍历它们。