Aspects disclosed herein generally relate to a system and method for secondary path switching for Active Noise Cancellation (ANC). 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. An audio signal source provides an audio signal. At least one loudspeaker projects anti-noise sound within a cabin. At least one microphone provides a first error signal indicative of the noise, the audio signal, and the anti-noise sound and a second error signal indicative of an estimated anti-noise signal. 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 compare the estimated impulse response to one or more pre-stored impulse responses; and to select a first pre-stored impulse response that matches the estimated impulse response to filter one or more reference signals at an adaptive filter to generate the anti-noise signal.
In at least another embodiment, a method for performing active noise cancellation (ANC) system 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 the 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 includes providing an estimated impulse response based on the first error signal and the second error signal and comparing the estimated impulse response to one or more pre-stored impulse responses. The method further includes selecting a first pre-stored impulse response that matches the estimated impulse response to filter one or more reference signals at an adaptive filter to generate the anti-noise signal.
In at least another embodiment, a computer-program product embodied in a non-transitory computer readable medium that is programmed for performing active noise cancellation (ANC) is provided. The computer-program product includes instructions for 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 and providing a first error signal indicative of the 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 computer-program product includes instructions for receiving the first error signal and the second error signal by at least one controller and providing an estimated impulse response based on the first error signal and the second error signal. The computer-program product includes comparing the estimated impulse response to one or more pre-stored impulse responses and selecting a first pre-stored impulse response that matches the estimated impulse response to filter one or more reference signals at an adaptive filter 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, {circumflex over (d)}p[n], at the error microphone 106. The estimated noise signal {circumflex over (d)}p[n] is combined with the signal filtered by the first 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 {circumflex over (d)}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 timing (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:
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
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 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
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 will be discussed in more detail in connection with
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. This will also be discussed in more detail in connection with
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.
In an embodiment, the controller 303 repeats this operation for every loudspeaker and microphone combination in the audio system. The distance metric is generally defined as a machine learning algorithm that is used to calculate the similarity between data point. The distance metric may calculate the distance between points and then define the similarity between such points. The distance metrics 504a-504c output values 0.04, 0.06, and 0.08, respectively. A minimum circuit 509 receives the outputs from the metrics 504a-504c and obtains the minimum value. Thus, the minimum circuit 509 selects the minimum value of 0.04 as output from the distance metric 504a. The controller 303 establishes a vote for the speaker and microphone combination (e.g., the prestored IR value 506a) that provides the value of 0.04. In other words, the controller 303 provides a vote for the first prestored IR value 506a from the bank of IR values 506a-506c. In various embodiments, this matching process can be done on as few as one IR, and as many as all the IRs in the system 500.
The controller 303 also determines a confidence metric. The controller 303 uses the confidence metric to determine the final winning IR configuration by considering aspects of the voting matrix 602. The equation for the confidence metric for bank-n is provided below:
In reference to
Once the controller 303 determines which of the prestored IR values to utilize, it is generally required to update to the filter coefficients of the adaptive filter 108 (e.g., via the adaptation block 110) in a manner that is imperceptible to end users. Updating filter coefficients abruptly may, in some instances, generate an unintended transient response inside the adaptive filter 108 because immediately after the update, the next output sample (e.g., usually denoted as y[n]) can vary greatly from the previous output (y[n−1]). This may be the case for any Infinite Impulse Response (IIR) filters are used to model the estimated secondary path Ŝpu(z). Depending on ANC tuning, this unintended transient may be viewed as a large error in the adaptive filter 108 (e.g., or the adaptation unit 110) and may try to overcompensate resulting in a brief burst of anti-noise which could be perceived by the occupants of the vehicle.
Given these concerns, the system 300 may employ two options to update secondary estimated path Ŝpu (z). 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 skewed (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 another embodiment, the controller 303 may measure an absolute difference between each metric and combine all distances into one “averaged” distance. This may be represented by the following equation:
Avg(one or more spectral desc(Ŝpu(z) and stored IRs)
The controller 303 may also apply different weights to each spectral descriptor to bias a final average distance to one or more spectral descriptors.
Distance=1−abs(pcc(Ŝp,stored Sp))
A small value generated from the equation above corresponds to a small distance. In operation 1006, the controller 303 determines the IR based on the distance. For example, the controller 303 selects the pre-stored IR that exhibits the smallest distance.
In an embodiment, only a portion of the frequency range of the frequency domain IR is to be weighted during the match. For example, the phase or magnitude of the 250 Hz to 300 Hz frequency range is weighted during the match, with the distance of the other frequency ranges not incorporated into the total distance. In another embodiment, only a portion (i.e., less than all) of the time domain response is to be weighted during the matching process.
As also noted above, matching may be performed via the voting logic as noted above. Other methods of matching (or voting) may include utilizing a single distance metric that spans the entire sample of secondary paths S(z) and selecting the Ŝpu(z) with the lowest distance. In addition, matching (or voting) may include combinational logic that is based on a comparison of Ŝpu(z) and knowledge of likelihood of scenarios in conjunction with additional information about vehicle operation (or based on pre-stored scenarios relative to known outcomes of vehicle situations, operations, or outcomes). For example, this aspect may involve the scenario that if rear seats of the vehicle 313 are occupied, it is less likely that the cargo area is full. In this case, the Ŝpu(z) that represents cargo in the rear seat may be less likely to be selected.
These differences lead to large errors on the {circumflex over (d)}p[n] signal and ultimately leads to mis-adjustment or divergence of the ANC adaptive filters W(z). This divergence is perceived by vehicle occupants' as undesirable noise boosting. The aspects disclosed herein seek to mitigate the detrimental effects of secondary path impulse response mismatch.
Another problem that exists in production ANC systems is that the noise cancellation performance tuning typically must be reduced to guarantee stability. Even in nominal cabin conditions, where stability is not a concern, the reduced performance tuning is still applied. The disclosed system and/or method reduces the possibility of instability and divergence by online secondary path estimation and switching. Therefore, this opens the possibility of using more aggressive tuning values for the ANC algorithm. Ultimately, this results in better noise cancellation performance across many more cabin configurations.
Aspects as disclosed herein provide, among other things, cancellation performance that does not need to be sacrificed to achieve stability. A step size (μ) for adaptive filters W(z) 108 do not need to be lowered because the disclosed system may be more stable since Ŝp(z) matches S(z). Aggressive limiters on the anti-noise output need not required to be applied either. There is also the potential to make cancellation performance more consistent when compared to the system used during production tuning with a “nominal” static Ŝpu(z) measurement.
An online secondary path estimation and switching algorithm also opens the possibility of using more aggressive tuning values for the ANC algorithm. By mitigating the negative effects of a mismatch between the estimated and actual secondary path impulse responses, the ANC algorithm may be tuned in a more performance focused manner.
As noted above, the disclosed system and method utilizes pre-measured banks of impulse responses. Such a bank of IRs may be measured and tested in pre-production vehicles. In general, banks of IRs may be selected to ensure that common vehicle loading condition that have differences (i.e., differences that could lead to poor performance, unless the IR is updated). In addition, there typically isn't a detrimental effect when changing IRs since W filter* reference that generates the output may still take time to adaptive to the change.
It is recognized that the controllers as disclosed herein may include various microprocessors, integrated circuits, memory devices (e.g., FLASH, random access memory (RAM), read only memory (ROM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), or other suitable variants thereof), and software which co-act with one another to perform operation(s) disclosed herein. In addition, such controllers as disclosed utilizes one or more microprocessors to execute a computer-program that is embodied in a non-transitory computer readable medium that is programmed to perform any number of the functions as disclosed. Further, the controller(s) as provided herein includes a housing and the various number of microprocessors, integrated circuits, and memory devices ((e.g., FLASH, random access memory (RAM), read only memory (ROM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM)) positioned within the housing. The controller(s) as disclosed also include hardware-based inputs and outputs for receiving and transmitting data, respectively from and to other hardware-based devices as discussed herein.
Although
For example, the operations recited in any method or process claims may be executed in any order and are not limited to the specific order presented in the claims. Certain operations in any method or process may be omitted without departing from the inventive scope of this application. Equations may be implemented with a filter to minimize effects of signal noises. Additionally, the components and/or elements recited in any apparatus claims may be assembled or otherwise operationally configured in a variety of permutations and are accordingly not limited to the specific configuration recited in the claims.
Further, functionally equivalent processing operations can be undertaken in either the time or frequency domain. Accordingly, though not explicitly stated for each signal processing block in the figures, the signal processing may occur in either the time domain, the frequency domain, or a combination thereof. Moreover, though various processing steps are explained in the typical terms of digital signal processing, equivalent steps may be performed using analog signal processing without departing from the scope of the present disclosure.
Although the ANC system is described with reference to a vehicle, the techniques described herein are applicable to non-vehicle applications. For example, a room may have fixed or movable seats which define a listening position at which to quiet a disturbing sound using reference sensors, error sensors, loudspeakers and an LMS adaptive system. Note that the disturbance noise to be cancelled is likely of a different type, such as HVAC noise, or noise from adjacent rooms or spaces. If this listening position varies over time, or if the surroundings vary over time, the techniques and approaches taught herein can be used to determine an updated secondary path to improve the noise cancellation experience.
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.
This application generally relates to the U.S. application Ser. No. 17/975,782, filed Oct. 28, 2022, entitled “SYSTEM AND METHOD FOR ESTIMATING SECONDARY PATH IMPULSE RESPONSE FOR ACTIVE NOISE CANCELLATION” the disclosure of which is hereby incorporated in its entirety by reference herein.