信息处理课群综合训练与设计语音信号盲分离.doc
目 录目 录I摘 要IIABSTRACT1 前 言11.1 盲语音信号分离技术的背景及意义11.2语音噪声特性分析11.2.1 语音的特性11.2.2语音信号的基本特征22 盲信号处理32. 1 盲信号处理的基本概念32.2 盲信号处理的方法和分类32.3 盲信号处理技术的研究应用43 盲源分离法63.1 盲源分离技术63.2 盲分离算法实现63.3 盲源分离技术的研究发展和应用73.4 独立成分分析83.4.1 独立成分分析的定义103.4.2 ICA的基本原理113.4.3 本文对ICA的研究目的及实现124 盲语音信号分离的实现及抑噪分析134.1 盲语音信号分离的实现134.1.1 盲信号分离的三种算法144.1.2 不同算法的分离性能比较144.2 Fastica的算法仿真及结果分析184.2.1 Fastica算法仿真实现184.2.2分离结果分析234.2.2 FastICA算法的分离性能分析275 结 论296 感想与总结307 参考文献31附 录32摘 要语音信号盲分离处理的含义是指利用盲源分离(Blind Source Separation,BSS)技术对麦克风检测到的一段语音信号进行处理。混合语音信号的分离是盲分离的重要内容,目前的混叠语音分离大多是建立在无噪环境中的混叠情形下,主要以盲源分离(Blind Source Separation,BSS),根据信号的统计特性从几个观测信号中恢复出未知的独立源成分。本文重点研究了以语音信号为背景的盲处理方法,在语音和听觉信号处理领域中,如何从混有噪声的的混叠语音信号中分离出各个语音源信号,来模仿人类的语音分离能力,成为一个重要的研究问题。具体实现主要结合ICA技术,将语音去噪作为一个预处理过程,对带噪声的混叠语音盲分离进行了研究,本文详细了介绍FastICA算法将该算法应用于实际的语音信号分离中,文章最后还介绍了分离效果评价准则,并比较了相关系数。关键词: 语音信号,盲源分离,独立成分分析ABSTRACTBlind separation of speech signal processings meaning is using BSS techniques to separate the mixed voice signals recorded in microphone. Separation of mixed speech signals is important for blind separation. The current separation of overlapping speech is built mostly in the absence of aliasing noise in the environment, under the circumstances, mainly in blind source separation (Blind Source Separation, BSS), the statistical characteristics of signal several observations from the unknown signal to recover the independent source components; This article focuses on how to separate the mixed speech signal using FastICA algorithm. We first get two clean speech signals then using a mixed matrix to mix the speech signals to get the mixed signals. And then we use FastICA algorithm to separate the mixed speech signal. Finally, we use the correlation coefficient and the relative error to evaluate the separation effects. The simulation results demonstrate that the separation effects are satisfied. Key Words: Voice signal, voice signal noise, blind source separation, independent component analy1 前 言1.1 盲语音信号分离技术的背景及意义近些年来,混合语音信号分离成为信号处理领域的一个研究热点。在信号处理中我们经常遇到这样的问题,如何从一组未知的随机信号经过一组混合系统得到的观测信号种恢复出这些原始信号,如果重构过程中没有混合系统和原始信号的先验知识,我们就称该过程为盲分离。其理论也不断运用到图像、通讯、医学等领域在语音方面的应用包括有多个人说话构成的声音环境下,从多个话筒接收到的声音信号就是所谓的鸡尾酒会问题,它是指人们在嘈杂环境中或者是在许多人同时说话的情况下有辨识自己感兴趣的声音的能力引起研究者的兴趣。而我们所研究的混合语音信号分离急速虽然不能失信是计算机具有和人类一样的听觉,但 是通过该技术却能使原本相互混叠的语音信号相互剥离,来作为语音识别的预处理,从而使得噪声环境下结合多说话人情形下的语音识别的实现成为可能。1.2语音噪声特性分析1.2.1 语音的特性(1)短时平稳性根据对语音信号的研究,语音是一种时变的、非平稳的随机过程,但另一方面,由于人类发声系统的生理结构的变化速度是有一定限度的,在一段短时间内(1030ms)人的声带和声道形状基本稳定,并且大部分情况下,激励源参数也是如此,因此可认为短时间内语音特征是不变的,语音的短时性特点是对语音信号进行分析和处理的基础。(2)浊音和清音语音分为浊音和清音两大类,二者从语音产生的机理上有明显的差异,前者由周期性脉冲产生,后者由随机噪声产生,因而在特征上也有明显的区别。浊音在时域上呈现出明显的周期性,在频域上具有共振峰结构而且能量大部分集中在较低频段内。清音则完全不同,它没有明显的时域和频域特征,类似于白噪声。浊音在频谱上有共振峰结构,能量重要集中在低频区(<1000Hz),清音没有共振峰结构,能量小且主要集中在高频段(>1000Hz)。1.2.2语音信号的基本特征(1)语音信号的时域特征由于说话人在不同时刻的说话内容千变万化,而且没有确定的规律性,因此语音信号是时变的。但由于人类的发声器官的变化速率有限,声道在短时间内(5500ms)处于平稳状态,因此语音信号具有短时平稳性。而这种短时平稳性,也是语音处理中许多理论和算法的必要前提。由于人们在说话时,各个音节或单词之间总会存在着时间上的间隔,因此语音信号在时域上存在着有音段和无音段。通过有音段和无音段的检测,可用去除带噪语音中平稳的噪声。此外,无音段所占比例越大,语音的稀疏性越好,利用这一特点,产生了许多基于语音稀疏性的增强算法。(2)语音信号的频域特征语音信号的频谱能量主要集中在300-3400Hz范围内。语音本身由浊音和清音组成,浊音含有语音信号的大部分能量,其频谱分布主要集中在低频段中的基音频率及其各次谐波上,呈现出明显的周期性;清音则表现出随机性,在频谱上类似于白噪声。(3)语音信号的统计特征语音信号可以看作是一个遍历性随机过程的样本函数,其统计特性可用其幅度的概率密度函数来描述。对语音信号的统计特性的研究表明,其幅度分布的概率密度函数可以用两种近似的表达式来较好地描述,其中一种是伽马(Gamma)分布 (1-1)式中k是一个常数,与标准差仃,有下列关系 (1-2) 另一种是拉普拉斯分布(Laplacian)分布 (1-3)式中,口是一个由标准差仃。决定的常数,即 (1-4)相对说来,伽马分布对语音信号的幅度分布描述更为精确一点,而拉普拉斯分布的函数形式则更加简洁。2 盲信号处理2.1 盲信号处理的基本概念盲信号处理是现代数学信号处理、算智能学近年来迅速发展的重要方向。电子信息、通信、生物医学、图像增强、雷达、地球物理信号处理等众多领域有广泛的应用前景。盲信号处理就是利用系统(如无线信道、通信系统等)的输出观测数据,通过某种信号处理的手段, 获得我们感兴趣的有关信息(如原来独立发射的信号等)。盲信号的研究是当前学术界的一个研究热点,而盲信号分离则是盲信号研究中的一个重要的课题。BSS是指从观测到的混合信号中分离出未知的源信号。盲信号中的“盲”意味着两个方面:第一,对源信号一无所知或只有少许的先验知识。第二,混合本身是未知的。这看似是一个不可能的任务,然而理论和实际都证实了只需要相当简单的假设,就可以得到该问题的解。这一特点使得BSS成为一种功能相当强大的信息处理方法。混合矩阵分离矩阵噪声向量S(t)X(t)Y(t)图2.1.1 盲处理原理框图2.2 盲信号处理的方法和分类在盲信号处理中,就源信号进过传输通道的混合方式而言,其处理方法可分为线性瞬时混合信号盲处理、线性卷积混合信号盲处理和非线性混合信号盲处理三类。根据通道传输特性中是否含有噪声、噪声特性(白噪声、有色噪声等)、噪声混合形式,可分为有噪声、无噪声盲处理,含加性噪声和乘性噪声混合信号盲处理等。按源信号和观测信号数目的不同可以将混合方式分为欠定 、适定和超定情况 ;按源信号特性的不同分为 : 平稳 、非平稳 、超高斯 、亚高斯 、超高斯和亚高斯混合分离等 。盲处理的目的可分为盲辨识和盲源分离两大类。盲辨识的目的是求得传输通道混合矩阵(新型混合矩阵、卷积混合矩阵、非线性混合矩阵等)。盲源分离的目的是求得源信号的最佳估计。当盲源分离的各分量相互独立时,就称为独立分量分析,即独立分量分析是盲源分离的一种特殊情况。2.3 盲信号处理技术的研究应用近年来,盲信号处理逐渐成为当今信息处理领域中热门的课题之一,并且已经在尤其在生物医学工程、医学图像、语音增强、遥感、通信系统、地震探测、地球物理学、计量经济学和数据挖掘等领域显示出诱人的前景,特别是盲源分离技术、ICA的不断发展和应用最为引人注目。1.语音识别领域语音信号分离、语音识别是盲处理应用的一个重要领域。最典型的应用就是声控计算机,计算机所接受到的语音指令肯定是肯定是带有各种环境噪声的,还可能存在其他的语音信号(如有其他人说话),而且这些信号源与接收器的相对位置也未知,计算机需要在这种情况下识别出正确的语音命令。在移动通信中,往往存在通信质量问题,极大的影响了通话效果,而盲源分离或盲均衡技术能够消除噪声、抑制干扰及增强语音,提高通话质量。2.生物医学信号处理在生物医学领域,盲信号处理可应用于心电图(ECG)、脑电图(EEG)信号分离、听觉信号分析、功能磁共振图像(FMRI)分析等。目前已经有一些学者将盲源分离技术成功地够应用于脑电图等信号的数据处理。3 盲源分离法3.1 盲源分离技术盲源信号分离(Blind Source Separation, BSS) 是20世纪90年代迅速发展起来的一个研究领域 。它具有可靠的理论基础和许多方面的应用潜力。其在生物医学工程 、医学图像 、语音增强 、遥感 、通信系统 、地震探测等领域有着广泛而诱人的前景 ,盲源分离成为信号处理和神经网络领域的研究热点 。 盲源分离是针对从检测的混合信号中估计或恢复源信号的问题提出的,是指源信号、传输通道特性未知的情况下,仅由观测信号和源信号的一些先验知识(如概率密度)估计出源信号各个分量的过程。例如最著名的鸡尾酒会问题,仅根据多个麦克风检测信号分离或恢复出某种语音源信号。3.2 盲分离算法实现在实际的ICA盲分离算法应用中,一般有时是必需的对观测数据做一些预处理技术,如用主成分分析 ( PCA )降维和白化,用滤波器进行滤波降噪处理等。另外,由于恢复准则的局限以及先验知识的缺乏,盲信号分离方法只能得到源信号的波形,而无法确定信号的幅值以及信号之间的顺序。这两点都需要人为的制定规则(如规定信号的方差为1来确定幅值)来确定。 3.2.1 盲信号分离基本原理框图3.3 盲源分离技术的研究发展和应用1986 年,法国学者Jeanny Herault和Christian Jutten提出了递归神经网络模型和基于Hebb学习律的学习算法,以实现2个独立源信号混合的分离。这一开创性的论文在信号处理领域中揭开了新的一章,即盲源分离问题的研究。其后二十几年来,对于盲信号分离问题,学者们提出了很多的算法,每种算法都 在一定程度上取得了成功。从算法的角度而言,BSS算法可分为批处理算法和自适应算法;从代数函数和准则而言,又分为基于神经网络的方法、基于高阶统计量的方法、基于互信息量的方法、基于非线性函数的方法等。尽管国内对盲信号分离问题的研究相对较晚,但在理论和应用方面也取得很大的进展。清华大学的张贤达教授在其 1996 年出版的时间序列分析高阶统计量方法一书中,介绍了有关盲分离的理论基础,其后关于盲分离的研究才逐渐多起来。近年来国内各类基金支持了盲信号处理理论和应用的项目,也成立了一些研究小组。虽然盲源分离理论方法在最近20年已经取得了长足的发展,但是还有许多问题有待进一步研究和解决。首先是理论体系有待完善。实际采用的处理算法或多或少都带有一些经验知识,对于算法的稳定性和收敛性的证明不够充分。盲源分 离尚有大量的理论和实际问题有待解决,例如多维ICA问题、带噪声信号的有效分离方法、如何更有效地利用各种先验知识成功分离或提取出源信号、一般性 的非线性混合信号的盲分离、如何与神经网络有效地结合、源信号的数目大于观察信号的数目时ICA方法等。另外,盲源分离可同其他学科有机结合,如模糊系 统理论在盲分离技术中的应用可能是一个有前途的研究方向;盲源分离技术与遗传算法相结合,可以减少计算复杂度,提高收敛速度。如何有效提高算法对源信号统计特性的学习和利用也需要进行深入研究。在硬件实现方面,盲分离问题也存在着极大的发展空间,例如用FPGA实现等。经过人们将近20年的共同努力,有关盲分离的理论和算法得到了较快发展,包括 盲分离问题本身的可解性,以及求解原理等方面的基本理论问题在一定程度上得到了解决,并提出了一些在分离能力、内存需求、计算速度等方面性能各异的 算 法。由于该问题的理论研究深度和算法实现难度都较大,目前对于盲分离的研究 仍然很不成熟,难以满足许多实际应用需求,许多理论问题和算法实现的相应技术也有待进一步探索。3.4 独立成分分析独立分量分析 ( Independent Component Analy2sis , ICA)是由Herault和J utten在1983年提出,该方法不依赖与源信号类型相关的详细知识或信号传输系统特性的精确辨识,是一种有效的冗余取消技术,被广泛应用于盲源分离 ( blind source separation BSS)、特征提取和盲解卷、生理学数据分析语音信号处理、图像处理及人脸识别等领域。该方法根据代价函数的不同 ,可以得到不同的ICA算法,如信息最大化(infomax)算法、Fast ICA算法、最大熵( M E)和最小互信息( MM I)算法、极大似然(ML)算法等。在统计学中,独立成分分析或独立分量分析(Independent components analysis,缩写:ICA)是一种利用统计原理进行计算的方法。它是一个线性变换。这个变换把数据或信号分离成统计独立的非高斯的信号源的线性组合。独立成分分析是盲信号分离(Blind source separation)的一种特例。3.4.1 独立成分分析的定义ICA是一种用来从多变量(多维)统计数据里找到隐含的因素或成分的方法,被认为是主成分分析(Principal Component Analysis, PCA)和因子分析(Factor Analysis)的一种扩展。对于盲源分离问题,ICA是指在只知道混合信号,而不知道源信号、噪声以及混合机制的情况下,分离或近似地分离出源信号的一种分析过程。独立成分分析(Independent Component Analysis, ICA)是近年来出现的一种强有力的数据分析工具(Hyvarinen A, Karhunen J, Oja E, 2001; Roberts S J, Everson R, 2001)。1994年由Comon给出了ICA的一个较为严格的数学定义,其思想最早是由Heranlt和Jutten于1986年提出来的。ICA从出现到现在虽然时间不长,然而无论从理论上还是应用上,它正受到越来越多的关注,成为国内外研究的一个热点。特别是从应用角度看,它的应用领域与应用前景都是非常广阔的,目前主要应用于盲源分离、图像处理、语言识别、通信、生物医学信号处理、脑功能成像研究、故障诊断、特征提取、金融时间序列分析和数据挖掘等。盲源分离技术是近二十年发展起来的一门新型科学,在各国科学家和研究人员的努力下获得了充分的发展,但是ICA的研究方兴未艾,它毕竟是一个涉及面广并且仍处于发展前沿的课题,在理论上还远没有成熟,许多问题有待进一步研究和解决。(1)带噪混合信号的盲分离问题。盲信号处理中的未知条件太多,混合信号含有噪声的情况下的盲源分离问题解决起来是相当困难的。尽管目前已有部分算法对存在噪声的情况表现出了良好的性能,但由于噪声种类繁多,因此处理起来仍很棘手。现有的大多数盲源分离或盲解卷积算法都假设不含噪声或者把噪声看作是一个独立的信源信号来处理。(2)非平稳混合信号的盲源分离算法。许多情况下源信号可能是非平稳的,如何利用信号的非平稳特性进行盲源分离是摆在广大研究人员面前的一个现实问题。(3)卷积混合信号的盲源分离算法。在实际中,系统接收到的混合输入信号是源信号经过不同的传播途径到达接收器。在这个过程中,不可避免的存在信号的时延和反射。针对这种情况的盲源分离算法还很不成熟。(4)ICA的推广应用。在算法应用方面,ICA可以取得进一步的发展,如可以在语音识别、图像处理、特征提取、医学信号处理方面作进一步的研究。目前的关键的问题是如何将理论算法转化为实际应用,以及如何建立更加符合实际情况的模型等。(5)算法的收敛性。算法全局收敛性的研究,可以考虑将遗传算法、混沌算法等具有全局收敛性的优化算法和ICA结合起来,提高算法的全局收敛性。3.4.2 ICA的基本原理(1)无噪声的ICA模型ICA作为生成模型的估计给定随即变量的一组观测,其中是时间或者样本标号,假设它们有独立成分线性混合而产生:=A (3-1)式中,是某个未知矩阵。用向量-矩阵符号方式表示通常比上面的求和表达式更为方便。用随机向量x来表示混合向量,其元素分别为,同样地,用来表示元素,用矩阵表示那些混合系数。所有的向量都理解为列向量;这样或者称的转置就是一个行向量。利用向量和矩阵符号表示,混合模型可以写为: (3-2)有时我们需要使用矩阵A中的列向量,如果将其表示为,则模型也可以写为: (3-3)(2)有噪声的ICA模型将基本的ICA模型扩展到有噪声的情形,并且假设噪声是以加性噪声形式存在的。这是一个相当现实的假设,因为加性噪声是因子分析和信号处理中通常研究的标准形式,具有简单的噪声模型表达方式。因此,噪声ICA模型可表示为: (3-4)式中,是噪声向量。信号源噪声,即直接添加到独立成分(即信号源)上的噪声。信号源噪声可用与式(2.1)稍有差别的下式来表示: (3-5)实际上,如果可以直接考虑带噪声的独立成分,那么可将此模型写为: (3-6)可以看出,这就是基本的ICA模型,只是独立成分本身变了。3.4.3 本文对ICA的研究目的及实现独立分量分析的含义是把信号分解成若干个互相独立的成分,它是为了解决盲信号分离的问题而发展起来的。如果信号本来就是由若干独立信源混合而成的,ICA就能恰好把这些信源分解开来。故在一般的文献中通常把ICA等同于BSS,ICA不同于主分量分析把目光投注于信号的二阶统计量,研究信号间的相关关系,而是基于信号的高阶统计量,研究信号间的独立关系。作为一个形象的图示,我们可以借鉴下面的波形,原始的语言信号是类似图(3.4.1)中的信号,而混合信号是如图(3.4.3)样子的数据。需要解决的问题是,如何仅使用图(3.4.3)中的数据还原的到图(3.4.1)的“源”信号。图3.4.1 源信号S图3.4.2 混合矩阵A图3.4.3 混合信号X独立成分分析方法能够基于信息的的独立性来估计,这样我们就能从混合信号中分离出三个原始信号。4 盲语音信号分离的实现及抑噪分析4.1 盲语音信号分离的实现4.1.1 盲信号分离的三种算法(1)二阶盲辨识(SOBI)SOBI先对观测信号作白化处理,得到。定义和的时延相关矩阵为 (4-1) (4-2)由易知: (4-3) 又因为,所以 (4-4) (4-5)由各分量相互独立可知,是对角矩阵。由此可见,矩阵可以将对角化。在SOBI算法中,取一组不同的值,要求能同时使得各个尽可能的对角化,其中。(2)CICA(Constrained independent component analysis,ClCA)算法约束独立分量分析(Constrained independent component analysis,CICA)算法是一种改良的FastlCA算法。在ClCA提取过程中,通过引入简单的约束参考信号来帮助分离某特定目标分量,从而有利于去除干扰信号。ClCA算法的基本原理与FastlCA相同,每次提取一个独立分量。文中所选用的CICA算法,实际上是一种加入了约束参数的FastICA算法,从而使ICA算法不用再进行特征提取与目标判定,就可以容易的分离出所需要的目标分量。虽然CICA算法对信号分离具有良好的效果,但在实际应用过程中,CICA还需要进一步的探讨研究。如阈值与学习率的选择不当,就会很容易引起输出结果发散。同时收敛速度与误差函数的选择也有关系,误差函数的形式要根据输入数据和参考信号来进行选择。(3)FastICA算法 FastICA算法,又称固定点(Fixed-Point)算法,是由芬兰赫尔辛基大学Hyvärinen等人提出来的。是一种快速寻优迭代算法,与普通的神经网络算法不同的是这种算法采用了批处理的方式,即在每一步迭代中有大量的样本数据参与运算。但是从分布式并行处理的观点看该算法仍可称之为是一种神经网络算法。FastICA算法有基于峭度、基于似然最大、基于负熵最大等形式,这里,我们介绍基于负熵最大的FastICA算法。它以负熵最大作为一个搜寻方向,可以实现顺序地提取独立源,充分体现了投影追踪(Projection Pursuit)这种传统线性变换的思想。此外,该算法采用了定点迭代的优化算法,使得收敛更加快速、稳健。因为FastICA算法以负熵最大作为一个搜寻方向,因此先讨论一下负熵判决准则。由信息论理论可知:在所有等方差的随机变量中,高斯变量的熵最大,因而我们可以利用熵来度量非高斯性,常用熵的修正形式,即负熵。根据中心极限定理,若一随机变量由许多相互独立的随机变量之和组成,只要具有有限的均值和方差,则不论其为何种分布,随机变量较更接近高斯分布。换言之,较的非高斯性更强。因此,在分离过程中,可通过对分离结果的非高斯性度量来表示分离结果间的相互独立性,当非高斯性度量达到最大时,则表明已完成对各独立分量的分离。负熵的定义: (4-6)式中,是一与具有相同方差的高斯随机变量,为随机变量的微分熵 (4-7)根据信息理论,在具有相同方差的随机变量中,高斯分布的随机变量具有最大的微分熵。当具有高斯分布时,;的非高斯性越强,其微分熵越小,值越大,所以可以作为随机变量非高斯性的测度。FastICA算法的优点:1.收敛速度快,FastICA收敛速度为2次以上,普通的ICA算法收敛仅为1次(线性)的。2.和梯度算法不同,无须选步长参数,易于使用。3.能利用任何的非线性函数直接找出任何非高斯分布的独立分量,而对于其他的算法来说,概率密度函数的估计不得不首先进行。4.它的性能能够通过选择适当的非线性函数来最佳化。5.独立分量可被逐个估计出来,类似于做投影追踪,这在仅需要估计几个(不是全部)独立分量的情况下,能减小计算量。6.FastICA算法有许多神经算法的优点,它是并行、分布式的且计算简单,内存要求很少。然而FastICA算法也尤其自身的缺点,首先是它对初值的选择较自然梯度算法敏感,当初值的选择不是很合适的时候,算法的分离性能急剧的下降,其次算法的迭代步长有待进行自适应的优化。简单地说快速ICA算法通过三步完成:首先,对观测信号去均值;然后,对去均值后的观测信号白化处理;前两步可以看成是对观测信号的预处理,通过去均值和白化可以简化ICA算法。最后,独立分量提取算法及实现流程见流程图。 FastICA算法的方法输出向量,在排列顺序的时候可能出现颠倒和输出信号幅度发生变化。这主要是由于ICA的算法存在2个内在的不确定性导致的: (1)输出向量排列顺序的不确定性,即无法确定所提取的信号对应原始信号源的哪一个分量; (2)输出信号幅度的不确定性,即无法恢复到信号源的真实幅度。 但由于主要信息都包含在输出信号中,这2种不确定性并不影响其应用图4.1.1 Fastica算法流程图算法原理:独立分量分析(ICA)的过程如下图所示:在信源中各分量相互独立的假设下,由观察通过结婚系统把他们分离开来,使输出逼近。图4.1.2输出的一般过程ICA算法的研究可分为基于信息论准则的迭代估计方法和基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性。基于信息论的方法研究中,各国学者从最大熵、最小互信息、最大似然和负熵最大化等角度提出了一系列估计算法。如FastICA算法, Infomax算法,最大似然估计算法等。基于统计学的方法主要有二阶累积量、四阶累积量等高阶累积量方法。本次设计主要讨论FastICA算法。4.1.2 不同算法的分离性能比较SOBI算法利用了源信号的频谱差异性来分离源信号,当源信号中存在频谱结构相似的分量时,分离性能便会较差,这是SOBI算法的缺点。FastICA算法的特点:1在1CA模型中,FastICA算的收敛速度是二次以上的,而梯度搜索法只是一次收敛。2与梯度搜索法相比,FastlCA的步长参数容易确定。3该算法适用于任何非高斯信号。4可以通过选择不同的非线性函数G(Y)使算法的获得不同的性能。基F独立分量分析的混合语音信号自分离系统的研究5可以逐个的估计独立分量。6该算法是并行的、分布的,且计算简单,需要的内存较少。FastlCA算法和其他的ICA算法相比,有着许多我们期望的特性:收敛速度快;和梯度算法不同,无需选择步长参数,易于使用;该算法能适用于任何非高斯信号;可以通过使用不同的非线性函数G-(y)使算法获得不同的性能;独立分量可被逐个估计出来,这在仅需要估计几个独立分量的情况下,能减小计算量,FastICA算法有许多神经算法的优点:并行、分布、计算简单,内存要求小,本文主要采用FastICA完成忙语音信号的分离。4.2 Fastica的算法仿真及结果分析4.2.1 Fastica算法仿真实现1 时域分析下面仿真中所使用的语音源信号是在干扰噪声很小的环境下用麦克风录制的2段不同的语音文件,保存成*.wav文件a.wav,b.wav2个音乐采样,图4.2.1和图4.2.2是这2个语音源信号的时域波形幅度水平。原始的语音信号时域图如下: 图4.2.1 原始语音信号x1图4.2.2 原始语音信号x2 混合后的语音信号 图4.2.3 混合信号x1 图4.2.4 混合信号x2该仿真的混合矩阵是一个3x3的方阵FastICA算法将观察信号x1,x2分离,得到分离后信号y1,y2分别对应源得到的分离信号Y: 图4.2.5 分离信号Y1 图4.2.6 分离信号Y2从试验结果,我们可以看出分离语音信号从波形上看很好地保持了原始信号的波形,而且实际分离的语音信号在听觉上也很好的实现了分离,而且几乎没有什么失真效果。 图4.2.7原信号x1与分离信号y1波形对比 图4.2.8 原信号X2与分离信号y2波形对比2 频谱分析原始的语音信号时域频谱图如下:图4.2.9 原始语音信号x1图4.2.10 原始语音信号x2混合后信号时域频谱图图4.2.11 混合信号Y1的时域频谱图4.2.12 混合信号Y2的时域频谱利用Fastica分离后的信号时域频谱图图4.2.13 分离后语音信号y1图4.2.15分离后语音信号y2图4.2.17 原信号x1和分离信号y1频谱对比图4.2.18 原信号x1和分离信号y1频谱对比4.2.2分离结果分析我们使用FastICA算法对n2.wav ,n3.wav 作为源信号的混叠进行盲分离试验,从中分离出的两个源信号的近似值Y1,Y2。我们对本文给出的混合语音信号进行分离观察分离后的波形图。通过两次分离试验,通过分离前后时域频谱图的对比分析我们可以看出fastica算法可以很好的实现盲语音信号的分离。图4.2.7 FastICA算法在ICA工具箱的实现4.2.2 FastICA算法的分离性能分析通过FastICA算法得到的分离信号后的波形图4.2.8图4.2.9与原始信号的波形图4.2.1图4.2.2可以看出该算法较好地恢复了原始信号的波形。为了定量地分析该算法的优劣性下面将对分离前后的相关系数及相对误差进行比较。相关系数相对误差X1-y1-0.9780417902571570.31547909862450X2-y2-0.977457011744550.02656320903609相关系数性质(1)相关系数可正可负; (2)相关系数的区间是-1,1,即xy1; (3)具有对称性;即X与Y之间的相关系数(rXY)和Y与X之间的相关系数(rYX); (4)相关系数与原点和尺度无关; (5)如果X与Y统计上独立,则它们之间的相关系数为零;但是r=0不等于说两个变量是独立的。即零相关并不一定意味着独立性; (6)相关系数是线性关联或线性相依的一个度量,它不能用于描述非线性关系; (7)虽然相关系数是两个变量之间的线性关联的一个度量,却不一定有因果关系的含义;一般来说,相关系数越接近于1,说明得到的分离结果越好,否则相反。由得到的相关系数都为1可知,经过独立成分分析的AastICA算法分离的效果相当好。5 结 论 盲源分离算法是盲源分离问题的核心,本文比较了几种算法的特点并选用FASTICA算法进行了验证,主要工作如下:1研究独立成分分析的原理及其基本模型。传统的选取盲源分离算法只适用于单纯超高斯信号(或者亚高斯信号)混合系统的分离,不适用于杂系混合(超高斯和亚高斯信号)系统的分离。论文中的ICA主要应用于盲源分离的实现。2语音信号是一种非平稳信号,本文研究了快速定点(FastICA)算法,利用这种算法有效地解决了噪声在语音信号中的分离问题。对算法进行了计算机仿真,并通过时域和频谱对仿真结果进行了比较。盲源分离技术正在不断的发展,新的问题和算法层出不穷。虽然已经有很多成熟的盲源分离算法,但是,作者认为还是有很多问题待于进一步的研究和解决:(1)带噪声混合信号的盲分离问题。由于在盲信号处理中,存在太多的未知条件,带噪声的混迭信号的盲分离是十分困难的。现在研究的大部分盲源分离或者盲反卷积算法,都假设无噪声的情况或者把噪声看作一个独立的源信号,在高阶统计方法中,由于高斯信号高阶累计量为零,所以可以假设加性高斯噪声的存在,但是对于已有的盲源分离算法在什么情况下可以应用到一般的噪声混迭模型,是有待解决的问题。(2)欠完备情形的盲源分离问题。无论是盲源分离还是盲解卷积,现存的大多数算法都假设传感器的数目大于或者等于源信号的个数,这是一种超完备形。然而,传感器数目少于信号源数目的欠完备问题也是需要解决的一大难题。(3)非线性混合情形的盲源分离问题本文主要研究的是源信号的线性混合模型,而非线性混合模型才更具有一般性,对它的深入研究,也会使将来研究的一个热点问题。(4)盲源分离算法的实际应用。现有的一些算法由于速度太慢,达不到实时要求,而无法应用于实际问题中。在保证算法性能的条件下,降低算法的复杂性提高计算效率,也是一个关于BSS的很重要的研究方向。当前的语音信号盲分离算法所能解决的问题是有一定的适用范围和限制条件的,仍然处在实验室研究阶段,使这些算法从实验室真正走向应用还有很长的研究历程。6 感想与总结通过本次课程设计