Preventing Noise Amplification Through Anti-Noise Band Limiting in Multi-Channel Active Noise Control Systems
Total Page:16
File Type:pdf, Size:1020Kb
Twelfth International Congress on Sound and Vibration PREVENTING NOISE AMPLIFICATION THROUGH ANTI-NOISE BAND LIMITING IN MULTI-CHANNEL ACTIVE NOISE CONTROL SYSTEMS Paulo Lopes ISCTE Rua Alves Redol n. 9, 1000-029 Lisboa, Portugal [email protected] Abstract In active noise control systems sound waves with phase opposite to the unwanted noise are used to interfere destructively with the noise, generating quite zones, where the noise level is lower. Since most systems use point sensors like microphones to sense the noise field the quiet zone generated by system can be small. Outside the quite zones amplification of the noise may happen. In narrow band active noise control systems the dimension of the quite zone around each error sensor will be proportional to the wavelength of the noise being cancelled. In broadband active noise control systems several error sensors per anti-noise source are used (two as a rule of thumb) in order to achieve wider cancellations regions, but the fact still remains that the size of the quiet zone will be proportional to the wavelength of the noise. Actually using two microphones per anti-noise source makes the controller adapt in to a band limiting filter in order to prevent the generation of anti-noise with frequencies that are amplified inside the quite zone. In this paper, techniques to band limit the anti-noise are studied that do not need the extra number of error sensors. This extends previous work for the single channel case to the multi-channel case with several reference, error sensors and anti-noise sources. This can't be done by simpling placing a filter in the cancellation path, or using the anti-aliasing or reconstruction filters, unless you use a very sharp filter with long delay and a leakage factor. Instead several structures based on the MFx-LMS algorithm are presented that accomplish this task. The proposed structures also give some insight into the limitations of broadband active noise control systems due to the delay required to the band limiting action. 1. INTRODUCTION Active noise control (ANC) system generate sound waves with opposite phase to the noise (anti-noise) that interfere destructively with it, reducing the noise level [1, 2] in a given zone, namely the quiet zone. A feedforward active noise control systems are represented in figure 1 and 2. The reference sensors measures the noise signals, xi(t), at some points so that it can be used to predict the noise signal at the error sensors. This signal is sampled and digitally processed by a digital signal processor (DSP), which implements the ANC controller. The ANC controller produces the anti-noise signal, y j(t). This signal is then fed to the anti-noise transducers and travels throw the physical medium, usually air, to the error sensors. The error sensors measures the errors signals, ek(t), which are used to adapt parameters of the ANC controller. The path travelled by the anti-noise signal, from the transducers to the error sensors is the cancellation or secondary path, S( f ). The path travelled by the noise signal from the reference sensor to the error sensor is the primary path, P(F). In order to achieve wider quite zones many active noise control systems are multichannel, with several reference sensors, anti-noise transducers and error sensors. The systems represented in figures 1 and 2 have N reference sensors, P anti-noise sources and M error sensors. P( f ) P( f ) S ( f ) S ( f ) P ¢ A ( f ) P A § ( f ) an alo g an al o g £ R( f ) A ( f ) R( f ) A ¨ ( f ) x ¡ ( n ) x ¦ ( n ) © e ¤ ( n ) e ( n ) digital - y ( n ) ˆ W ( f ) W ( f ) S ( f ) y¥ ( n ) di g i t al M - M ˆ ˆ d© ( n ) S ( f ) L M S S ( f ) W ( f ) ¡ x ’ ( n ) ¦ z ¡ ( n ) z ( n ) Fig. 1. FX-LMS Algoritm for feedforward Fig. 2. MFX-LMS Algoritm for feedforward Active Noise Control. Active Noise Control. The best know ANC algorithm is the FX-LMS algorithm [3, 4] as represented in figure 1. It should be noted that the cancellation path estimate, Sˆ( f ) includes the anti- aliasing and reconstruction filter. This algorithm can be modified to form the Modified FX-LMS (MFX-LMS) [5–8]. In the MFx-LMS the anti-noise signal is subtracted from the error signal ek(n), resulting in dk(n), which is then used as a desired signal to the LMS algorithm. The effect of the cancellation path is actually removed, as along as the estimate is accurate. This allows the use of more sophisticated adaptive filtering algorithms such as the RLS or the Kalman filter [7]. It will also allow the implementation of the anti-noise band limiting action as introduced in this paper. 2. TENSOR FORMULATION OF THE ANC SYSTEM The multichannel active noise control algorithms were implemented using tensor arith- metic which gives a formulation similar to the single channel case. Also this allows the algorithms to be written in a high level language such as c++, suitable for reuse in many digital signal processors (DSP). The tensor arithmetic operations can be con- verted into matrix and vector operation (by joining indexes) which can be imple- mented in assembly language in a given DSP. This allows one to achieve the per- formance of assembly language with the portability and ease of programming of c++. However this is not easily ported to order recursive algorithms such as the LSL. Given two tensor of order p and q, fAi1;:::;ip g and fB j1;:::; jq g with dimensions fn1;:::;npg and fm1;:::;mqg. As a shortcut assume Zi1;:::;ip = fZi1;:::;ip g. Define the generalized tensor product as, np¡r+1;:::;np;m1;:::;mr Ci1;:::;ip¡r; jr;:::; jq = Ai1;:::;ip ²r B j1;:::; jq = ∑ Ai1;:::;ip B j1;:::; jq (1) ip¡r+1;:::;ip; j1;:::; jr=1 which represents a sum over the last r and the first r indices of A and B. By default r is taken to be one. The resulting tensor will have order given by p + q ¡ 2r and dimensions fn ;:::;n ;m ;:::;m g. Define also the transpose of a tensor CT as 1 p¡r r q i1;:::;ip Cip;:::;i1 . Let i represent the reference number, j the anti-noise source number and k the error sensor number. Define the tensors, xl;i(n) = xi(n ¡ l) where xi(n) is the i reference signal; Sl; j;k = S j;k(l) where S j;k(l) is the impulse response of the cancellation path from the j anti-noise source and the k error sensor; Wl;i; j = Wi; j(l) where Wi; j(l) is the impulse response of the controller filter which relates the i reference and the j anti-noise source. Given this, the multichannel FX-LMS (normalized) algorithm can be described as, 0 T ˆ 0 0 xi; j;k(n) = xl;i(n) ² Sl; j;k xl;i; j;k(n) = xi; j;k(n ¡ l) (2) 02 µ = a= ∑ x l;i; j;k(n) (3) Ãl;i; j;k ! 0 wl;i; j(n) = lwl;i; j(n ¡ 1) + µxl;i; j;k(n) ² ek(n) (4) T y j(n) = xl;i(n) ²2 wl;i; j(n) (5) and the modified FX-LMS by replacing equation 4 by T ˆ dk(n) = ek(n) ¡ yl; j(n) ²2 Sl; j;k (6) 0T ak(n) = dk(n) ¡ x l;i; j;k(n) ²3 wl;i; j(n) (7) 0 wl;i; j(n) = lwl;i; j(n ¡ 1) + µxl;i; j;k(n) ² ak(n) (8) 3. BLOCK IMPLEMENTATION THE ANC SYSTEM The active noise control systems described in this paper were implemented in c++ using a class library of digital signal processing blocks developed by the author. Each block implements a digital signal processing function like a FIR filter or the LMS algorithm. Although this is not usually exactly the way blocks are implemented, any given block can be described in state space by, Y(n) = H(X(n);u(n)) (9) X(n + 1) = F(X(n);u(n)) (10) This two equations are implemented in the system by two function of the block, clock tick() and calc output() respectively. The state of the system is X(n), u(n) is the input of the system and Y(n) is the output of the system. The call to calc output() must always be preceded to the call to clock tick() since in some blocks (like buffers) the output of the block is actually the state, or some part of it, so updating the state invalidates the output of the block. The calculated output of the block is always stored in the block it self. The blocks are created and stored in a vector of blocks. When simulating the system, the output of all the blocks are calculated, as in equation 9, by the order that they were stored. If there are blocks that the output depends directly (without delay) of the input, then there should be some care in selecting the order the blocks are stored. Namely, the blocks that have as input other blocks should be stored after the input blocks. If the blocks are stored when they are created this is guaranteed, since for a block to be created it must know its inputs, and so the input blocks must be created first. In general circular paths can only exist if the output of at least one block in the path dose not depend directly on the input.