本想结束这个课题的讲解,但当考虑实际情况时,再简单的算法也开始变得复杂,需要考虑很多因素,于是就不断的深入讲解吧。本系列文章所涉及的知识完全可以作为本科生毕业设计的内容,其难度和复杂度绝对符合甚至远超出要求。如果研究生能把这个课题搞懂搞透,那么对信号检测知识的理解也会上一个台阶。在本课题中,音长、数字检测之间的间隔时长和噪声干扰就是算法要考虑的实际因素。这些因素的处理也会在算法程序中得到体现。之前的程序就是因为没有考虑音长,导致检测有时出错。
如果你走上算法开发这条路,那么你将面临着无穷无尽的优化过程。优化无止境!随着优化的程度越来越高,算法的完备性将越来越高。所以,当一个产品过几年以后出现升级的情况,那也是很正常的,因为他可能会面对更多的环境。所以,在企业里面做产品,如果做一个丢弃一个,那这个企业的核心技术很难铸成高门槛。只有长期坚持研发产品,不断的完善和优化,那么企业在这个行业上面构建的技术壁垒将会越来越高,别人追赶上的难度也将越来越大。但很多企业喜欢“拿来主义”,投机取巧换来的就是“无核”状态。我之前就职的企业就是这样的典型,虽然规模大,但是“无核”!没有国家的优惠政策及军工属性,真不知能撑多久?
写代码固然辛苦,尤其是背后的思考过程会非常熬人,但是写成功一个算法程序后,发现它能解决实际问题的时候,一种成就感也会油然而生。只要努力,算法工程师其实很多时候都能体会到这种成就感,这也就是为什么我喜欢写算法的原因。这种成就感非一般数额的金钱所能比拟!是不是很多钱就能替代呢?也许万物都有价,只有真正的科研人才才会视金钱为粪土,一辈子为国为民服务。这些人是国之脊梁!我辈大多数还需要多方面的“进化”!本文超过四千字,非有志于数字信号处理领域钻研的人士切勿购买!
一起看代码!
之前一篇文章提到算法中还有那么多困惑要解决!如何让程序能够不在意音的长短还能有正确的识别?之前的后续检测需要进行采样点的跳转,跳转多长时长很难确定。那怎么办、于是我想到能否通过检测音结束时刻来规避这个问题呢?于是我就写了下面这个程序,首先在理想信号源下检测新算法的效果。