Расчет длительности импульса производится на уровне 0.5 от максимального значения сигнала
Uimp
t1 t2
Uimp=Umin +0.5*(Umax - Umin),
Здесь Umax – максимальное значение массива отсчетов сигнала,
Umin - минимальное значение массива отсчетов сигнала,
Umax-Umin – амплитуда сигнала,
dlit=t2-t1 длительность импульса.
Наиболее простой способ нахождения длительности импульса – сложение временных отсчетов dt, находящихся на интервале t2-t1:
float dlit=0;
for (int i=0; i<n; i++)
if (U[i]>=Umin+0.5*(Umax-Umin)) dlit+=dt;
если Umin=0 выражение упрощается:
float dlit=0;
for (int i=0; i<n; i++)
if (U[i]>=0.5*Umax) dlit+=dt;
предварительно необходимо рассчитать Umax и Umin.