我这里有很多组数据都要算,你大概把小程序发给我就OK
追答写了个小程序,数据是很理想的形状,如果你的数据是实测的,那肯定会有毛刺,直接用这个程序做,结果是不准的,要用滤波器做平均。
总之你就简单看看思路吧,看懂了在根据自己的需要改进
************************************
clc;
clear;
f=0:pi/180:pi;
Data=sin(f);
MaxData=max(Data);
Threshold=MaxData/2;
BandIdx=find(Data>Threshold);
MaxIdx=find(Data==MaxData);
StartIdx=BandIdx(1)
StopIdx=BandIdx(end)
figure
plot(f,Data,'-b')
hold on
plot([f(StartIdx),f(StartIdx)],[0,Data(StartIdx)],'r--');
plot([f(StopIdx),f(StopIdx)],[0,Data(StopIdx)],'r--');