Page 153 - 《应用声学》2023年第3期
P. 153

第 42 卷 第 3 期           张锦惠等: 有源降噪头靠中一种分布式虚拟传声器优化方法                                          591


                          表 1   3 种算法流程图                       了 (Q − 1)JM 次乘加运算。因此,所提算法能够有
                Table 1  Pseudo code for three different        效降低算法的运算复杂度。为了更好地分析所提
                algorithms                                     算法在降低运算复杂度方面的优势,将所提算法与
                                                               MRMT算法以及DRMT算法的运算复杂度绘制为
             参数设置:µ, M, L
                                                               如图 4 所示曲线。其中图 4(a) 假设系统的次级声
                              ∑ I−1  T
             计算输出信号:y j (n) =      w (n)x i (n)                源、物理传声器、虚拟传声器的个数均为 2 个,以
                                i=0  ji
             估计虚拟传声器处的误差信号:                                    此分析这种条件下滤波器缓存长度对算法运算复
             for p = 1 : P:                                    杂度的影响。图 4(b) 假设滤波器的阶数为 256 阶,
                             ∑ J−1                             并且假设次级声源、物理传声器、虚拟传声器的个
             ˆ                     T
             d m,p(n) = e m,p(n) −  s m,pj y j (n)
                               j=0
                                                               数相同,分析这种条件下系统通道个数对运算复
             for q = 1 : Q:
                                                               杂度的影响。由图中可知,当通道数固定时,所提
                                  ∑ P −1
                                         T ˆ
                           ˆ
             MRMT,DMRMT:d v,q (n) =     o pq d m,q (n)
                                     p=0                       算法拥有最低的运算复杂度,且随着阶数增加,对
                              ∑ P −1                           运算复杂度的降低更明显。而当滤波器阶数固定
                                     T ˆ
                      ˆ
             ODMRMT:d v,q (n) =     ¯ o d m,q (n)
                                     pq
                                p=0
                                                               时,所提算法运算复杂度随着通道数的上升相比
             for j = 1 : J:
                                                               于 MRMT 算法以及 DMRMT 更缓慢,且运算复杂
                                          ∑ J−1  T
                                   ˆ
             MRMT,DMRMT:ˆe v,q (n) = d v,q (n) +  s v,qj y j (n)
                                                               度更低。
                                            j=0
                              ˆ
                                      T
             ODMRMT:ˆe v,q (n) = d v,q (n) + s v,qq y q (n)
             计算滤波参考信号:
             MRMT:
                                                                    10 4
             for p = 1 : P:
                                                                  ᝠካܭాए
              for i = 1 : I:
               for j = 1 : J:
                 r ijq (n) = ˆ s T  x i (n)
                         v,qj
             DMRMT,ODMRMT:
                                                                             MRMT    DMRMT     ODMRMT
                                                                    10 3
             for q = 1 : Q:
                                                                     100  200  300  400  500  600  700  800  900 1000
                                                                                   ໚ฉ٨ᎁߛ᫂ए
              for i = 1 : I:
                                                                             (a) ᝠካܭాएˁ໚ฉ٨᫽஝ᄊТጇ
               r iqq (n) = ˆ s T  x i (n)
                        v,qq
             更新滤波器系数:                                               10 5
             for i = 1 : I:
              for j = 1 : J:
                                        ∑ Q−1
               MRMT:w ji (n + 1) = w ji (n) + µ  r ijq (n)ˆe v,q (n)
                                           q=0                    ᝠካܭాए
               DMRMT,ODMRMT:w ji (n+1)=w ji (n)+µr ijj (n)ˆe v,j (n)
                                                                    10 4
                 所 提 ODMRMT 算 法 与 MRMT 算 法 以 及
                                                                             MRMT     DMRMT     ODMRMT
             DRMT 算法的复杂度对比如表 2 所示。从表 2 可
                                                                      2   3    4   5   6    7   8   9   10
             以看出,相比 MRMT 算法,所提算法在生成误差信                                         ൓ጟܦູ̿ԣឨࣀ͜ܦ٨˔஝
             号时减少了 (Q − 1)JM 次乘加运算,计算滤波误差                                      (b) ᝠካܭాएˁᤰ᥋஝ᄊТጇ
             信号时减少了 (Q − 1)JIM 次乘加运算,更新滤波
                                                                          图 4  不同算法运算复杂度对比
             器时均减少了 (Q − 1)JIL 次乘加运算,而相比于                         Fig. 4 Comparation of the computational com-
             DRMT 算法,所提算法在生成误差信号时也降低                              plexity of different algorithms
   148   149   150   151   152   153   154   155   156   157   158