- 波束部分

1. MaxSNR Beamforming
根据MaxSNR Beamforming的公式有: w = a r g _ m a x w h R s w w h R n w w=arg\_max \frac{w^hR_sw}{w^hR_nw} w=arg_maxwhRn​wwhRs​w​,其中 w w w即为滤波器系数。如上的无约束最大值问题对于 w s n r = k ∗ w s n r w_{snr}=k*w_{snr} wsnr​=k∗wsnr​仍然是成立的,也就是有一个尺度上的无约束。可设定 w h R n w w^hR_nw whRn​w=1;则转化为: a r g _ m a x w h R s w 1 arg\_max\frac{w^hR_sw}{1} arg_max1whRs​w​且 w h R n w = 1 w^hR_nw=1 whRn​w=1。如上问题为一个有约束的优化问题,可通过拉格朗日乘子约束转化为无约束问题:
f ( w ) = w h R s w + λ ( w h R n w − 1 ) f(w)=w^hR_sw+\lambda(w^hR_nw-1) f(w)=whRs​w+λ(whRn​w−1)
通令求 f ( w ) f(w) f(w)的微分=0即可转化为GEVD问题: R s w = λ R n w R_sw=\lambda R_nw Rs​w=λRn​w。
设 λ 1 \lambda_1 λ1​, λ 2 \lambda_2 λ2​, w 1 w_1 w1​, w 2 w_2 w2​为( R s R_s Rs​, R n R_n Rn​)的广义特征值和对应的特征向量, λ 1 \lambda_1 λ1​> λ 2 \lambda_2 λ2​。其中 w 1 w_1 w1​即为上述问题的解。而 w 2 w_2 w2​为 m i n f ( w ) min{f(w)} minf(w)问题的解。
如果 R s R_s Rs​是秩1矩阵,即 R s = a a H R_s=aa^H Rs​=aaH。则 a a H w 1 = γ a = λ R n w 1 aa^Hw_1=\gamma a=\lambda R_nw_1 aaHw1​=γa=λRn​w1​,进而有 a = β R n w 1 a=\beta R_nw_1 a=βRn​w1​。a即为源s的RTF或者理解为导向向量(此处省去了常数因子)。

对于R_s,R_n均为正定的Hermitian矩阵来说,具有如下性质: w 1 R s w 2 = w 1 R n w 2 = 0 w_1R_sw_2=w_1R_nw_2=0 w1​Rs​w2​=w1​Rn​w2​=0。注意这也是aux-iva中常用的正交迭代约束。

根据如上性质,推导出 a H w 2 = 0 a^Hw_2=0 aHw2​=0, a a a理解为导向向量或者delay_sum的滤波器系数,其正交的 w 2 w_2 w2​理解为 a a a构造出来的BM系数。
2. gev beamforming和MVDR的关系
w m v d r = R n − 1 a a H R n − 1 a = γ w m a x s n r β w H R n w = α w m a x s n r w_{mvdr}=\frac{R_n^{-1}a}{a^HR_n^{-1}a}=\frac{\gamma w_{maxsnr}}{\beta w^HR_nw}=\alpha w_{maxsnr} wmvdr​=aHRn−1​aRn−1​a​=βwHRn​wγwmaxsnr​​=αwmaxsnr​MVDR只是gev 波束中通过约束 a = a / ( a 1 ) a=a/(a_1) a=a/(a1​)限制 a a a的大小,解决scaling问题一种方式,二者的滤波器系数方向都是一样的。
3. scale问题
一般在说scale问题的时候大家会想到的是ica类的盲源方法,但gev波束同样也存在。在1.中已经对其产生的原因进行了解释。论文中一般会有这样的一种方式来解决: g b a n = s q r t ( w H R n H R n w / N ) w H R n w g_{ban}=\frac{sqrt(w^HR_n^HR_nw/N)}{w^HR_nw} gban​=wHRn​wsqrt(wHRnH​Rn​w/N)​,看上去和MVDR很像。笔者猜测就是 w m v d r = g b a n ∗ w g e v w_{mvdr}=g_{ban}*w_{gev} wmvdr​=gban​∗wgev​(细节推导这里就不体现了),但该公式的物理意义是什么?
g b a n = ( w H R n H R n w / N ) w H R n w = λ ( w H R s H R s w ) / N λ w H R s w = ( w H R s H R s w ) / N w H R s w g_{ban}=\frac{\sqrt{(w^HR_n^HR_nw/N)}}{w^HR_nw}=\frac{\lambda \sqrt{(w^HR_s^HR_sw)/N}}{\lambda w^HR_sw}=\frac{\sqrt{(w^HR_s^HR_sw)/N}}{w^HR_sw} gban​=wHRn​w(wHRnH​Rn​w/N) ​​=λwHRs​wλ(wHRsH​Rs​w)/N ​​=wHRs​w(wHRsH​Rs​w)/N ​​
( g b a n ∗ ( w H ( R n + R s ) w ) ) 2 = w H ( R s H R s + R n H R n ) w / N (g_{ban}*(w^H(R_n+R_s)w))^2=w^H(R_s^HR_s+R_n^HR_n)w/N (gban​∗(wH(Rn​+Rs​)w))2=wH(RsH​Rs​+RnH​Rn​)w/N
因为声源 s s s和噪声 n n n并不相关,则
w H ( R s H R s + R n H R n ) w / N = w H ( R s + R n ) H ( R s + R n ) w = w H R x H R x w w^H(R_s^HR_s+R_n^HR_n)w/N=w^H(R_s+R_n)^H(R_s+R_n)w=w^HR_x^HR_xw wH(RsH​Rs​+RnH​Rn​)w/N=wH(Rs​+Rn​)H(Rs​+Rn​)w=wHRxH​Rx​w
如上有:
g b a n = ( w H R x H R x w / N ) w H R x w g_{ban}=\frac{\sqrt{(w^HR_x^HR_xw/N)}}{w^HR_xw} gban​=wHRx​w(wHRxH​Rx​w/N) ​​
w H R x w {w^HR_xw} wHRx​w解释为波束后的能量, ( w H R x H R x w / N ) \sqrt{(w^HR_x^HR_xw/N)} (wHRxH​Rx​w/N) ​为波束后的输出和mic信号相关取模。类似于公式 E ( x y ) E ( y y ) \frac{E(xy)}{E(yy)} E(yy)E(xy)​。通过这种方式可以使得波束后输出信号scale和mic端的信号一个尺度。该方法和ica中只提取一路信号后用Minimal Distortion Principle准则解决scale问题是一致的。
4. 波束的痛点
如上的推导虽然完整,但 R n R_n Rn​和 R s R_s Rs​在没有外界信息的情况下是不可获得的。一般基于mask的方式对 R n R_n Rn​和 R s R_s Rs​进行估计。 R s = E ( m a s k s ∗ X X H ) R_s=E(mask_s*XX^H) Rs​=E(masks​∗XXH) R n = E ( m a s k n ∗ X X H ) R_n=E(mask_n*XX^H) Rn​=E(maskn​∗XXH)mask表征什么样的物理意义,我们这里暂且认为 m a s k t f s = ∣ s t f ∣ / ∣ x t f ∣ mask_{tf}^s=|s_{tf}|/|x_{tf}| masktfs​=∣stf​∣/∣xtf​∣(这里只讨论幅度谱的mask)。遗憾的是mask也难以得到。当然我们也可以通道doa_mask或者nn_mask的形式获得。波束问题通过mask控制 R n R_n Rn​和 R s R_s Rs​的更新过程,而自适应对消则通过mask控制步长。下面我们讨论下盲分离是如何看待这一问题的

- 盲分离部分

1. 基础回顾
讨论波束时我们强调 R n R_n Rn​和 R s R_s Rs​的估计需要引入外界信息,但在bss框架下则通过引入源模型(source model)这一概念来实现对 R n R_n Rn​和 R s R_s Rs​的估计,可以理解盲分离是一种全盲波束,它通过对信号幅度谱进行假设建模实现混合数据的分离,而波束是假设数据为高斯分布的半盲分离/提取
盲分离的一种objective function为:
J ( W ) = ∑ k = 1 K E [ G ( y k ) ] − ∑ w = 1 N w l o g ∣ d e t W ( w ) ∣ J(W)=\sum^K_{k=1}E[G(\mathbf{y}_k)]- \sum_{w=1}^{N_w}log|detW(w)| J(W)=∑k=1K​E[G(yk​)]−∑w=1Nw​​log∣detW(w)∣,其中 G ( y k ) = − l o g p ( y k ) G(\mathbf{y}_k)=-logp(\mathbf{y_k}) G(yk​)=−logp(yk​)。
应用辅助函数(这部分大家还是去看论文吧),则有: J ( w ) < = E [ G ′ ( r w ) / r w ∗ ∑ w = 1 N w ∣ y k ( w ) ∣ 2 ] + R k J(w)<=E[G^{'}(r_w)/r_{w}*\sum^{N_w}_{w=1}|y_k(w)|^2]+R_k J(w)<=E[G′(rw​)/rw​∗∑w=1Nw​​∣yk​(w)∣2]+Rk​。
J ( w ) < = ∑ w = 1 N w w h V k ( w ) w + R k , V ( k ) = E [ G ( y ) / r ∗ x ( w ) x ( w ) h ] J(w)<=\sum_{w=1}^{N_w}w^hV_k(w)w+R_k,V(k)=E[G(y)/r*x(w)x(w)^h] J(w)<=∑w=1Nw​​whVk​(w)w+Rk​,V(k)=E[G(y)/r∗x(w)x(w)h]

  • ica: p ( y ) = α e − ( y ) 2 / 2 p(y)=\alpha e^{-(y)^2/2} p(y)=αe−(y)2/2,时不变高斯模型, G ( y ) ′ / y = 1 G(y)^{'}/y=1 G(y)′/y=1

  • ica: p ( y ) = α e − ∣ y ∣ / 2 p(y)=\alpha e^{-|y|/2} p(y)=αe−∣y∣/2,laplace模型, G ( y ) ′ / y = 1 / ∣ y ∣ G(y)^{'}/y=1/|y| G(y)′/y=1/∣y∣

  • ica: p ( y t f ) = α e − ( y t f ) 2 / r t f p(y_{tf})=\alpha e^{-(y_{tf})^2/r_{tf}} p(ytf​)=αe−(ytf​)2/rtf​,时变高斯模型, G ( y ) ′ / y = 1 / r t f G(y)^{'}/y=1/r_{tf} G(y)′/y=1/rtf​
    如上看到,如果假设源信号为时不变高斯分布,则 E [ G ′ ( r w ) / r w ∣ x k ( w ) ∣ 2 ] = E ∣ x k ( w ) 2 ∣ E[G^{'}(r_w)/r_{w}|x_k(w)|^2]=E|x_k(w)^2| E[G′(rw​)/rw​∣xk​(w)∣2]=E∣xk​(w)2∣,这也是波束中协方差阵的形式。 平时我们说bss问题是最大化非高斯准则,如果源信号是高斯信号则是不可分的(其对应为 J ( w ) J(w) J(w)函数很难优化, w w w找不到一个优化方向)。这句话成立的前提是我们并不知道哪段是语音,哪段是干扰,需要用全盲的方法去做,而对于半盲的方法类似波束,则可以提取出期望信号。这里再多提一句,时变高斯模型组成的协方差阵在WPE中使用。回顾到波束部分的协方差阵估计,在已知mask的情况下,假设源数据为时变高斯信号,则加权协方差阵的形式为: R n = E ( 1 / r t f ∗ X X H ) = E ( X X H / ( m a s k 2 ∗ ∣ ∣ X ∣ ∣ 2 ) ) R_n=E(1/r_{tf}*XX^H)=E(XX^H/(mask^2*||X||^2)) Rn​=E(1/rtf​∗XXH)=E(XXH/(mask2∗∣∣X∣∣2))。
    2. 优化迭代
    对 J ( w ) J(w) J(w)进行微分=0操作则有: w l H V l w k = δ l k w_{l}^HV_lw_k=\delta_{lk} wlH​Vl​wk​=δlk​即典型的Hybrid Exact-Approximate Joint Diagonalization [HEAD] problem。如果 V l V_l Vl​按照时不变高斯分布组成的协方差阵形式,该问题很难优化,而在其他数据分布下可通过ip,ip2,iss,iss2等方法进行迭代求解,具体可参考文献。
    两个源两个mic的情况下(对于多源问题同样可以转化为GEVD问题来求解,这里不进行推导)满足:
    w 1 H V 1 w 1 = 1 w 1 H V 1 w 2 = 0 w_1^HV_1w_1=1 \qquad w_1^HV_1w_2=0 w1H​V1​w1​=1w1H​V1​w2​=0
    w 2 H V 2 w 1 = 0 w 2 H V 2 w 2 = 1 w_2^HV_2w_1=0 \qquad w_2^HV_2w_2=1 w2H​V2​w1​=0w2H​V2​w2​=1
    由上可得:
    w 1 V 1 = λ w 1 V 2 w_1V_1=\lambda w_1V_2 w1​V1​=λw1​V2​,也就是和maxSnr波束类似的GEVD问题的解析解形式。选择最大特征值对应的特征向量则可表征为: f ( w ) = m a x w H V 1 w w H V 2 w f(w)=max\frac{w^HV_1w}{w^HV_2w} f(w)=maxwHV2​wwHV1​w​, V 1 V_1 V1​对应的矩阵为语音阵, V 2 V_2 V2​对应的矩阵为噪声阵。根据如式依次迭代最终便分离出两个源信号。由于初始化的问题,在整个全盲求解过程中最终分离的结果顺序未知。
    3. scale问题和source image
    根据波束篇已经讨论了一种scaling问题的求解方式且适用于盲分离,这里讨论另外一种形式。已知分离矩阵 W W W(存在scale问题),则 A W = 1 AW=1 AW=1约束下可以得 A = W − 1 A=W^{-1} A=W−1。A表征源S到mic的传递函数。对于 A . ∗ W X = [ y 11 y 12 ; y 21 y 22 ] A.*WX=[y_{11} \quad y_{12};y_{21} \quad y_{22}] A.∗WX=[y11​y12​;y21​y22​]反应的是[ S 1 S 2 S_{1} \quad S_{2} S1​S2​]到[ m i c 1 m i c 2 mic_{1} \quad mic_{2} mic1​mic2​]的接收信号,即source image,至此scale问题解决。其中 A = [ a 11 a 12 ; a 21 a 22 ] A=[a_{11} \quad a_{12};a_{21} \quad a_{22}] A=[a11​a12​;a21​a22​]。 a 11 + a 12 a_{11}+a_{12} a11​+a12​反应的是对 S 1 S1 S1进行delay_sum为90度的波束。 a 11 − a 12 a_{11}-a_{12} a11​−a12​反应的是对 S 1 S1 S1进行差分的波束。即在盲源问题中可以分别求得源S到mic端的接收信号,对于波束问题同样也可以得到source image,只是beamforming 很少进行这样的讨论。在有些论文中我们看到对source image后再进行固定波束delay_sum的处理,是一种基于已知数据方向后的加权修正方式。
    4. BSS框架下的扩展讨论
    通过控制 r t f r_{tf} rtf​即控制了输出结果,和波束问题一样但加权的系数不同。论文通过导向向量 [ e i w τ 1 e i w τ 2 . . . ] [e^{iw\tau_1} \quad e^{iw\tau_2}...] [eiwτ1​eiwτ2​...]加权到协方差阵的方式个人认为并不合适,由于导向向量的形式并不能真实反映RTF,加入的不准确先验会影响真实数据构成协方差阵的结果,还不如通过先验 r t f r_{tf} rtf​来的直接,比如基于doa信息计算doa_mask来估计 r t f r_{tf} rtf​(大概估计结果就行,不需要完全准确),bss模型计算出来的 r t f r_{tf} rtf​和先验 r t f r_{tf} rtf​加权等。对于ive,ilrma,mnmf,和bss和网络的结合这里不进行讨论。

  • Minimal Distortion Principle for Blind Source Separation

波束和BSS问题中的gevd相关推荐

  1. 基于matlab仿真相控天线阵列在波束成形MIMO-OFDM系统中的使用(附源码)

    一.前言 本例显示了相控阵在采用波束成形的MIMO-OFDM通信系统中的使用.它使用通信工具箱和相控阵系统工具箱中的组件,对组成发射器和前端接收器组件的辐射元件进行建模,用于MIMO-OFDM通信系统 ...

  2. linux代码段映射,bss,data,text,rodata,堆,栈,常量段与其各段在物理存储中关系

    本文想从linux出发[目前还想可不可以从51单片机出发],解答程序代码和各种数据结构是如何存储(映射)到存储区的. 目前未完成整理,还是初稿的想法.bss段: BSS段(bsssegment)通常是 ...

  3. C/C++中.bss段的解释

    BSS(Block Started by Symbol)这个词最初是UA-SAP汇编器(United Aircraft Symbolic Assembly Program)中的一个伪指令,用于为符号预 ...

  4. C:谈谈内存分配中的(.data)段和(.bss)段的区别?为什么要分.data段和.bss段?

    区别: .data段: 存放已初始化的全局变量.在编译器编译的时候,会给已初始化的数据分配内存空间,数据保存在目标文件中. .bss段: (bss是英文Block Started by Symbol的 ...

  5. elf中的bss data

    一般C语言的编译后执行语句都编译成机器代码,保存在.text段:已初始化的全局变量和局部静态变量都保存在. data段:未初始化的全局变量和局部静态变量一般放在一个叫."bss"的 ...

  6. 通信中的分式规划规划(part I)——功率控制、Beamforming、能量效率

    文章目录 前言 FP背景 FP问题形式 经典的FP技术 1.Charnes-Cooper Transform 2.Dinkelbach's Transform 一种新的变换方法:二次变换(Quadra ...

  7. 链接全局变量再说BSS段的清理

    废话就不多说了,开始... 再说BSS段的清算 以前遇到一个裸机程序不能改变全局变量值的问题,最后模模糊糊处理了:手动添加了一个链接脚本,清算了BSS段.问题得以处理,就认定是BSS段清算的问题,全局 ...

  8. 程序在内存中运行的奥秘

    简介 当丰富多彩的应用程序在计算机上运行,为你每天的工作和生活带来便利时,你是否知道它们是如何在计算机中工作呢?本文用形象的图表与生动的解释,揭示了程序在计算机中运行的奥秘. 内存管理是操作系统的核心 ...

  9. 自制操作系统Antz day08——实现内核 (中) 扩展内核

    Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs. ...

最新文章

  1. DeepFake疑遭审查
  2. POJ 2010 Moo University - Financial Aid(堆维护滑窗kth,二分)
  3. 关于PIP 总结和记忆巩固
  4. 冒死揭秘安利_赵丽颖新剧开播备受争议?冒死安利
  5. 曲靖沾益区计算机学校,【曲靖市沾益区职业技术学校-网址】2021招生简介|怎么样...
  6. webstrom使用方法
  7. 个人理财有哪些基本原理和方法?
  8. linux mpeg-4,嵌入式MPEG-4解码系统的设计与实现,嵌入式MPEG-4解码系统,嵌入式Linux,视频码流,P...
  9. Python数据存储:pickle模块的使用讲解(测试代码)
  10. 日本的危机感:想战胜中美,要举全国之力培养AI人才
  11. 【论文写作】课程指导平台的开发中需求分析如何写
  12. SWUST OJ Coin Changing
  13. MySQL主从同步的多种模式
  14. java毕业设计彩妆销售网站Mybatis+系统+数据库+调试部署
  15. linux电子表格工具,Linux系统办公一条龙之电子表格Calc
  16. 1660 super安装tensorflow1.15
  17. 国开电大 钢--混凝土组合结构 形成性考核1-4
  18. 关于修改WIFI代理后手机部分APP无法使用的解决办法
  19. Ubuntu 下查看DNS地址
  20. 乐普生物下周三上市:最高募资近10亿港元 年亏将超10亿

热门文章

  1. 某头部证券机构云化与信创双转型深度解析|信创专题
  2. 云天视界传媒浅谈无人机航拍技巧
  3. Java实现随机生成车牌号
  4. linux休眠唤醒后qt无法启动,Ubuntu 18.04 休眠后无法唤醒的解决办法
  5. 虚幻引擎5.1现已发布!
  6. 每天学命令deletePlaceBlockage
  7. UnityShader学习教程之<矩阵的左乘还是右乘所导致的效果问题>
  8. 驱动学习(十)poll机制
  9. React 中 TypeScript 和装饰器及 Hooks
  10. Mac触摸板鼠标自定义手势---Jitouch使用教程,让你的效率飞起来(使用过程以及遇到的坑)