Aspects disclosed herein generally relate to a system and method for adjusting Active Noise Cancellation (ANC) tuning parameters. These aspects and others will be discussed in more detail herein.
Active noise cancellation (ANC) systems attenuate undesired noise using feedforward and feedback structures to adaptively remove undesired noise within a listening environment, such as within a vehicle cabin. ANC systems cancel, or reduce, unwanted noise by generating cancellation sound waves to destructively interfere with the unwanted audible noise. ANC systems implemented on a vehicle that minimize noise inside the vehicle cabin include a Road Noise Cancellation (RNC) system, which minimizes unwanted road noise, and an Engine Order Cancellation (EOC) system, which minimizes undesirable engine noise inside the vehicle cabin.
Typically, ANC systems use digital signal processing and digital filtering techniques. For example, a noise sensor, such as a microphone an accelerometer or a revolutions per minute (RPM) sensor, outputs an electrical reference signal representing a disturbing noise signal generated by a noise source. This reference signal is fed to an adaptive filter. The filtered references signal is then supplied to an acoustic actuator, for example a loudspeaker, which generates a compensating sound field, which may ideally have an opposite phase and close to identical magnitude to the noise signal. This compensating sound field eliminates, or reduces, the noise signal within the listening environment.
The RNC system is a specific ANC system implemented on a vehicle to minimize undesirable road noise inside the vehicle cabin. RNC systems use vibration sensors to sense road induced vibration generated from the tire and road interface that leads to unwanted audible road noise. Cancelling such road noise results in a more pleasurable ride for vehicle passengers, and it enables vehicle manufacturers to use lightweight materials, thereby decreasing energy consumption and reducing emissions. The EOC system is a specific ANC system implemented on a vehicle to minimize undesirable engine noise inside the vehicle cabin. EOC systems use a non-acoustic sensor, such as an engine speed sensor, to generate a signal representative of the engine crankshaft rotational speed in revolutions-per-minute (RPM) as a reference. RNC systems are typically designed to cancel broadband signals, while EOC systems are designed and optimized to cancel narrowband signals, such as individual engine orders. ANC systems within a vehicle may provide both RNC and EOC technologies.
A residual noise signal may be measured, using a microphone, to provide an error signal to the adaptive filter's adaptation unit, where filter coefficients (also called parameters) of the adaptive filter are modified such that a norm of the error signal is produced. The adaptive filter's adaptation unit may use digital signal processing methods, such as least means square (LMS), filtered-x least mean square (FxLMS), modified filtered-x least mean square (MFxLMS) or other technique to reduce the error signal.
An estimated model that represents an acoustic transmission path from the loudspeaker to the microphone is used when applying many variants of the LMS algorithm, such as the FxLMS and MFxLMS algorithms. This acoustic transmission path is typically referred to as the secondary path of the ANC system. In contrast, the acoustic transmission path from the noise source to the microphone is typically referred to as the primary path of the ANC system. The secondary path transfer function represented in the time domain is often termed the impulse response, or IR.
The manner in which the estimated secondary path transfer function matches the actual secondary path transfer function, influences the stability of the ANC system. A varying secondary path transfer function can have a negative impact on the ANC system because the actual secondary path transfer function, when subjected to variations, no longer matches an “a priori” estimated secondary path transfer function that is used in the FxLMS or MFxLMS algorithm. The estimated model of the secondary path is typically measured once during the production tuning process and approximates the secondary path transfer function and during the production tuning process, the secondary path transfer function is estimated for a “nominal” acoustic scenario (i.e., one occupant, windows closed, seats in default positions). However, the secondary path can vary for many different reasons, like changes in occupancy count, seat positions, items in the listening environment. These differences between the stored, estimated secondary path and the actual secondary path may lead to inadequate noise cancellation system performance, or even to diverging adaptive filters, which causes undesirable noise being generated in the listening environment, often termed noise boosting.
In at least one embodiment, an active noise cancellation (ANC) system is provided. The system includes at least one audio signal source, at least one loudspeaker, at least one microphone, and at least one controller. The at least one loudspeaker projects anti-noise sound within the cabin of a vehicle in response to receiving an anti-noise signal. The at least one microphone provides a first error signal indicative of noise, the audio signal, and the anti-noise sound within the cabin and a second error signal indicative of an estimated anti-noise signal. The at least one controller is programmed to receive the first error signal and the second error signal and to provide an estimated impulse response based at least on the first error signal and the second error signal. The at least one controller is programmed to select a first pre-stored impulse response from a plurality of pre-stored impulse responses based on the estimated impulse response to filter one or more reference signals at an adaptive filter to generate the anti-noise signal and to select a first plurality of pre-stored tuning parameters from a plurality of pre-stored sets of the tuning parameters based on the first pre-stored impulse response. The at least one controller is programmed to tune the adaptive filter with the first plurality of pre-stored tuning parameters to generate the anti-noise signal.
In at least another embodiment, an active noise cancellation (ANC) system is provided. The system includes at least one audio signal source, at least one loudspeaker, at least one microphone, and at least one controller. The at least one loudspeaker projects anti-noise sound within the cabin of a vehicle in response to receiving an anti-noise signal. The at least one microphone provides a first error signal indicative of noise, the audio signal, and the anti-noise sound within the cabin and a second error signal indicative of an estimated anti-noise signal. The at least one controller is programmed to receive the first error signal and the second error signal and to provide an estimated impulse response based at least on the first error signal and the second error signal. The at least one controller is further programmed to select a first pre-stored impulse response from a plurality of pre-stored impulse responses based on the estimated impulse response to filter one or more reference signals at an adaptive filter to generate the anti-noise signal and to select a first plurality of tuning parameters based at least on one of a constant offset that is applied to one or more baseline tuning parameters and a variable offset value that is applied to the one or more baseline tuning parameters. The at least one controller is further programmed to tune the adaptive filter with the first plurality of tuning parameters to generate the anti-noise signal.
In at least another embodiment, a method for performing active noise cancellation (ANC) is provided. The method includes generating an audio signal to transmit in a cabin of a vehicle with at least one audio signal source and transmitting an anti-noise sound in the cabin of the vehicle via at least one loudspeaker in response to receiving an anti-noise signal. The method further includes providing a first error signal indicative of noise, the audio signal, and the anti-noise sound within the cabin and a second error signal indicative of an estimated anti-noise signal and receiving the first error signal and the second error signal by at least one controller. The method further includes providing an estimated impulse response based on the first error signal and the second error signal and selecting a first pre-stored impulse response from a plurality of pre-stored impulse responses based on the estimated impulse response to filter one or more reference signals at an adaptive filter to generate the anti-noise signal. The method further includes selecting a first plurality of pre-stored tuning parameters from a plurality of pre-stored sets of the tuning parameters based on the first pre-stored impulse response and tuning the adaptive filter with the first plurality of pre-stored tuning parameters to generate the anti-noise signal.
The embodiments of the present disclosure are pointed out with particularity in the appended claims. However, other features of the various embodiments will become more apparent and will be best understood by referring to the following detailed description in conjunction with the accompany drawings in which:
As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms. The figures are not necessarily to scale; some features may 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.
Adaptive feedforward ANC algorithms such as engine order cancellation (EOC) and road noise cancellation (RNC) include a static estimate of a secondary path impulse response (IR) between loudspeakers and error microphones. In one example, the IR has been measured in a predetermined preproduction vehicle or vehicles to create one IR estimate that is stored in each of the large number of production vehicles that are produced. This, and the fact that the cabin configuration of any particular vehicle can change during runtime, can create a mismatch between the actual and stored secondary path IRs. This mismatch may lead to degraded noise cancellation performance, and in some cases, it may lead to undesirable noise boosting.
As described herein, the disclosed system and method intelligently update the static secondary path IR using an estimate of the actual cabin configuration to maintain noise cancellation performance. The estimated cabin configuration may be derived using a number of approaches which include generating test signals and measuring the response through the microphones or any other adaptive model of the cabin acoustics. The estimated IRs are processed by an IR matching algorithm such as a fingerprinting technique to obtain the closest match from a bank of pre-measured IRs. The disclosed system and method provide for determining if, when, and the manner in which secondary path IRs may be estimated and updated. Aspects disclosed herein, provides, among other things, a number of techniques for detecting changes in cabin acoustics and safely updating the static secondary path IRs to achieve better noise cancellation performance for multiple cabin acoustic configurations.
The noise source 102 provides a signal to the primary path 104 which provides a disturbing noise signal, d[n], at the error microphone 106. The noise source 102 also provides a reference signal, x[n] to the adaptive filter 108, which imposes a phase and magnitude shift and outputs a filtered anti-noise signal y[n] to the actual secondary path transfer function 112 which outputs a signal, y′[n], that destructively interferes with the primary noise signal d[n] at the error microphone location. The reference signal, x[n], may be derived from a source that is correlated with the primary noise source 102, such as engine RPM or a microphone or accelerometer. A measurable residual signal represents an error signal, e[n], for the adaptation unit 110. The estimated secondary path transfer function Ŝp(z) is used to calculate updated filter coefficients. This compensates for decorrelation between the anti-noise signal y[n] and a filtered anti-noise signal, y′[n], due to the transfer function characterizing the secondary path. The secondary path transfer function Ŝp(z) also receives the reference signal, x[n], characterizing the noise source 102 and provides a filtered reference signal x′[n] to the adaptation unit 110.
The quality of the estimated secondary path transfer function Ŝp(z) influences the stability of the system 100. Deviation of the estimated secondary path transfer function Ŝp(z) from the actual secondary path transfer function S(z) affects convergence and stability behavior of the adaptation unit 110. Unstable behavior or suboptimal noise cancellation may be caused by changes in the ambient conditions in the listening environment, which lead to changes in the actual secondary path transfer function S(z). i.e., changes in the listening environment led to differences between Ŝp(z) and S(z). For example, when the listening environment is a vehicle cabin, changes in ambient conditions may occur when a window is opened, the seat positions are adjusted, or by the addition of items or passengers on one or more seats in the listening environment.
A second topology for a noise cancellation system is shown in block diagram
In the electrical domain, the anti-noise signal y[n] is filtered by a second secondary path transfer characteristic Ŝp(z) 214 and subtracted from the error signal, e[n], at adder 216 (or microphone). This results in an estimated noise signal, d{circumflex over ( )}p[n], at the error microphone 106. The estimated noise signal d{circumflex over ( )}_p [n] is combined with the signal filtered by the adaptive filter 108 at adder 218 to generate an internal error signal g [n]. The internal error signal g [n] is an input to the adaptation unit 110.
In practice, the secondary path estimate IRs are estimated only once for the listening environment with optimal conditions. For a vehicle cabin listening environment, this takes place only during the production tuning process before the vehicle leaves the production facility. Furthermore, the estimated secondary path IRs represent the listening environment in a nominal configuration. For example, when the listening environment is a vehicle cabin, a nominal configuration is the vehicle in park, not moving, with one driver, no other passengers, and all the windows, doors, sunroof and trunk fully closed.
The secondary path estimation process involves playing a test signal from each speaker to excite the electro-acoustic path followed by a deconvolution step. These secondary path estimates remain fixed thereafter for the lifetime of the vehicle. When the acoustic environment within the listening environment changes during runtime, for example when the vehicle is being driven with one or more windows partially open and multiple passengers or items in the seats, a mismatch between the actual and stored IRs results.
In a listening environment in real time, the stored IR for Ŝp(z) may differ from the actual IR of the secondary path, S(z), and this mismatch may eventually result in degraded ANC performance or in divergence of the W(z) filters, creating unbounded noise boosting within the passenger cabin. When Ŝp(z) better matches S(z), the resulting estimate of d{circumflex over ( )}p[n] more accurately represents the primary noise signal that is present in the listening environment, and adaptive filters W(z) are much more likely to avoid divergence. Additionally, when Ŝp(z) better matches S(z), a more aggressive tuning approach may be used to increase the noise cancellation performance, because the risk of divergence has been reduced.
The system(s) and method(s) disclosed herein, may among other things, improve the accuracy of the stored estimates, replacing the stored estimates during system operation after calculating new secondary path IRs, online in real time in a near-imperceptible manner. These methods apply to FxLMS and MFxLMS systems described in
With conventional implementation of ANC systems, the IRs for the Ŝp(z) are estimated only once during the production tuning process. In general, the IRs represent S(z) under a nominal cabin scenario (e.g., one driver, windows and doors closed, sunroof closed etc.) and remain fixed thereafter for the lifetime of the vehicle. The IR estimation process performed during the tuning process can involve playing test signals (e.g., broadband noise or sine sweeps) to excite and characterize an electro-acoustic path which is followed by a deconvolution step to determine the IR coefficients.
In general, once production tuning is complete (e.g., when the vehicle software is finalized and the vehicle has been sold and is being operated by customers), the IRs (S(z)) may differ from the estimated IRs (Ŝp(z)) due to a variety of reasons. Such reasons may involve changes in occupancy, temperature, seat position or window position, etc. This mismatch may result in degraded ANC performance and may eventually result in divergence of the W(z) filters leading noise boosting. One strategy to mitigate the effects of divergence is to tune the ANC algorithm in a more conservative way. This may include setting tunable limiters on the anti-noise outputs or lowering a step-size of the ANC algorithm or increasing the leakage of the ANC system. However, such approaches may undesirably lead to reduced noise cancellation performance of the ANC system.
One approach to solve the S(z) to Ŝp(z) mismatch problem may include simply remeasuring IRs and loading parameters for the estimated secondary path Ŝp(z) with IRs that more closely match the actual secondary path S(z). Such an approach, however, may not be desirable, as this involves subjecting the customers seated in the vehicle to a suite of audible and unpleasant test signals for the entire life of the vehicle. If Ŝp(z) matches S(z) more closely, the resulting error feedback signal e[n] (or g [n]) represents the noise cancellation performance in the vehicle cabin more accurately. Under these conditions, the adaptive filters W(z) are then less likely to misadjust. In addition, with Ŝp(z) matching S(z) better, a more aggressive tuning (resulting in better noise cancelation) can be used because there is lower risk of divergence.
There are several factors to consider when re-estimating and changing the Ŝp(z) IRs during runtime. For the disclosed system(s), the ANC system should include a method for re-estimating Ŝp(z) during normal vehicle operation (e.g., this will be referred to as updating Ŝp(z) with the value of Ŝpu(z)). The measurement system for Ŝpu(z)) may be embodied in various ways. This may include implementations such as:
generating non-invasive, sub-audible sine sweeps or other test signals at a speaker output and measuring the response at the microphones to derive Ŝpu(z);
adaptive filters that use speaker outputs (e.g., audio, vehicle prompts, chimes) and microphone measurements to derive Ŝpu(z);
deep learning or system identification techniques that derives a Ŝpu(z) for some or all secondary paths; and/or
by simply playing pink noise or a sine sweep from each speaker of interest in a manner that is audible to the passengers of the occupied vehicle or in a manner which is less disturbing to the occupants of the vehicle because the vehicle is unoccupied at the time of the test signal is being played. From these test signals received at the microphones of interest, it is possible to derive Ŝpu(z) using various methods.
With respect to the adaptive filters that are updated to estimate Ŝpu(z) such updates may also take place at least once and any time after the vehicle is purchased. One or more of the implementations as noted above may be implemented as, for example, a state machine which will be described in more detail in connection with
For any of the implementations or methods that provide the estimate of the current value of Ŝpu(z), the system 300 includes an alternate audio signal source 305 to provide an additional signal to each loudspeaker 311 of interest. The system 300 includes at least one loudspeaker 311 (hereafter loudspeaker) that generates an anti-noise sound (e.g., in a cabin of a vehicle 313) in response to the anti-noise signal y[n]. The signal e[n] or d{circumflex over ( )}p[n] as received at each microphone 216 of interest provides a current value of Ŝpu(z) to the controller 303. In general, any ‘in-situ’ measurements or estimates of Ŝpu(z) as performed by the system 300 may include additional, unwanted noise that would not be present in the original, preproduction characterization of Ŝ(z). The presence of this additional noise may make this in-situ measurement of Ŝpu(z)) a somewhat less accurate representation of the in-situ S(z) than the original, preproduction Ŝp(z) was of S(z) at the original time of measurement. These additional noise sources that are present at the time of measuring Ŝpu(z) include any one or more of engine noise, electric motor noise, wind noise, music noise, the noise of phone calls or conversation in the vehicle, HVAC noise, traffic noise, the noise of cityscape or noises of other nearby vehicles that invades the car cabin. It is the presence of these additional noises that make the fingerprinting of Ŝpu(z) (or the estimation of Ŝpu(z)) necessary to produce optimal noise cancellation. One aim of the fingerprinting approach is to use the noisy Ŝpu(z) to select which of the predetermined, prestored, or measured Ŝp(z) with each selected Ŝp(z) corresponding to a different cabin configuration that best represents the current cabin configuration of the vehicle. As this measured set of Ŝp(z) may result in optimal noise cancellation and provide a stable system performance.
In operation 406, the controller 303 determines whether an Adaptive Secondary Path (ASP) is initialized. The ASP corresponds to a process for performing an online secondary path estimate in a multiple input/multiple output (MIMO) environment. If the ASP process can identify a closer match to the secondary path, this aspect may improve cancellation performance and that secondary path will be utilized.
If this condition is true, then the method 400 moves to operation 408. If not, then the method 400 moves back to operation 404. In operation 408, the controller 303 determines whether an increasing True Audio (TA) error has occurred. The TA error corresponds to a difference between the audio signal predicted to be at the error microphone 106 and the actual audio signal at the error microphone 106. If this difference is increasing, the TA error indicates that the model of the secondary path is inaccurate.
If this condition is true, then the method 400 moves to operation 410. If not, then the method 400 moves back to operation 404.
In operation 410, the controller 303 determines whether there is sufficient audio content present and also whether the SNR for the audio signal is above a predetermined level. For the characterization of Ŝpu(z) to be non-invasive, it is desired that the levels of any test signals be as low such that the test signals are as inaudible to passengers as possible. However, the level of the test signals needs to be high enough such that the test signals can be detected at the error microphones 106. This aspect provides a range of optimal amplitudes of the test signals. If this condition is true, then the method 400 moves to operation 412. If not, then the method 400 moves back to operation 404, as poor signal to noise ratio has rendered the test signals too noisy to be used to reliably estimate Ŝpu(z).
In operation 412, the controller 303 prepares for processing. In other words, the controller 303 activates the secondary path IR re-estimation algorithm. In operation 414, the controller 303 works toward identifying the present audio configuration in the vehicle (or cabin in the vehicle). The controller 303 continues to determine whether the audio content is sufficient in terms of spectral density and SNR in operation 416. In general, the adaptive filter 108 may only be adapted when the audio content is sufficiently flat over the required bandwidth. To accomplish this aspect, the system 300 and the method 400 may use spectral descriptors such as spectral flatness to determine if the audio content will allow proper convergence of the adaptive filters.
With respect to SNR levels of the error microphones 106 in the vehicle, if background noise in the vehicle is much higher than the audio playing in the car, such noises may dominate estimation for the adaptive filter (or the secondary path estimation Ŝpu(z)). Thus, with this scenario, if audio is below the background noise of the vehicle, such a condition may indicate that secondary path estimation Ŝpu(z) is unreliable. In addition, with respect to the error levels on the microphones 106, the overall levels in the microphone (e.g., ANC microphones) may also be used to determine whether the estimated secondary path Ŝpu(z) is reliable. For example, if the microphone exhibits a consistently low amplitude, such a condition may indicate that the estimated secondary path Ŝpu(z) is not yet reliable. If the controller 303 determines that the audio content is sufficient in terms of spectral density and SNR, the method 400 moves to operation 418. If not, then the method 400 moves to operation 420.
In operation 420, the controller 303 determines whether there is an insufficient amount of audio being received that exceeds a predetermined amount of time. If this condition is true, then the method 400 moves to operation 424 and aborts. If not, the method 400 moves back to operation 414. Also in operation 414, the controller 303 monitors one or more signals from the secondary path IR re-estimation algorithm to determine whether convergence has been achieved. In general, the error microphone 106 provides an output which indicates that Ŝpu(z) has converged to an acceptable error to S(z). Additionally, or alternatively, signals derived from this error such as a gradient value from an adaptive filter using a gradient descent method may perform an online estimate of Ŝpu(z).
In operation 418, the controller 303 determines whether the audio content is exhibiting a small stable gradient. For example, the controller 303 may compare a gradient on the audio content to a predetermined gradient value. A high gradient in the system 300 may indicate that the filters for the estimated secondary path (e.g., Ŝpu(z)) have not converged on the IRs on the actual secondary path S(z). Since the gradient is usually a vector quantity, an L2 norm may be used to determine a convergence of the estimated secondary path, (e.g., Ŝpu(z)) filters (or convergence of the adaptive filters). When the L2 norm is consistently low (or below the predetermined gradient value), this may be indicative of the estimated secondary path, Ŝpu(z) being reliable. Thus, if this condition is true (e.g., gradient of the audio content is less than the predetermined gradient value), then the method 400 moves to operation 422. If not (e.g., gradient of the audio content is greater than the predetermined gradient value), then the method 400 moves back to operation 414.
In general, it may be desirable to ensure that the secondary path estimation Ŝpu(z) is reliable and can be used to update the secondary acoustic transfer function, S(z) with the secondary path estimation Ŝpu(z) such that the adaptation unit 110 can use the secondary path estimation Ŝpu(z) to calculate the filter coefficients of the transfer function, W(z) for the adaptive filter 108. In general, while the system 300 may reliably generate Ŝpu(z), this may not entail that the secondary path estimation of Ŝpu(z) results in robust or reliable fingerprints. The system 300 is configured for a default Ŝpu(z) when the system 300 starts up or may utilize the last determined Ŝpu(z) during the last operation of the vehicle 313. The possible candidates for Ŝpu(z) are determined based on selection that may minimize performance degradation in the maximum number of likely cabin configurations. The controller 303 also includes instructions for executing an adaptive filter (or deep learning, or system identification algorithm) that iteratively solves for the secondary path based on the reference component of the signal output from microphone 307 and the receipt of that signal through the actual secondary path, S(z) 112 by all error microphones 106.
There may be a number of reasons as to why the Ŝpu(z) may not be reliable. For example, if the estimated secondary path estimation Ŝpu(z) was obtained by the adaptive filter of the controller 303, the adaptive filter may have misadjusted due to a variety of reasons or include coefficients whose values approach infinity (or provides a divergent filter). Conversely, if the secondary path estimation Ŝpu(z) was obtained by deep learning or system identification, then the estimate may not be accurate if the system was not trained and tested with as many real-world acoustic combinations as possible. Therefore, it is generally desirable to assess the reliability of Ŝpu(z) coefficients before such coefficients may be used for fingerprinting and updating the coefficients of Ŝpu(z).
A high error in system 300 may indicate that the filter for the estimated secondary path, Ŝpu(z) are diverging from the actual IRs for the secondary path S(z). A large error may indicate that convergence has not occurred thus causing Ŝpu(z) to be unreliable. Therefore, to implement this, the state machine (or the method 400) may compare the current error to a tunable threshold and if the error is below the threshold, then the method 400 may conclude that, for this metric, the Ŝpu(z) is reliable. In general, the controller 303 monitors the error output by the microphone 216.
Generally, since the secondary path estimation Ŝpu(z) may be estimated using one or more of these methods, the exact process for validating the secondary path estimation Ŝpu(z) may vary. The method 400 provides an approach that uses many possible processes that are useful for validating the secondary path estimation Ŝpu(z) based on adaptive system identification. Any combination of these techniques below could be used. An example of this can be seen in the method 400 between operations 404 (e.g., IDLE) and 414 (e.g., Run IR Estimation) also including operations 406, 408, 410, 416, 418, and 420.
In operation 422, the controller 303 disables or deactivates the secondary path IR re-estimation algorithm and initializes IR fingerprinting and matching process.
In operation 424, the controller 303 activates or triggers a matching algorithm to performing IR fingerprinting. The fingerprints of one or more IRs are derived in this operation. In general, the method 400 and the system 300 provides, for example, fingerprinting IRs to dynamically switch secondary path parameters in an online single input, single output (SISO) or MIMO ANC system, despite
Fingerprinting involves, among other things, applying signal processing techniques to extract a unique signature from at least one, or every estimated impulse response Ŝpu(z) in the system 300. Every IR in a multi-channel ANC system displays unique attributes about an electroacoustic path. These attributes account for signal processing components such as analog to digital (A/D) and digital to analog (D/A) converters, amplifiers, loudspeakers, microphones, and the acoustic path itself. The response of the electroacoustic path (i.e., the frequency response of the electroacoustic path), is affected to a greater degree by the acoustic properties of the vehicle cabin. For a typical vehicle cabin, the frequency response shows peaks and dips at various frequencies. In addition, the peaks and dips can shift in amplitude and frequency depending on a variety of factors such as temperature, seating configuration, number of vehicle occupants and so on. It is these variations in the frequency response that enable the opportunity to extract unique fingerprints from the IRs.
The pre-measured bank of IRs from the various configurations of the vehicle's cabin can be obtained either from a production vehicle IR measurement or from a different secondary path estimation, Ŝpu(z) estimation technique. Another approach may involve using the secondary path estimation Ŝpu(z) estimation algorithm itself to derive the pre-measured bank of IRs from the various acoustic cabin configuration. In addition, the controller 303 may assign each cabin acoustic configuration in this bank to a tag (bank1, bank2, etc.) or through the use of a lookup table (LUT) 320. The pre-measured bank of IRs may be stored in memory 322 (or the LUT 320) the associated with the controller 303 as pre-stored IRs for comparison to one or more of the estimated impulse responses Ŝpu(z).
IRs measured in a production vehicle can yield more accurate fingerprints for multiple cabin configurations, because it uses a test signal to excite all frequencies. Another approach would be to use the Ŝpu(z) IR estimation algorithm itself to derive the IRs from the various acoustic combinations. Finally, each cabin acoustic configuration in this bank is assigned a tag (bank1, bank2, and so on).
Once all the fingerprint characteristics have been extracted from the estimated Ŝpu(z) IR, the system 300 and method 400 may match the estimated secondary path Ŝpu(z) with an existing database of fingerprints (or predetermined (or pre-stored) secondary path estimations) from various cabin configurations is applied to find the closest match. Finally, the IR coefficients from the closest matching configuration are loaded by the adaptation unit 110 into the adaptive filter of the system 300. The system 300 performs the above method of estimating the impulse response and determining if there is a match to a prestored impulse response for every loudspeaker and microphone pair in the vehicle.
The matching process as executed by system 300 may involve the controller 303 calculating a distance metric, ascertaining a winner (e.g., the closest matched IR value to the pre-stored IR), a confidence level of the match between the closest matched IR value in the estimated secondary path Ŝpu(z) to various pre-stored IR values, and determining a margin of victory (MOV) between the closest matched IR value to a plurality of the pre-stored IRs.
In operation 424, the controller 303 calculates the distance metric to determines the closest match between the secondary path estimate IR, Ŝpu(z), and the bank of previously stored IRs. Examples of distance metrics may include Euclidean norm, Lp norms or their variations such as, for example, the Hausdorff distance and normalized misalignment. The distance metric is discussed in more detail in the '048 application.
In operation 426, the controller 303 determines whether the matching is complete. For example, the controller 303 establishes a voting matrix of the closest matched IR value relative to the closest previously stored IRs as stored in memory. If this condition is true (e.g., the voting matrix has been established), then the method 400 moves to operation 428. If not, then the method 400 moves back to operation 424.
In operation 428, the controller 303 establishes a confidence metric to determine a final winning IR configuration by considering aspects of the voting matrix. The controller 303 determines whether the IR candidate exhibits a confidence level of that is greater than a predetermined value (e.g., 50%). If this condition is met, then the method 400 moves to operation 432. If not, then the method 400 moves back to operation 412.
In operation 430, the controller 303 determines a margin of victory (MOV) between the IR value for the secondary path estimate Ŝpu(z) and the closest IR value in the bank and the second closest IR value in the bank. The controller 303 determines whether the MOV is above a predetermined MOV threshold (e.g., 20%). If the MOV is above the predetermined MOV threshold, then the method 400 moves to operation 432. If not, then the method 400 moves back to operation 412.
In operation 432, the controller 303 determines if the selected IR slot is different from the current slot. If the selected IR slot is identical to the current IR slot, then the best-fit IR is currently in use by the ANC system 300, and there is no need to change to a different IR. If this condition is true, then the method 400 moves to operation 434 to perform the IR switching. If not, then the method 400 moves back to operation 412. In operation 434, the controller 303 executes or performs IR switching. For example, the controller 303 executes a trigger IR switching mechanism. In this case, the controller 303 executes the IR switching mechanism to start transitioning from the old Ŝp(z) parameters with the new parameters that matched the Ŝpu(z) measurement. An abrupt switch may momentarily degrade ANC performance but is also possible. To avoid this condition, the IR switching mechanism includes a smooth slewing approach to minimize any audible artifacts. A time constant for slewing may be tunable or variable but could be in the range of, for example, 100 ms to several seconds to complete. Another embodiment may include instantaneously updating the IR for the secondary estimation path with the Ŝpu(z) coefficients for the adaptive filter 108. It is generally recognized that one aspect may involve utilizing the new parameters that matched the that matched the Ŝpu(z) measurement, not the parameters that that correspond to the impulse response measurement (or Ŝpu(z) measurement).
In general, the controller 303 may perform one of the following options when executing the IR switching mechanism. In a first option, the controller 303 updates all coefficients of the adaptive filter 108 via the adaptation unit 110. For example, the LMS parameters of step size and leakage may be temporarily modified so that when the unintended transient occurs, the adaptive filters 108 of the ANC system may not respond. In a second option, the controller 303 performs a slewed (average) update of all of the coefficients of the adaptive filter 108 via the adaptation unit 110 over a short period of time. In this case, the coefficients are gradually updated using, for example, an averaging filter to blend coefficients from the current value of the secondary path estimation Ŝpu(z) to new targeted coefficient values for the secondary path estimation Ŝpu(z). Averaging may either be linear or exponential and the total update time may be tunable (e.g., total update time range may be 40 ms to 5 seconds).
In operation 436, the controller 303 determines whether coefficients provided by the adaptation unit 110 to the adaptive filter 108 have been loaded properly. For example, the controller 303 monitors the state of the ANC after the switch has occurred in operation 434. If the proper coefficients have been property loaded, then the method 400 moves to operation 438. If not, then the method 400 moves back to operation 434.
In operation 438, the controller 303 executes a WAIT state. For example, the controller 303 determines whether the selected IR (or new IR) is stable. In general, after the update is complete, the controller 303 monitors the effects of the newly updated parameters. If the controller 303 detects divergence or the error signals with these new IRs from the newly measured Ŝpu(z) seem excessively high or are higher than with the previous Ŝpu(z) from immediately prior to the coefficient swap, the controller 303 could quickly revert to the previous parameters as such parameters are stored and not deleted. But if no issues are detected, then the controller 303 may keep the estimated coefficients for the adaptive filter 108 based on the estimated Ŝpu(z) frozen for a longer period of time (ex. 5-30 minutes) before resuming the IR estimation algorithm and repeating the same logic described above for deciding if, when, and how to update Ŝpu(z) again. This process may keep running for the entire duration of a vehicle ignition cycle. If the selected IR (or estimated secondary path Ŝpu(z)) is stable, then the method 400 moves to operation 440. If not, then the method 400 moves to back to operation 434. In operation 440, the controller 303 determines if a timer for the WAIT state has expired. The controller 303 employs the timer and waits for the timer to expire to determine if the state of the selected IR (or new IR) is stable. If the state of the selected IR is stable after the time expires, the method 400 moves to operation 404. If not, then the method 400 moves back to operation 438.
In general, aspects disclosed herein provide for a distance measurement (or misalignment) which is defined by an L2 Normalized Square Error between an estimated IR, Ŝpu(z) and an actual IR, Sp(z). This may be defined mathematically by the following equation:
Norm (Sp(z)-Ŝpu(z))/Norm (Sp(z)), which may then be converted to a logarithmic scale. It is recognized that the disclosed system may also perform the above equation in a time domain. This is generally referred to as a relative modeling error. One example of this relative modeling error is generally set forth in “A New Online Secondary Path Modeling Method with An Auxiliary Noise Power Scheduling Strategy for Narrowband Active Noise Control Systems”, Sun et al., 29 Nov. 2017 which is hereby incorporated by reference in its entirety. The controller 303 provides a vector of distances between the various IRs, Ŝpu(z) and the stored IRs in a distance matrix.
With the embodiments as disclosed in
The embodiment as illustrated in connection with
The '048 application described, among other things, a method to intelligently update the static secondary path IR using an estimate of the actual cabin configuration to maintain noise cancellation performance. The estimated cabin configuration may be derived using one of several approaches which include generating test signals and measuring the response through the microphones or any other adaptive model of the cabin acoustics. The estimated IRs may be processed by a fingerprinting algorithm to seek the closest match from a bank of pre-measured IRs. In addition, the '048 application discloses a system and method for determining if, when, and how secondary path IRs should be estimated and updated. As a whole, the embodiments of the '048 application provided multiple techniques for detecting changes in cabin acoustics and safely updating the static secondary path IRs to achieve better noise cancellation performance for multiple cabin acoustic configurations.
The controller 502 receives signals from the error microphones 106, the loudspeakers 311, and a vehicle data bus 504. In general, the vehicle data bus 504 includes any information that indicates that the acoustics in the vehicle have changed. Examples of aspects being illustrative that vehicle acoustics have changed generally involve obtaining information regarding the status or various components in the vehicle. Such information may correspond to information related to window status (e.g., up, down or percentage open), trunk open/closed status, seat position status (e.g., a change in the location of the seat), or the number of occupants in the vehicle which may be obtained via seat weight sensors for occupancy detection. The existing secondary path selection block 510 includes a compensation block 511. The relevance of the blocks 510, 511, 512, 514, 516, 518, and 520 will be discussed in more detail below.
The controller 502 receives signals from the error microphones 106, the loudspeakers 311, and a vehicle data bus 504. The secondary path selector block 510 receives signals from the error microphones 106, the loudspeakers 311, and the vehicle data bus 504 and selects a corresponding stored IR from the bank IR block 512. The controller 502 may select the corresponding stored IR in the manner noted above in connection with
For example, constant tuning values may usually be derived to be the lowest values to achieve a stable ANC system or performance (e.g., a converged adaptive filter). However, such constant tuning values may be described as “conservative”. In other words, tuning may be utilized that can manage large changes in an acoustic path (e.g., which appears as high feedback error) and that keeps the adaptive filter 108 from diverging. As generally known, divergence of the adaptive filter 108 may lead to loud boosting sounds in the cabin of the vehicle. However, by maintaining a “conservative” tuning with respect to the tuning values, this may result ANC performance that may be reduced from its true potential. This aspect may lead to frustration for Original Equipment Manufacturers (OEMs) as such OEMs desire the best or optimal cancellation performance while also ensuring that there are no cases of adaptive filter divergence.
Aspects as set forth in
In general, the tuning parameters block 602 stores a plurality of tuning parameters that may be applied based on which stored IR is selected. In one example, the tuning parameters block 602 may store a first tuning parameters setting 602a, a second tuning parameters setting 602b, a third tuning parameters setting 602c, and a fourth tuning parameters setting 602d. The first tuning parameters setting 602a may correspond to a conservative set of tuning parameters for the adaptive filter 108. In general, the controller 502 may apply the first tuning parameters setting 602 when a stored IR may not have been selected and this setting 602a may be considered a default setting until a stored IR is selected. Once the actual vehicle cabin acoustics are ascertained and the controller 502 is in a position to select a corresponding stored IR to match the vehicle cabin acoustics, the controller 502 may apply any one of the parameter settings 602b, 602c, or 602d based on how aggressive the tuning is required to be for a corresponding stored IR. Thus, in this regard it is recognized that the selected IR has a corresponding ideal set of parameter settings 602a, 602b, 602c, and 602d and the controller 502 selects the corresponding or appropriate tuning parameters setting 602a, 602b, 602c, and 602d that coincides with the selected IR to maximize performance. In general, it is recognized that system 600 may take some time (e.g., seconds or minutes, etc.) before a new stored IR may be selected by the controller 502 with confidence. While waiting for the vehicle cabin acoustics to stabilize, the controller 502 utilizes any one of the tuning parameters settings 602a, 602b, 602c, and 602d as a corresponding default setting (or conservative setting) and the first tuning parameters setting 602 may be selected on the basis that it provides a conservative unnoticeable effect on the occupants in the vehicle. The controller 502 may tune the adaptive filter 108 with any one of the parameters settings 602a, 602b, 602c or 602d after selecting the stored IR for a predetermined amount of time. In this regard, cancellation performance may be low but the conservative tuning parameters setting may guaranty stability across the various cabin acoustics. After stabilization, the controller 502 selects the desired parameters settings 602a, 602b, 602c, and 602d that is optimal for the selected IR. The particular settings parameter 602a, 602b, 602c, and 602d that coincides with the selected store IR may be determined during pre-production builds of the vehicle and are selected to ensure optimal ANC performance.
Once the system 600 selects the proper secondary path (or stored IR), the controller 502 may load any one of the first, second, third, or fourth tuning parameters 602a, 602b, 602c, 602d with the intention of maximizing ANC performance. Maximized ANC performance (or performance gain) may be achieved when the tuning parameters are more responsive since it is possible to guarantee that a feedback error that derives from errors in the secondary path has been minimized. It is possible to adjust varying levels of the tuning parameters such as adaptive step size filter μ, leakage (γ), maximum output levels, etc. In one example, the following may correspond to various conservative tunings: step size=0.005, leakage 0.001, and maximum output=−30 dB, etc. Whereas the following example may correspond to various aggressive tunings: step size of 0.1 to 0.5, leakage=0.0001 (which corresponds to less leakage), and maximum output=−10 dB (which allows for more output). The leakage (or leakage value) generally corresponds “forgetting factor” in adaptive filters. The leakage value is an amount that is removed from the LMS update equation in an effort to prevent divergence. A high leakage value provides a high chance of stable adaptive filters. However, the high leakage value also provides low cancellation because the high leakage value restricts the LMS update in the adaptive filter. Within the context of the system 600, low leakage values are more desirable, however, the system 600 can only use such lower leakage values the acoustic space in the vehicle is known or characterized.
In addition, the leakage may correspond to a stabilization method that changes the update formula in the adaptive filter such that a mean squared error but also a norm of the filter taps is minimized. This condition may prevent unbounded growth of the filter coefficients in cases of numerical ill-conditioning. In general, the leakage value is proportional to an amount of cancellation provided by the adaptive filter.
With respect to the operation of the system 600, the controller 502 receives signals from the error microphones 106, the loudspeakers 311, and the vehicle data bus 504. In particular, the secondary path selector block 510 receives signals from the error microphones 106, the loudspeakers 311, and the vehicle data bus 504 and selects a corresponding stored IR from the bank IR block 512. The controller 502 may select the corresponding stored IR in the manner noted above in connection with
In the event the controller 502 determines that a new stored IR may be used with a high degree of confidence, the adaptive tuning selector block 516 selects any one of the first, second, third, or fourth tuning parameters 602b, 602c, and 602d that corresponds favorably with the new stored IR and applies such parameters in the filter setting block 518. In general, each of the tuning parameters 602a, 602b, 602c, 602d may correspond to a particular step size, leakage, and/or maximum output. It is recognized that the number of occupants detected in the vehicle, window open/closed (e.g., window 50% open or closed, etc.), trunk open/closed status, seat position status (e.g. a change in the location of the seat), generally affect the manner in which the stored IR is selected by the controller 502. Each of the tuning parameters 602a, 602b, 602c, 602d may include varying degrees of conservative and aggressive values. The controller 502 may then store such tuning parameters as set forth in the second, third, or fourth tuning parameters setting 602b, 602c, or 602d in the adaptive filter controller 110 such that the adaptive filter controller 110 controls the adaptive filter 108 accordingly.
The following example below illustrate one manner in which the disclosed embodiments may be implemented. In general, is a production vehicle (e.g., sedan) includes seats positioned in rows that are capable being folded down so that a driver or occupant can store large cargo in the trunk and into the vehicle cabin. The vehicle in often cases may include a loudspeaker in the form of a subwoofer positioned in the trunk and the overall sound system for the vehicle may also be equipped with an ANC system. In this case, the ANC algorithm is currently executing a conservative tuning (e.g., step size low <0.05), high leakage >0.01), and low max output <−30 dB). The reason for the ANC system executing this conservative tuning is that there may not be a vehicle bus message for when the rear seat is folded down. Thus, in this regard, the ANC tuning may have to always be prepared for that scenario even though this condition is infrequent. If the tuning is not conservative, then the ANC system may diverge and become unstable resulting in ANC boosting.
However, with an ASP system as set forth herein in place, the starting (or initial) tuning may be be aggressive (e.g., step size high >0.1, low leakage <0.001, and max output can be set higher (e.g., <−10 dB). These setting may enable more performance and the system is guaranteed to be stable because ASP (e.g., the disclosed system 500, 600, 700) is assuring the vehicle that the rear seat is not folded down. Then, in the event the rear seat is folded down, the system 500, 600, 700 detects this condition, switches the secondary path to a different tuning that is less aggressive but not as conservative as the case above without ASP. After the switching, the tuning may be considered to be a tuning that is between conservative settings and aggressive settings.
In one example, the controller 502 may employ a real-time calculation by utilizing a constant offset (e.g., a single tunable value that is added to each tuning table). For example, the controller 502 may add a predetermined step value (e.g., 0.05) to all LMS (or adaptive filter controller 110) step entries which may be normally a table of 256 entries). Similar, the controller 502 may add a predetermined leakage value, for example, such as −0.01 to all LMS leakage entries (also to a large table).
In another example, the controller 502 may employ a real time calculation by utilizing variable offset/lookup table offsets. In this method, the controller 502 may add the offset to the step or leakage tables no longer as a single constant value as note above, but rather as variable value that is calculated by the controller 502. For example, the controller 502 may utilize a simple linear or polynomial equation to determine the variable to be applied to the step or leakage tables (e.g., or to any of the tuning parameters). For example, the controller 502 may utilize a descending line for a step size that allows higher step values for low frequencies and smaller increases for high frequencies. The tuning parameters may include a slope and y-intercept (e.g., the controller 502 may execute a step equation such as, for example, y=−0.001x+0.09 where x is a tuning table index (i.e., lower index means lower frequency)0.
The controller 502 may also run in a real time, eigenvalue (2) equations to calculate or apply variable tuning parameters. One example of an eigenvalue equation is set forth in “Signal Processing for Active Control” S. J. Elliott, 2001. Essentially, an eigenvector v of a linear transformation T may be a nonzero vector that, when T is applied to the non-zero vector, there is no change in direction. Applying the linear transformation T to the eigenvector may only scale the eigenvector by the scalar valueλ, called an eigenvalue. In this application, the controller 502 may derive the eigenvalue between the selected IR and the actual music compensation filter coefficients. In general, the music compensation filters reflect the actual cabin acoustics and the stored IR selected is the best match. By using eigenvalues, the controller 502 may employ a new optimized set of LMS step and leakage values that may be similar to the variable offset and look-up tables calculation method. The difference is that the controller 502 may utilize eigenvalues as the basis of calculations for new tuning values for the adaptive filter controller 110 and/or adaptive filter 108.
In general, aspects disclosed herein may remove “conservative” tuning of the adaptive filter 108 and/or adaptive filter controller 110 and may allow production vehicles to be tuned in a more “aggressive” fashion that enables increased ANC performance. This may occur upon detecting that the disclosed systems have correctly identified the correct secondary path (or correct stored IR) that matches the actual vehicle acoustics. Once the correct secondary path or stored IR has been identified, the disclosed embodiments modify the base “conservative” tuning with “aggressive” values that make the ANC adaptive filters more responsive since it is possible to ensure that the feedback error that derives from errors in the secondary path has been minimized.
In addition, the disclosed embodiments may enable for the use of a “conservative” tuning on amplifier/head unit on boot up. Basically, such an amplifier/head unit utilize the normal “conservative” tuning values until the adaptive secondary path algorithm selected the proper secondary path (or stored IR) is selected with high confidence. As noted, the disclosed embodiments may utilize one system that is optimized for memory consumption (e.g., the system 700), and another system (e.g., the system 600) that is optimized for execution time.
As noted above, the system 600 may be execution time optimized. Thus, if the final application has a large amount of memory, but reduced processor speed, all of the “aggressive” data can be simply stored in memory. When the system 600 detects a change in the impulse response, the adaptive filter controller 110 (and hence the adaptive filter 108) is completely loaded using the data stored in memory.
As also noted above, the system 700 may be memory optimized. Thus, in this implementation, the controller 502 may calculate the tuning values in an “aggressive” manner which can then be calculated in real-time. This has the benefit of reducing memory consumption because there is no need to store multiple tables of data. Instead of loading pre-stored data, this implementation may calculate a more ideal set of tuning data based on the active IR.
In operation 802, the audio source 305 provides an audio signal (a[n]) within a cabin of the vehicle 313.
In operation 804, the loudspeaker 311 generates the anti-noise sound (e.g., in a cabin of a vehicle 313) in response to the anti-noise signal y′[n].
In operation 806, the microphone 106 provides a first error signal (e[n]) indicative of the noise (d[n]), the audio signal (a[n]), and the anti-noise sound (y[n]) within the cabin and a second error signal (y{circumflex over ( )}[n]) indicative of an estimated anti-noise signal.
In operation 808, the controller 303 and/or 502 receives the first error signal (e[n]) and the second error signal (y{circumflex over ( )}[n]) and provides an estimated impulse response Ŝpu(z) based on the first error signal (e[n]) and the second error signal (y{circumflex over ( )}[n]).
In operation 810, the controller 303 and/or 502 selects a first pre-stored impulse response from a plurality of pre-stored impulse responses (e.g., IR1, IR2, IR3) (see 512) based on the estimated impulse response Ŝpu(z) to filter one or more reference signals at the adaptive filter 108 to generate the anti-noise signal y′ [n].
In operation 812, the controller 303 and/or 502 selects a first plurality of pre-stored tuning parameters 602a, 602b, 602c, or 602d from the plurality of pre-stored sets of tuning parameters 602a, 602b, 602c, 602d based on the first pre-stored impulse response (e.g., IR1, IR2, or IR3).
In operation 814, the controller 303 and/or 502 tune the adaptive filter 108 with the first plurality of pre-stored tuning parameters 602a, 602b, 602c, or 602d to generate the anti-noise signal y′ [n].
In operation 902, the audio source 305 provides an audio signal (a [n]) within a cabin of the vehicle 313.
In operation 904, the loudspeaker 311 generates the anti-noise sound (e.g., in a cabin of a vehicle 313) in response to the anti-noise signal y′ [n].
In operation 906, the microphone 106 provides a first error signal (e[n]) indicative of the noise (d[n]), the audio signal (a [n]), and the anti-noise sound (y[n]) within the cabin and a second error signal (y{circumflex over ( )}[n]) indicative of an estimated anti-noise signal.
In operation 908, the controller 303 and/or 502 receives the first error signal (e[n]) and the second error signal (y{circumflex over ( )}[n]) and provides an estimated impulse response Ŝpu(z) based on the first error signal (e[n]) and the second error signal (y{circumflex over ( )}[n]).
In operation 910, the controller 303 and/or 502 selects a first pre-stored impulse response from a plurality of pre-stored impulse responses (e.g., IR1, IR2, IR3) (see 512) based on the estimated impulse response Ŝpu(z) to filter one or more reference signals at the adaptive filter 108 to generate the anti-noise signal y′ [n].
In operation 912, the controller 303 and/or 502 selects a first plurality of pre-stored tuning parameters 602a, 602b, 602c, or 602d based at least on one of a constant offset that is applied to one or more baseline tuning parameters and a variable offset value that is applied to the one or more baseline tuning parameters.
While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms of the invention. Rather, 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 invention. Additionally, the features of various implementing embodiments may be combined to form further embodiments of the invention.