信号的一部分的最大值
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
您可以轻松地对其进行调整,将上限和下限阈值放在一个数组中并对其进行循环。
在 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
您可以轻松地对其进行调整,将上限和下限阈值放在一个数组中并对其进行循环。