Abstract:
An active noise control (ANC) system includes a speaker and one or more processors. The one or more processors implement an adaptive subband filtered reference control algorithm that applies thresholds to reference and error feedback signal paths such that, in response to a series of broadband non-Gaussian impulsive reference signals indicative of road noise in the vehicle having an audible frequency range of 20 Hz to 20 kHz, weight coefficients defining an adaptive filter of the control algorithm converge and permit the ANC system to partially cancel the road noise via output of the speaker.

Description:
TECHNICAL FIELD 
       [0001]    This application relates to vehicle active noise control systems. 
       BACKGROUND 
       [0002]    There are several noise sources inside a vehicle cabin, such as powertrain, tire-road, wind and various electrical components. The powertrain noise is typically dominant when the engine is in idle or changing speeds. On the other hand, the dominant vehicle interior noise is structure-borne road noise when driving at speeds over 30-40 km/h. These noises are the primary disturbance that may annoy passengers and influence the perceived quality of the vehicle performance. As such, certain automotive manufactures are improving vehicle noise, vibration and harshness (NVH) performance to fulfill customer requirements. 
       SUMMARY 
       [0003]    In one example, an enhanced subband filtered-x least mean M-estimator (FXLMM) algorithm with thresholds on reference and error signal paths is proposed as the basis for an active noise control (ANC) system to treat road noise with impacts. This algorithm may overcome inherent limitations of the standard filtered-x least mean squares (FXLMS) algorithm for colored noise control such as high computational cost and low convergence speed. Furthermore, instability issues of the FXLMS algorithm for non-Gaussian impact road noise due to road bumps or potholes may be avoided. 
         [0004]    In another example, a vehicle includes an active noise control (ANC) system. The ANC system includes a processor to implement an adaptive subband filtered reference control algorithm that applies thresholds to reference and error feedback signal paths such that, in response to a series of broadband non-Gaussian impulsive reference signals indicative of road noise in the vehicle, weight coefficients defining an adaptive filter of the control algorithm converge and permit the ANC system to partially cancel the road noise. Values of the thresholds may be based on a variance of magnitudes of the impulsive reference signals. The values may increase as the variance increases. Values of the thresholds may be based on percentile characteristics of the impulsive reference signals. The adaptive subband filtered reference control algorithm may be delayless. The adaptive subband filtered reference control algorithm may be a filtered-x least mean square (FXLMS) adaptive subband filtered reference control algorithm or a filtered-x least mean M-estimator (FXLMM) adaptive subband filtered reference control algorithm. The adaptive subband filtered reference control algorithm may include a discrete Fourier transform (DFT) filter bank. Other examples are also described herein. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]      FIG. 1  is a feed-forward control diagram configured with a modified subband FXLMS algorithm with thresholds within the context of an active noise control system for a vehicle. 
           [0006]      FIG. 2  is a plot of score functions for various M-estimators. 
           [0007]      FIG. 3  is a box-plot and probability distribution function (PDF) of a Gaussian dataset. 
           [0008]      FIG. 4  is a flowchart of an active noise control (ANC) system with threshold for impact road noise. 
           [0009]      FIG. 5  is a plot of secondary path magnitude and phase response. 
           [0010]      FIG. 6  is a plot of time history of the controlled result for normal road noise with three impact events. 
           [0011]      FIG. 7  is a plot of frequency spectrum of the normal road noise before and after control in the dashed box of  FIG. 6 . 
           [0012]      FIG. 8  is a plot of time history of the controlled result for ten impact events and normal road noise. 
           [0013]      FIG. 9  is a plot of sound pressure level of the ten impact road noises before and after control. 
           [0014]      FIG. 10  is a plot of spectra of the normal road noise before and after control in the last 2 seconds of  FIG. 8 . 
       
    
    
     DETAILED DESCRIPTION 
       [0015]    Embodiments of the present disclosure are described herein. It is to be understood, however, that the disclosed embodiments are merely examples and other embodiments may take various and alternative forms. The figures are not necessarily to scale; some features could be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention. As those of ordinary skill in the art will understand, various features illustrated and described with reference to any one of the figures may be combined with features illustrated in one or more other figures to produce embodiments that are not explicitly illustrated or described. The combinations of features illustrated provide representative embodiments for typical applications. Various combinations and modifications of the features consistent with the teachings of this disclosure, however, could be desired for particular applications or implementations. 
       INTRODUCTION 
       [0016]    To achieve a better NVH performance within the passenger compartment, the common refining approach is typically implemented by adding more mass, tuning stiffness and damping properties of certain components, and designing various types of mufflers. However, this technique is restricted by low frequency limitations. Alternatively, active noise control (ANC) technology has demonstrated a promising way to tune the lower-frequency powertrain and road noises inside a vehicle cabin. 
         [0017]    There are numerous research efforts driven to develop a feasible ANC system for automotive applications, which mostly deal with stationary noises such as powertrain-related noise and normal road noise. More precisely, stationary noise is different from the highly transient phenomenon that tends to generate non-Gaussian type noises such as vehicle impact road noise. Structure-borne road noise is a colored broadband noise with most energy lying in the low frequency range from 60 to 400 Hz. Hence, it may be effective to design a feedforward ANC system to control road noise by using accelerometers to pick up the reference signals in the dominant structure-borne paths. For instance, some have proposed a multi-channel ANC system configured with the conventional filtered-x least mean square (FXLMS) algorithm for low frequency engine and road noise. Others have developed an active structural acoustic control (ASAC) system for structure-borne road noise by using an inertia shaker as the control actuator, attached in parallel with the suspension system, to modify the vibration behavior of the vehicle floor panel such that the radiated noise is decreased. More recently, an ANC system for road noise control has been combined with a vehicle built-in audio system and feedback system without requiring additional reference accelerometers. Most of these types of systems use an adaptive FXLMS algorithm. The conventional FXLMS algorithm, however, has inherent inefficiencies (e.g., high computational burden and slow convergence speed) when directly applied to road noise control. This is because broadband road noise normally requires a longer order adaptive filter, and the specified step size of the FXLMS algorithm is not optimal for all frequencies due to large eigenvalue spread of the colored reference signal. 
         [0018]    The subband-based FXLMS algorithm is one alternative to overcome the inherent limitations of the conventional FXLMS algorithm, especially when the adaptive filter requires hundreds of filter taps for broadband noise. The idea of subband adaptive filtering is to decompose the fullband input reference and error signals into a certain number of subbands and down-sample the subband signals from a higher sampling rate to a lower one—reducing the number of adaptive filter weights required for each band. Furthermore, the subband filtering process will equalize the spectrum of the reference signal in each band, which gives less spectra dynamic range, thereby significantly improving the convergence speed. These early subband structures, however, tend to incorporate an additional delay in the signal path due to the implementation of two analysis filters for decomposing the signals into subbands and one synthesis filter for combining the subband signals into the full band. In ANC applications for broadband noise, this delay may significantly deteriorate the convergence performance and even cause instability due to the violation of non-causality. Hence, some have proposed a delayless subband adaptive filter in which the synthesis filter of a conventional subband algorithm was removed, and the filter weights in each band combined and transformed into the time-domain for update in each sample point. The frequency-domain implementation of the delayless subband ANC algorithm has also been proposed. Others, for example, have developed a combined feedforward and feedback ANC system using the subband processing technique for vehicle interior road noise. The subband algorithm has balanced convergence ability over the broadband frequency range and yields overall reductions close to the theoretical value. 
         [0019]    In spite of several promising successes reported in the open literature, one of the major concerns for ANC of (random in nature) road noise is the unsteady process for the reference accelerometers and perceived road noise that are easily affected by the road unevenness. In contrast, the ANC system for powertrain noise is more deterministic and tachometer signal monitoring of the engine speed is normally used as a reference. Confounding conditions for ANC of road noise includes impact acoustic responses due to road surface unevenness or discontinuities such as road bumps and potholes. These types of impulsive noises normally follow non-Gaussian statistical distributions. Hence, the conventional FXLMS algorithm, proposed based on the assumption of deterministic and/or Gaussian signals, tends to pose a stability issue for ANC systems. To address the inherent slow convergence of the FXLMS algorithm for colored noise and its instability issue for the non-Gaussian impact noise, more advanced control systems are proposed. 
         [0020]    Here, robust ANC systems for broadband road noise with impacts are disclosed. An enhanced delayless subband algorithm, for example, embeds the advantages of a set of M-estimator based algorithms to deal with impulsive broadband disturbances. The M-estimators are more robust for impulsive samples compared to the standard L 2 -indicator used by the FXLMS algorithm. In addition, a threshold in the reference signal path may be incorporated to further improve the robustness of the algorithm. To validate the effectiveness of the proposed system, numerical simulation was conducted to control actual impact road noise. 
         [0021]    A detailed derivation of the general subband-based modified FXLMM algorithm is introduced first in which the filter weight update equation is given in a general form to quantify the robustness of various M-estimator error functions for impulsive samples. In addition, a threshold bound is introduced in the reference signal path to further enhance the robustness of the adaptive filter weight update process such that disturbances from peaky data are avoided. Both online and offline approaches are applied to determine relevant threshold parameters included in each robust M-estimator function. Hence, fast convergence can be obtained and optimal performance achieved over the broader frequency range for impact colored noise control. To validate the performance of the proposed system, numerical simulations were conducted for controlling measured road noises with impacts. 
         [0000]    Controller with Enhanced Subband Algorithm 
       Robust M-Estimator Algorithm 
       [0022]      FIG. 1  shows a diagram of a vehicle  10  including an active noise control (ANC) system  12 . The ANC system  12 , in this example, includes at least one processor  14  implementing a feedforward control  16  configured with a modified subband FXLMM algorithm with thresholds. The feedforward control  16 , in this example, includes a reference signal generator block  18 , a threshold block  20 , Discrete Fourier Transform (DFT) filter banks  22 , and subband secondary path blocks  24 . The feedforward control  16  further includes an M-estimator block  26 , DFT filter banks  28 , and filter weights update blocks  30 . The feedforward control  16  further includes weight transformation block  32 , adaptive filter block  34 , noise generator block  36 , least mean squares algorithm block  38 , and estimated secondary path block  40 . Here, x(n) is the reference signal that can be picked up by a set of accelerometers and/or microphones  42  to  44 , d(n) is the primary noise picked up by microphone  46 , and e(n) is the error signal after superposition of the primary noise and secondary canceling noise. The secondary canceling noise is output to a cabin of the vehicle  10  via speaker  48 . This arrangement can of course be extended to a multi-channel configuration. 
         [0023]    The standard fullband FXLMS algorithm uses the reference signal x(n) to generate the secondary noise adaptively, which is monitored by the error signal e(n). However, it requires an accurate model of the secondary transfer path Ŝ from the control speaker to the error microphone, which can be estimated by using offline or online system identification approaches. The filter weight update equations of the FXLMS algorithm can be summarized as 
         [0000]        y ( n )= w ( n ) T   x ( n )  (1a)
 
         [0000]        e ( n )= d ( n ) y ′( n )  (1b)
 
         [0000]        w ( n+ 1)= w ( n )+μ e ( n )[{circumflex over ( S )}( n )* x ( n )]  (1c)
 
         [0000]    where μ is the convergence step size, and the step size needs to be tuned in the filter weights update blocks  30  shown in  FIG. 1 . The step size determines the convergence and stability of the FXLMS algorithm, and Ŝ is the impulse response of the secondary path S(z). From Eqn. (1c), one can see that the filter weight update equation may burst into a large value and diverge when there are peaky impulses occurring in the reference and/or error signal. This makes the typical FXLMS algorithm unstable for impulsive noise. To improve the robustness of the conventional FXLMS algorithm for impulsive samples, several approaches have been adopted by previous researchers, either based on formulating more robust error criteria or relying on simple modification of the FXLMS algorithm by adding thresholds in the reference and/or error signal path. Here, a general family of enhanced M-estimator based algorithms is developed, which unifies all existing adaptive algorithms for impulsive noise control. 
         [0024]    The M-estimator is a popular approach in robust statistics to remove the adverse effect of outliers in the estimation process. The common least square algorithm, which is designed to minimize the cost function of Σ n e 2 (n), may become unstable if the data is corrupted with outliers. Hence, the robust M-estimator function Σ n ρ{e(n)} has been used to replace the least square method. Here, the function ρ{e(n)} is considered as a general robust formulation that yields a stable estimator for outliers in the processed data. 
         [0000]        J ( n )= E[ρ{e ( n )}]≈ρ{ e ( n )}  (2)
 
         [0000]    where ρ{e(n)} is the family of M-estimator functions. The first derivative of the objective cost function is 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       ∇ 
                       ^ 
                     
                      
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ∂ 
                         
                           J 
                            
                           
                             ( 
                             n 
                             ) 
                           
                         
                       
                       
                         ∂ 
                         
                           w 
                            
                           
                             ( 
                             n 
                             ) 
                           
                         
                       
                     
                     = 
                     
                       
                         
                           
                             ∂ 
                             ρ 
                           
                            
                           
                             { 
                             
                               e 
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             } 
                           
                         
                         
                           ∂ 
                           
                             w 
                              
                             
                               ( 
                               n 
                               ) 
                             
                           
                         
                       
                       = 
                       
                         
                           
                             
                               
                                 ∂ 
                                 ρ 
                               
                                
                               
                                 { 
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                 } 
                               
                             
                             
                               ∂ 
                               
                                 e 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                           
                            
                           
                             
                               ∂ 
                               
                                 e 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                             
                               ∂ 
                               
                                 w 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                           
                         
                         = 
                         
                           
                             - 
                             ψ 
                           
                            
                           
                             
                               { 
                               
                                 e 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               } 
                             
                              
                             
                               [ 
                               
                                 
                                   
                                     S 
                                     ^ 
                                   
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                 * 
                                 
                                   x 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                               
                               ] 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where 
         [0000]    
       
         
           
             ψ 
              
             
               { 
               
                 e 
                  
                 
                   ( 
                   n 
                   ) 
                 
               
               } 
             
              
             
               
                 
                   ∂ 
                   ρ 
                 
                  
                 
                   { 
                   
                     e 
                      
                     
                       ( 
                       n 
                       ) 
                     
                   
                   } 
                 
               
               
                 ∂ 
                 
                   e 
                    
                   
                     ( 
                     n 
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    is the score function, which controls the influence of the error signal by impulsive samples. Then applying the steepest decent algorithm, the filter weight update equation of the family of M-estimator based algorithms is expressed as 
         [0000]        w ( n+ 1)= w ( n )+ uψ{e ( n )}[{circumflex over ( S )}( n )* x ( n )]  (4)
 
         [0000]    The impulses, however, in the reference signal may still have adverse influence on the filter weight update process for these M-estimator based algorithms. Although some of the scoring functions ψ{e(n)} can restrict the impulsive samples in the error signal and guarantee that the whole term ψ{e(n)}[Ŝ(n)*x(n)] does not diverge too much at a certain time index, it still has stability problems since there is typically certain time delay between the reference signal and error signal. The impulsive samples in the reference signal can result in the burst of the term ψ{e(n)}[Ŝ(n)*x(n)]. Therefore, a family of enhanced M-estimator based algorithms is proposed to further increase the robustness in the presence of impulses. 
         [0025]    The filter weight update of the modified algorithm is 
         [0000]    
       
         
           
             
               
                 
                   
                     w 
                      
                     
                       ( 
                       
                         n 
                         + 
                         1 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       w 
                        
                       
                         ( 
                         n 
                         ) 
                       
                     
                     + 
                     
                       u 
                        
                       
                           
                       
                        
                       ψ 
                        
                       
                         
                           { 
                           
                             e 
                              
                             
                               ( 
                               n 
                               ) 
                             
                           
                           } 
                         
                          
                         
                           [ 
                           
                             
                               
                                 S 
                                 ^ 
                               
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             * 
                             
                               
                                 x 
                                 c 
                               
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                           ] 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     5 
                      
                     a 
                   
                   ) 
                 
               
             
             
               
                 
                   
                     
                       x 
                       c 
                     
                      
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             c 
                             2 
                           
                         
                         
                           
                             
                               x 
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             ≥ 
                             
                               c 
                               2 
                             
                           
                         
                       
                       
                         
                           
                             c 
                             1 
                           
                         
                         
                           
                             
                               x 
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             ≤ 
                             
                               c 
                               1 
                             
                           
                         
                       
                       
                         
                           
                             x 
                              
                             
                               ( 
                               n 
                               ) 
                             
                           
                         
                         
                           otherwise 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     5 
                      
                     b 
                   
                   ) 
                 
               
             
           
         
       
     
         [0000]    The threshold parameters c 1  and c 2  can be estimated by offline-calculated statistics (such as by choosing the 1 th  and 99 th  percentile of the original signal). 
         [0026]    Table 1 describes the adaptive filter weight update equations of the proposed family of M-estimator based algorithms. Here, different score functions are included in each algorithm to enhance the robustness of the error signal for impulsive samples. 
         [0000]    
       
         
               
               
             
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 M-estimator 
                 Filter weight update equation 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 Robust space 
                 L p   
                 
                   
                     
                       
                         
                           w 
                            
                           
                             ( 
                             
                               n 
                               + 
                               1 
                             
                             ) 
                           
                         
                         = 
                         
                           
                             w 
                              
                             
                               ( 
                               n 
                               ) 
                             
                           
                           + 
                           
                             u 
                              
                             
                                 
                             
                              
                             
                               ψ 
                               
                                 L 
                                 p 
                               
                             
                              
                             
                               
                                 { 
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                 } 
                               
                                
                               
                                 [ 
                                 
                                   
                                     
                                       S 
                                       ^ 
                                     
                                      
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                   * 
                                   
                                     
                                       x 
                                       c 
                                     
                                      
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                 
                                 ] 
                               
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           
                             
                               ψ 
                               
                                 L 
                                 p 
                               
                             
                              
                             
                               { 
                               
                                 e 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               } 
                             
                           
                           = 
                           
                             | 
                             
                               e 
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                              
                             
                               | 
                               
                                 p 
                                 - 
                                 1 
                               
                             
                              
                             
                               
                                 s 
                                  
                                 ign 
                               
                                
                               
                                 [ 
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                 ] 
                               
                             
                           
                         
                          
                         
                             
                         
                       
                     
                   
                 
               
               
                   
               
               
                   
                 Log 
                 w(n + 1) = w(n) + uψ Log {e(n)}[Ŝ(n) * x c (n)] 
               
               
                   
               
               
                   
                   
                 
                   
                     
                       
                         
                           
                             
                               ψ 
                               Log 
                             
                              
                             
                               { 
                               
                                 e 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               } 
                             
                           
                           = 
                           
                             
                               
                                 log 
                                 | 
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                 | 
                               
                               
                                 | 
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                 | 
                               
                             
                              
                             
                                 
                             
                              
                             
                               sign 
                                
                               
                                   
                               
                               [ 
                               
                                 e 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               ] 
                             
                           
                         
                          
                         
                             
                         
                       
                     
                   
                 
               
               
                   
               
               
                 Huber 
                   
                 w(n + 1) = w(n) + uψ H {e(n)}[Ŝ(n) * x c (n)] 
               
               
                   
               
               
                   
                   
                 
                   
                     
                       
                         
                           
                             ψ 
                             H 
                           
                            
                           
                             { 
                             
                               e 
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             } 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                               
                               
                                 
                                   0 
                                   ≤ 
                                   
                                      
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                      
                                   
                                   ≤ 
                                   k 
                                 
                               
                             
                             
                               
                                 
                                   ksign 
                                    
                                   
                                     [ 
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                     ] 
                                   
                                 
                               
                               
                                 
                                   
                                      
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                      
                                   
                                   &gt; 
                                   k 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
               
                 Fair 
                   
                 w(n + 1) = w(n) + uψ F {e(n)}[Ŝ(n) * x c (n)] 
               
               
                   
               
               
                   
                   
                 
                   
                     
                       
                         
                           
                             ψ 
                             F 
                           
                            
                           
                             { 
                             
                               e 
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             } 
                           
                         
                         = 
                         
                           
                             e 
                              
                             
                               ( 
                               n 
                               ) 
                             
                           
                           
                             1 
                             + 
                             
                               
                                  
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                  
                               
                               / 
                               c 
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
               
                 Hampel 
                   
                 w(n + 1) = w(n) + uψ M {e(n)}[Ŝ(n) * x c (n)] 
               
               
                   
               
               
                   
                   
                 
                   
                     
                       
                         
                           
                             ψ 
                             M 
                           
                            
                           
                             { 
                             
                               e 
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             } 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   e 
                                    
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                               
                               
                                 
                                   0 
                                   ≤ 
                                   
                                      
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                      
                                   
                                   ≤ 
                                   ξ 
                                 
                               
                             
                             
                               
                                 
                                   ξsign 
                                    
                                   
                                     [ 
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                     ] 
                                   
                                 
                               
                               
                                 
                                   ξ 
                                   &lt; 
                                   
                                      
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                      
                                   
                                   ≤ 
                                   
                                     Δ 
                                     1 
                                   
                                 
                               
                             
                             
                               
                                 
                                   [ 
                                   
                                     
                                       ( 
                                       
                                         
                                            
                                           
                                             e 
                                              
                                             
                                               ( 
                                               n 
                                               ) 
                                             
                                           
                                            
                                         
                                         - 
                                         
                                           Δ 
                                           2 
                                         
                                       
                                       ) 
                                     
                                      
                                     
                                       ξ 
                                       
                                         
                                           Δ 
                                           1 
                                         
                                         - 
                                         
                                           Δ 
                                           2 
                                         
                                       
                                     
                                   
                                   ] 
                                 
                               
                               
                                 
                                   
                                     Δ 
                                     1 
                                   
                                   &lt; 
                                   
                                      
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                      
                                   
                                   ≤ 
                                   
                                     Δ 
                                     2 
                                   
                                 
                               
                             
                             
                               
                                 0 
                               
                               
                                 
                                   
                                     Δ 
                                     2 
                                   
                                   &lt; 
                                   
                                      
                                     
                                       e 
                                        
                                       
                                         ( 
                                         n 
                                         ) 
                                       
                                     
                                      
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
             
          
         
       
     
         [0027]      FIG. 2  describes the score functions for all these M-estimators. It can be seen that there is no restriction on large impulsive samples when the second order space L 2  is taken as the criterion. This is why the conventional FXLMS algorithm is sensitive to the instantaneous increase of the power in the error signal. In contrast, the M-estimator functions put constraints on the outlier of the error function. It seems that both the logarithmic transformation based algorithm (FX Log LMS) and Hampel M-estimator based algorithm (FXLMM) impose “harder” limits, and the score functions descend to zero more sharply when the impulses with large amplitudes occur. These two algorithms can be effective for large impulsive noises. However, the logarithmic and three parts threshold calculation increase the complexity of the algorithm. On the other hand, both the L p  space and Fair M-estimator do not offer hard bounds when large samples occur. Moreover, the FXLMP algorithm gives smooth restriction of the scoring function. And, the score function of the Fair algorithm offers better constraint than the FXLMP algorithm. It seems that the Fair algorithm will show better performance for the more highly impulsive noises. It is also noted that the Huber M-estimator offers two part thresholds in which the impulsive samples are replaced by the upper and lower limit threshold values. The score function of the Huber function does not descend to zero like the Log space and Hampel&#39;s three parts function, but it provides better restriction than the L p  space and Fair M-estimator. 
         [0028]    The proposed family of robust M-estimator based algorithms is able to enhance the robustness of conventional FXLMS algorithm for impulsive samples. To deal with other inherent limitations of the FXLMS algorithm such as high computational burden and low convergence speed for colored noise, a subband adaptive filtering approach is adopted. Hence, the proposed subband-based modified FXLMM algorithm with threshold tends to be a more promising approach for designing a robust broadband ANC system. 
       Subband Processing 
       [0029]    A procedure for a delayless subband adaptive filtering technique with modified FXLMM algorithm may include the following:
       1) A full-band adaptive filter for processing the input reference signal   2) Decomposition of reference and error signals into subbands   3) Decimation in subbands   4) Filter weight update in each subband   5) A weight stacking method to transform subband weights into a fullband       
 
         [0035]    The first step in implementing a subband algorithm is to design analysis filter banks for decomposing the input signal. There are various approaches to designing these analysis filter banks to decompose the reference and error signals into a set of subband signals. Here, the DFT filter banks are adopted. This approach is realized by designing a low-pass prototype filter first, and then other analysis filter banks are generated through complex modulation. The prototype filter H 0  can be designed using a MATLAB embedded function: 
         [0000]        H   0   =fir 1( L   p −1,1/ M )  (6)
 
         [0000]    where L p  is the order of the prototype filter and M is the number of subband filter banks (note M is an even number). Then, other M−1 filter banks [H 1 , H 2 , . . . , H M-1 ] can be obtained by complex modulation. The modulation process in the time-domain is realized by 
         [0000]        h   m ( i )= h   0 ( i ) e   j(i2πm/M)   (7)
 
         [0000]    where h m  is the impulse response of the m-th filter bank H m , m=0, 1, . . . , M−1, and i is the i-th coefficient of h m , i=0, 1, . . . , L p . It is noted that the coefficients of h m (i) and h M-m (i) are complex conjugates for m=1, 2, . . . , M/2−1. Hence for real signals, only the first M/2+1 subbands need to be processed. In addition, the center frequencies of these filter banks are uniformly distributed with constant bandwidth. As such, the subband algorithm used here is called a uniform subband. This is primarily due to the modulation design process. Through the decomposition of the fullband signal into subbands, each subband signal contains only 1/M of the original frequency band. Thus, the subband signal can be maximally decimated by the factor M without losing any information. The decimation factor is defined as D. The decomposition process of reference and error signals can be illustrated by: 
         [0000]        x   m (κ)=Σ i=0   L     p     h   m ( i ) x   c (κ D−i )  (8)
 
         [0000]        e   m (κ)=Σ i=0   L     p     h   m ( i ) e   c (κ D−i )  (9)
 
         [0000]    where x m (κ) and e m (κ) are the reference signal and error signal respectively in the m-th subband, m=0, 1, . . . , M−1, the error signal after M-estimator is defined as e c =ψ{(n)}, and κ is the block index, iκ=(n−1)/D. To further reduce the computational complexity, the estimated secondary path transfer functions Ŝ(z) can also be implemented in subbands. As shown in  FIG. 1 , the fullband Ŝ(z) is decomposed into a set of subband functions, Ŝ 0 (z), Ŝ 1 (z), . . . , Ŝ M-1 (z). These subband transfer functions can be estimated by using offline or online system identification approaches in which the broadband noise generator can be decomposed into corresponding subbands. Each impulse response ŝ m  of the subband secondary path Ŝ m (z) contains I/D coefficients, here I is the order of the fullband secondary path FIR filter. Hence, the filtered reference signal in each subband is 
         [0000]        x′   m (κ)= x   m (κ)* ŝ   m   (10)
 
         [0000]    where * denotes the convolution process. 
         [0036]    Then, the filter weights update equation in the m-th subband is 
         [0000]        w   m (κ+1)= w   m (κ)+μ m     x′   m (κ)   e   m (κ)  (11)
 
         [0000]    which is a complex valued update process. μ m  is the convergence step size at each subband, w m (κ)=[w m,0 (κ), w m,1 (κ), . . . , w m,N/D (κ)] T  is the subband filter weight vector with length N/D, x′ m (κ)=[x′ m (κ), x′ m (κ−1), . . . , x′ m (κ−N/D)] T  is the reference signal vector of the m-th subband filter, and  [•]  denotes the complex conjugate. The step size μ m  can be normalized with respect to the inverse filtered reference signal power in the corresponding subband: 
         [0000]    
       
         
           
             
               
                 
                   
                     μ 
                     m 
                   
                   = 
                   
                     μ 
                     
                       
                         
                           
                             x 
                             m 
                             ′ 
                           
                            
                           
                             
                                 
                               T 
                             
                              
                             
                               ( 
                               κ 
                               ) 
                             
                           
                            
                           
                             
                               x 
                               m 
                               ′ 
                             
                              
                             
                               ( 
                               κ 
                               ) 
                             
                           
                         
                         + 
                       
                       ∈ 
                     
                   
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where μ is the normalized step size, and ε is a small constant value to avoid infinite step size. Then, the filtered reference signal vector x′ m (κ) and w m  can be stacked up into a long vector in each subband. 
         [0037]    The next step is to transform a set of subband filter weights into an equivalent fullband one. There are several weight transformation techniques proposed in public literature (e.g., FFT-stacking, FFT-2 stacking, DFT-FIR weight transform, and linear weight transform). Here, the FFT-stacking method is adopted. The subband filter weights w m  are transformed into the frequency domain by N/D-point FFT: 
         [0000]    
       
         
           
             
               
                 
                   
                     W 
                     m 
                   
                   = 
                   
                     
                       
                         [ 
                         
                           
                             
                               W 
                               m 
                             
                              
                             
                               ( 
                               0 
                               ) 
                             
                           
                           , 
                           
                             
                               W 
                               m 
                             
                              
                             
                               ( 
                               1 
                               ) 
                             
                           
                           , 
                           … 
                            
                           
                               
                           
                           , 
                           
                             
                               W 
                               m 
                             
                              
                             
                               ( 
                               
                                 
                                   N 
                                   D 
                                 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                         
                         ] 
                       
                       T 
                     
                     = 
                     
                       FFT 
                        
                       
                         { 
                         
                           w 
                           m 
                         
                         } 
                       
                     
                   
                 
               
               
                 
                   ( 
                   13 
                   ) 
                 
               
             
           
         
       
     
         [0000]    Then those frequency-domain coefficients w m  in each subband filter m=0, 2, . . . , M−1 are properly stacked to formulate an N elements array: 
         [0000]        W=[W (0), W (1), . . . , W ( N− 1)] T   (14)
 
         [0000]    where W is the frequency-domain coefficient of the fullband filter. The FFT-stacking rule is 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             
                               
                                 
                                   
                                     
                                       1 
                                       ) 
                                     
                                      
                                     
                                         
                                     
                                      
                                     
                                       W 
                                        
                                       
                                         ( 
                                         l 
                                         ) 
                                       
                                     
                                   
                                   = 
                                   
                                     
                                       W 
                                       
                                         ⌊ 
                                         
                                           lM 
                                           / 
                                           N 
                                         
                                         ⌋ 
                                       
                                     
                                      
                                     
                                       ( 
                                       
                                         
                                           ( 
                                           l 
                                           ) 
                                         
                                         
                                           2 
                                            
                                           
                                             N 
                                             / 
                                             M 
                                           
                                         
                                       
                                       ) 
                                     
                                   
                                 
                                 , 
                                 
                                   
                                     for 
                                      
                                     
                                         
                                     
                                      
                                     l 
                                   
                                   ∈ 
                                   
                                     [ 
                                     
                                       0 
                                       , 
                                       
                                         
                                           N 
                                           2 
                                         
                                         - 
                                         1 
                                       
                                     
                                     ] 
                                   
                                 
                               
                                
                               
                                 
 
                               
                                
                               2 
                             
                             ) 
                           
                            
                           
                               
                           
                            
                           
                             W 
                              
                             
                               ( 
                               l 
                               ) 
                             
                           
                         
                         = 
                         0 
                       
                       , 
                       
                         
                           for 
                            
                           
                               
                           
                            
                           l 
                         
                         = 
                         
                           N 
                           / 
                           2 
                         
                       
                     
                      
                     
                       
 
                     
                      
                     3 
                   
                   ) 
                 
                  
                 
                     
                 
                  
                 
                   W 
                    
                   
                     ( 
                     l 
                     ) 
                   
                 
               
               = 
               
                 
                   W 
                    
                   
                     ( 
                     
                       N 
                       - 
                       l 
                     
                     ) 
                   
                 
                 _ 
               
             
             , 
             
               
                 for 
                  
                 
                     
                 
                  
                 l 
               
               ∈ 
               
                 [ 
                 
                   
                     
                       N 
                       2 
                     
                     + 
                     1 
                   
                   , 
                   
                     N 
                     - 
                     1 
                   
                 
                 ] 
               
             
           
         
       
     
         [0000]    where W(l) is the l-th frequency-domain coefficient of the fullband filter, └lM/N┘ denotes rounding lM/N to the nearest integer, and (l) 2N/M  stands for 1 modulus 2N/M. After stacking the fullband weights from each subband following the above stacking rule, the time-domain coefficient of the fullband adaptive filter W(z) is obtained by taking the IFFT of W: 
         [0000]        w ( n )=IFFT{ W}   (15)
 
         [0000]    where w(n)=[w 0 , w 1 , . . . , w N-1 ] T . Then the output signal from the fullband adaptive filer can be generated by Eqn. (1a). 
       Threshold Parameters Estimation 
     Online Method 
       [0038]    For the Fair M-estimator function, the threshold parameter c can be determined by offline or online estimation approaches. As discussed by others in the field, the parameter c can be computed as 1, 1.5, 2 and 3 times the average absolute value of the error signal. It has been found that the control performance is not sensitive to the value of c, and it has been suggested that the online identification approach employ the following: 
         [0000]    
       
         
           
             
               
                 
                   
                     c 
                      
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       1 
                       M 
                     
                      
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           0 
                         
                         
                           M 
                           - 
                           1 
                         
                       
                        
                       
                          
                         
                           e 
                            
                           
                             ( 
                             
                               n 
                               - 
                               i 
                             
                             ) 
                           
                         
                          
                       
                     
                   
                 
               
               
                 
                   ( 
                   16 
                   ) 
                 
               
             
           
         
       
     
         [0000]    For the Hampel three-part M-estimator function, the three threshold parameters ξ, Δ 1  and Δ 2  can be estimated by an on-line method proposed in the available literature through the variance estimation of the “impulse-free” samples. The robust estimation formula of the variance {circumflex over (σ)} e (n) is given by 
         [0000]      {circumflex over ( u )}( n )=λ{circumflex over ( u )}( n− 1)+ C   1 (1−λ) e ( n )  (17a)
 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         σ 
                         ^ 
                       
                       e 
                       2 
                     
                      
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       λ 
                        
                       
                         
                           
                             σ 
                             ^ 
                           
                           e 
                           2 
                         
                          
                         
                           ( 
                           
                             n 
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                     + 
                     
                       
                         
                           C 
                           1 
                         
                          
                         
                           ( 
                           
                             1 
                             - 
                             λ 
                           
                           ) 
                         
                       
                        
                       med 
                        
                       
                         { 
                         
                           
                             A 
                             e 
                             ′ 
                           
                            
                           
                             ( 
                             n 
                             ) 
                           
                         
                         } 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     17 
                      
                     b 
                   
                   ) 
                 
               
             
             
               
                 
                   { 
                   
                     
                       
                         
                           ξ 
                           = 
                           
                             1.960 
                              
                             
                               
                                 
                                   σ 
                                   ^ 
                                 
                                 e 
                               
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           
                             Δ 
                             1 
                           
                           = 
                           
                             2.240 
                              
                             
                               
                                 
                                   σ 
                                   ^ 
                                 
                                 e 
                               
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           
                             Δ 
                             2 
                           
                           = 
                           
                             2.576 
                              
                             
                               
                                 
                                   σ 
                                   ^ 
                                 
                                 e 
                               
                                
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     17 
                      
                     c 
                   
                   ) 
                 
               
             
           
         
       
     
         [0000]    where the impulse&#39;s adverse effect on the variance estimation can be guaranteed by computing the median of the term A′ e (n)={[e(n)−û(n)] 2 , [e(n−1)−û(n−1)] 2 , . . . , [e(n−N w +1)−û(n−N w +1)] 2 }. λ is the forgetting factor and satisfies 0&lt;λ&lt;1. And, N w  is the window length. The median can be found using a sorting algorithm from a sequence of data. 
         [0039]    For the Huber M-estimator that offers a two part threshold, the threshold parameters can be determined through online percentile estimation. Here, the box-plot (BP) algorithm shown in  FIG. 3  is applied, which works as follows for a given vector of data: 
         [0040]    1) Find the first and third quartiles (Q 1  and Q 3 ), here Q 1  (25th percentile) and Q 3  (75th percentile) represent data that are bigger than 25% and 75% of the whole vector of data, respectively 
         [0041]    2) Define the interquartile range as IQR=Q 3 −Q 1    
         [0042]    3) Set the threshold bounds: c 1 =Q 1  1.5×IQR, c 2 =Q 3 +1.5×IQR 
         [0043]    4) The BP algorithm is applied to a sliding window of N w  data that can be sorted by using a Bubble sorting algorithm. For each new data at sample time n:
       i) If either x(n)≦c 1  or x(n)≧c 2 , the sliding window of data is not updated   ii) Else, delete the oldest datum from the sliding window and insert the new one in the correct position, then compute the bounds using the BP algorithm       
 
       Offline Method 
       [0046]    The threshold parameters can be also determined through offline identification by calculating the percentiles. Hence, it requires a prior measurement of the reference and error signals. For example in road noise applications, a systematical measurement is needed to statistically determine the approximate thresholds under different road conditions. A flowchart diagram for an ANC system with threshold is shown in  FIG. 4 . At operation  50 , a sequence of accelerometer data is recorded. At operation  52 , the reference signal generator is applied to the accelerometer data. At operation  54 , an offline percentile calculation for thresholds c 1  and c 2  is performed. And at operation  56 , the reference signal is clipped by the thresholds. At operation  58 , the secondary path is estimated in the block  40  of  FIG. 1  by injecting white noise through the noise generator block  36  to the speaker  48  and measuring the response via the microphone  46 . At operation  60 , the estimated secondary path is decomposed into subbands. At operation  62 , the adaptive filter weights are updated using the FXLMM algorithm. At operation  64 , the adaptive filter is applied. As apparent from  FIG. 4 , operations  62 ,  64  use the clipped reference signal as input. At operation  66 , the cancellation signal is developed to drive control of the speakers. At operation  68 , the speakers are controlled to generate the secondary sound. At operation  70 , wave superposition is performed on the primary impact road noise to be controlled and the secondary sound. At operation  72 , error microphone signals are received. The algorithm then returns to operation  62 . Similarly, the online threshold identification can be formulated by replacing the threshold block of the flowchart. 
       Numerical Simulation 
       [0047]    The interior acoustic responses due to tire/road interaction with various road unevenness profiles and performance of the control system have been simulated. In these simulations, different interior acoustic responses due to road profile with numerous impact bumps were considered, which were measured from experimental road tests. The ANC system is designed to attenuate the normal and impact road noise around the driver&#39;s and passenger&#39;s head positions. The error microphones are placed at the ceiling of the vehicle cabin over the heads. The estimated transfer function of the secondary path from loudspeaker to the sound pressure at the error microphone was measured experimentally using an off-line system identification approach. The frequency response function of the secondary path model used in this simulation is as shown in  FIG. 5 . The secondary path model was formulated as a finite impulse response (FIR) filter, and the same secondary path model was used both in the reference signal path and after the controller output. In case one, the measured road noise (from a normal road surface without any bumps or potholes transitions to bumpy roads with three impacts and then to a normal road surface) is used for simulation. In case two, a combined road surface consisting of ten repetitive impact events followed by normal road noise is taken for the simulation to evaluate the performance of the ANC system using different control algorithms. 
         [0048]      FIG. 6  shows the time-domain simulation result for case one with normal road noise contaminated with three impact events. Here, the threshold parameters for the proposed subband FXLMM algorithm were determined through off-line percentile calculation. The upper and lower limits in the threshold block are chosen as the 99.9 and 0.1 percentile of the whole data. The convergence step size for the traditional FXLMS algorithm is μ=5e−4 and that for the subband algorithm is μ=1e−3. It is noted from  FIG. 6  that the FXLMS algorithm becomes unstable upon occurrence of the impact events, and it takes a long time for the system to converge back for the normal road noise after the impacts. While the proposed subband algorithm has enhanced robustness at the impact events. This is primarily due to the threshold incorporated in the adaptive filter weight update process. The traditional FXLMS algorithm does not have this robustness unless reducing the convergence step size in which there will be barely any reductions at the normal road noise (lower power requires larger step size). 
         [0049]    More clear comparison is shown in the spectrum result of  FIG. 7 . Here, it is the frequency-domain result of the controlled response in the dashed box of  FIG. 6 . The proposed subband algorithm yields more reductions in the broader frequency range. This is a unique advantage of the subband processing for the colored noise since the eigenvalue spread of the filtered reference signal can be equalized. The equalization of eigenvalues can yield a better step size for each individual frequency. However, the traditional FXLMS algorithm tends to target on the noise spectrum with highest power since the step size is optimal at that frequency only. 
         [0050]      FIGS. 8 through 10  depict further simulation results for case two in which the combined road noise with ten impact events followed by normal road noise is considered. The parameter values for each algorithm are the same as that used in case one. In  FIG. 8 , it is apparent that the traditional FXLMS algorithm shows severe instability after the first two impact events. On the other hand, the proposed subband algorithm starts to converge after several consecutive impact events. Also, it shows more stability after the impacts and converges fast for the normal road noise.  FIG. 9  is the sound pressure level for the subband algorithm at the impact road noise events before and after control. There is a several dB reduction after the first two impacts unless certain amplification is observed for the impact event around 12 seconds. The frequency-domain control result for the normal road noise in the last 2 seconds is shown in  FIG. 10 . Similarly, the subband algorithm can generate an overall 5 dBA noise reduction in the frequency range from 50-320 Hz. 
       CONCLUSIONS 
       [0051]    ANC systems configured with enhanced subband FXLMM (filtered-x least mean M-estimator) algorithms with thresholds on reference and error signal paths for road noise with impacts inside the vehicle cabin were discussed above. These systems may provide more robust and balanced performance for colored road noise over a broader frequency range. The subband processing equalizes the eigenvalue spread of the filtered reference signal, which overcomes the inherent limitations of the traditional FXLMS algorithm. Hence, fast convergence can be obtained and optimal performance achieved over a broader frequency range. Furthermore, the modified FXLMM algorithm with thresholds for the impulsive samples in the reference and error signals tend to enhance the robustness of the adaptive filter weight update process that might be easily disturbed by peaky data. 
         [0052]    The processes, methods, or algorithms disclosed herein may be deliverable to or implemented by a processing device, controller, or computer, which may include any existing programmable electronic control unit or dedicated electronic control unit. Similarly, the processes, methods, or algorithms may be stored as data and instructions executable by a controller or computer in many forms including, but not limited to, information permanently stored on non-writable storage media such as ROM devices and information alterably stored on writeable storage media such as floppy disks, magnetic tapes, CDs, RAM devices, and other magnetic and optical media. The processes, methods, or algorithms may also be implemented in a software executable object. Alternatively, the processes, methods, or algorithms may be embodied in whole or in part using suitable hardware components, such as Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), state machines, controllers or other hardware components or devices, or a combination of hardware, software and firmware components. 
         [0053]    The words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the disclosure. As previously described, the features of various embodiments may be combined to form further embodiments of the invention that may not be explicitly described or illustrated. While various embodiments could have been described as providing advantages or being preferred over other embodiments or prior art implementations with respect to one or more desired characteristics, those of ordinary skill in the art recognize that one or more features or characteristics may be compromised to achieve desired overall system attributes, which depend on the specific application and implementation. These attributes may include, but are not limited to cost, strength, durability, life cycle cost, marketability, appearance, packaging, size, serviceability, weight, manufacturability, ease of assembly, etc. As such, embodiments described as less desirable than other embodiments or prior art implementations with respect to one or more characteristics are not outside the scope of the disclosure and may be desirable for particular applications.