陈 杰, 尚 丽,2
(1. 苏州市职业大学 电子信息工程学院, 江苏 苏州 215104;2. 中国科学技术大学 信息科学技术学院, 安徽 合肥 230026)
基于Matlab/GUI的盲信号分离仿真平台的设计与实现
陈 杰1, 尚 丽1,2
(1. 苏州市职业大学 电子信息工程学院, 江苏 苏州 215104;2. 中国科学技术大学 信息科学技术学院, 安徽 合肥 230026)
利用Matlab软件及其友好的GUI界面,设计和实现了基于ICA的盲信号分离的仿真平台。该平台包含声音和图像信号的读入和数据预处理、典型ICA优化算法的选择、盲信号分离评价函数的选择、混合信号以及分离信号图形等,为研究者提供了简便、快捷的盲信号分离的手段,以获得更直观的信号分离结果。
盲信号分离; 独立分量分析(ICA)算法; 混合信号; 独立源信号; Matlab; GUI; 仿真平台
盲信号分离(blind signal separation, BSS)是根据观测到的混合数据确定一个变换,从而有效地恢复出独立的原始信号或者信源的一种技术[1-3]。BSS起源于著名的“鸡尾酒会问题”,其核心问题是分离(或解混合)矩阵的学习算法,属于无监督学习。BSS的基本思想是抽取统计独立的特征作为输入的表示,而同时又不丢失信息[4-5]。所谓盲信号的“盲”有两重含义:一是源信号不能被观测,二是源信号如何被混合是未知的。当信号传输的先验知识无法事先获得时,BSS技术即成为一种很自然的选择,因而也成为信号处理及相关研究领域的热点问题。
目前,BSS技术已在陈列信号处理、多用户通信、语音信号处理、图像信号处理、生物医学工程等领域被广泛应用[6-10]。在BSS求解过程中,常假定源信号是相互统计独立的,因此分离或恢复出来的信号尽可能地也是相互独立的,而独立分量分析(independent component analysis, ICA)就是近年来解决BSS问题的典型方法[11-12]。从不同的出发点研究可以得到不同的ICA算法,典型的ICA算法根据度量信号非高斯性(即独立性)的准则选取概括为三类[13]:基于峭度(kurtosis)的ICA算法、基于负嫡及近似负嫡的ICA算法、基于互信息的ICA算法。其优化算法主要有快速不动点(fast ICA)算法和信息最大化(infomax)算法。在这些算法的基础上,许多改进的ICA算法也相继被提出并得到广泛的应用[14]。
但是,不管哪一种ICA算法,其数学理论分析和推导过程都是比较复杂的,要求研究者必须具有扎实的专业知识,这就使得ICA算法在其他相关专业领域的推广和应用受到了一定的限制。为了普及ICA算法,本文利用Matlab软件及其GUI界面的优势,设计和实现了一个BSS仿真平台,该平台包含声音和图像信号的读入和数据预处理、典型ICA优化算法的选择、BSS评价函数的选择、混合信号以及分离信号图形等,为研究者提供更简便、更快捷的盲信号分离的手段,获得更直观的信号分离结果,以推进BSS技术在信号处理专业的研究发展和应用。
2.1 盲信号混合
BSS问题可以用以下混合方程描述[2-3]:
X(t)=AS(t)
2.2 数据预处理
观测数据一般都具有相关性,为了简化后续独立分量的提取过程,一般对观测信号都要进行去均值(中心化)和白化处理。具有零均值的随机向量Z(t)如满足E{ZZT}为一单位阵,则称这个向量是白化的,白化的本质是去相关[1-3]。对于零均值的源信号S(t),有E{SiSj}-E{Si}E{Sj}=0,i≠j,且协方差矩阵是单位阵Cov(S)=I,因此,源信号是白色的。对观测信号X(t),寻找一个变换,使得X(t)投影到新的子空间后变成白化向量,即:
(1)
其中W0为白化矩阵,Z(t)为白化后的数据矩阵。
利用PCA方法,通过计算样本向量得到一个变换:
其中Λ和U分别代表协方差矩阵Cx的特征向量矩阵和特征值矩阵,Wu满足白化变换的要求。通过正交变换,可以保证UUT=UTU=I。
将X(t)=AS(t)代入(1)式,则得到
2.3ICA算法
2.3.1 目标函数
ICA的基本目的就是确定线性变换矩阵(即分离矩阵)W,使得变换后的输出分量尽可能地独立。ICA算法通常包括目标函数和优化方法两部分。目标函数的选择主要用来度量信号的独立性,即度量信号的非高斯性,其选取准则一般基于高阶统计量、信息论及参数估计理论,用以决定信号的一致性、渐进性和鲁棒性等统计性能[10-14]。
基于高阶统计量的目标函数常选择为高阶统计峭度(kurtosis)值,对于源信号的各个分量Si(t),其归一化峭度定义为:
基于信息理论准则的目标函数通常选择信息最大化(informationmaximization,Infomax)算法。利用信息最大化原理进行盲信号分离就是使输出熵达到最大化,即是使输出向量u(t)=g(y(t))=g(Wx(t))的熵H(u)最大化,则准则函数定义fME(·)为[10]:
其中[g(y)]i=gi(yi)为非线性函数,H(u)为微分熵。设随机变量v的概率密度为pv(·),其H(v)定义为
熵和微分熵都可以用来测量变量的随机性。由于概率密度pv(·)可以大于1,因此微分熵可以取负值。实际使用时,采用负熵作为ICA的目标函数,其定义如下:
式中vgauss是一个高斯随机矢量,和v具有相同的均值和协方差矩阵Cov(v)。考虑峭度概念,计算负熵常采用下面的近似式:
上式中,随机变量v的均值应为0,方差为1。
另外,在采用峭度准则度量源信号的独立性时,需要预先知道信号的峭度符号,该准则不能同时分离具有正峭度和负峭度的源信号,而且源信号中至多只能有一个高斯信号。采用基于Infomax准则函数度量源信号的独立性时,这种方法只能分离出正峭度的源信号。
2.3.2 优化算法
(2)
上式中xj为观测信号矩阵X(t)中的第j行;q为均值为0、方差为1的高斯变量。G(·)是任意的非二次函数,常采用以下几种形式:
(3)
其中,1≤a1≤1,a2≈1是常数。把式(3)代入式(2),则对应的固定点算法为:
其中g(·)是非二次函数G(·)的导数。算法最后给出的向量Wi(t)等于正交混合矩阵A的一列,在信号分离中意味着Wi(t)分离了其中的一个非高斯信号,即得到一个源信号。FastICA模型与普通的ICA算法相比,收敛速度非常迅速;对比基于梯度的算法,FastICA算法没有步长常数的选取。该算法具有神经算法的大多数优点,它是并行的、分布式的,不但计算量小,而且要求的内存空间较少。
3.1 界面主要控件
用户界面控制(user interface control, Uicontrol)在Matlab中又称Matlab控制框,与窗口管理器所用的函数很相似,是图形对象,可以放置在Matlab的图形窗中的任何位置,并且能用鼠标激活。Matlab的Uicontrol包括静态文本框、列表框、按钮、滑标、弹出式选单等,使用时由uicontrol函数生成,其函数格式为
Hf=uicontrol (Hf_fig, ′PropertyName′ ,PropertyValue,...)
其中Hf是由函数uicontrol生成的Matlab控制框对象的句柄;Hf_fig是父对象的句柄,它必须是图形;PropertyName和PropertyValue定义了uicontrol的属性。
文中用到的控件对象通用的属性主要有:
(1) BakcgroundColor(背景颜色),该属性声明了用来填充uicontrol对象的背景颜色;
(2) Position(位置),指明图形的左、底、宽、高信息,格式为相对于图形窗口左下角的标准直角坐标格式;
(3) Callback(回调函数),该属性声明了当用户触发uicontrol对象时所执行的字符串;
(4) string(字符串)该属性声明了显示在按钮、拨动按钮、静态文本、弹出选单上的uicontrol标签字符串;
(5) style (类型),该属性声明了要生成的uicontrol对象类型,如按钮(pushbutton)、检查框(chechbox)、编辑(edit)、文本(text)、滑标(slider)、框架(frame)、列表框(listbox)、弹出式选单(popupmenu)等。
一般情况下,如果没有指定控件的属性值,则Matlab自动使用缺省属性值。uicontrol默认的Style属性值为按钮pushbutton,parent属性为当前图形窗口(figure)。
该仿真平台主要以声音信号和自然图像作为输入数据,主界面主要由测试数据读入、混合信号预处理、ICA优化算法选择、图像数据处理等4个框架区域构成,另外设置了帮助、操作说明等辅助性按键操作。该仿真平台可以显示仿真测试所用的原始声音信号波形和自然图像、预处理后的声音信号波形、混合声音信号波形和混合图像、分离后的独立声音信号波形和图像、混合信号维数、混合信号降维后的维数、分离信号的个数、所选择的ICA优化算法、信号独立性评价函数等。在此仿真平台上,只要输入观测信号或者混合图像,执行数据预处理、ICA分析后,就可以得到分离后的源信号或者图像,研究人员不需要深入了解ICA理论,只需要根据分离结果进行讨论分析和应用即可,为研究BSS问题的人员提供了一个简便、可视化的操作手段。
3.2 输入数据模块设计
在BSS问题分析中,真实的观测信号是由哪些独立的源信号混合而成的及其混合方式都是未知的。因此,测试中所采用的混合信号(即输入数据)是预先通过模拟混合方式获得的。首先假设有n个声音源信号和n幅自然图像,它们均被一个大小为m×n(通常m≤n)的随机矩阵混合。混合信号是否已调用,通过uicontrol命令设置的静态文本框的内容来进行标记:如果没有调用输入数据,该文本框显示“未调用信号”;反之,显示“调用信号”。混合信号的维数以及每一维向量的数据点数均可以读入设定的文本框进行直观地显示。另外,采用uicontrol命令设置了原始信号和混合信号波形显示的句柄,利用callback调用相应的程序(事件)进行波形画图,所设计的文本框和按钮分布位置在图1的左上部框架区域中。
3.3 数据预处理模块设计
对输入数据进行预处理时,主要有中心化和白化处理两个过程。中心化即是数据的去均值处理,白化过程采用PCA算法实现。为了直观看出是否采用了降维处理,文中采用uicontrol命令设置了3个静态文本框进行标记,内容分别为维数控制、降维后的维数和输入矩阵的维数。对应后2个静态文本框,设置了2个空文本框,对降维后的维数和输入矩阵的维数分别进行显示,并采用uicontrol命令设置了画信号白化波形和PCA降维处理2个按钮,它们在主界面中的框架位于图1左侧中部。点击这两个按钮,可以直观地看到白化后的信号波形和PCA降维处理后的特征分布柱状图。
图1 仿真平台主界面
3.4 ICA模块设计
测试中主要选择FastICA算法实现独立分量提取。采用uicontrol命令设置2个文本框,其中一个用来显示FastICA算法被执行的情况,如果调用了FastICA算法则文本框显示“计算中…”,计算完成后会显示“完成ICA算法”;另一个文本框用来显示提取的独立分量的个数。采用uicontrol命令设置3个下拉选单:第一个用来实现FastICA算法中的非线性方法选择,有deflation(逐次提取分量)和symmetric两种选择情况;第二个用来实现FastICA的非线性函数选择,分为4种选择情况:pow3函数,tanh函数、gauss函数和Skew 函数;第三个对算法稳定性进行微调,选择有on和off两种情况。
3.5 图像处理模块设计
在主界面第四个框架区域中通过uicontrol命令设置按钮“图像数据操作”,弹出如图2所示的子选单。在此子选单上设置了4个静态文本框和3个空白文本框句柄(用来显示对应的维数)以及7个按钮(见图2)。单击“装载”按钮,输入想要观察的“workspace”空间变量,即可看到相应变量的数值。
图2 图像操作的子选单
4.1 声音信号的ICA测试结果
测试信号选用了4个独立的源声音信号,由于声音信号的数据点数较多时波形很密,在视觉上很难看清波形的形状,因此在每个信号选取前1 500点进行显示,则画出的原始测试信号如图3(a)所示,混合信号波形如图3(b)所示。测试中考虑观测信号的维数和分离信号维数相等的情况(即m=n,PCA白化时不降维),对混合声音信号进行预处理得到的白化信号波形如图3(c)所示;然后采用FastICA算法,非线性方法选择为deflation,信号独立性评价函数选择为tanh时,得到的分离信号如图3(d)所示。必须注意到ICA算法分离信号时的一个缺陷,即ICA算法得到的分离信号的顺序是不确定的(同时幅值大小会有所不同),所以图3(a)中原始测试信号顺序和图3(d)中分离信号的顺序是不一致的。但在本文中,为了确定分离后独立信号对应测试信号的顺序,采用了信号相关性评价函数,即把原始测试信号的序号和ICA分离后得到的独立信号的序号一一对应起来,如图4所示,如果把此方法用在“鸡尾酒会”问题中,可以方便地识别出说话人。
图3 原始测试声音信号及其混合信号波形
图4 分离信号的顺序号对应的原始测试声音信号
4.2 图像的ICA测试结果
测试图像选用了4幅大小相同的自然图像,这些图像可以方便地从网上公用的图像库中下载得到。原始图像、混合图像和白化图像的维数可以直观地看出来。点击“画原始图像”、“画混合图像”、“画分离图像”等按钮,即可弹出相应的图像。对图像数据进行处理时,首先把每一幅图像转换为一个行向量,这样就把二维图像信号变为一维信号,然后对图像信号进行混合、预处理和分离,所采用的方法是和处理声音源信号是一致的。测试中所用的原始图像如图5(a)所示;混合后的图像如图5(b)所示;不经过白化处理的分离图像如图5(c)所示;经过白化处理的分离图像如图5(d)所示,注意分离后的图像顺序和原始测试图像的顺序不同。观察混合图像和分离图像,很明显,采用FastICA得到的分离图像的细节比较清晰,从视觉效果上看和原始图像几乎很难区分,具有较好的图像分离效果。
图5 原始测试图像及其混合图像
基于Matlab的盲信号分离的仿真平台功能设计简洁方便、易于扩展,采用FastICA算法实现混合信号或者混合图像的独立分离,具有计算简单、收敛速度快的优点,在实际工程中已被广泛应用。该仿真平台为对BSS问题感兴趣的研究人员提供一个直观、简便信号分析平台,有助于利用BSS技术推进信号处理专业的研究进展和应用。该研究成果可以进一步被引入到语音信号处理和数字图像处理的教学实践中,为学生提供一个综合性、创新性的实训平台,具有一定的实用性和研究意义。
References)
[1] 张贤达,保铮.盲信号分离[J].电子学报,2001,29(增刊1):1766-1771.
[2] 张发启.盲信号处理及应用[M].西安:西安电子科技大学出版社,2006.
[3] 孙守宇.盲信号处理基础及其应用[M].北京:国防工业出版社,2010.
[4] 张登科.基于ICA的盲信号分离正定性检验方法[J].电子学报,2012,40(11):2303-2308.
[5] 李舜酩.振动信号的盲源分离技术及应用[M].北京:航空工业出版社,2011.
[6] 许宏吉,刘据,徐淑正,等.基于独立分量分析的多天线空时盲接收方案[J].通信学报,2010,31(12):63-71.
[7] Ding Z, Nguyen T. Stationary points of a kurtosis maximization algorithm for blind signal separation and antenna beamforming[J].IEEE Transactions on Signal Processing,2000,48(6):1587-1596.
[8] 杨俊美,余华,韦岗,等.独立分量分析及其在信号处理中的应用[J].华南理工大学学报:自然科学版,2012,40(11):1-12.
[9] Gai Kun, Shi Zhenwei, Zhang Changshui, et al.Blind separation of superimposed moving images using image statistics[J].IEEE Transaction on pattern analysis and Machine Intelligence,2012,34(1):19-32.
[10] Kwak K C, Pedrycz W. Face recognition using an enhanced independent component analysis approach[J].IEEE Transactions on Neural Networks,2007,18(2):530-541.
[11] 吴亮,陈宗海.基于独立分量分析的运动目标检测[J].中国科学技术大学学报,2010,40(8):848-854.
[12] 刘晓志,冯大伟,杨英华,等.基于核独立分量分析的盲多用户检测算法[J].东北大学学报:自然科学版,2012,33(6):778-781.
[13] 龚丹丹,刘国庆.基于极大似然Parzen窗的独立成分分析[J].计算机工程,2010,36(18):279-284.
[14] 黄振川,杨小牛,张旭东,等.基于独立分量分析的通信侦查复信号盲分离[J].清华大学学报:自然科学版,2010,50(1):86-91.
Design and realization of simulation platform of blind signalseparation based on Matlab/GUI
Chen Jie1, Shang Li1,2
(1. School of Electronic Information Engineering, Suzhou Vocational University, Suzhou 215104, China;2. School of Information Science & Technology, University of Science and Technology of China, Hefei 230026, China)
By using Matlab software and its GUI interface, the simulation platform of BSS is designed and realized. This platform contains the input and preprocessing of the sound signal and the image signal, the selection of typical ICA(independent component analysis) optimized algorithms and that of BSS(blind signal separation) measurement function, figures of mixed and separated signals, and so on, which can provide a simpler and quicker method for researchers to obtain more intuitive signal separation results.
blind signal separation (BSS) ; independent component analysis (ICA) algorithm; mixed signal; independent source signal; Matlab; GUI; simulation platform
2014- 10- 28
国家自然科学基金资助项目(61373098);苏州市职业大学教改项目(SZDJG-13017)
陈杰(1980—),男,浙江绍兴,工学硕士,讲师,研究方向为传感器检测和数字信号处理.
E-mail:cj@jssvc.edu.cn
TP391
A
1002-4956(2015)5- 0132- 06