Matlab ECG信号处理 异常峰值条件如何判断?

1.基于上述峰值寻找程序的模块下,再加入一个判断条件,如果某一位的峰值所对应X轴的位数减去上一位峰值所对应X轴的位数不满足一个正常值的区间,则被判断为异常峰值,求该模块代码如何编写:

%%% 寻找峰值模块
for i=6:length(ecg)-6%正常峰值捕获
    if(ecg_filtfilt(i)>=ecg_filtfilt(i+1)&&ecg_filtfilt(i)>=ecg_filtfilt(i-1)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+2)&&ecg_filtfilt(i)>=ecg_filtfilt(i-2)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+3)&&ecg_filtfilt(i)>=ecg_filtfilt(i-3)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+4)&&ecg_filtfilt(i)>=ecg_filtfilt(i-4)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+5)&&ecg_filtfilt(i)>=ecg_filtfilt(i-5)&&...
            ecg_filtfilt(i)>threshold_soft)  %门限条件
        normal_peak = [normal_peak,ecg_filtfilt(i)];
        normal_site = [normal_site,i];


    %异常峰值捕获
    elseif(ecg_filtfilt(i)>=ecg_filtfilt(i+1)&&ecg_filtfilt(i)>=ecg_filtfilt(i-1)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+2)&&ecg_filtfilt(i)>=ecg_filtfilt(i-2)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+3)&&ecg_filtfilt(i)>=ecg_filtfilt(i-3)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+4)&&ecg_filtfilt(i)>=ecg_filtfilt(i-4)&&...
            ecg_filtfilt(i)>=ecg_filtfilt(i+5)&&ecg_filtfilt(i)>=ecg_filtfilt(i-5)&&...
            ecg_filtfilt(i)<threshold_soft&& ecg_filtfilt(i)>12)    %门限条件
        abnormal_peak = [abnormal_peak,ecg_filtfilt(i)];
        abnormal_site = [abnormal_site,i];
    end
end

https://blog.csdn.net/sinat_23338865/article/details/53809894