语音信号的盲分离课程设计(编辑修改稿)内容摘要:

 XWYXW TT  具有最大的非高斯性。 这里,非高斯性给出的负熵 )( XWN Tg 的近似值来度量 , XWT 的方差约束为 1,对于白化数据而言,这等于约束 W 的范数为 1。 FastICA 算法的推导如下。 首先,XWT 的 负熵的最大近似值能通过对   XWGE T 进行优化来获得。 根据KuhnTucker 条件,在    122  WXWE T 的约束下,   XWGE T 的最优值能在武汉理工大学《信息处理课群综合训练与设计》报告 11 满足下式的点上获得。    0 WXWXgE T  (公式 34) 这里,  是一个恒定值,   XWXgWE TT 00 , 0W 是优化后的 W 值。 下面我们利用牛顿迭代法 解方程( )。 用 F 表示式( )左边的函数,可得 F 的雅可比矩阵  WJF如下:      IXWgXXEWJF TT  39。 (公式 35) 为了简化矩阵的求逆,可以近似为( )式的第一项。 由于数据被球化,  IXXE T  ,所以,因而雅可比矩阵变成了对角阵,并且能比较容易地求逆。 简化后就可以得到 FastICA 算法的迭代公式:           IXWgEXWgEXXEXWgXXE TTTTT 39。 39。 39。  实践中, FastICA 算法中用的期望必须用它们的估计值代替。 最好的估计是相应的样本平均。 对于 FastICA 算法,数据预处理是一个最基本、最必要的过程。 该过程包括去均值和白化(或球化)。 去均值过程起到了简化 ICA 算法的作用,白化也是信号源盲分离算法中一个经常用到的预处理方法,对于某些盲分离算法,白化还是一个必须的预处理过程。 对混合信号的白化实际上就是去除信号各个分量之间的相关性。 从图 31 是 FastICA 算法流程图可以看出,通常先对数据进行初步的白化或球化处理,白化处理可去除各观 测 信号之间的相关性,从而简化了后续独立分量的提取过程。 这是由于一般情况下,所获得的数据都具有相关性。 通过去均值和白化等预处理在对其进行真正的算法分离。 通常情况下,数据进行白化处理与不对数据进行白化处理相比,算法的收敛性比较好,快速 ICA 算法一般的步骤如下: 武汉理工大学《信息处理课群综合训练与设计》报告 12 1. 对观测数据 X 进行中心化,使它的均 值为 0; 2. 对数据进行白化, ZX ; 3. 选择需要估计的分量的个数 m ,设迭代次数 1p ; 4. 选择一个初始权矢量(随机的) pW ; 5. 令      WZWgEZWZgEW TpTpp 39。  ,非线性函数 g 的选取见前文; 6.  jpj jTppp WWWWW 11 ; 7. 令 ppp WWW /。 8. 假如 pW 不收敛的话,返回第 5 步; 9.令 1pp ,如果 mp ,返回第 4 步。 图 31 FastICA算法流程图 武汉理工大学《信息处理课群综合训练与设计》报告 13 概括来说, FastICA 算法主要包含两部分 :预处理部分和核心算法部分。 预处理部分主要包括去均值化和白化处理;核心算法部分是基于 拟牛顿算法,具体的实现见附录程序。 主分量分析 PCA 主成分分析原理 主成分分析( Principal Component Analysis, PCA)是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。 计算主成分的目的是将高纬数据投影到较低维空间。 给定 n 个变量的 m个观察值,形成一个 n *m 的数据矩阵, n 通常比较大。 对于一个由多个变量描述的复杂事物,认识难度会很大,于是我们可以抓住事物主要方面进行重点分析,如果事物的主要方面刚好体现在几个主要变量上,那么我们只需要将体现事物主 要方面的较少的几个主要变量分离出来,对此进行详细分析。 但是,在一般情况下,并不能直接找出这样的关键变量。 这时我们可以用原有变量的线性组合来表示事物的主要方面, PCA 就是这样一种分析方法。 PCA 主要用于数据降维,对于由一系列特征组成的多维向量,其中某些元素本身没有区分性,比如某个元素在所有的样本中都相等,或者彼此差距不大,那么这个元素本身就没有区分性,如果用它做特征来区分,贡献会非常小。 所以我们的目的是找那些变化大的元素,即方差大的那些维,而去除掉那些变化不大的维,从而使特征留下的都是“精品”,使得计算 量也相应变小。 对于一个 k 维的特征来说,相当于它的每一维特征与其他维都是正交的(相当于在多维坐标系中,坐标轴都是垂直的),那么我们可以变化这些维的坐标系,从而使这个特征在某些维上方差大,而在某些维上方差很小。 所以我们的做法就是求得一个 k 维特征的投影矩阵,这个投影矩阵可以将特征从高维降到低维。 投影矩阵也可以叫做变换矩阵。 新的低维特征必须每个维都正交,特征向量都是正交的。 通过求样本矩阵的协方差矩阵,然后求出协方差矩武汉理工大学《信息处理课群综合训练与设计》报告 14 阵的特征向量,这些特征向量就可以构成这个投影矩阵了。 PCA 算法原理 令 x 为表示环境的 m 维随机向量。 假设 x 均值为零,即: E[x]=O。 令w 表示为 m维单位向量, x 在其上投影。 这个投影被定义为向量 x 和 w 的内积,表示为: 而主成分分析的目的就是寻找一个权值向量 w 使得表达式 E[y2]的值最大化: 根据线性代数的理论,可以知道满足式子值最大化的训应该满足下式: 即使得上述式子最大化的 w 是矩阵 Cx 的最大特征值所对应的特征向量。 特征向量的选择取决于协方差矩阵的特征值的大小。 经过 PCA 分析,一个多变量的复杂问题被简化为低维空间的简单问题。 可以利用这种简化方法进行作图,形象地表示 和分析复杂问题。 主分量分析 PCA 和 ICA 比较 主分量分析( ICA)的目的在于降低向量的维数,取出随机信号间的线性相关性,找出原始信号中隐含的内在能量较大的信号。 但是由于 PCA 方法在实际的计算式只涉及到输入数据概率分布函数的二阶统计特性(仅利用到信号的协方差矩阵),所以分解出的各分量相互正交,主分量之间并不一定不相关,所以并不满足 ICA 方法对输入信号的独立要求。 武汉理工大学《信息处理课群综合训练与设计》报告 15 从数理统计的角度来说,实际信号的大部分重要的信息往往包含在高阶的统计特性中,因此只有当多变量观测数据是由高斯分布的源信号构成时, PCA 方法才能用来实现信号的分离,这是由于服从正态分布的随机过程的不相关性和统计独立是等价的,用一阶、二阶统计特性就可以完全描述信号。 然而,在实际的问题中,真正满足正态分布的随机信号很少,绝大部分的随机信号(如自然景物图像、语音信号和脑电波等等)都不是高斯的。 此外, ICA 方法往往需要高阶量,也就是在学习阶段需要使用一定的非线性,然而非线性的使用并不影响输入和输出的线性映射关系。 许多情况下 ICA 能够提供比 PCA 更有意义的数据,而 PCA 仅在源信号为高斯分布时才能实现 ICA。 尽管如此,在信号的预处理阶段, PCA 方法可 以实现数据的预白化,为后续的工作提供了方便。 武汉理工大学《信息处理课群综合训练与设计》报告 16 4 语音信号的分离方案实现 本设计用 matlab 采集 3 路语音信号,选择合适的混合矩阵生成若干混合信号。 然后合语音信号的分离算法对混合信号进行分离出原始信号。 具体实现主要结合独立分量分析 ICA 技术,选取混合矩阵对 3 个语音信号进行混合,并 从混合信号中分离出原语音信号,最后 画出各分离信号的时域波形和频谱图和原来的信号进行比较。 此外还运用 PCA 算法进行了混合语音信号的分离实现,最终对两种算法进行比较。 语音信号的混合 有题目要求根据盲信号分离原理,用 matlab 采集三路语音信号,其语音信号如图 41 所示。 选择合适的混合矩阵生成若干混合信号,接下来在 MATLAB中实现 、 、 的混合,具体的程序先进行初始化、然后去均值,白化,用随机矩阵对这三路语音信号进行混合,具体的程序代码见附录,运行的结果如图 42 所示: 41 原始语音信号和频谱 图 42 语音混合信号和频谱 武汉理工大学《信息处理课群综合训练与设计》报告 17 语音信号的分离实现 FASTICA 算法分离 独立分量分析的含义是把信号分解成若干个互相独立的成分,它是为了解决盲信号分离的问题而发展起来的。 如果信号本来就是由若干独立信源混合而成的, ICA 就能恰好把这些信源分解开来。 故在一般的文献中通常把 ICA 等同于BSS, ICA 不同于主分量分析把目光投注于信号的二阶统计量,研究信号间的相关关系,而是基于信号的高阶统计量,研究信号间的独立关系。 独立分量分析 中 FastICA 算法是一种快速而数值稳定的方法,采用拟牛顿算法实现寻优,具有超线性收敛速度,通常收敛速度较梯度下降寻优算法快得多用 FASTICA 快速主成分分析 算法实现混合信号的分离 , ,用 FASTICA 算法分离的语音信号图形如图 43 所示: 图 43 fastICA 三路分离信号 将原始 3 路语音信号与分离出来的语音信号作对比,发现分离出来的语音信号和原来的信号的形状一样,不同的是顺序不一样,信号的幅度也减少了,这恰好说明了盲分离算法中 允许存在两个方面的不确定性: ( 1)排列顺序的不确定性,无法了解所抽取的信号应是源信号 s(t)为哪一个分量 . ( 2)信号幅度的不确定性,即无法知道源信号的真实幅值。 武汉理工大学《信息处理课群综合训练与设计》报告 18 主分量分析算法分离 当多变量观测数据是由高斯分布的源信号构成时, PCA 方法也可以用来实现信号的分离,同样用 FASTICA 快速主成分分析算法实现混合信号的分离,我们可以借鉴下面的波形,原始的语言信号是图 41 中的信号,用 FASTICA 算法分离的语音信号图如图 44 示: 图 44 PCA分离语音信号 同样,将原始 3 路语音信号与分离出来的语音信号作对比,发现分离出来的语音信号和原来的信号的形状基本一样,不同的是顺序不一样,信号的幅度也减少了,这恰好说 明 了盲分离算法中 允许存在两个方面的不确定性:排列顺序的不确定性和信号幅度 的不确定性, 还有一点可以看到, 3 的恢复波形有些失真,但总体上达到分离效果。 分离语音频谱分析及比较 在 MATLAB 中画出 、 、 这三段语音信号原始信号的时域和频域图,经过混合,并对 FASTICA、 PCA 快速主成分分析算法成功实现混合信号的分离的信号进行频域分析。 以上对 3 路语音信号 、 、选取混合矩阵对语音信号进行混合,并 从混合信号中分离出原语音信号,分别使用了 FASTICA 和 PCA 分离算法, 最后 画出 各分离信号的时域波形和频谱图和原来的信号进行比较。 此外还运用 PCA 算法进行了混合语音信号武汉理工大学《信息处理课群综合训练与设计》报告 19 的分离实现,下面对两种算法进行比较。 对比可以发现,不管是从时域波形来看还是频谱来看, FASTICA 算法 分离的效果很好, PCA 算法分离频域分析和FASTICA 算法 分离类似。 由上面的分离效果可以看出两种算法都能够对混合信号进行分离,发现分离出来的语音信号和原来的信号的形状大体一样,顺序和原来的都不一样,信号的幅度有的增大了,有的减少了。 这些情况都比较符合盲分离算法中允许存在的 排列顺序的不确定性和信号幅度的不确定性值这两 种不确定性。 从波形分离效果来说,在这次语音盲分离中 FASTICA 算法比 PCA 分离算法分离效果好。 武汉理工大学《信息处理课群综合训练与设计》报告 20 5 总结 这次的设计主要对是忙语音分离,这方面在课程学习中均没有涉及,但是在图像处理以及 Matlab 使用基础上是这一次的学习更加有意义,在查找资料到进入语音信号分离课题的设计过程中对相关的领域有新的认识,掌握了简单的语音分离方法。 在设计过程中,感受到算法在类似“鸡尾酒会”语音信号中起到的作用,尤其是独立分量分析方法,大量的算法均是在 ICA 算法的基础上发展改进而来的,这次的设计是一个入门,盲信号分离 是一个广阔的领域,不仅包括语音信号,还有确定信号方面,图像处理方面等等,在这些领域以后可以进一步了解。 语音信号是一种非平稳信号,本文研究了快速定点 (FastICA)算法以及主分量分析算法( PCA),利用这两种算法能够有效地实现 3 路语音信号中的分离问题,设计的 Matlab 实现得到良好的分离效果。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。