求一突波检测算法

2019-12-10 18:21发布

本帖最后由 Junsea 于 2018-1-4 11:40 编辑

信号波形如图,波形上有叠加一些随机的突波(红 {MOD}箭头位置),信号本身有幅值不大的毛刺,毛刺的幅值远小于突波。
基值是浮动的,假设图中基值x(x取值范围50~1000),x值随机且在检测过程中会随机变化,毛刺为 x±5,而突波为 x+20 以上
采用什么软件算法能够可靠的检出图中突波
求思路,谢谢!!

2018-01-04 补充:
1、图示数据来源是通过AD采集后通过串口送到电脑,然后通过serial chart显示的
2、真实突波信号并非如图那么陡峭,是类似于正弦波的正半波,突波通常持续时长为0.1ms至5ms间,突波的相对幅值范围为+15~+150
3、AD采样频率为20KHz

编辑原因:增加数据描述
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
55条回答
lsx007
1楼-- · 2019-12-14 06:18
难道不就是CFAR检测? 找尖峰,过门限就取出来,做下一步处理,下面是我写过的一段检测尖峰代码:
        PointTmp = EnergyDataTmp[0];
        for (j = 1; j < CFARDetectStruct.XLocalRange; j++){
                PointMax = Max(PointTmp, EnergyDataTmp[j + 1]);
                PointTmp = EnergyDataTmp[j];
                if (EnergyDataTmp[j] <= PointMax){
                        EnergyDataTmp[j] = 0.0;
                }else{
                        if ((PointTmp > CFARDetectStruct.ThresholdL1) && (pCohesionDataL1->Num < COHESION_DATA_LEN)){
                                        pCohesionDataL1->XLocal[pCohesionDataL1->Num]     = CFARDetectStruct.XLocalOffset + j -1;
                                        pCohesionDataL1->EnergyData[pCohesionDataL1->Num] = PointTmp ;
                                        pCohesionDataL1->Num++;
                        }
            }
        }
1148729990
2楼-- · 2019-12-14 11:54
看数据觉得求相邻两点的差值,波形会跟明显。
asma
3楼-- · 2019-12-14 13:50
你这个拿高通滤波应该能检测出,需要试验下截止频率
xsh2005105326
4楼-- · 2019-12-14 16:59
不知道格鲁比斯算法是否对你有用
Junsea
5楼-- · 2019-12-14 22:45
 精彩回答 2  元偷偷看……
Junsea
6楼-- · 2019-12-15 03:59
lsx007 发表于 2018-1-4 09:09
难道不就是CFAR检测? 找尖峰,过门限就取出来,做下一步处理,下面是我写过的一段检测尖峰代码:
         ...

研究下你的代码,如果代码能有点注释就更好了。

一周热门 更多>