24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 1091  |  回复: 2
本帖产生 1 个 博学EPI ,点击这里进行查看

平凡的世界

金虫 (正式写手)

[交流] 请高手帮忙——用编程的方法描述曲线的变化

毕业在即,有一个问题始终没有解决,请高手用编程的方法描述曲线的变化,内容要求如下:


主要是根据斜率变化规律找到峰的位置、高度(就是顶点的纵坐标和横坐标值)峰的宽度(终点与起点横坐标之差),拜托了!!


对于一个典型谱峰而言,我们很容易发现谱图斜率有以下规律:上升阶段斜率是正值,在顶点时,斜率为零,下降阶段斜率为负值,最后回到基线。根据有机谱图中出现谱峰时信号斜率变化特点,我们提出一种新的谱峰识别方法——斜率变化法。
有机谱图经过前面的滤噪处理后,对谱图的信号曲线进行取导运算,得到的就是该有机谱图的斜率曲线,然后根据信号斜率的变化来进行谱图识别工作。 图4.8是有机谱图中的原始谱峰信号与谱峰信号的斜率对应图,上面的是一个完整的谱峰信号,下面是信号曲线对应的斜率示意图。
为了检测到谱峰的出现,需要设定一个斜率阈值,设为M。在理想状况下,当开始出现谱峰时,该点的斜率值会大于设定的阈值M,该点可以记为峰的起点位置(Ha);当峰达到最高点时,斜率值变为零,此时位置记为峰的顶点(Hh);当谱峰结束时,斜率的值会近似等于(—M),此时位置记为峰的终点(Hb)。  
有机谱图经过滤噪后可以变得平滑,但谱图对应的斜率曲线却不一定很光滑,如果直接用来识别会有一定难度,甚至会造成识别失败。因为斜率曲线的如果在谱峰起点处有轻微的波动的化,可能会造成误判,谱图识别就不可能成功。












               图4.8 斜率变化法检测谱峰示意图



为了使识别结果更加稳定可靠,我们需要综合考虑各种因素的影响,本文提出在数据分组的基础上进行谱图识别,成功率较高。我们先把信号的斜率数据进行分组,再分别对每个小组数据进行状态判断。虽然计算量有所增加,但识别的稳定性和准确度都有所提高。该识别方法的具体步骤如下:
1)定义一个整形变量Star表示信号在不同时刻的状态。其中:Star = 0表示信号属于基线状态,Star = 1表示信号可能要出谱峰,Star = 2表示信号正处于谱峰状态,Star = 3表示信号已经经过谱峰的最高点,正处于回落的状态。
2)定义一个整形变量X用来记录采样状态。对信号斜率值按每3个为一组进行分组。在同一组中,如果信号斜率值大于设定斜率阈值M,则X增加1,如果信号斜率值小于设定斜率阈值—M,则X减1,其它情况下X值保持不变。这样得到各小组的X值范围为[ —3, 3]。X在循环中是临时变量,可以反复使用,不必设为数组。
3)定义谱峰开始标志Ha和谱峰峰结束标志Hb。如果检测到开始出现谱峰,则Ha= 1;如果是谱峰结束状态,则Hb= 1;其它情况下,Ha = 0,  Hb= 0。
4)用循环方法计算各小组的变量X的值,并根据数值进行谱峰状态识别。
5)建立一个Cpeak类来保护谱峰的起点和终点的位置,将每个谱峰的位置存入Cpeak类对象中。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

e-chenm

铁杆木虫 (职业作家)

美的让你揪心,恨我吧

平凡的世界(金币+2, 博学EPI+1):谢谢。请指教啊…… 2010-05-02 01:42
你这也不是创新啊,不就是一阶导数谱吗?
随便找个算法书都可以找到,
还是自己做吧,
这么两个币币,哈哈,还是别等了
整天开会多开心啊-----happy天使
2楼2010-05-01 22:03:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qiaoyingchao

铁杆木虫 (正式写手)

我现在也没有时间,给你推荐一个论坛www.ilovematlab.cn,里边貌似你能得到一些帮助
3楼2010-05-02 11:15:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 平凡的世界 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见