c++ 关于二维曲线数据处理算法的问题

一条二维曲线数据,数据大概3万个,现在将它所有的波峰值和波谷值分别连起来了,就是两条曲线,因为数据的原因,曲线的形状会像正弦曲线一样弯弯曲曲,也就是说当在两个比较大的峰值之间会有一些比较小的峰值,想要将这些小的峰值去掉,最后绘制出来的两条峰峰值,一条是形似倒V,一条形似正V,应该怎样写这个算法

5个回答

你的思路有问题。
黑色和紫色线条并不是你所谓两条峰值线条的拟合;
而是两条峰值线条的“包络”。搜“包络”。

xihuazhaoshi_BLOG
Elvis-Liu 感谢尼古拉斯赵四老师的回答
大约 4 年之前 回复

你这个因为是数据的原因,所以你要祛除噪声,但是按照你的需求怎么感觉想把数据变成回归的问题呢,那你直接用数据拟合一个函数,完后画函数应该也行

xihuazhaoshi_BLOG
Elvis-Liu 回复shiter: 对,我就是卡壳在这个噪声消除这里,应该怎样写这个算法来消除,比如我在下面回答的图片里面的A点B点C点是三个峰值,现在想要消除掉C点,直接将A点和B点连接起来,应该怎么写算法
大约 4 年之前 回复
wangyaninglm
shiter 回复Elvis-Liu: 那就先去噪声?
大约 4 年之前 回复
xihuazhaoshi_BLOG
Elvis-Liu 不能用数据拟合啊,必须使用原始数据绘制
大约 4 年之前 回复

图片说明

搜“CPP源代码 低通滤波”

xihuazhaoshi_BLOG
Elvis-Liu 看了各种滤波法,并不满足实现要求,是想要将原始数据全部保留不做修改,只将其中具有代表的数据重新找出来,最后实现像下面我回答的图片中的样子
大约 4 年之前 回复

将三万组数据绘制出来后是一条曲线,将它的波峰值全部链接起来,形成图中的红色线条,将它的波谷值链接起来,形成图中的绿色线条,现在想要对两条峰值数据进行处理,最终绘制出图中黑色和紫色线条图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问