Optoelectronics 光电子, 2011, 1, 1-5 http://dx.doi.org/10.12677/oe.2011.11001 Published Online September 2011 (http://www.hanspub.org/journal/oe/) Copyright © 2011 Hanspub Oe A Review on the Blind Source Separation Algorithm Dandan He, Runjie Liu, Jinyuan Shen, Yuanyu an Chen Schools of Information Engineering, Zhengzhou University, Zhengzhou Email: dandanhebaby@163.com Received: Sep. 10th, 2011; revised: Sep. 20th, 2011; accepted: Sep. 22nd, 2011. Abstract: This paper studies the theory and application of Blind Source Separation (BSS). First, the back- ground and the development prospects of BSS are described. Then, we briefly introduce and evaluate the definition of BSS, and summarize the classification of the algorithm; and finally, we discuss the application about the BBS algorithm in many different fields, in order BSS algorithm can be better applied in the future. Keywords: Blind Source Separation; Separation Algorithm; Classification of the Algorithm; BSS Application 盲信号分离算法综述 何丹丹,刘润杰,申金媛,陈园园 郑州大学信息工程学院,郑州 Email: dandanhebaby@163.com 收稿日期:2011年9月10 日;修回日期:2011年9月20 日;录用日期:2011 年9月22日 摘 要:针对盲信号分离(BSS)方法的原理和应用进行了研究。首先,对盲分离的产生背景和发展前景 作出概要的叙述;其次,介绍和评述了盲分离的定义,以及对算法的分类进行了归纳总结;最后,对 BSS 的算法在不同领域的实际应用进行了讨论,以便BSS 算法在未来可以得到更好的应用。 关键词:盲信号分离;分离算法;算法分类;盲分离应用 1. 引言 盲分离(BSS)算法最早就是从“鸡尾酒会”的问题 引出来的。“鸡尾酒会”问题可以描述成为从许多混乱 无章的谈话声音和噪声背景中获得所需要的某个或者 几个谈话人的语音,而 BSS 所要解决的问题就是如何 从麦克风的阵列中记录到的混合语音信号中分理处每 个说话者的声音信号,进而识别出某个谈话者的声音。 盲信号分离是近几年才发展起来,用于解决从多个 混合观测信号中分离源信号的一门信号处理技术[1]。通 常观测信号来自于一族传感器的输出,其中每一个传 感器接收到的是多个源信号的一组混合,然而,一般 情况下并不知道信号时怎样混合的,因此只能利用观 测的混合信号,采用一定的算法对混合系统进行 求解,从而实现盲信号的分离[2]。本文将从算法原理 入手,研究分析盲信号分离的常用算法的优缺点,如 独立成分分析(ICA)法,熵的最大化方法,主成分分析 (PCA)法[3-5],非线性主成分分析(非线性 PCA)法等。 同时,针对算法的分离结果进行分析评价,并根据盲 分离算法目前的发展状况,指出未来的研究重点和发 展方向。 2. 盲信号分离(BSS)基本理论 2.1. 数学模型 盲信号分离的处理过程是指从若干观测到的多个 混合信号中分离或恢复出无法直接观测到的源信号。 分离原理如图1所示,其中,S为源信号向量,A为 何丹丹 等盲信号分离算法综述 2 | A W 学习算法 S X Y Figure 1. Block diagram of blind sign al se paration 图1. 盲信号分离原理框图 混合矩阵(即传输信道),x是观测信号向量,W为分 离矩阵。 需要注意的是,在使用该模型解决问题时需要以下几 个假设条件[6]: (1) 各源信号之间是相互统计独立的; (2) 所有的源信号间的混合方式是线性的; (3) 混合矩阵A需要满足列满秩(N ≤ M)或者可逆 的条件; (4) 在所有的源信号中最多只能有一个源信号服 从高斯分布。 2.2. 原理描述 一般情况下, x t 1, 2, 是通过 N个传感器获得到的N 个观测信号 , i x i j Sj N 1, 2, ,而且每个观测信号xi是 M个独立源信号 的线性混合。整个 问题可以使用以下的混合方程来进行描述: ,M x tAstnt (1) 式中, 12 ,,, T N x txtx t xt 12 ,,, T M 为观测矢 量; s tsts t st 为源信号矢量;A 为N × M的未知混合矩阵;n(t)为N × 1 的噪声矢量。 目前,在研究盲信号分离问题时,一般情况下不考虑 观测噪声,可以认为不存在噪声或噪声在进行盲分离 之前已经通过其他方法降低到了可以忽略的程度。因 此,式(1)可以写为: x tAst (2) 从观测到的信号矢量中分离出源信号的过程就称为解 混合,经过解混合之后的输出信号为: y tWxt (3) 式中,W为M × N的分离矩阵, 为输出信号矢量。这 里的输出 y(t)可以看作是对源信号向量s(t)的拷贝或估 计。因此,可以知道,在进行盲信号分离过程中,最 核心的问题是要求解出分离矩阵W,或是分离矩阵的 学习算法。 12 ,,, T M ytytyt yt 3. 盲分离算法 在实际中,运用盲分离算法解决问题时,现已使 用的算法有很多,对现有的方法分类归纳如图 2所示。 盲分离算法在现阶段,对提到的算法一般分为三 大类,即独立分量分析(ICA)算法[7-[9],熵的最大化法 [10],以及非线性主分量分析(非线性 PCA)算法[11]。一 般情况下,在使用 ICA 算法的时候,对信号之间采用 不同测度时,所得到的最终的算法也是不一样的;熵 的最大化方法的要求是迫使输出尽可能的均匀散布在 超立方体中;而在使用非线性主分量分析算法解决问 题的时候,则要求在正交约束下来实现信号的分离。 在运用这些算法对信号进行处理的过程中,前两 种方法都是基于互信息和熵来进行分析的,而在互信 息和熵之间又存在如下的关系: ; 1 ; n i i I WHyW HyW (4) 式(4)中 ;;log;d H yWp yWp yWy 是输出向量y各元素的联合熵,这里的 ;;log; iii d i H yWpyWpyW y 表示的则是边缘熵。从以上式子中可以看出,对于盲 分离算法中,可以将熵的最大化方法归结到独立分量 分析(ICA)方法中。因此经常对盲信号分离算法分为两 类:ICA 和非线性 PCA 算法。 在对分离矩阵W进行求解时,可用的算法形式很 多,但是具体的推导思想却是大同小异。盲信号处理 盲 分 离 算 法 独立分量分析方法 熵的最大化法 非线性主分量分析方法 EASI 算法 迭代求逆算法 固定点算法 自然梯度算法 随机梯度算法 基于一般梯度的RLS 基于自然梯度的RLS 预白化和 RLS结合的算法 Figure 2. Classification of blind source separation algorit h m 图2. 盲分离算法分类 Copyright © 2011 Hanspub Oe 何丹丹 等盲信号分离算法综述3 | 问题的基本框架是根据某种优化准则,首先去选择合 适的对比函数,然后采用某种优化方法来求解出所需 的分离矩阵。这个框架可以使用下面的等式来进行描 述说明: BSS 算法 = 对比函数 + 优化方法 因此,选用不同的对比函数的时候,相对应的得到的 分离算法也是不同的。 3.1. 独立分量分析(ICA) 这里独立分量分析(ICA)方法采用最小互信息作 为对比函数进行目标的分离。它的基本思想是选择变 换矩阵 W,使最终输出y = Wx各分量信号之间的相依 性最小化。用输出y的联合概率密度函数 和边缘概率密度函数的乘积 之间的 Kullback-Leibler 散度 来表示输出y的相依性,即 1 ;,, n pyW pyy 1 ;... n pyWpy py 1 11 1 ;|| ; ,..., ,...,d...d ... n nn n IDpy py py y pyyy y py py WWW (5) 从上式可以看出,互信息是一个非负的值,即I(W) ≥ 0,而且当且仅当输出y的各分量相互独立时,互信 息的值才为零。因此,I(W)是独立分量分析方法的对 比函数。根据对分离矩阵的不同的更新迭代方法,现 介绍几种典型的算法。 (1) 随机梯度算法 这里对分离矩阵的迭代过程中使用瞬时或随机梯 度进行计算,可以得到随机梯度算法,即 1TT ttttytx WW Wt t (6) 式中,η(t)是学习速率或步长。 但是此算法的缺点是收敛速度慢,而且在计算过 程中涉及到分离矩阵的求逆运算,如果W(t)在更新过 程中条件数变差的话,算法就可能会分散。 (2) 自然梯度算法 在随机梯度算法的基础上通过演变,用自然梯度 来代替随机梯度,即可得到自然梯度算法如下所示: 1T tttIytyt WW W (7) 其中,非线性变换函数为 23 34 34 ,, ii ii iiiiii ykkykk y 这里, 34334 22 344 34 19 ,24 13 3 ,62 4 iii ii i iii ii i akkk kk kkk kk 其中的 3 3, i ik kEy及 4 4, 3 i ik kEy 分别表示 yi偏度 和峰度。偏度即是衡量一个信号的分布偏离对称分布 的歪斜程度,而峰度不仅可以用来区分高斯和非高斯 信号,还可以进一步的对亚高斯和超高斯信号进行区 分。在对偏度和峰度进行更新的时候,采用下面公式 进行: 3 3, 13,3,, ii i kk ki kkuTky k 4 4, 14,4,,3 ii i kk kik kkuTky 自然梯度算法最早是由Cichocki 等人提出来的, 但是后来Amari 也只是在理论上对该算法进行了证 明,证实了它的有效性。 (3) EASI 算法 该算法是借助于独立性的等变化的一种自适应分 离方法: 1T TT tttIyty ytytyt ytt WW W t (8) 在这里,对分离矩阵的计算过程中引入的是相对梯度, 一般的随机梯度在计算代价函数是相对于权矩阵的绝 对变化量的,但该算法的不同之处在于计算权矩阵的 相对变化量。 (4) 迭代求逆运算 与前面所提到的算法不同的是,如果取两个不同 的非线性变换函数 和 11 ,, T nn fyf yfy T nn g 11 ,,gyg gg ,那么就有迭代求逆算 法: 1T tttIfytgyt WW Wt (9) 这里的非线性变换函数分别取为 2 sgnRe .sgnIm iii i ii ii fyyy yyj gy 其中 sgn()是符号函数。 上面提到的算法,都只适合于亚高斯和超高斯信 Copyright © 2011 Hanspub Oe 何丹丹 等盲信号分离算法综述 4 | 号单独存在的情况,如果两者同时存在的情况,可以 使用广义的 ICA 自适应算法,但是一般情况下,这种 算法都比较复杂。 3.2. 非线性 PCA 运用非线性 PCA 算法实现对非高斯信号的分离 的基本思想是,需要首先对观测数据做非线性变换, 引入高阶统计量,然后再进行主分量分析。由于引入 的是高阶统计量,所以需要先对数据进行预处理,是 对数据的一阶和二阶距标准化。 令X(t)是原始观测数据,则使其各分量白化成单 位方差的白噪声的步骤如下所示: X tXtEXt 12 T Vt EXtXXt 通过上面两个式子分别进行零均值化和协方差矩阵化 为单位矩阵的过程。 对数据进行预白化处理以后,需要对分离矩阵进 行自适应更新,将合适的非线性函数引入到标准 PCA 算法的准则函数中就可以得到非线性 PCA的准则函 数,即: 2 T JE VtWgVtWW (10) 其中 W是分离矩阵,g(.)是非线性函数。然后就可以 利用随机梯度型算法进行自适应更新。 非线性 PCA 算法经过多年的发展,形成了好多成 熟的算法,主要是以经典的RLS 算法为主,下面就简 单介绍一下几种典型的算法。 (1) RLS 算法 在这个算法里,只要是引入了遗忘因子λ,它的 作用是强化当前观测数据对参数估计的作用,消弱先 前数据的影响,是一种渐消记忆的方法。因此该算法 的准则函数为: 2 1 1 tti T i J Viigi Vi WWW (11) 基于非线性 PCA的最小二乘 RLS 算法相对于梯 度型的 LMS在收敛速度上有了很大的提高,而且稳 定性更好。 (2) 非线性PCA 子空间学习算法 这里提到的算法是从鲁棒 PCA 子空间学习算法 中改进而来的,在其迭代算法中引入非线性函数 g(.) 就能够得到非线性 PCA 子空间分离矩阵迭代计算公 式为: 1T tttVtgYg WWW Y (12) 其中的分离矩阵W的自适应更新过程需要满足正交。 在运用非线性PCA 来解决问题的时候,还有一些 是在 RLS算法的基础上通过对遗忘因子进行更新,得 到一种可变遗忘因子的非线性PCA 算法[12]。 4. 盲分离算法的应用与发展 盲信号分离算法在最近几年已经获得了很好的发 展,在若干理论和方法方面都得到了改进和提高,如 本文所提到的在优化准则,以及对比函数方面。随着 盲信号分离算法的不断发展,它在很多方面都得到了 十分广泛的应用。最初就是把盲分离应用在盲多用户 检测问题中,需要使用盲分离算法的理论进行求解, 从与多个发射器相对应的天线中所接收到的混合信号 中,恢复出各个通信的源信号;在语音识别方面,接 收的语音指令会不可避免的带有各种环境噪声,这就 需要运用盲分离算法去解决这种“鸡尾酒会”的问题, 去分离识别正确的语音信息;在生物医学信号处理方 面,盲信号分离也应用的非常多,主要在脑电信号、 脑磁信号、心电信号以及核磁共振成像信号等方面都 有着广泛的应用,对信号的提取问题方面取得了非常 好的效果[13-15]。 除此以外,还在图像滤波、声纳问题、无线电频 谱管理以及光纤通信方面都有应用。 5. 展望 目前为止,盲分离算法在很多领域都有了实际性 的应用,但是也还有许多理论上的问题需要解决,例 如可以通过研究使算法在全局收敛性上得到提高,令 算法的收敛速度增快,以及对算法的稳定性以及鲁棒 性方面都可以进行更加深层次的研究。未来在应用方 面,可以尝试把盲分离算法应用在电磁信号的分离去 噪方面,研究分析提取电磁辐射信号的效果。 Copyright © 2011 Hanspub Oe 何丹丹 等 | 盲信号分离算法综述 Copyright © 2011 Hanspub Oe 5 6. 致谢 这篇论文的完成我要衷心感谢我的恩师申金媛老 师和刘润杰老师,从选定题目,到指导修改论文,老 师们时刻关注着我的学术成长,对我寄予了深深的厚 望,感谢老师!还要感谢所参考和引用文献的作者, 你们的成果是我研究的基础,没有你们的努力,就没 有我的成果。最后,真心的感谢《光电子》期刊对本 论文的认可及接纳。 参考文献 (References) [1] 张贤达, 保铮. 盲信号分离[J]. 电子学报, 2001, 29(12A): 1766-1771. [2] 夏冰. 基于非线性 PCA 的胎儿心电信号提取算法研究[D]. 郑 州: 郑州大学, 2009. [3] 李文娟, 郭晓静, 吴小培. 结合 ICA和PCA 方法的胎儿心电 提取[J]. 计算机技术与发展, 2007, 17(8): 223-225. [4] 周宗谭, 董国华, 胡德文等. 独立分量分析[M]. 北京: 电子 工业出版社, 2007. [5] A. Weingessel, K. Homik Local PCA algorithms. IEEE Transac- tion on Neural Networks, 2000, 11: 1242-1250. [6] 李木森, 毛剑琴. 盲信号分离的现状和展望[J]. 信息与电子 工程, 2003, 3(1): 69-79. [7] 胡学友. 盲信号分离技术及其应 用研究[D]. 合肥: 合肥工业 大学硕士学位论文, 2003. [8] A. Hyvarinen, E. Oja. Independent component analysis: Algo- rithms and applications. Finland Neyral Networks, 2000, 13(4-5): 411-430. [9] 杨竹青, 李勇, 胡德文. 独立成分分析方法综述[J]. 自动化学 报, 2002, 28(5): 762-772. [10] 李小军, 朱孝龙, 张贤达. 盲信号分离研究分类与展望[J]. 西 安电子科技大学学报(自然科学版), 2004, 31(3): 399-404. [11] 高鹰, 谢胜利. 基于非线性 PCA 准则的两个盲信号分离算法 [J]. 计算机工程与应用, 2005, 22: 24-26. [12] X. L. Zhu, X. D. Zhang. Adaptive RLS algorithm for blind source separation using a natural gradient. IEEE Signal Process- ing. Letters, 2002, 9(12): 432-435. [13] D. H. Li, M. Diao, and X. F. Dai. Blind separation algorithm for audio signal based on genetic algorithm and neural network. Shanghai: IEEE Computer Society, 2008, 436-440. [14] 张承钰. 通信信 号盲分离方法研究[D]. 合肥: 中国科学技术 大学, 2009. [15] 刘清欣. 胎儿心电信号提取的算法研究[D]. 郑州: 郑州大学, 2007. |