信息综合课设 - 语音信号的盲分离 联系客服

发布时间 : 星期日 文章信息综合课设 - 语音信号的盲分离更新完毕开始阅读

武汉理工大学《信息处理课综合训练与设计群》课程设计

给定n个变量的m个观察值,形成一个n *m的数据矩阵,n通常比较大。对于一个由多个变量描述的复杂事物,认识难度会很大,于是我们可以抓住事物主要方面进行重点分析,如果事物的主要方面刚好体现在几个主要变量上,那么我们只需要将体现事物主要方面的较少的几个主要变量分离出来,对此进行详细分析。但是,在一般情况下,并不能直接找出这样的关键变量。这时我们可以用原有变量的线性组合来表示事物的主要方面,PCA 就是这样一种分析方法。

PCA主要用于数据降维,对于由一系列特征组成的多维向量,其中某些元素本身没有区分性,比如某个元素在所有的样本中都相等,或者彼此差距不大,那么这个元素本身就没有区分性,如果用它做特征来区分,贡献会非常小。所以我们的目的是找那些变化大的元素,即方差大的那些维,而去除掉那些变化不大的维,从而使特征留下的都是“精品”,使得计算量也相应变小。 对于一个k维的特征来说,相当于它的每一维特征与其他维都是正交的(相当于在多维坐标系中,坐标轴都是垂直的),那么我们可以变化这些维的坐标系,从而使这个特征在某些维上方差大,而在某些维上方差很小。

所以我们的做法就是求得一个k维特征的投影矩阵,这个投影矩阵可以将特征从高维降到低维。投影矩阵也可以叫做变换矩阵。新的低维特征必须每个维都正交,特征向量都是正交的。通过求样本矩阵的协方差矩阵,然后求出协方差矩阵的特征向量,这些特征向量就可以构成这个投影矩阵了。

3.2.2 PCA算法原理

令x为表示环境的m维随机向量。假设x均值为零,即:E[x]=O。令w表示为m维单位向量,x在其上投影。这个投影被定义为向量x和w的内积,表示为:

Y??wk?xk?wTx (3-7)

k?1n满足约束条件:

w?(wTw)1/2?1 (3-8)

而主成分分析的目的就是寻找一个权值向量w使得表达式E[y2]的值最大化:

E[y2]?E[(wTx)2]?wTE[x?xT]w?wTCxw (3-9)

根据线性代数的理论,可以知道满足式子值最大化的训应该满足下式:

18

武汉理工大学《信息处理课综合训练与设计群》课程设计

Cx?wj??jwjj?1,2,...,m. (3-10)

即使得上述式子最大化的w是矩阵Cx的最大特征值所对应的特征向量。特征向量的选择取决于协方差矩阵的特征值的大小。经过 PCA 分析,一个多变量的复杂问题被简化为低维空间的简单问题。可以利用这种简化方法进行作图,形象地表示和分析复杂问题。

3.3 主分量分析PCA和ICA

主分量分析(PCA)的目的在于降低向量的维数,取出随机信号间的线性相关性,找出原始信号中隐含的内在能量较大的信号。但是由于PCA方法在实际的计算式只涉及到输入数据概率分布函数的二阶统计特性(仅利用到信号的协方差矩阵),所以分解出的各分量相互正交,主分量之间并不一定不相关,所以并不满足ICA方法对输入信号的独立要求。

从数理统计的角度来说,实际信号的大部分重要的信息往往包含在高阶的统计特性中,因此只有当多变量观测数据是由高斯分布的源信号构成时,PCA方法才能用来实现信号的分离,这是由于服从正态分布的随机过程的不相关性和统计独立是等价的,用一阶、二阶统计特性就可以完全描述信号。然而,在实际的问题中,真正满足正态分布的随机信号很少,绝大部分的随机信号(如自然景物图像、语音信号和脑电波等等)都不是高斯的。

此外,ICA方法往往需要高阶量,也就是在学习阶段需要使用一定的非线性,然而非线性的使用并不影响输入和输出的线性映射关系。许多情况下ICA能够提供比PCA更有意义的数据,而PCA仅在源信号为高斯分布时才能实现ICA。尽管如此,在信号的预处理阶段,PCA方法可以实现数据的预白化,为后续的工作提供了方便。

19

武汉理工大学《信息处理课综合训练与设计群》课程设计

4语音信号的盲分离实现

本设计用matlab采集3路语音信号,选择合适的混合矩阵生成若干混合信号。然后结合语音信号的分离算法对混合信号进行分离出原始信号。

具体实现主要结合独立分量分析ICA技术,选取混合矩阵对3个语音信号进行混合,并从混合信号中分离出原语音信号,最后画出各分离信号的时域波形和频谱图和原来的信号进行比较。此外还运用PCA算法进行了混合语音信号的分离实现,最终对两种算法进行比较。

4.1 语音信号的混合

有题目要求根据盲信号分离原理,用matlab采集两路以上的语音信号,选择合适的混合矩阵生成若干混合信号,接下来在 MATLAB中实现gequ1.wav、gequ2.wav、gequ3.wav的混合,具体的程序先进行初始化、然后去均值,白化,用随机矩阵对这三路语音信号进行混合,具体的程序代码见附录,运行的结果如图4-1所示:

原始语音信号gequ110原始语音信号gequ20.500244原始语音信号gequ30.50

-1-0.50244-0.50244x 10混合语音信号10.50-0.502x 10混合语音信号20.50x 10混合语音信号30.10

44-0.50244-0.10244x 10x 10x 10混合语音信号1FFT频谱混合语音信号2FFT频谱混合语音信号3FFT频谱0.410.20.200100020000.500 1000

20000.10010002000

图4-1 三路混合语音信号波形及频谱

上图的混合采用的随机混合3*3矩阵是Sweight =[ 0.6449 0.3420 0.5341 0.8180 0.2897 0.7271 0.6602 0.3412 0.3093]

20

武汉理工大学《信息处理课综合训练与设计群》课程设计

4.2 语音信号的分离实现

4.2.1 FAST-ICA算法分离

独立分量分析的含义是把信号分解成若干个互相独立的成分,它是为了解决盲信号分离的问题而发展起来的。如果信号本来就是由若干独立信源混合而成的,ICA就能恰好把这些信源分解开来。故在一般的文献中通常把ICA等同于BSS,ICA不同于主分量分析把目光投注于信号的二阶统计量,研究信号间的相关关系,而是基于信号的高阶统计量,研究信号间的独立关系。

独立分量分析中Fast-ICA算法是一种快速而数值稳定的方法,采用拟牛顿算法实现寻优,具有超线性收敛速度,通常收敛速度较梯度下降寻优算法快得多用FAST-ICA快速主成分分析算法实现混合信号的分离,我们可以借鉴下面的波形,原始的语言信号及用FAST-ICA算法分离的语音信号图形如图4-2所示:

原始语音信号gequ110-1012344fastICA分离语音信号1200-20012344x 10原始语音信号gequ20.50-0.50123x 10fastICA分离语音信号210044-10012344x 10原始语音信号gequ30.50-0.50123x 10x 10fastICA分离语音信号310044-100123x 1044

图4-2 原始的语言信号FAST-ICA算法分离的语音号

将原始3路语音信号与分离出来的语音信号作对比,发现分离出来的语音信号和原来的信号的形状一样,不同的是顺序不一样,信号的幅度也减少了,这恰好说明了盲分离算法中允许存在两个方面的不确定性:

21