我有一系列数据(单个数组)。如果我将这些数据绘制并绘制,可以看到有多个峰。但是,如果我放大一部分数据,我会发现有很大的噪音。
我喜欢用很少的CPU时间和精力来检测数据中有多少个峰值。我想到了检测这些峰的斜率(可以是陡峭的或平滑的上升或下降),然后查看斜率的数量以确定峰的数量。(每个峰2个正斜率和负斜率)
任何指针如何在存在噪声的情况下计算斜率?
该代码将进入嵌入式系统,内存有限,因此我最好实现不需要大量数据复制的操作。
1
您听起来像是在一家商店里
如果噪声的频率相对较高,则可以对数据进行低通滤波
—
Paul R
您可以发布一个或多个数据示例图吗?这将帮助我们了解其外观。峰值检测通常不通过导数估计来完成,因为计算信号的导数对噪声非常敏感(这是高通操作)。您可以利用感兴趣的信号的特征。同样,在正确检测到峰的概率与错误地声明确实不感兴趣的峰的概率之间始终存在折衷。哪个对您的应用程序更重要?
—
杰森R
如果您可以绘制一个图,那将很有帮助。
—
杰森R
您要检测峰,可能要搜索峰检测(请参阅dsp.stackexchange.com/questions/1302/peak-detection-approach)。
—
Geerten '02