实时斜率和峰值检测与计算


9

我有一个信号,我以500khz采样。我正在尝试检测传入数据中的上升,下降和峰值。峰值的基数可能为250 usc或2.5毫秒,幅度可能比本底噪声高6db或15db。不幸的是,我的snr不好。信号的直流电平不是恒定的,但移动速度比交流分量慢得多。  

在决策点,我需要知道上升和下降的斜率。这是一个艰苦的实时系统,在下降斜率达到直流电平后,我真的需要在100usec中做出决定。 

我正在寻找有关如何有效实现合适算法的建议。  

目前,我进行移动平均(过去25个数据点加在一起)并尝试检测趋势。一旦发现上升趋势,便开始寻找下降趋势,一旦发现下降趋势,便可能再收集50个样本并开始计算。 

现在,噪声很容易使该算法陷入困境,因此成为问题。 

更新

为了他人的利益,我最终实现了移动平均线,之后是积分器。过去64个数据的移动平均线已经足够平滑,但是没有上升到一定程度,对最后8个值进行积分可以使上升回升,我只是在寻找上升和下降,后来我对斜率进行了线性回归。可以,不是很好,但是还可以。


您可以发布当前算法失败的数据序列图吗?
吉姆·克莱

尽管噪声很大,但执行此类操作还是很困难的。胡安乔关于区别对待的建议可能是一个很好的建议。
Daniel R Hicks,2012年

Answers:


5

您应该从带限差分器开始(等效于一个差分器,后跟一个低通滤波器)。微分器将消除低频趋势,并将对您的峰值和斜率做出快速响应。低通分量将去除超过截止频率的噪声。

您应该设计截止频率,以使您的斜坡得到干净的脉冲。

正斜率将随着正脉冲而减慢;负斜率作为负脉冲,其峰值将对应于正负之间的零交叉。

这种类型的滤波器通常实现为FIR滤波器。然后,滤波器的采样数将取决于您的实时约束,截止频率的清晰度以及截止频率本身。


我不太精通DSP。您能指出我可能的实现方式吗?根据您的回答和我的有限知识,我认为该链接(holoborodko.com/pavel/numerical-methods/numerical-derivative/…)确实可以满足您的要求。如果使用这种方法,我将不知道1)如何确定我的频率?2)如何选择滤波系数?
Ktuncer

另外,以下链接解决了类似的问题,并包含许多链接。dsprelated.com/showmessage/123740/1.php
Ktuncer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.