论文

更新时间:2024-05-01 12:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

山东建筑大学毕业论文

1前 言

1.1盲源分离技术简介

盲源分离是指在信号的理论模型和源信号无法精确获知的情况下,如何从混迭信号(观测信号)中分离出各源信号的过程。盲源分离和盲辨识是盲信号处理的两大类型。盲 源分离的目的是求得源信号的最佳估计,盲辨识的目的是求得传输通道混合矩阵。 1986年,法国学者Jeanny Herault和Christian Jutten提出了递归神经网络模型和基于Hebb学习律的学习算法,以实现2个独立源信号混合的分离。这一开创性的论文在信号处理领域中揭开了新的一章,即盲源分离问题的研究。其后二十几年来,对于盲信号分离问题,学者们提出了很多的算法,每种算法都在一定程度上取得了成功。从算法的角度而言,BSS算法可分为批处理算法和自适应算法;从代数函数和准则而言,又分为基于神经网络的方法、基于高阶统计量的方法、基于互信息量的方法、基于非线性函数的方法等。尽管国内对盲信号分离问题的研究相对较晚,但在理论和应用方面也取得很大的进展。清华大学的张贤达教授在其1996年出版的《时间序列分析——高阶统计量方法》一书中,介绍了有关盲分离的理论基础,其后关于盲分离的研究才逐渐多起来。近年来国内各类基金支持了盲信号处理理论和应用的项目,也成立了一些研究小组。

虽然盲源分离理论方法在最近20年已经取得了长足的发展,但是还有许多问题有待进一步研究和解决。首先是理论体系有待完善。实际采用的处理算法或多或少都带有一些经验知识,对于算法的稳定性和收敛性的证明不够充分。盲源分离尚有大量的理论和实际问题有待解决,例如多维ICA问题、带噪声信号的有效分离方法、如何更有效地利用各种先验知识成功分离或提取出源信号、一般性的非线性混合信号的盲分离、如何与神经网络有效地结合、源信号的数目大于观察信号的数目时ICA方法等。另外,盲源分离可同其他学科有机结合,如模糊系统理论在盲分离技术中的应用可能是一个有前途的研究方向;盲源分离技术与遗传算法相结合,可以减少计算复杂度,提高收敛速度。如何有效提高算法对源信号统计特性的学习和利用也需要进行深入研究。在硬件实现方面,盲分离问题也存在着极大的发展空间,例如用FPGA实现等。 经过人们将近20年的共同努力,有关盲分离的理论和算法得到了较快发展,包括盲分离问题本身的可解性以

I

山东建筑大学毕业论文

及求解原理等方面的基本理论问题在一定程度上得到了解决,并提出了一些在分离能力、内存需求、计算速度等方面性能各异的算法。由于该问题的理论研究深度和算法实现难度都较大,目前对于盲分离的研究仍然很不成熟,难以满足许多实际应用需求,许多理论问题和算法实现的相应技术也有待进一步探索。

总之,盲源分离(BSS:Blind source separation),是信号处理中一个传统而又极具挑战性的问题,BSS指仅从若干观测到的混合信号中恢复出无法直接观测的各个原始信号的过程,这里的“盲”,指源信号不可测,混合系统特性事先未知这两个方面。在科学研究和工程应用中,很多观测信号都可以看成是多个源信号的混合,所谓“鸡尾酒会”问题就是个典型的例子。其中独立分量分析ICA(Independent component analysis)是一种盲源信号分离方法,它已成为阵列信号处理和数据分析的有力工具,而BSS比ICA适用范围更宽。目前国内对盲信号分离问题的研究,在理论和应用方面取得了很大的进步,但是还有很多的问题有待进一步研究和解决。

盲源信号分离是一种功能强大的信号处理方法,在生物医学信号处理,阵列信号处理,语音信号识别,图像处理及移动通信等领域得到了广泛的应用。 1.2独立分量分析技术简介

1.2.1独立分量分析技术的历史及发展概况

独立分量分析( ICA —Independent Component Analysis) 问题最早是由Herault 和Jutten 在1983 年提出 ,后来陆续有文章讨论ICA 的计算,不过当时有的文章称其为盲源分离问题,也就是提出独立分量分析的初衷。Comon于1994年比较系统地阐述了ICA的概念, 并基于累积量( 高阶统计量) 直接构造了代价函数. Be ll和Se",jnow sk i[ 2]于1995年从信息论的角度重新阐述了盲信源分离问题, 并进一步提出神经网络输出信号差熵的最大化就意味着输入与输出之间的互信息的最大化, 同时他们提出了随机梯度下降的学习算法来实现差熵的最大化, 通常被称为最大熵ICA 算法( In fom ax- ICA ). 此后, T.W . Lee[ 3]等于1997 年扩展了Bell和Se jnowsk i的工作, 发展成为扩展ICA算法. 该算法同时适用于超高斯和亚高斯信号的情况. 目前应用比较成功的主要是这一类基于神经网络自适应学习的ICA算法. 另外也有从最大似然估计(MLE )、投影追赶法( explo ra to ry pro jection pursuit)、非线性PCA 等思发展来的ICA算法, 更为深入的研究表明, 这些思路和算法之间大多存在着本质上的相似性甚至一致性。独立分量分析是针对相互统计独立的信号源经线性组合产生的混合信号,实现混合信号中各独立信号分量的分离。

II

山东建筑大学毕业论文

1.2.2独立分量分析技术研究内容

独立分量分析最初是用来解决“鸡尾酒会”问题(Cocktail-Party Problem)的,“鸡尾酒会”问题是指人可以在嘈杂环境中识别自己感兴趣声音的能力,即人具有语音分离的能力,是稳健语音信号处理中的一个重要研究方向。语音分离任务被看成是一种盲信号分离问题,利用不同语音源信号的相互独立性从输入的混合语音信号中分离出所需要的干净语音信号。最大熵算法、独立分量分析理论、最小互信息量算法和最大似然盲信号分离算法是几种常用的盲信号处理算法。

先举一个简单的例子解释盲源分离问题。假设一间房内有两个人同时说话,在不同位置放置了两个话筒,现在要将两个人的说话分离出来。先将问题改写成数学形式,假设话筒采集的信号可分别表示为x1 ( t) , x2 ( t) ,两个人的说话可分别表示为s1 ( t) , s2 ( t) , t 表示时标, 则该盲源分离问题可用 如下方程来描述:

x1 ( t) = a11 s1 ( t) + a12 s2 ( t) (1) x2 ( t) = a21 s1 ( t) + a22 s2 ( t) (2)

其中系数a 是与话筒和说话人距离相关的参数。

问题看起来就像解一组二元方程一样,如果我们知道a 的值,很容易就可解出s1 ( t) , s2 ( t) ,但问题是在已知x1 ( t ) , x2 ( t ) , 不知道a 的情况下, 如何求解s1 ( t) , s2 ( t) 。 独立分量分析就是在不知道a 的情况下,根据源信号统计独立这一个前提,找到一个 分解矩阵B,使得y=BTx成为声音信号s的一个近似估计值。只是估计出的各个信号与源信号的排列顺序不一致,而且由于在线型变换中丢失了信号的能量信息,各信号与源信号的幅度也有所差别,这种分离信号幅值及顺序的不确定性称为ICA问题的不确定性,但这种不确定性对实际问题来说通常并不重要;此外为使ICA问题有确定的解,就必须有一些符合工程应用的假设和约束条件,即:各个源信号都为零均值的实随即信号,且任意时刻均相互统计独立;至多只允许一个源信号sj的概率密度函数是高斯函数;各传感器引入的噪声信号很小,可以忽略不计。

ICA处理过程实际上使分离出的独立分量最大程度地逐步逼近各个源信号,即建立目标函数以寻优来实现逼近。

1.2.3独立分量分析的应用研究现状

独立分量分析(ICA:Independent ComponentAnalysis)是由盲信源分解技术发展的多道信号处理方法。是将多道观测信号根据统计独立的原则,通过优化算法分解为若干独

III

山东建筑大学毕业论文

立成分,实现信号的增强和分解。其基本含义是将多道观测信号根据统计独立的原则通过优化算法分解为若干独立成分,从而实现信号的增强和分解,在语音识别、通信、图像处理、医学信号处理等领域尤其受到关注。

独立分量分析(independent component analysis,ICA)是近年来发展起来的一种新的信号处理技术。基本的ICA是指从多个源信号的线性混合信号中分离出源信号的技术。除了已知源信号是统计独立外,无其他先验知识,ICA是伴随着盲信源问题而发展起来的,故又称盲分离。 在复杂的背景环境中所接收的信号往往是由不同信源产生的多路信号的混合信号。例如,几个麦克风同时收到多个说话者语音信号;在声纳、阵列及通信信号处理中,由于耦合使数据相互混叠;多传感器检测的生物信号中,得到的也是多个未知源信号的混叠。ICA方法是基于信源之间的相互统计独立性。与传统的滤波方法和累加平均方法相比,ICA在消除噪声的同时,对其它信号的细节几乎没有破坏,且去噪性能也往往要比传统的滤波方法好很多。而且,与基于特征分析,如奇异值分解(SVD)、主成分分析(PCA)等传统信号分离方法相比,ICA是基于高阶统计特性的分析方法。在很多应用中,对高阶统计特性的分析更符合实际。 独立分量分析在通信、阵列信号处理、生物医学信号处理、语音信号处理、信号分析及过程控制的信号去噪和特征提取等领域有着广泛的应用,还可以用于数据挖掘。 1.3本文的研究工作

声音信号包含了丰富的声源信息,由于其测量简单方便,因此一直受到人们的重视. 然而,由于声音传播时的混合及反射作用,很难从测量的混合信号中提取所包含的有用信息,这在很大程度上制约了声音测量技术在实际中的广泛应用。 因此,对混合声音信号进行分离就成了人们不懈追求的目标。

由于事先未知声源信号以及声信号混合方式, 单单根据混合声信号来求解声源信号显得非常困难. 然而由于各个声源之间是独立的, 根据声源独立性这一条件, 从混合的声音信号中估计声源信号的过程, 被称为盲源分离( blind source separation, BSS ). 独立分量分析( independen t com ponent ana lysis, ICA )是一种实现盲源分离 的统计信号处理方法.

本文主要研究独立分量分析算法在语音分离中的应用,针对实际语音信号处理过程中,常常需要从混合声音信号中提取某个或几个特定语音信号,消除其它干扰或噪声信号的实际问题,探讨用独立分量分析法来实现对混合声音信号有效分离,从而去除干扰和噪声。中英文相关文献资料若干,提供相关独立分量分析的Matlab工具箱,混合声音信

IV

山东建筑大学毕业论文

号可实际采样得到。

2 ICA的基本原理和FastIca算法

2.1 ICA 的模型

在统计独立性的假设下,独立分量分析(ICA)对观测到的多路混合信号进行盲分离,以期较好地分离出隐含在混合信号中的独立源信号。ICA理论的发展可以追溯到20世纪90年代初期,法国学者C.Jutten和J.Herault[6]等人首次提出了ICA的概念,直到90年代中期,ICA的理论和算法研究才真正的得以发展并受到国际信号处理界的广泛关注,P.Comon于1994年第一个将独立分量分析方法应用于盲源分离。

独立分量分析最初是用来解决“鸡尾酒会”问题[7](Cocktail-Party Problem)的,现在用数学语言来描述ICA问题,设x=(x1,x2,?,xm)T为m维零均值随即观测信号向量,它是由n个未知的零均值独立源信号s=(s1,s2,?,sn)T线型混合而成的,这种线型混合模型可表述为

X=Hs=?j?1hjsj,j?1,2,3,...,n (1.1)

式中:H=[h1,?,hn]为m×n阶满秩源信号混合矩阵;hj为混合矩阵的n维列向量。式(1.1)可以写成矩阵形式,即

维列向量. 式( 1) 可以写成矩阵形式, 即

n?????x1(t)???x2(t)???.??.????.???xm(t)??

V

山东建筑大学毕业论文

?????s1(t)????s2(t)? ?.??.???.????sm(t)??

式中:每个混合信号xi(t)(i=1,?,m)都可以是一个随机信号,其每个观测值xi(t)是在t时刻随机信号xi的一次抽样。由式(1.2)看出,t时刻的各观测数据xi是由t时刻各独立源信号sj(t)的值经不同hij线型加权得到。独立分量分析就是在s和H都未知的情况下,根据源信号统计独立这一个前提,找到一个分解矩阵B,使得y=BTx成为声音信号s的一个近似估计值。只是估计出的各个信号与源信号的排列顺序不一致,而且由于在线型变换中丢失了信号的能量信息,各信号与源信号的幅度也有所差别,这种分离信号幅值及顺序的不确定性称为ICA问题的不确定性,但这种不确定性对实际问题来说通常并不重要;此外为使ICA问题有确定的解,就必须有一些符合工程应用的假设和约束条件,即:各个源信号都为零均值的实随即信号,且任意时刻均相互统计独立;至多只允许一个源信号sj的概率密度函数是高斯函数;各传感器引入的噪声信号很小,可以忽略不计。

ICA处理过程实际上使分离出的独立分量最大程度地逐步逼近各个源信号,即建立目标函数以寻优来实现逼近。负熵是从熵的概念中引申出来的,输出y的负熵定义为

Jg(y)?H(yg)?H(y)

式中:yg是与y方差相同的高斯随即向量。

负熵的特点是它对于y的任意线型变换保持不变,而且总是非负的,只有当y是高斯分布时才为零,基于这一特点,负熵是一个很好的目标函数。FastICA[9,10]采用近似负熵作为判据,采用了如下近似公式:

Jg(y)?(E[G(WTX)]?E[G(yg)])2

经过预白化处理以后,由牛顿迭代定理经过反复迭代,依次求出权值向量W1T,W2T,...,

WnT最后得到ICA的分离矩阵W。

总之,ICA 是在独立源s 和混合矩阵A 未知前提下,找到分解矩阵W,使y=Wx 是源信

VI

山东建筑大学毕业论文

号s 的近似估计值。用常规信号处理手段无法解决盲源分离。 2.2 ICA 的假设和约束条件

各独立分量s 不能直接观测,混合矩阵A 也未知,唯一可利用的信息只有传感器观测到 的随机向量x。若无任何条件,仅由x 估计出s 和W,必为多解。 故应给予假设和约束条件:

(1) 源信号必须具有数学上的统计独立性,即各分量间是相互统计独立; (2) 源信号必须是非高斯分布或最多只有一个源信号为高斯; (3) 为简化模型,假定已知信号和源信号的数目相同,即n=m。 2.3 分离准则

ICA 理论及其分离算法的出发点是如何度量分离分量间的独立性,目前独立性的度量准则主要包括:峭度、差熵、负熵和互信息[1]。由中心极限定理知,随机量由许多相互独立的随机量之和组成,各独立的随机量具有有限均值和方差,无论何种分布,该随机量必接近高斯分布。故可在分离过程中,通过对分离结果非高斯性的度量来监测分离结果间的相互独立性。当非高斯性度量达到最大时,表明已完成对各独立分量的分离。在相同协方差阵的概率密度函数中,高斯分布具有最大的信息熵。因此将任意概率密度函数p(y)与具有相同协方差阵的高斯分布pG(y) 间的KL 散度作为概率密度非高斯程度的度量,称为负熵: J(y)=H(ygauss)-H(y) (3)

式中ygauss 是与y 具有相同方差的高斯分布的随机量,H(y) 为随机变量的信息熵: H(y) = ?∫ p(y) log p(y)dy (4)

由式 (3) 可得,当y 具有高斯分布时,J(y)=0。

y 的非高斯性越强,J(y) 值越大。因此最大化y 的非高斯性可求解ICA 估计问题。 2.4线性独立分量分析

为简便起见, 假定观测与独立分量个数相同,即假设n 个观测变量x1 , x2 , ?, xn 由n 个独立分量线性组合而成,观测变量和独立分量均为随机变量。对于t 时刻的n 个观察值, j = 1 , ?, n ,有 xj

?+ ajnSn (3)

令x = [ x1 , x2 , ?, xn ] T ,

s =[ s1 , s2 , ?, sn ] T , A =[ aij ] ,以下记号中, 小写黑体为行(列) 向量,

VII

山东建筑大学毕业论文

大写黑体为矩阵,正常小写为元素或单变量。 将式(3) 写成矩阵形式 x = A·s (4)

则方程(4) 所描述的统计模型称为独立分量分析。ICA模型是一个信号产生模型, 描述观测变量xi是如何由独立分量si 产生,由于s 无法直接观测,故称为潜变量。称A 为混合矩阵。与A 相对应,为求得独立分量,需要一个解混合矩阵W。ICA 模型可参见图1。

u = W·x (5)

s1 A x1 W u1 u2

s2 x2 sn

xn un 图1 线性ICA 模型

对于线性混合的解混合模型,通常对问题作如下假设: ①观测变量的个数大于或等于独立源的个数; ②s 之间相互独立;

③至多有一个独立源满足高斯分布的; ④没有噪声,或者噪声能量很小。

从以上定义可以看出,第一节所提出的问题完全可以用ICA 的办法来求解。假定观测与独立分量个数相同使得A 和W 为方阵,如果独立分量个数少于观测分量, 则A 和W 将不是方阵, 此时涉及到矩阵的逆均为伪逆。 2.5 线性独立分量分析算法 2.5.1目标函数与算法

估计独立分量分析数据模型时,通常先设计一个目标函数,然后采用某种优化算法使之极大或极小。ICA 方法可以归结为如下式子: ICA 方法= 目标函数+ 优化算法。

目标函数给定后,完全可以采取经典的优化算法最优化目标函数,如梯度法,拟牛顿法等等。ICA方法的特性取决于等式右边的两项。其中ICA 方法的统计特性(如一致性、鲁棒

VIII

山东建筑大学毕业论文

性) 取决于目标函数的选取;算法特性(收敛速度,内存要求) 取决于优化算法的选择。 2.5.2独立分量分析的预处理

前面几节介绍了ICA 方法的估计原则,在应用ICA 之前,通常要对数据作些预处理,使得ICA 估计更加简单,更符合前面约定的条件。 中心化:

中心化其实就是去均值,去均值只是为了简化ICA 的估计算法,并不是说ICA 算法不能估计出均值。用经过去均值处理的数据估计独立分量s ,在把s 的均值A - 1 m 加回去即可, m 为x 的均值。 白化:

将观测向量x 通过一个白化滤波器, 得到白色的.x 。.x 的元素是不相关的, 而且具有单位方差。也就是说.x 的协方差矩阵是一个单位阵。 通常白化处理采用特征值分解的办法。 2.6 快速ICA算法

目前,流行的ICA算法大致可以分为两大类:一类是基于批运算某种相关的判据函数,这些算法一般需要进行复杂的矩阵或向量运算。另一类是基于随机梯度方法的自适应算 法,这些算法可以用神经网络实现,主要问题是运算收敛速度慢,且其学习速率参数的正确选取对收敛起决定性的作用。鉴于上述诸多算法的研究分析,并根据盲源分离的基本任务,本文给出的FastICA算法,基于固定点迭代理论寻找非高斯性最大值,它每次只从观测信号中分离一个独立分量,是ICA的一种快速算法。FastICA算法分为三步:

(1) 观测信号x进行去均值预处理。

(2) 通过线性改变观测信号x得到一个新的白噪声化变量x′,使得x′的各个分量不关联。白噪声化使x′新的混合矩阵A ′正交化。白噪声化的过程如下:

x′= Cx = CA s = A ′s (4) (3) 用Fast ICA算法分离出s的各个分量。

前两步可以看成是对观测信号的预处理, 通过去均值和白化可以简化ICA算法。要提取独立分量、得到源信号, 完成步骤(3) ,需要进一步使用如下算法: (3. 1) 初始化w (0) ,令其模等于1,置k = 1; (3. 2) w ( k) = C- 1 E{ X (w ( k - 1) T X) 3 } - 3w ( k - 1) ,期 望值可由大量x向量的采样点计算出来; (3. 3) 用‖w ( x) ‖去除w ( k) ; IX

山东建筑大学毕业论文

(3. 4) 如果| w ( k) Tw ( k - 1) | 不是足够接近1,那么令

k = k + 1,返回第(2) 步,否则输出w ( k) 。

算法最后给出的向量w ( k) 等于正交混合矩阵A 中的一列,在信号分离中意味着w ( k) 分离了其中的一个非高斯信号w ( k) T x ( t) , t = 1, 2, ?等于其中的一个源信号。 Fast ICA是为得到wT x并使其达到非高斯最大化的定点迭代法。FastICA数据模型与普通的ICA算法相比,收敛速度非常迅速。对比基于梯度的算法, FastICA算法没有步长常数的选取。FastICA 算法具有神经算法的大多数优点:它是并行、分布式的,计算量小,而且要求的内存空间较少。

2.2 ICA 在声音分离中的应用

选择一组语音信号与音乐信号混叠。在安静环 境下,用麦克风单独录下一段音乐,生成波形文件 Signal1.wav;同样环境下录下语音信号。实验者以 平稳语速从1 数到10,生成波形文件Signal2.wav。 该文件采样频率为16kHz、双声道,以保持语音或 噪声信号不失真。程序中将2 波形文件打开、取出 样本、混合。则混合矩阵随机产生。

2. 2 算法实现

(1) 以列向量形式读入源信号s1 , s2 ,波形如图2。

信号源1: [ s1, FS,NB ITS] =wavread ( ′1. wav′, 160000) 信号源2: s2 =wavread ( ′2. wav′, 160000) (2) 使其方差为1,均值为0后,经归一化处理,得到归 一化频谱。

(3) 随机生成混合矩阵A (A = rand (2) ) ,随机混合两输

入信号,生成混合语音文件X (X = A 3 [ s1′; s2′] ) , 混合语音 的波形如图3。

A = X

山东建筑大学毕业论文

0. 964 6 0. 552 0 0. 013 5 0. 934 3

(4) 使X方差为1、均值为0,得到归一化频谱。 (5) 对混合语音进行白化预处理, 得到白化信号 W h itenedS ig。

分为三步:先产生协方差阵cova rianceM a trix = cov (X′, 1) ; 再求出协方差的特征向量和特征值[ E, D ] = eig ( cova rianceM a trix) ; 对信号进行白化处理[W h itenedS ig, W h itenM a trix ] = wh itenS ig (X, E, D) ; (6) 对白化信号采用改进的Fast ICA计算,得到恢复的原 始信号S以及对应的加权矩阵W 。若输入为N个信号,则恢复 出N 个信号。

W = - 0. 072 5 - 0. 997 4 - 0. 997 4 0. 072 5

[ S ig,W eigh tM a trix ] = ffpICA (W h itenedS ig, ′m ethod′, ′symm ′, ′non linfunc′, ′tanh′) 。相关参数说明: ffpICA 是文中提 及的改进的“Fast ICA”函数; m ethod = symm表示采用对称正 交法; non linFunc = pow3表示采用的非线性函数为g ( y) = y^3,其中tanh 表示g ( y) = tanh ( a13 y) , a1 为非线性函数 tanh中调用的值; m axN um Itera tion 最大迭代次数; OverV a lue 决定迭代结束的数值。

恢复信号均值为0、方差为1,并生成分离后的语音文件, 分离出的语音波形如图4。

XI

山东建筑大学毕业论文

XII

本文来源:https://www.bwwdw.com/article/w6qg.html

Top