我有一个以 500khz 采样的信号。我正在尝试检测传入数据中的上升、下降和峰值。峰值的基数可以为 250 微秒或 2.5 毫秒,幅度可以比本底噪声高 6 分贝或 15 分贝。不幸的是,我没有很好的snr。信号的直流电平不是恒定的,但比交流分量移动得慢得多。
在决策点,我需要知道上升和下降的斜率。这是一个硬实时系统,我真的需要在下降斜率达到直流电平后在 100 微秒内做出决定。
我正在寻找如何有效地实现一个体面的算法的建议。
目前我做一个运行平均值(过去 25 个数据点加在一起)并尝试检测趋势。一旦我检测到上升趋势,我就会开始寻找下降趋势,一旦我这样做了,我可能会收集另外 50 个样本并开始计算。
噪声现在很容易搞砸这个算法,因此是个问题。
更新
为了他人的利益,我最终实施了移动平均线,然后是积分器。过去 64 个数据的移动平均值足够平滑,但在一定程度上失去了上升,整合最后 8 个值获得了上升,我只是寻找上升和下降,后来我对斜率进行了线性回归。工作正常,不是很好,但还可以。