基于自然梯度的ICA算法主要利用相互独立的随机信号的联合概率密度是各自概率密度的乘积这一特性,建立了等独立性度量原则,具体实现如下。
首先,输出信号
相互独立,则其概率密度满足
上式中 表示 的概率密度函数,可以表示为
在该算法中,利用函数 与 的KL熵来作为算法的代价函数,若这两个函数差异越小,则其KL熵越小,其定义如下
该算法实现的系统框图如图所示
图 2 基于自然梯度的ICA算法系统框图
在进行信号处理前,首先要对信号进行白化,目的是消除观测信号之间相关性,由于语音信号是非高斯的分布,因此不相关不一定相互独立。白化可以提升算法的分离效果,信号白化使用矩阵的奇异值分解,假设原始信号长度为τ:
XN×τ=SN×N∙VN×τ∙Dτ×τ
白化后的信号X’表示为:
XN×τ'=SN×NH∙XN×τ=VN×τ∙Dτ×τ
经过公式推导,可以得到一个分离矩阵的迭代计算公式
其中
表示基于ICA的活动函数,文献中取 。η(k)表示学习率,文献中取0.05。 是对第K次迭代得到的输出S’(K)的独立性进行量化,若输出S’(K)中元素相互独立,则 。
该算法有两个优点一是算法不受具体信道状况影响(但A必须满秩),二是在迭代过程中分离矩阵W不会变成奇异矩阵。但是由于该算法需要迭代计算,
而且迭代收敛速度较慢,该算法的复杂度比较高。
根据文献中的仿真结果可以看出,当迭代次数较大时,基于自然梯度的ICA算法的分离性能相对还可以接受的。