本发明属于信号处理技术领域,涉及一种含噪信号的盲源分离算法。
背景技术:
盲源分离是上世纪末发展起来的一个新兴领域,是人工神经网络、统计信号处理以及信息理论相结合的产物,在很多领域已经得到了极大的应用。盲源分离就是在不知道源信号的组成成分以及传输通道的情况下,仅从观测信号中恢复或分离出各个源信号的过程,即需要找一个分离矩阵,从观测信号中提取出各个源信号。
在盲源分离出现至今这二十多年中,国内外研究者提出了各种各样的分离算法,且各有利弊。
如基于独立分量分析的盲源分离算法,它是盲源分离算法中的非常经典有效的方法,它需要假设前提条件,即源信号满足非高斯分布且相互独立。其次该算法还存在一些弊端,一是无法让分离后的信号与混合前的信号一一对应;二是无法恢复混合前信号的真实幅度。这些缺点对于最终分离的目的来说是在可接受范围内的,但是在某些实际应用中,对分离后的信号要求是苛刻的,所以这些缺陷也是不可忽略的。
还有一些近年来新兴的算法,如稀疏成分分析,它可以在独立分量分析方法失效的情况下,即源信号不满足高斯分布或者相互独立的情况下,对观测信号进行分离。再如非负矩阵分解算法,它同样没有信源相互独立且符合非高斯分布的限制,只是增加了分解矩阵中元素非负的约束。上述这些方法大都是以某种准则建立代价函数,然后对其进行迭代优化而得到分离矩阵,但都要求信号具有足够的稀疏度。
stonejv提出了基于时域预测的盲源分离算法,该算法用两个误差的比值构建目标函数,即信号的长预测分量作分子,信号的短预测分量作分母,然后对目标函数进行优化,即广义特征值求解。因为这类算法具有较低的计算复杂度,之后cheungym等人在此基础上又提出了全局最优化的盲源分离算法,在此基础上张小兵等人又提出了基于最大信噪比的盲源分离算法。但是该算法存在一定的缺陷:一是信噪比越大分离效果越好,在较低信噪比下,分离效果变差;二是对源信号的估计问题,用估计信号的滑动平均来代替源信号在一定程度上会导致误差或算法在某种条件下失效。
技术实现要素:
针对现有技术的不足,本发明从降噪的角度出发,采用双重滤波的思想,公开了一种含噪信号的盲源分离算法。
为实现上述目的,本发明采用了下列的设计结构以及设计方案:一种含噪信号的盲源分离算法,包括如下具体步骤:步骤1,输入原始观测信号,对该原始观测信号进行预处理,包括去均值和白化;步骤2:采用小波包对步骤1预处理后的原始观测信号进行滤波,包括对该预处理后的原始观测信号进行分解,然后选择阈值并使用小波包对分解后的原始观测信号进行重构得到滤波后的观测信号;步骤3:使用最大信噪比准则建立代价函数,其中估计信号的滑动平均用步骤2中所述滤波后的观测信号代替;步骤4:对代价函数进行广义特征值分解得到分离矩阵,然后与原始观测信号矩阵相乘得到各个源信号;步骤5:对步骤4所述的各个源信号进行半滑滤波,最终得到降噪后的源信号。
进一步地,所述步骤1中去均值是从原始观测信号中减去该原始观测信号的均值向量,使得原始观测信号成为零均值变量,方法为假设原始观测信号中某观测向量x是均值不为零的随机向量,则x0=x-e(x),e(x)表示x的均值。
进一步地,所述步骤1中白化的方法是假设原始观测信号x0的相关矩阵为rx,则rx的特征值分解为rx=qσ2qt,式中σ2为对角矩阵,其对角元素为
进一步地,所述步骤2中对预处理后的原始观测信号进行滤波,包括如下步骤:
(1)利用小波包对原始观测信号进行分解,选择一个小波并确定分解的层次,然后进行分解计算,计算方法为:
(2)选取小波包分解系数的阈值,阈值函数如下:
或者
其中,式(1)为硬阈值函数,式(2)为软阈值函数;式中
(3)对观测信号进行小波包重构,得到滤波后的观测信号,方法为以最后面的小波包分解系数和经过处理的系数为准,进行小波包重构,即
进一步地,使用所述滤波后的观测信号减去所述原始观测信号得到噪声误差,使用最大信噪比准则建立代价函数。
进一步地,在利用小波包对原始观测信号进行分解时,采用db3小波对该原始观测信号进行3层分解。
本发明的设计原理为:本发明采用双重降噪的方式,首先对原始观测信号进行预处理,包括去均值和白化,便于对信号进行计算分析,其次,用小波滤波后的观测信号来代替估计信号的滑动平均,利用最佳分离效果时信噪比最大这一准则建立代价函数;然后,对代价函数进行广义特征值分解,得到分离矩阵,然后与原始观测信号矩阵相乘得到各个源信号;最后,再对各个源信号进行平滑滤波得到更低信噪比下的最终的分离信号。
本发明与现有技术相比产生如下有益效果。本发明方法对于较低信噪比的信号具有较好的去噪效果,并且具有计算简单,运行速度快的特点,在语音信号处理方面具有较大的使用价值。
附图说明
图1是本发明的含噪信号的盲源分离算法的流程图。
图2是本发明实施例1所采用的两路源信号。
图3是本发明中对图2中两路源信号进行混合所得到的原始观测信号。
图4是本发明中对图3中原始观测信号加噪后所得到的观测信号。
图5是对图4中观测信号进行盲源分离后所得到的分离信号。
图6是利用本发明方法经过二次降噪平滑滤波后所得到的最终源信号。
具体实施方式
下面结合附图和实施例对本发明做进一步说明。
如图1所示,本发明的含噪信号的盲源分离算法的流程图,本实施例选取了如图2所示的两路频率为22050hz、时长1.3s的音频信号作为源信号s,记为s=[s1(t),s2(t)]t,并该两路源信号采用混合矩阵为
然后,对对该原始观测信号x(t)使用本发明的一种含噪信号的盲源分离算法进行去噪处理。
首先,对所述原始观测信号x(t)进行预处理。设原始观测信号为x(t)=[x1(t),x2(t)]t,对x(t)去均值处理时,其实施过程如下:
进一步地,依据信噪比准则建立信噪比函数。把图2源信号s与其估计信号y的误差e=s-y作为噪声信号,建立的信噪比函数为
由于源信号s是未知的,而估计信号y又是带噪声的,因此用小波包对估计信号y去噪后得到的y来代替源信号s,此时上式变为
为了得到y,其实施过程如下:利用小波包进行滤波降噪,包括如下步骤:(1)利用小波包对原始观测信号进行分解,选择一个小波并确定分解的层次,然后进行分解计算,计算方法为:
(2)选取小波包分解系数的阈值,阈值函数如下:
或者
其中,式(1)为硬阈值函数,式(2)为软阈值函数;式中
(3)对观测信号进行小波包重构,得到滤波后的观测信号,方法为以最后面的小波包分解系数和经过处理的系数为准,进行小波包重构,即
进一步地,把
式中;
进一步地,得到分离矩阵w后,计算y=wx可以分别得到两个源信号分量,结果如图5所示。
最后,再对两个信号分别进行自适应滤波,就可以得到双重降噪后的源信号,结果如图6所示。
从图6和图2看来两个信号是不一样,是因为本发明的盲源分离算法恢复的只是信号的独立性,对于源信号的幅值和顺序是不能恢复的,在盲源分离算法中分离结果幅值和顺序的不一样是可以接受的。图6相对于图5来说降低了噪声,相对于图3来说很好的将源信号分离了出来。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,仍然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。