[原创]数字信号处理中的卷积网络深度学习猜想(1) - 信号主周期估计算法

转载请注明出处,Writer:Zhonlihao钟硕 @ 20190713

***注意!本文只是猜想,请勿过于认真要作者给出与深度学习的必要联系***

https://blog.csdn.net/xeonmm1

引言

       这是一篇计算机学与信号处理跨界借鉴的文章,涉及电信算法领域,以下内容尽可能不贴图讲解,相关人士老司机可以继续阅读,适逢深度学习的大热,我花了点基本的时间了解深度学习的基本算法构建和深度学习中一些关键的要素。暂时来看,实信号处理还没有相关的深度学习算法,因为信号的组织形式与图像是不相关,但是根据图像能够做深度学习这一突破的前提,证明信号处理里面也可能有机会进行相关算法操作。

       首先简单的讲解下图像深度学习,其基本的形式就是一个方形滤波器核对整幅图像进行卷积运算,并提取一些信息到后端的MLP全连接神经网络进行特征识别,整个过程是end to end的,不需要人为去自己提取特征,非常的方便,但是代价也是显而易见的就是运算量基本就是各种循环消耗,需要增加计算量,所以现在我们可以来归纳一下整个深度学习算法的特点:

1.进行反复循环的卷积运算:这个操作能够遍历所有的数据位置,综合提取特征;

2.非线性核及其饱和输出:卷积核和激活函数的计算能够使线性输出变为非线性输出,具备遇到特征就激活的能力,本质上是把足够量的特征用饱和状态1和0激活到下一层再进行更复杂的分析操作;

3.多层全连接神经网络:提供丰富的多维空间学习特征;

       那么深度学习的基本算法能力我们就看到了,现在反过来看看3个基本的信号处理方法对比图像处理算法有什么异同点:

1.快速傅里叶变换:通过不同的频率的正弦波对原有信号进行相乘形成频谱,本质上是MAC(乘加)运算,而且频点间距中的一些频率不能正确被表示,当取点较少时,精度也会降低;

2.功率谱(自相关):算法实现是自相关函数的傅里叶变换,我平常用自相关谱都能提取最大峰值频率,但是其算法实现也是MAC为主,自相关法能够根据离散的数据点尺度进行分析,在低频率下例如100Hz采样率时,其分析能力比FFT要强,在音频区FFT的处理能力比自相关法好;

3.小波操作:多尺度下的时域卷积操作,有点意思,使用小波基相乘,本质也是MAC乘加运算;

      那么,一眼看下来,信号处理界的一些古典算法基本都是MAC的线性操作,除了小波比较先进引入了多尺度卷积概念外,3种算法算来算去都是线性算法,也基本预知了他们在这个时代的局限,就是不具备深入分析一些特征的能力,或者说,不太高效。

 

信号处理中的卷积网络非线性计算猜想

      本文根据深度学习中的一些关键点对离散信号处理的算法进行了改进,以医疗信号中的呼吸信号为例,估计其主要周期。下图为一片带有副波毛刺点的呼吸信号,已经较为强力的预处理滤波,需要计算其主要周期;

 

全尺度卷积

     这个概念应该不会陌生,利用加大的运算量来对不同周期尺度下的特征进行提取,以获得兼顾时域和频域两者的客观综合的分析,方法如下图所示:

在不同的周期上,形成分析窗口,在时域上进行移动对信号进行分析,窗口之间是重叠的,这样下来这个运算量就是2个循环级别,这种方法能够更加全面地提取信号里面的成分分布;

 

非线性处理核

无论FFT,自相关法,小波法,都没有引入非线性的处理核,所以本文设计出一种方法在卷积窗内进行非线性处理,如下图所示

在尺度为d的卷积窗口内,我们不直接地计算出一些什么跟d相关的乘加操作,而是选取卷积窗内最大的两个极大值点,或者两个最小的极小值点,进行求时域上的位置的差获得相关周期信息,并在period的统计上+1,这样虽然窗的长度是d,但是得出的算术操作周期periodd没有必然联系,构成一个非线性卷积核的处理;

      那么,考虑特殊情况#1,尺度d刚好包含两个小副波,那会如何?

     按照上文所述选择两个最大的极大值点的情况下,2个小于主周期的副波点必然不能被同时取,这样就在尺度d内,就只能取一个主周期极大值点和一个较大的副波点,这样得出period也会时非主周期的period计数增加,所以引入负反馈打分功能,如果两个极大值是同一水平线上(主周期特征),则分数score = mag_a1/mag_a2,a1为幅度较小的那个特征点,如果是副波,那么其幅度较低,在period上的得分也不会太高,使得对主周期识别造成干扰。

     上述两点,1-使用尺度内的最大两个极大值点进行周期计算,使得统计周期与窗口d长度无关;2-幅度差别较低的两个点获得高分,幅度差别较大的两个点获得低分,用于区别倍频点干扰;

    考虑特殊情况#2,尺度2d包含3个主周期峰点,那会如何?

     如上图所示,如果3个主周期峰点中最大的两个在最左最右,那么这种情况会对比主周期更大的2倍周期构成贡献;

      如果最大的两个点落在相近的两个主周期极大值上,那么此刻2d窗口下又会继续对主周期计数构成贡献;

       分析下来我们可知,如果情况好的时候0.5f周期是会产生计数的,但如果不好的时候,又会贡献回主周期长度中,通过序列分析我们简单思考一下可知,在连续取3个点的情况下,不可能每一次都是左右两边两个点最大:

        通过陈述,这个算法识别主周期的思路是这样的:

1.对于倍频点,采用幅度打分的方法对其进行衰减,那么倍频区的计数量虽然比主周期区多,但是其得分较低;

2.对于半频点,采用非线性核的方法,里面的某些尺度会回归到主周期结算,虽然其得分可能较高,但其统计数量会远远低于主周期区;

 

实验观察算法结果

这是一片带有倍频干扰的呼吸信号,我们可以看到其主周期大概在period = 47个采样点左右

下图是其尺度的幅度得分图,已归一化

可以看到倍频区低分较低,而半频区与主周期区得分差不多

下图为卷积中周期的计数图

可以看到,主周期的计数量较大,而半频区的计数量非常小,

通过上述两个图表可以以以下的策略提取主周期:先排除一部分较低计数量的周期,再从中挑选得分较高的周期,如上两图可得主要周期为40-50数据点长度左右;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章