盲源分离算法学习笔记

盲源分离算法学习笔记


麦克风阵列算法有两大类,一类是波束形成算法,另一类是盲源分离算法,两者互有优劣。本篇博客先通过比较盲源分离和波束形成来说明盲源分离的优缺点,盲源分离的基础知识,然后分别介绍盲源分离的常见实现方式。本篇盲源分离算法主要是记录ICA算法,若无指明,BSS和ICA在本篇博客中是等价的。

优缺点(Pros & Cons)

优点

  • 盲源分离不需要目标语音VAD的先验信息。
    这个先验信息对于波束形成算法是很关键的,其准确程度直接影响性能。而盲源分离不需要做自适应滤
  • 盲源分离不需要目标语音的DOA信息。

缺点

  • 盲源分离的结果是混淆的。
    比如两个声源 s 1 s 2 s_1,s_2 ,分离出来的顺序可以是 s 1 ^ , s 2 ^ \hat{s_1}, \hat{s_2} ,也可能是 s 2 ^ , s 1 ^ \hat{s_2}, \hat{s_1}
  • 盲源分离要求输入的信号最多一个是高斯分布。
    ICA算法的假设是两个声源 s 1 s 2 s_1,s_2 是相互独立的,那么分离出来的 s 1 ^ , s 2 ^ \hat{s_1}, \hat{s_2} 也是相互独立的。如果 s 1 s_1 s 2 s_2 都是高斯分布,且相互独立。那么通过任意的正交矩阵混合后,仍然相互独立。对于ICA算法来说就有无穷多解,导致无法分开。
  • 盲源分离无法应对长混响场景。
    • 长混响场景,信号的幅度都是高斯分布。
    • 长混响场景,解卷积的长度不好设定。长度太短无法包含长混响的冲激响应。长度太长不满足相互独立的假设。
    • 长混响场景,麦克风阵列得到的信号从各个方向过来。盲源分离本质上相当于多组ABF,波束形成也无法应对这种场景。
  • 盲源分离需要多次迭代,运算量大,收敛速度慢。

猜你喜欢

转载自blog.csdn.net/s09094031/article/details/102984320
今日推荐