||
今天一早就收到导师的信息,说我们的分数域课题于9月29日顺利通过验收,挺欣慰的。这个课题属于前沿课题,可参考的资料极为有限,并且工程实现难度较大,回想起研二的时候接手这个课题,记忆犹新啊。
记得那个时候我负责分数阶Wigner-Vile算法的设计和优化,刚进实验室就面临着近两万行的代码,毫无思绪,并且当时负责项目的师兄不是毕业了就是忙于找工作,可以说,那个时候是研究生阶段最无助、最苦的阶段。为了更好地服务项目,每星期都打一大叠论文,遇到导师在办公室就找他讨论,临时组建了一个“自救讨论小组”,在不断有效的沟通下,终于发现,原来老外写的代码也是有漏洞的,然后大胆推翻他们提出的经典Wigner-Vile算法,用自己的理解写算法,不过一开始也是不顺利的,因为对matlab、C++、MFC都不太熟悉,虽然已经找到问题所在,但是在工程实现上就是搞不定,于是就大量阅读技术文档和书籍,不断跟师兄们问一些技术方面的问题,终于把工程优化也完成了。
接下来是去中石油川庆钻探工程公司移植研究成果,一去才发现,川庆项目里头的函数接口和我自己写的代码接口完全不一样,并且使用的平台也不同,公司用的是QT,我们用的是MFC,移植过程中出现了几百个的Bug,不过我始终相信,平台只是函数功能的表现形式不同而已,即使Bug很多,只要用心改,总能改好的,白天就和川庆的工程师讨论如何修改接口,晚上就抱着C++之父写的《C++程序设计语言》、《C++ 编程思想》等一系列专业的编程教材看,有效积累慢慢在开始起作用,我们编程习惯开始改善,对Bug的修改开始熟练,在改完几百个Bug以后,最后还剩下一个棘手的Bug,MFC中的静态库在QT平台中无法使用,这个太要命了,多亏网络资源,我到网上查了一下,发现这个静态库的函数功能早就有前辈高人用C++写好了,只是接口稍微不一样,我把它们下载下来以后做了简单的修改,编译终于成功了。
移植完毕后,川庆工程师做了验证,觉得效率确实显著提高了,但是仍然达不到工程要求,一个工区要跑一星期,关于时频分析效率提高方面的问题,目前国内还真没有相关的报道,我回到学校,到自习室里静思,从走廊的这边走到那边,走了好几趟,突然发现走廊的砖是一块一块铺过去的,这给我的启发是:信号完全可以分段处理,由于分段后的数据量小,所需要的傅立叶变换矩阵规模就小,这样的分治算法应该能非常有效地提高运算效率,当天晚上就回实验室编了一段程序,果然效率提高了很多,我把这个想法叫做“分辨率换取速度”思想,并把它应用到川庆项目,结果本来运行一星期的代码提速为只需要运行2小时,不过问题马上又出来了,由于分段处理信号,导致衔接的地方出现不连续的情况,在川庆项目交流会上,张洞君工程师提出可以采取错位平滑的方式把不连续处平滑过去,我着手编程实现了一下,果然效果非常的perfect,这样,整个项目的理论完善和工程实现就全部完成了,在这个科研过程中,我们积累了大量代码和理论依据,同期成功申请了一项国家自然科学基金,并发表了一篇SCI论文。
整个项目的结题过程是艰辛的,每迈出一步,我们都付出了巨大的努力,给自己一点掌声,同时我们要感谢川庆钻探公司的专家小组,他们对项目严格的考核以及中肯的建议都为项目的完善起到重要的作用!
附录:
本人攻读硕士研究生期间的学位论文,欢迎参考阅读:
http://wenku.baidu.com/view/cce533b3dd88d0d233d46a30.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-21 23:05
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社