资源描述
基于基于 ICAICA 的语音信号盲分离的语音信号盲分离 [ [摘摘 要要] ]语音信号盲分离处理的含义是指利用 BSS 技术对一段语音信号进行处理。混合语 音信号的分离是盲分离的重要内容,目前的混和语音分离大多是建立在无噪环境中的混 叠情形下,主要以盲源分离(Blind Source Separation,BSS),根据信号的统计特性从 几个观测信号中恢复出未知的独立源成分。 本文重点研究了以语音信号为背景的盲源分离,在语音和听觉信号处理领域中,如 何从混有噪声的的混叠语音信号中分离出各个语音源信号,来模仿人类的语音分离能力, 成为一个重要的研究问题。具体实现主要结合 ICA 技术,将语音去噪作为一个预处理过 程,对带噪声的混叠语音盲分离进行了研究,本文详细了介绍了 FastICA 算法,将这种 算法应用于实际的语音信号噪声分离中,并将分离出的语音信号与混合前的原信号进行 了分析比较,验证了通过 ICA 实现语音信号的盲分离是切实可行的。 [ [关键词关键词] ]语音信号,盲源分离,独立成分 [ [AbstractAbstract] ]Blind separation of speech signals processing means for processing refers to a section of the speech signal of microphone detected by BSS technique. Separate the mixed speech signals is an important content of blind separation, the mixed speech separation is mostly based on noise free environment in the overlapping case, mainly to the blind source separation (Blind Source Separation, BSS), according to the statistical characteristics of the signal from the observed signals recover independent source component is unknown. This paper focuses on the blind source separation using speech signal as the background, in speech and audio signal processing field, separating each voice source signal from noisy mixed speech signals, to mimic human speech separation ability, has become an important research question. Concrete realization mainly with ICA technology, the speech denoising as a pretreatment process, the overlapping speech blind separation of mixed with noise is studied, this paper presents the FastICA algorithm, the speech signal noise separation of this algorithm is applied to the practice, and the original voice signal mixed with isolated anterior are analyzed and compared, verified by ICA to realize the blind separation of speech signals is feasible. [ [KeywordsKeywords]speech signal, blind source separation, independent component analysis 目录目录 1 1 前前 言言 1 1 1.1 盲语音信号分离技术的背景及意义.1 1.2 语音的特性.2 2 2 语音信号特性及分析语音信号特性及分析 2 2 2.1 语音的基本特征 2 2.2 语音处理的理论基础 .3 2.3 语音信号的 MATLAB 应用程序4 2.3.1 输入语言的 MATLBA 时域和频谱图程序分析 .4 2.3.2 混合语音信号的 MATLBA 时域和频谱图程序分析 .8 3 3 盲信号处理盲信号处理 1010 3.1 盲信号处理的基本概念 .10 3.2 盲信号处理的方法和分类10 3.3 盲信号处理技术的研究应用10 3.4 独立成分分析分析11 3.4.1 独立成分分析的定义11 3.4.2 ICA 的基本原理 12 4 4 FASTICAFASTICA 算法算法1414 4.1 数据的预处理14 4.2 FASTICA 算法 .15 4.3 ICA 分离的步骤16 4.4 混合语音信号的波形图16 4.5 分离后的信号的波形图17 4.6 对比分析 20 5 5 小结体会小结体会 2222 6 6 参考文献参考文献2323 7 7 致谢致谢2424 8 8 附件附件2525 烟台大学文经学院毕业论文(设计) 1 1 前 言 1.1 盲语音信号分离技术的背景及意义 近年来,混合语音信号的分离成为语音信号处理领域的一个研究热点。我们经常在 信号处理中遇到这样的问题,如何将这些原始信号从一组随机信号经过一组混合系统得 到的观测信号种恢复出,如果在重构过程中没有原始信号和混合系统的先验知识,就将 该过程称为盲分离。其理论也不断运用到医学、图像、通讯等领域 在语音方面的应用包括有多个人说话构成的声音环境下,从多个话筒接收到的声音 信号就是所谓的鸡尾酒会问题,它是指人们在嘈杂环境中或者是在许多人同时说话的情 况下有辨识自己感兴趣的声音的能力引起研究者的兴趣。而我们所研究的混合语音信号 分离急速虽然不能失信是计算机具有和人类一样的听觉,但 是通过该技术却能使原本相 互混叠的语音信号相互剥离,来作为语音识别的预处理,从而使得噪声环境下结合多说 话人情形下的语音识别的实现成为可能。 1.2 语音的特性 (1)短时平稳性 通过对语音信号的研究,语音信号是一种非平稳的、时变的随机过程,另一方面, 人类声音系统的结构的变化是有一定限制的,在短时间内(10~30ms)人的声道和声带形 状基本不变,而且大部分情行下,原激励参数也是如此,由此可认为在较短的时间内语 音的特征是不变的,语音的这一短时性特点是对语音信号分析和处理的前提。 (2) 清音和浊音 语音可以分为清音和浊音两大类,他们从语音产生的基础上有明显的分别,前者由 随机性噪声产生,后者由周期性脉冲产生,因此在特点上也有本质的区别。在时域上, 浊音表现出显而易见的周期性,在频域上,浊音有共振峰构造且能量比较集中在低频段 内。清音则不同,清音没有较明显特征,和白噪声差不多。 浊音在频域上有共振峰结构,能量大量集中在低频区(1000Hz)。 烟台大学文经学院毕业论文(设计) 2 2 语音信号特性及分析 2.1 语音的基本特征 (1)语音的时域特征 由于讲话人不同时间说话内容不同,且没有规律性,因此语音的信号是时变的。但 是,人类发出声音器官的变化率有限,在较短时间内(5.500ms),声道在平稳状态,因 此语音的信号有短时平稳性。并且这种短时平稳性,是语音处理中许多算法和理论的前 提。由于人在讲话话时,不同音节、单词之间总存在着一些时间上的间隔,由此在时域 上,语音信号存在着两种音段:有音段、无音段。经过有音和无音的检测,可用于去除 语音中较平稳的噪声。而且,无音段越占较大比例,语音在稀疏性越好,基于这一特点, 产生了很多增强语音稀疏性的算法。 (2)语音的频域特征 语音的主要频谱能量集中在 300-3400Hz。语音由清音音和浊音构成,浊音信号含有 语音信号的大量能量,其频谱集中于低频段中的基因频率及其各次谐波上,表现出周期 性;清音则表现出随机性,在频谱与白噪声差不多。 (3)语音的统计特征 可以将语音信号看作是一个遍历性随机过程的样本函数,可用幅度的概率密度函数 来描述统计特性。 通过对语音信号统计特性的研究,其幅度分布的概率密度函数可以用两种近似的表 达式来较好的描述,一种是伽马(Gamma)分布 (2.1) ( ) 2 k x ke p x xx 式中 k 是一个常数,与标准差,有下列关系 3 2 x k (2.2) 另一种是拉普拉斯分布(Laplacian)分布 ( )0.5 x p xe (2.3) 式中,是一个由标准差决定的常数,即 2 x (2.4) 相对说来,伽马分布在幅度分布上对语音信号的描述更精确,而拉普拉斯分布函数 更加简洁。 烟台大学文经学院毕业论文(设计) 3 2.2 语音处理的理论基础 频谱分析时,在对时域数据进行短时 FFT 处理之前都要进行加窗处理。 在 FFT 处理 之后,普通频谱分析可以进行频域上的滤波处理,从而使频谱更加平滑。为了得到各种 音频信号的特技效果,也需要对各种变声算法进行研究。 (1)窗的选择 一般来讲,一个较好窗函数具有一定标准:在时域上,因为是语音的波形与窗函数 相乘,因此窗两端的坡度要减小,将窗口两端在不引起急剧性变化的同时过渡到零,这 样可将截出的语音信号的波形慢慢的降到零,减少语音帧的阶段效应;在频域上必须有 较宽的带宽和较小的边带最大值。另外一方面,不同人的基音周期变化很大,主要集中 在 70Hz-1000Hz。所以窗一般选择在 10ms-20ms 之间。此外,为了避免在加窗时加入多 余的高频信号,应该使用平滑窗,例如汉明窗。 (2)变声算法的讨论 语声可以分为声带振动的浊音部分、声带不振动的清音部分以及静音部分。在这里, 我们主要是改变原始话音的基音频率,以达到变声的目的。 第一种方法是不修改采样数据,仅改变 Fs 。这种方法操作非常简便。 第二种方法是直接乘以一个余弦函数,把语音信号频段搬移到较高频段,以达到变 声的目的。 第三种方法是插值以后重新抽样。基本过程是这样的:已知当前帧帧长 FL(采样) 点,采样频率 Fs ,目标变换帧频率 Fs’ ,则目标变换帧帧长 FL’=FL*Fs’/Fs 。记 Rate = Fs’/Fs ,那么 FL’=FL * Rate,其中 Rate 为基频变化率。变换开始时,先求 得 FL 和 FL’的最小公倍数 AL,再将原音频帧插值为 AL 点,最后将插值后的语音段重新 抽样,得到长 FL’点的变声后的数据。 三种方法操作起来都还比较简单,但为了便于分析时域、频域特效,本设计选择了 通信中常用的调制方法,即方案二。 2.3 语音信号的 MATLAB 应用程序 2.3.1 输入语言的 MATLBA 时域和频谱图程序分析 一般来说,matlab 只能对格式为 wav 的音乐进行处理,为此,我从酷狗音乐中下载 了三个格式为 wav 的小音乐,分别为‘开门的声音’ 、 ‘越狱的背景音乐’和儿歌‘两只 小蜜蜂’ ,将它们作为我对语音信号处理的原始信号。为了对我下载的音乐进行 matlab 处理,通过查阅资料,我编写出如下程序,分别对三个语音信号进行了分析,并得出了 他们的波形、幅值、相位和频谱图。 (1)原始信号一的处理 信号一为‘开门的声音’ ,将它经过程序处理后得出信号一的波形、幅值、相位和 烟台大学文经学院毕业论文(设计) 4 频谱图,如图 2.1 所示,下面为对信号一进行处理的源程序和得出的信号一的图形分析 结果: 信号一: fs=25600; [x,fs,bits]=wavread('m.wav',40000); sound(x,fs,bits); y1=fft(x,1024); %对信号做 1024 点 FFT 变换 f=fs*(0:2047)/4096; figure(1) magy1=abs(y1); angy1=angle(y1); subplot(2,2,1),plot(x);title('信号 1 波形') subplot(2,2,2),plot(magy1);title('信号 1 幅值') subplot(2,2,3),plot(angy1);title('信号 1 相位') subplot(2,2,4), plot(f,abs(y1(1:2048))); title('信号 1 频谱') xlabel('Hz'); ylabel('fudu'); axis([0 100 0 50]) 烟台大学文经学院毕业论文(设计) 5 01234 x 10 4 -1 -0.5 0 0.5 1 一 一 一 一 一 0200040006000 0 20 40 60 80 一 一 一 一 一 0200040006000 -4 -2 0 2 4 一 一 一 一 一 050100 0 10 20 30 40 50 一 一 一 一 一 Hz fudu 图 2.1 信号一的波形、幅值、相位和频谱图 (2)原始信号二的处理 信号二为‘越狱的背景音乐’ ,将它经过程序处理后得出信号二的波形、幅值、相 位和频谱图,如图 2.2 所示,下面为对信号二进行处理的源程序和得出的信号二的图形 分析结果: 信号二 fs=25600; [x,fs,bits]=wavread('n.wav',40000); sound(x,fs,bits); y1=fft(x,1024); %对信号做 1024 点 FFT 变换 f=fs*(0:2047)/4096; figure(1) magy1=abs(y1); angy1=angle(y1); subplot(2,2,1),plot(x);title('信号 2 波形') subplot(2,2,2),plot(magy1);title('信号 2 幅值') subplot(2,2,3),plot(angy1);title('信号 2 相位') subplot(2,2,4), plot(f,abs(y1(1:2048))); 烟台大学文经学院毕业论文(设计) 6 title('信号 2 频谱') xlabel('Hz'); ylabel('fudu'); axis([0 100 0 50]) 01234 x 10 4 -1 -0.5 0 0.5 1 一 一 一 一 一 0200040006000 0 20 40 60 一 一 一 一 一 0200040006000 -4 -2 0 2 4 一 一 一 一 一 050100 0 10 20 30 40 50 一 一 一 一 一 Hz fudu 图 2.2 信号二的波形、幅值、相位和频谱图 (3)原始信号三的处理 信号三为儿哥‘两只小蜜蜂’ ,将它经过程序处理后得出信号三的波形、幅值、相 位和频谱图,如图 2.3 所示,下面为对信号三进行处理的源程序和得出的信号三的图形 分析结果: 信号三 fs=25600; [x,fs,bits]=wavread('s.wav',40000); sound(x,fs,bits); y1=fft(x,1024); %对信号做 1024 点 FFT 变换 f=fs*(0:2047)/4096; figure(1) magy1=abs(y1); angy1=angle(y1); 烟台大学文经学院毕业论文(设计) 7 subplot(2,2,1),plot(x);title('信号 3 波形') subplot(2,2,2),plot(magy1);title('信号 3 幅值') subplot(2,2,3),plot(angy1);title('信号 3 相位') subplot(2,2,4), plot(f,abs(y1(1:2048))); title('信号 3 频谱') xlabel('Hz'); ylabel('fudu'); axis([0 100 0 50] 01234 x 10 4 -1 -0.5 0 0.5 1 一 一 一 一 一 0200040006000 0 20 40 60 80 一 一 一 一 一 0200040006000 -4 -2 0 2 4 一 一 一 一 一 050100 0 10 20 30 40 50 一 一 一 一 一 Hz fudu 图 2.3 信号三的波形、幅值、相位和频谱图 2.3.2 混合语音信号的 MATLBA 时域和频谱图程序分析 将上述的三个原始信号通过编程将其混合成一个语音信号,然后继续进行编程处理, 的出混合语音信号的波形、幅值、相位和频谱图,如图 2.4 所示。下面为将三个语音信 号混合和对混合语音信号处理的源程序,及其经过处理得到的混合语音信号的波形、幅 值、相位和频谱图: 烟台大学文经学院毕业论文(设计) 8 01234 x 10 4 -1 -0.5 0 0.5 1 一 一 一 一 一 一 0200040006000 0 100 200 300 一 一 一 一 一 一 0200040006000 -4 -2 0 2 4 一 一 一 一 一 一 050100 0 10 20 30 40 50 一 一 一 一 一 一 一 一 Hz fudu 图 2.4 混合信号的波形、幅值、相位和频谱图 混合语音信号: [x,fs,bits]=wavread('m.wav',200)'; [y,fs,bits]=wavread('s.wav',200); [z,fs,bits]=wavread('n.wav',200); S=[x;y;z]; Sweight=rand(size(S,1)); MixedS=Sweight*S; x=MixedS(1,:); fs=25600; y1=fft(x,4096); f=fs*(0:2047)/4096; figure(1) magy1=abs(y1); angy1=angle(y1); subplot(2,2,1),plot(x);title('混合信号波形') subplot(2,2,2),plot(magy1);title('混合信号幅值') subplot(2,2,3),plot(angy1);title('混合信号相位') 烟台大学文经学院毕业论文(设计) 9 subplot(2,2,4), plot(f,abs(y1(1:2048))); title('混合信号频谱') xlabel('Hz'); ylabel('fudu'); axis([0 1000 0 50]) 烟台大学文经学院毕业论文(设计) 10 3 盲信号处理 3.1 盲信号处理的基本概念 盲信号处理是现代数学信号处理、算智能学近年来迅速发展的重要方向。电子信息、 通信、生物医学、图像增强、雷达、地球物理信号处理等众多领域有广泛的应用前景。 盲信号处理就是利用系统(如无线信道、通信系统等)的输出观测数据,通过某种信号 处理的手段, 获得我们感兴趣的有关信息(如原来独立发射的信号等)。 盲信号的研究是当前学术界研究的热点,而在盲信号研究中,盲信号分离则是一个 重要课题。BSS 是指从混合的语音信号中分离出来一些未知的原信号。盲信号中的“盲” 有两个方面的含义:一,对原信号不知道或仅有少许先验知识。二,混合信号是未知的。 这看似是不可能完成的任务,而理论和实际都已经证实了只需要一些简单的假设,便可 得到该问题的解。这使得 BSS 成为一种功能强大的处理信息的方法。 3.2 盲信号处理的方法和分类 在盲信号处理中,就原信号进过传输通道的混合方式而言,其处理方法可分为线性 瞬时混合信号盲处理、线性卷积混合信号盲处理和非线性混合信号盲处理三类。 根据通道中是否有噪声、噪声特性(白噪声、有色噪声等) 、噪声混合形式,可分为 有噪声、无噪声盲处理,含加性噪声和乘性噪声混合信号盲处理等。 按原信号和观测信号数目的不同可将混合方式分为欠定 、适定和超定情况 ;按原信 号的不同可分为 : 平稳 、非平稳 、亚高斯、超高斯、超高斯和亚高斯混合分离等 。 盲处理的目的可分为盲源分离和盲辨识两类。其中,盲辨识的目的是求传输通道混 合矩阵(新型混合矩阵、卷积混合矩阵、非线性混合矩阵等) 。盲源分离是为求出源信号 的最佳估计。当盲源分离的各分量相互独立时,就称为独立分量分析,即独立分量分析 是盲源分离的一种特殊情况。 3.3 盲信号处理技术的研究应用 近年来,盲信号处理逐渐成为当今信息处理领域中热门的课题之一,并且已经在尤 其在生物医学工程、医学图像、语音增强、遥感、通信系统、地震探测、地球物理学、 计量经济学和数据挖掘等领域显示出诱人的前景,特别是盲源分离技术、ICA 的不断发展 和应用最为引人注目。 1.语音识别领域 语音信号分离、语音识别是盲处理应用的一个重要领域。最典型的应用就是声控计 算机,计算机所接受到的语音指令肯定是肯定是带有各种环境噪声的,还可能存在其他 的语音信号,而且这些信号原与接收器的位置也未知,计算机要在此时识别出准确的语 音命令。移动通信中,总是存在通信质量等问题,对通话效果产生极大的影响,而盲源 分离、盲均衡技术都能够消去噪声、抑制干扰和加强语音,提高语音通话的质量。 烟台大学文经学院毕业论文(设计) 11 2.生物医学信号 在生物医学方面,盲信号的处理可以应用在脑电图(EEG)信号分离、心电图(ECG) 、 功能磁共振图像(FMRI)分析、听觉信号分析等。目前,一些学者已经将盲源分离技术 应用在脑电图等信号的数据处理方面。 3.4 独立成分分析分析 独立分量分析 ( Independent Component Analysis , ICA)是由 Herault 和 J utten 在 1983 年提出,该方法不依赖与源信号类型相关的详细知识或信号传输系统特性的 精确辨识,是一种有效的冗余取消技术,被广泛应用于盲源分离 ( blind source separation BSS)、特征提取和盲解卷、生理学数据分析语音信号处理、图像处理及人脸 识别等领域。该方法根据代价函数的不同 ,可以得到不同的 ICA 算法,如信息最大化 (infomax)算法、Fast ICA 算法、最大熵( M E)和最小互信息( MM I)算法、极大似然(ML)算 法等。 在统计学中,独立成分分析或独立分量分析(Independent components analysis, 缩写:ICA)是一种运用统计原理进行计算的方法。这是一个线性变换。这个变换把信号、 数据分离成独立统计的非高斯的信号原地线性组合。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)带噪声混合语音信号的盲分离 盲信号处理中的条件太多,混合信号在含有噪声的情况下其盲源分离问题的解决是 比较困难的。虽然已有部分算法对于有噪声的情行下表现出较好的性能,但出于噪声种 烟台大学文经学院毕业论文(设计) 12 类多,因此处理起来仍很困难。现有的多数盲源分离或盲解卷积算法都把信号假设不含 噪声或把噪声看做一个独立的信原信号进行处理。 (2)非平稳混合语音信号地盲源分离算法 很多情况下原信号有可能是非平稳的,如何通过信号的非平稳特性来进行盲源分离 是广大研究员必须面临的一个重要现实问题。 (3)卷积混合语音信号的盲源分离算法 实际应用中,系统接收的混合信号是原信号经过不同的途径传达到接收器。在这一 过程中,会不可避免的产生信号的反射。针对这一情况下的盲源分离算法还不够成熟。 (4)ICA 的推广应用 在算法的应用方面,ICA 可以取得更大的发展,如可以在语音的识别、图像的处理、 特征的提取、医学信号的处理方面作一些进一步的研究。但关键的问题是怎样将理论的 算法转变为实际的应用,以及怎样建立更好的反应实际的模型等。 (5)算法的收敛性 算法在全局收敛性方面的研究,可以将遗传算法、混沌算法等一些具有全局收敛性 的算法和 ICA 结合起来,有助于提高算法的全局收敛性。 3.4.2 ICA 的基本原理 (1)无噪声的 ICA 模型 ICA 作为生成模型的估计给定随即变量的一组观测…,其中 是 123 ( ),( ),( )x tx tx t( ) n x t t 时间或者样本标号,假设它们有独立成分线性混合而产生: 1 2 3 4 ( ) ( ) ( ) ( ) x t x t x t x t =A (3.1) 1 2 3 4 ( ) ( ) ( ) ( ) s t s t s t s t 式中,是某个未知矩阵。 A 用向量和矩阵符号方法表示比上面的表式更加的方便。随机向量 x 用来表示混合向 量,其组成分别为, 用来表示元素,矩阵则用来表示混合系数。所 1,.,n xx s1,.n ss A aij 有的向量都可以理解为列向量;这样或的转置就可以认为是一个行向量。利用向量 T xx 和矩阵符号,混合模型可以表示为: (3.2) xAs 有时我们需要使用矩阵 A 中的列向量,如果将其表示为,则模型也可以写为: 烟台大学文经学院毕业论文(设计) 13 (3.3) 1 n i i i xa s (2)有噪声的 ICA 模型 将基本的 ICA 模型扩展到有噪声的情形,并且假设噪声是以加性噪声形式存在的。 这是一个相当现实的假设,因为加性噪声是因子分析和信号处理中通常研究的标准形式, 具有简单的噪声模型表达方式。因此,噪声 ICA 模型可表示为: (3.4) xAsn 式中,是噪声向量。 1, . T n nnn 信号原噪声,即直接添加到独立成分(即信号原)上的噪声。信号原噪声可用稍有 差别的下式来表示: (3.5) ()xA sn 实际上,如果可以直接考虑带噪声的独立成分,那么可将此模型写为: (3.6) ~ xAs 可以看出,这就是基本的 ICA 模型,只是独立成分本身变了。 烟台大学文经学院毕业论文(设计) 14 4 FastICA 算法 4.1 数据的预处理 在一般情行下,得到的数据都具有相关性,要对这些数据进行白化或球化处理,这 是因为通过白化处理可以去掉各观测信号间的相关性,使后续的独立分量的提取得到简 化,在一般情况下,对数据白化处理比不对数据白化处理的算法的收敛性更好。 如果一零均值的随机向量满足,则这个向量为白化向量。 T M ZZZ),,( 1 IZZE T }{ 白化的本质表现在去相关。在 ICA 中,零均值的独立原信号,有: T N tStStS)](,),([)( 1 ,协方差矩阵为单位阵,因此,源信号是jiSESESSE jiji 当, 0}{}{}{IS )cov()(tS 白色的信号。对于观测信号,通过一个线性变换,使投射到子空间后表现为白)(tX)(tX 化向量,即: )()( 0 tXWtZ (4.1) 其中为白化矩阵,为白化向量。 0 WZ 利用分量的分析,通过对样本向量的计算可以得出一个变换 T UW 2/1 0 (4.2) 其中、代表协方阵的特征值和向量矩阵。可证明,线性变换符合白化变换U x C 0 W 的要求。如此通过正交变换,可以保证。由此,协方差矩阵可表示为:IUUUU TT IUXXEUUXXUEZZE TTTTT 2/12/12/12/12/12/1 }{}{}{ (4.3) 再将式代入,且令,有)()(tAStX)()( 0 tXWtZ ~ 0 AAW )()()( ~ 0 tSAtSWtZ (4.4) 由于线性变换连接的是两个随机的白色矢量和,可以得出是正交变换。 ~ A)(tZ)(tS ~ A 如果把看做新的观测信号,那么就可以说,白化已经使原来的混合矩阵简化成一)(tZA 个新的正交矩阵。 ~ A 白化这种常规的方法作为 ICA 的预处理可以有效地降低问题的复杂度,而且算法简 单,用传统的 PCA 就可完成。 4.2 FastICA 算法 FastICA 算法,又称固定法(Fixed-Point)算法,是一种快速寻优迭代算法,采用 批处理的方式,即在每一步迭代中有大量的样本数据参与运算。FastICA 算法有基于峭度、 基于似然最大、基于负熵最大等形式。 FastICA 算法将最大的负熵做为搜寻的方向。由信息论的理论可知:在所有的随机变 量中,高斯变量拥有最大熵,可以通过熵来度量非高斯性,根据中心极限定理,若一随 烟台大学文经学院毕业论文(设计) 15 机的变量由很多独立的随机变量之和组成,只要具有有限的均值和X)3 , 2 , 1(NiSi i S 方差,则不论它是什么分布,随机变量比更接近高斯分布。在分离的过程中,可以X i S 对分离结果的非高斯性度量来表示分离结果间的相互独立性,当非高斯性达到最大时, 则表明已实现各独立分量的分离。负熵的定义: )()()(YHYHYN Gaussg (4.5) 式中,是一与具有相同方差的高斯随机变量,为随机变量的微分熵 Gauss YY)(H dppYH yy )(lg)()( (4.6) 根据信息论,拥有相同方差的随机变量,高斯分布的随机变量有较大的微分熵。当 有高斯分布时,;具有越强的非高斯性,则其微分熵越小,值越大,Y0)(YNgY)(YNg 所以可以做为随机变量非高斯性的度量。由于计算微分熵需要的概率密度分布)(YNgYY 函数,于是采用如下近似公式: 2 )]}([)]([{)( Gaussg YgEYgEYN (4.7) 其中为均值运算;为非线性函数,可取或][Eg),tanh()( 11 yayg 或等非线性函数,这里,,通常我们取。)2/exp()( 2 2 yyyg 3 3 )(yyg21 1 a1 1 a FastICA 是找一个方向以便具有最大的非高斯性。FastICA 的推导过)(XWYXW TT 程如下。首先,的最大负熵的近似值可以通过对的优化处理获得。根XW T )}({XWGE T 据 Kuhn-Tucker 条件,在的约束下,的最优值1}){( 2 2 WXWE T )}({XWGE T 能通过下式来获得。 0)}({WXWXgE T (4.8) 这里是恒定值,,是优化后的值。用表示上式左边的)}({ 00 XWXgWE TT 0 WWF 函数,可得的雅克比矩阵如下:F)(WJF IXWgXXEWJF TT )}({)( , (4.9) 为了将矩阵求逆过程简化,可以近似将其看做上式的第一项。但是,由于数据被球化, ,所以,。因而雅IXXE T }{IXWgEXWgEXXEXWgXXE TTTTT )}({)}({}{)}({ ,,, 克比矩阵变成了对角阵并且能比较容易的求逆,因而可以得到下面的近似牛顿迭代公式: ])}({/[])}({[ , XWgEWXWXgEWW TT WWW/ (4.10) 这里是的新值,,规格化能提高解的稳定性。简化后就可 WW)}({XWXgWE TT 以得到 FastICA 算法的迭代公式: ])}({/[])}({[ , XWgEWXWXgEWW TT WWW/ 烟台大学文经学院毕业论文(设计) 16 (4.11) 用迭代公式求 W 4.3 ICA 分离的步骤 (1)均值归零,令 }{ ~ xEx x (4.12) (的均值=0,但他的其他统计特性和一样) x ~ X (2)数据白化 求出自相关函数 }{ ~~ ~ H xx E x R (4.13) 对自相关函数 x RUU H ~ (4.14) (是对角阵) 对数据进行白化,令: x H VZ ~ 2 1 (4.15) (可以证明 Z 是“白”的,及)IZZE H }{ (3)选择任意正交矩阵作为初值 0 W (4)用迭代公式更新 W 的每一列 t w wzwgEzwzgEw T t T tt )}({)}({ (4.16) 其中可以使下面几个函数中的一个)(g )tanh()( 1 hyg 2 2 2 )( y eyyg (4.17) 3 3 )(yyg (5)W 正交化 wwww T 2 1 )( (4.18) (6)如果不收敛(W 迭代后改变较大),则返回步骤 4 4.4 混合语音信号的波形图 对混合语音信号进行编程处理,得到混合语音信号的波形如图 4.1 所示。下图即为 经过 matlab 处理后的混合语音信号的波形图: 烟台大学文经学院毕业论文(设计) 17 00.511.522.533.54 x 10 4 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 一 一 一 一 一 一 图 4.1 混合信号波形图 4.5 分离后的信号的波形图 对上面的混合语音信号经过 matlab 编程,通过 ICA 算法的处理,并经过程序的调试, 得出如下所示的三个分离信号的波形图(其中图 4.2 为分离信号一的波形图,图 4.3 为 分离信号二的波形图,图 4.4 为分离信号三的波形图): 烟台大学文经学院毕业论文(设计) 18 00.511.522.533.54 x 10 4 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 一 一 一 一 一 一 一 图 4.2 分离信号一的波形图 烟台大学文经学院毕业论文(设计) 19 00.511.522.533.54 x 10 4 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 一 一 一 一 一 一 一 图 4.3 分离信号二的波形图 烟台大学文经学院毕业论文(设计) 20 00.511.522.533.54 x 10 4 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0
展开阅读全文