Page 51 - 201901
P. 51

第 38 卷 第 1 期      吴礼福等: 一种调节反馈有源噪声控制系统水床效应的频域自适应算法                                           47


             的次级信号来合成。本文的算法完全适用于图 1 所                                                           d↼n↽
                                                                     x↼n↽                             e↼n↽
             示两种结构的反馈系统,因此,若无特别说明,后续                                                 w      S↼z↽  Ĥ
             推导中不再明确区分。                                                                w↼n↽
                                                                        ⌣
                                                                        S↼z↽
                 反馈系统的水床效应是指一个频段内的噪声
                                                                     x f↼n↽         ण௑
             衰减通常伴随着另一频段内的噪声放大                    [9−10] ,因
                                                                                       w↼n⇁↽
             此,在反馈系统的离线设计中,将噪声放大量作为一                                    FFT                          FFT
                                                                                     Ĥ
             个约束条件,通过最小化误差信号能量来求解控制
             器 W(z)。从图 1 可以看出,在 z 变换域,Y (z) 与初                                       f      µ
                                                   ′
             级噪声D(z)在误差传声器处相互抵消后有                                      ԩСᣂ         δ႑ڂ౧
                                                                                    ᦊѬ
                          E(z) = D(z) + Y (z),          (1)
                                          ′
             Y (z)满足                                                                IFFT
              ′
                                            ′
                  Y (z) = X(z)W(z)S(z) ≈ X (z)W(z),     (2)                          f
                    ′
                                                                              X (k↽        E↼k↽
                                                                               *
                                                       ˆ
             其中,X (z)=X(z)S(z) 是用次级路径的估计 S(z)
                    ′
                                                                  图 2  在时域滤波频域更新系数的频域 FxLMS 算法
             对参考信号 x(n) 进行滤波后的信号。由式 (2) 可知
                                                                Fig. 2 Frequency domain FxLMS algorithm with time
             如果能够限制控制器 W(z) 在某个频段内的幅度响
                                                                domain filtering and frequency domain adaptation
             应,则信号 Y (z) 中该频段内的能量就会受限,最终
                        ′
                                                               其中,µ 为步长,{·} + 表示取因果部分操作,X (k)
                                                                                                         ∗
             可以调节 E(z) 中该频段内的噪声放大量。这是本
                                                               表示 X(k) 的复共轭。频域矢量 X(k) 和 E(k) 都是
             文算法的出发点。
                                                               2L 点的 FFT 系数,分别由其对应的时域矢量计
             1.2 算法推导                                          算得到
                 常用的频域 LMS算法是块 LMS 算法的快速实                                           T      T        T
                                                                     X(k) = FFT{[x (n) x (n − L)] },      (6)
                                                                                           f
                                                                                    f
             现方式,运用快速傅里叶变换 (Fast Fourier trans-
                                                                                           T
                                                                                      T
                                                                     E(k) = FFT{[0 e (n)] },              (7)
             form, FFT)及重叠保留法可以节省大量运算量,但
             会有一个块长度的延时           [14] ,这种延时会导致 ANC            式(7)中的0是L点的零矢量,e(n)为
             系统性能的显著下降,因此在 ANC 系统中采用的                            e(n) = [e(n) e(n − 1) · · · e(n − L + 1)] . (8)
                                                                                                       T
             是图2 所示的频域FxLMS算法,该算法是在时域实
                                                               式(5)∼(8)描述的频域算法的代价函数为
             现滤波操作以避免一个块长度的延时,而在频域完
                                                                                     T
             成滤波器系数的更新          [15] 。                                        J = E[e (n)e(n)],           (9)
                 图 2 中 控 制 器 w 是 一 个 L 阶 FIR(Finite im-        算法在迭代过程中仅考虑最小化式(9),而没有考虑
             pulse response) 滤波器,即 w(n) = [w 0 (n), w 1 (n),   其他约束条件。
                         T
             · · · , w L−1 (n)] ,n 是时间序号,上标 T 表示转置。                由前述分析可知,为了调节反馈系统中的噪声
             为了避免循环卷积效应,FFT 和 IFFT 的长度都为                       放大量,可以对 w(n) 某些频段内的幅度响应进行
                                            ˆ
             2L。x f (n)是利用次级路径的估计 S(z)对参考信号                    限制,频域自适应算法恰好可以方便直接地限制控
             x(n)进行滤波后的信号,误差信号e(n)满足                           制器 W(z) 在某个频段内的幅度响应,即增加如下
                                                               约束:
                                       T
                        e(n) = d(n) + w x f (n),        (3)
                                                                                     2
                                                                               |W(k)| < θ(k),            (10)
             其中,
                                                               其中,W(k) 是 w 的离散傅里叶变换的第 k 个系数,
                                                     T
              x f (n) = [x f (n)x f (n − 1) · · · x f (n − L + 1)] . (4)
                                                               即
             w(n)的迭代方式为                                                       L−1
                                                                               ∑
                                                                                                 T
                                                                       W(k) =     w l e −j2πlk/L  = w f k ,  (11)
               w(n + 1) = w(n) − µIFFT{X (k)E(k)} , (5)                        l=0
                                          ∗
                                                    +
   46   47   48   49   50   51   52   53   54   55   56