System and method for detecting divergence in an adaptive system

By monitoring the power and time gradient of the error signal components, and using a low-pass filter and threshold comparison, the divergence of the adaptive system is detected and corrected, thus solving the problem of increased noise in the noise cancellation system and restoring the system's stability and efficiency.

CN116194986BActive Publication Date: 2026-02-13BOSE CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180061438.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-07-22
Filing Date
2021-07-20
Publication Date
2026-02-13
Estimated Expiration
2041-07-20

AI Technical Summary

Technical Problem

Adaptive systems may diverge during noise cancellation, resulting in increased noise rather than cancellation, and existing technologies struggle to effectively detect and correct this situation.

Method used

By monitoring the component power and time gradient of the error signal, a low-pass filter is used for smoothing. Combined with threshold comparison and relative power analysis, divergence is detected, and when divergence is detected, the coefficients of the adaptive filter are changed and the adaptation rate is slowed down to restore stability.

Benefits of technology

Effectively detect and correct divergence in adaptive systems to ensure the stability and efficiency of noise cancellation systems and prevent noise increase.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116194986B_ABST
    Figure CN116194986B_ABST
Patent Text Reader

Abstract

The present disclosure relates to systems and methods for detecting divergence in an adaptive system. Detecting divergence in an adaptive system comprises the steps of determining a power of a component of an error signal at a first frequency, the component being related to a noise cancelling signal, the noise cancelling signal being generated by an adaptive filter and being configured to cancel noise within a predetermined volume when converted into an acoustic signal, wherein the error signal represents an amplitude of residual noise within the predetermined volume; determining a time gradient of the component power of the error signal; and comparing a measure to a threshold value, wherein the measure is based at least in part on a value of the time gradient of the component power of the error signal over a period of time.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross Reference to Related Applications

[0002] This application claims priority to U.S. Patent Application Serial No. 16 / 935,979, filed July 22, 2020, entitled “Systems and Methods for Detecting Divergence in an Adaptive System,” the entire disclosure of which is incorporated herein by reference. BACKGROUND

[0003] The present disclosure relates generally to systems and methods for detecting divergence in an adaptive system. SUMMARY

[0004] All examples and features mentioned below can be combined in any technically possible manner.

[0005] According to one aspect, a non-transitory storage medium storing program code for detecting divergence or instability in a noise cancellation system, the program code being executed by a processor, comprises the steps of: determining a power of a component of an error signal at a first frequency, the component being related to a noise cancellation signal, the noise cancellation signal being produced by an adaptive filter and being configured to cancel noise within a predetermined volume when converted into an acoustic signal, wherein the error signal represents an amplitude of residual noise within the predetermined volume; determining a time gradient of the component power of the error signal; and comparing a measure to a threshold value, wherein the measure is based at least partly on a value of the time gradient of the component power of the error signal over a period of time.

[0006] In one example, the program code further comprises the step of: transitioning a first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter after determining that the measure exceeds the threshold value.

[0007] In one example, the program code further comprises the step of: slowing down an adaptation rate of the adaptive filter if the power of the related component starts to decrease as a result of the transition of the first set of coefficients to the second set of coefficients.

[0008] In one example, the program code further comprises the step of: transitioning to a third set of coefficients of the adaptive filter after determining that the measure exceeds the threshold value over a second period of time in which the second set of coefficients is stored.

[0009] In one example, the measure is a filtered representation of the time gradient over the period of time, wherein the representation of the time gradient is filtered with a low pass filter.

[0010] In one example, a cut-off frequency of the low pass filter is selected in dependence of the first frequency.

[0011] In one example, the program code further comprises the step of comparing a second metric to a second threshold, wherein the second metric is based on a comparison of a power of a component of the error signal at the first frequency to a power of a component of the error signal at at least a second frequency.

[0012] In one example, the program code further comprises the step of transitioning the first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter after determining that the metric exceeds the threshold or that the second metric exceeds the second threshold.

[0013] In one example, the program code further comprises the step of slowing an adaptation rate of the adaptive filter if the power of the relevant component starts to decrease as a result of the transition of the first set of coefficients to the second set of coefficients.

[0014] In one example, the second metric is a filtered representation of a relative power of a component of the error signal at the first frequency and a component of the error signal at the second frequency, wherein the representation of the relative power is filtered with a low pass filter.

[0015] According to another aspect, a method for detecting divergence in a noise cancellation system comprises determining a power of a component of an error signal at a first frequency, the component being related to a noise cancellation signal, the noise cancellation signal being generated by an adaptive filter and being configured to cancel noise within a predetermined volume when converted into an acoustic signal, wherein the error signal represents an amplitude of residual noise within the predetermined volume; determining a time gradient of the component power of the error signal; and comparing a metric to a threshold, wherein the metric is based at least in part on a value of the time gradient of the component power of the error signal over a period of time.

[0016] In one example, the method further comprises the step of transitioning the first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter after determining that the metric exceeds the threshold.

[0017] In one example, the method further comprises the step of slowing an adaptation rate of the adaptive filter if the power of the relevant component starts to decrease as a result of the transition of the first set of coefficients to the second set of coefficients.

[0018] In one example, the method further comprises the step of transitioning to a third set of coefficients of the adaptive filter after determining that the metric exceeds the threshold for a second period of time in which the second set of coefficients is stored.

[0019] In one example, the metric is a filtered representation of the time gradient over the period of time, wherein the representation of the time gradient is filtered with a low pass filter.

[0020] In one example, a cut-off frequency of the low pass filter is selected in dependence on the first frequency.

[0021] In one example, the method further comprises the step of comparing the second metric to a second threshold, wherein the second metric is based on a comparison of a power of a component of the error signal at the first frequency to a power of a component of the error signal at at least a second frequency.

[0022] In one example, the method further comprises the step of transitioning the first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter after determining that the metric exceeds the threshold or the second metric exceeds the second threshold.

[0023] In one example, the method further comprises the step of slowing an adaptation rate of the adaptive filter if the power of the correlated component begins to decrease as a result of transitioning the first set of coefficients to the second set of coefficients.

[0024] In one example, the second metric is a filtered representation of a relative power of a component of the error signal at the first frequency and a component of the error signal at the second frequency, wherein the representation of the relative power is filtered with a low pass filter.

[0025] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF DRAWINGS

[0026] In the drawings, like reference numerals refer to same parts throughout the various views. Also, the drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the various aspects.

[0027] Figure 1 A schematic diagram of a road noise cancellation system is depicted in accordance with one example.

[0028] Figure 2 A block diagram of a road noise cancellation system with divergence detection is depicted in accordance with one example.

[0029] Figure 3A A flowchart of a method for detecting divergence in an adaptive system is depicted in accordance with one example.

[0030] Figure 3B A flowchart of a method for detecting divergence in an adaptive system is depicted in accordance with one example.

[0031] Figure 3C A flowchart of a method for detecting divergence in an adaptive system is depicted in accordance with one example.

[0032] Figure 3D A flowchart of a method for detecting divergence in an adaptive system is depicted in accordance with one example.

[0033] Figure 3E A flowchart depicting a method for detecting divergence in an adaptive system according to one example.

[0034] Figure 3F A flowchart depicting a method for detecting divergence in an adaptive system according to one example.

[0035] Figure 3G A flowchart depicting a method for detecting divergence in an adaptive system according to one example. DETAILED DESCRIPTION

[0036] Adaptive systems, such as noise cancellation systems, often employ a feedback or feedforward topology to adjust adaptive system parameters according to the requirements of the environment. Generally, these systems will converge to a state that minimizes a particular value. For example, a noise cancellation system can adjust parameters according to feedback from an error sensor in order to minimize noise within a particular region. In this case, the noise cancellation system will converge to zero noise within the region.

[0037] However, if the adaptive system malfunctions, the system can deviate from the particular value. In the worst case, this will exacerbate the intended value rather than minimize it. Thus, in the noise cancellation example, a diverging noise cancellation system can add noise to the region rather than cancel it.

[0038] Various examples disclosed herein relate to systems for detecting divergence in adaptive systems, such as noise cancellation systems. In some examples, once divergence is detected, corrective measures can be taken to mitigate the effects of the divergence on the adaptive system.

[0039] Figure 1 is a schematic diagram of an example noise cancellation system 100. The noise cancellation system 100 can be configured to destructively interfere with an undesired sound in at least one cancellation zone 102 within a predefined volume 104, such as a vehicle cabin. At a high level, one example of the noise cancellation system 100 can include a reference sensor 106, an error sensor 108, an actuator 110, and a controller 112.

[0040] In one example, the reference sensor 106 is configured to generate a noise signal 114 representative of the undesired sound or a source of the undesired sound within the predefined volume 104. For example, as shown, the reference sensor 106 can be an accelerometer or multiple accelerometers mounted and configured to detect vibrations transmitted through a vehicle structure 116. Vibrations transmitted through the vehicle structure 116 are converted by the structure into an undesired sound within the vehicle cabin (perceived as road noise), and thus an accelerometer mounted to the structure provides a signal representative of the undesired sound. Figure 1 ​

[0041] The actuators 110 can be, for example, loudspeakers distributed in discrete locations around the perimeter of the predefined volume. In one example, four or more loudspeakers can be disposed within a vehicle cabin, each of the four loudspeakers located within a respective door of the vehicle and configured to project sound into the vehicle cabin. In an alternative example, the loudspeakers can be located within headrests or other locations within the vehicle cabin.

[0042] The noise cancellation signal 118 can be generated by the controller 112 and provided to one or more loudspeakers in the predefined volume, which convert the noise cancellation signal 118 into acoustic energy (i.e., sound waves). The acoustic energy produced from the noise cancellation signal 118 is approximately 180° out of phase with the undesired sound within the cancellation zone 102, and thus destructively interferes with the undesired sound. The combination of the sound waves generated from the noise cancellation signal 118 and the undesired noise in the predefined volume results in cancellation of the undesired noise, as perceived by a listener in the cancellation zone.

[0043] Because noise cancellation cannot be equal throughout the predefined volume, the noise cancellation system 100 is configured to produce maximum noise cancellation within one or more predefined cancellation zones 102 within the predefined volume. The noise cancellation within the cancellation zone can result in a reduction of the undesired sound by approximately 3 dB or more (although different amounts of noise cancellation can occur in different examples). Further, the noise cancellation can cancel sound within a range of frequencies, such as frequencies less than approximately 350 Hz (although other ranges are possible).

[0044] An error sensor 108 disposed within the predefined volume generates an error sensor signal 120 based on detection of residual noise resulting from the combination of the sound waves generated from the noise cancellation signal 118 and the undesired sound in the cancellation zone. The error sensor signal 120 is provided as feedback to the controller 112, which represents the residual noise that was not cancelled by the noise cancellation signal. The error sensor 108 can be, for example, at least one microphone mounted within the vehicle cabin (e.g., the roof, headrest, pillar, or other location within the cabin).

[0045] It should be noted that the cancellation zone can be located away from the error sensor 108. In this case, the error sensor signal 120 can be filtered to represent an estimate of the residual noise in the cancellation zone. In either case, the error signal will be understood to represent the residual undesired noise in the cancellation zone.

[0046] In one example, the controller 112 can include a non-transitory storage medium 122 and a processor 124. In one example, the non-transitory storage medium 122 can store program code that, when executed by the processor 124, implements the various filters and algorithms described below. The controller 112 can be implemented in hardware and / or software. For example, the controller can be implemented by a SHARC floating point DSP processor, although it should be understood that the controller can be implemented by any other processor, FPGA, ASIC, or other suitable hardware.

[0047] Turning to Figure 2 , a block diagram of one example of a noise cancellation system 100 is shown that includes a plurality of filters implemented by a controller 112. As shown, the controller can define a control system that includes a W adapt filter 126 and an adaptive processing module 128.

[0048] The W adapt filter 126 is configured to receive the noise signal 114 of the reference sensor 106 and generate a noise cancellation signal 118. As described above, the noise cancellation signal 118 is input to the actuator 110, where it is converted into a noise cancellation audio signal that destructively interferes with the undesired sound in the predefined cancellation zone 102. adapt The W adapt filter 126 can be implemented as any suitable linear filter, such as a multiple-input multiple-output (MIMO) finite impulse response (FIR) filter. adapt The W

[0049] The adjustment of the coefficients can be performed by the adaptive processing module 128, which receives the error sensor signal 120 and the noise signal 114 as inputs, and uses these inputs to generate a filter update signal 130. The filter update signal 130 is an update to the filter coefficients implemented in the W adapt filter 126. The noise cancellation signal 118 produced by the updated W adapt filter 126 will minimize the error sensor signal 120, and thus the undesired noise in the cancellation zone.

[0050] The coefficients of the W adapt filter 126 at a time step n can be updated according to the following equation:

[0051]

[0052] where is an estimate of the object transfer function between the actuator 110 and the noise cancellation zone 102, is the conjugate transpose, e is the error signal, and x is the output signal of the reference sensor 106. In the update formula, the output signal of the reference sensor x is divided by the norm of x, denoted as ||x||2.

[0053] In an application, the total number of filters is typically equal to the number of reference sensors (M) times the number of loudspeakers (N). Each reference sensor signal is filtered N times, and then each loudspeaker signal is obtained as a sum of M signals (each sensor signal filtered by a corresponding filter).

[0054] As detailed below, the divergence detector 300 receives the error sensor signal 120 and the noise cancellation signal 118 and uses these inputs to determine whether the road noise cancellation system 100 is likely to be diverging or unstable. In response to this measurement, the road noise cancellation system 100 can take corrective measures to mitigate the divergence or instability. By monitoring the power of the component of the error sensor signal 120 that should be minimized by the adaptive system, the divergence detector 300 can detect divergence and / or instability. For example, in the environment of the road noise cancellation system 100, the component power of the error signal 120 related to road noise should be kept very small. If the component power of the error signal 120 related to road noise begins to increase, it can be determined that the adaptive filter W adapt is diverging.

[0055] As noted above, in the example of the road noise cancellation system 100, the reference sensors 106 can be positioned to detect vibrations in the vehicle structure that are perceived by the passengers as road noise, while the error sensors 108 can be positioned to detect all noise within the cabin or a subset of noise within the cabin (e.g., noise falling within a particular cancellation zone and a particular frequency range). In this example, the error sensors 108 will detect additional noise in the cabin that is not caused by road noise, such as additional noise that is not caused by vibrations in the vehicle structure, such as music playing within the cabin, conversations of passengers within the cabin, wind blowing past the vehicle as it travels, etc. Thus, the error sensor signal y(n) can be represented as a sum of its components, as follows:

[0056] y(n) = y a (n) + y resi (n) (2)

[0057] where, for purposes of this disclosure, y a (n) is the component of the error sensor signal related to road noise, and y resi (n) is a residual component that is not related to road noise.

[0058] a component of the error sensor signal 120 related to road noise a (n) can be estimated in a number of ways; however, it is particularly effective to estimate this value by correlating the error sensor signal 120 with the noise cancellation signal 118. Because the noise cancellation signal 118 has been configured to cancel noise within the cabin, and is therefore an estimate of road noise phase shifted, a component of the error sensor signal 120 related to road noise a (n) will largely correlate with the noise cancellation signal 118. Thus, the divergence detector can estimate a component of the error sensor signal 120 related to road noise a (n) by correlating the error sensor signal 120 with the noise cancellation signal 118. In alternative examples, to estimate a component of the error sensor signal 120 related to road noise a (n), the error sensor signal 120 can be correlated with the reference sensor signal 114 instead of the noise cancellation signal 118. For the purposes of this disclosure, the estimated component of the error sensor signal 120 related to road noise will be referred to as the "error signal component". It can be appreciated that the error signal component can be determined in a number of possible ways.

[0059] Once the error signal component is estimated, at least one of several methods can be used to detect the occurrence of divergence or instability. One such method is to monitor the power of the error signal component over time to determine whether it is increasing or decreasing. Also, as noted above, the noise power to which the noise cancellation system is directed should generally decrease or remain relatively constant over time. If the power of the error signal component begins to increase, it is evidence that the adaptive filter has diverged. Thus, the time gradient of the error signal component or some measure related to that time gradient can be monitored over time to determine whether the adaptive filter has diverged.

[0060] However, monitoring the time gradient in this way can miss a rapid increase in divergence. Such divergence can cause the adaptive filter to quickly saturate, and thus the time gradient power of the error sensor component will temporarily be positive before becoming zero. Because the time gradient will remain constant once the adaptive filter saturates, the first method for detecting divergence can fail to register the divergence. Thus, a second method of detecting divergence can be used as a failsafe.

[0061] In one example, the second method can determine the relative power of the error signal component across multiple frequencies. In other words, in the case of divergence, the power of the error signal component at at least one frequency window will be significantly greater than its power at at least one other frequency window. In this case, divergence can be detected by monitoring the relative magnitude of the power in each frequency window relative to one or more other frequency windows. For example, each frequency window of the error signal component can be compared individually with one or more other frequency windows to see if each frequency window exceeds a predetermined power value in the other frequency windows. This relative power can be monitored for a period of time prior to marking that divergence has occurred.

[0062] If divergence is detected according to at least one of the methods described above, at least one measure can be taken to mitigate the effects of the divergence and attempt to restore the adaptive filter to a convergent and stable state. One such method is to transform the coefficients of the adaptive filter into a previously stored set of coefficients. The previously stored set of coefficients can be a recently stored set or a default set of coefficients. Because the previously stored coefficients may not diverge, restoring that set of coefficients will likely resolve the divergence. However, in some cases where divergence occurs within a short period of time after storing a set of coefficients, a different set of coefficients (e.g., the default set of coefficients) can be retrieved and implemented instead of the most recently stored set of coefficients, since the most recently stored previously stored coefficients may have been corrupted. In most cases, the different set of coefficients is the default set of coefficients, such as the factory settings, although other sets of coefficients can also be used, such as coefficients stored during vehicle shutdown or startup, or coefficients stored at a point in time before the previously stored coefficients.

[0063] In addition to the restitution coefficient, the adaptation rate can be slowed down to reduce the risk of a second divergence if the conditions causing the first divergence remain valid. In practice, in one example, the adaptation rate could be slowed down to the point where the adaptive filter becomes a fixed filter. However, to avoid slowing down the adaptation in cases where the divergence is a false alarm (e.g., where such tonal sounds, common in classical music, cause a second method to detect a false divergence), the frequency window where the divergence was detected can be monitored after the transition. If the power of the frequency window decreases, the detected divergence can be considered a real divergence, and the adaptation rate can be slowed down accordingly. However, if the power of the frequency window does not decrease, the detected divergence can be considered a false divergence, and the adaptation rate can remain unchanged.

[0064] The following will combine Figures 3A-3G These methods for detecting and mitigating divergence, along with other approaches, will be discussed in more detail.

[0065] same, Figure 1 and Figure 2The noise cancellation system 100 is provided only as an example of such a system. This system, variations thereof, and other suitable noise cancellation systems may be used within the scope of this disclosure. For example, although a minimum mean square filter (LMS / NLMS) has been described... Figure 1 and Figure 2 While a system with feedback has been described, in other examples, different types of filters can be implemented, such as filters implemented using recursive least squares (RLS) filters. Similarly, although a noise cancellation system with feedback has been described, in alternative examples such a system can employ a feedforward topology. Furthermore, although a noise cancellation system implemented for eliminating road noise has been described, any suitable noise cancellation system can be used.

[0066] Figures 3A-3G A flowchart depicts a method 300 for detecting divergence in an adaptive system (such as noise cancellation system 100). As described above, this method can be implemented by a computing device such as a controller 112. Generally, the steps of a computer-implemented method are stored in a non-transitory storage medium and executed by the processor of the computing device. However, at least some steps can be executed in hardware rather than by software.

[0067] First go to Figure 3A At step 302, a noise cancellation signal is received, which is configured to cancel noise within a predetermined volume. For example, the noise cancellation signal may be configured to cancel noise in at least one cancellation area within the vehicle compartment (as described above). Figure 1 (as illustrated in the example). In another example, if a noise cancellation system is used in a pair of noise-canceling headphones, the noise cancellation signal can be configured to cancel noise in a predetermined volume generated by the ear cups of the headphones positioned around the user's ears.

[0068] At step 304, an error signal representative of residual noise in a predetermined volume is received. The error signal can be an error signal received from an error sensor, such as error sensor 108 producing error sensor signal 120. Alternatively, the error signal can be received from any error sensor configured to detect residual (i.e., uncancelled) noise within the volume, such as an error signal from an error microphone disposed within a pair of noise-cancelling headphones. Further, more than one error signal can be received. For example, multiple error sensors can be disposed within a vehicle cabin. These error signals can be used individually (e.g., the method steps described below can be repeated for each received error signal), or they can be combined in some manner, forming a composite error signal (which is still considered an "error signal" for the purposes of the present disclosure). In one example, the error signals can be combined by averaging. However, a variety of other ways of combining multiple error signals are contemplated. In another example, for a given iteration of method 300, one error signal can be selected from multiple error signals. For example, as will be described below, for a given run of method 300, the maximum power value for a given frequency can be selected from multiple error signals.

[0069] At step 306, the power of the error signal at a first frequency related to the noise-cancelling signal is determined. As described above, this is an effective way of determining an error signal component that is an estimate of the error signal component related to the noise reduced by the noise-cancelling system. This correlation process can be accomplished by any suitable method, such as by inputting the error signal into a least-mean-squares algorithm that uses the noise-cancelling signal as a reference signal. To determine the power of the error signal component at the first frequency, the correlated signal can be input into a frequency transform algorithm that produces the absolute value of the error signal component as a function of frequency. Any suitable frequency transform algorithm can be used, such as a discrete Fourier transform, a fast Fourier transform, a discrete cosine transform, etc. Of course, use of a frequency transform algorithm (such as the frequency transform algorithms identified above) will likely result in the power of the error signal component at more than just one frequency, but one of the frequencies in this frequency can be selected as the "first frequency" (i.e., the frequency of interest) for the remaining steps of method 300. It will be appreciated that in a concurrent or iterative loop of method 300, the remaining frequencies (i.e., the frequencies that are not selected as the "first frequency") can be selected as the "first frequency." In other words, method 300 can be repeated for each frequency, or for a subset of frequencies visible in the frequency transform algorithm. As described above, in the case that multiple error signals are received from multiple error sensors, the power of the error sensor component can be found for each error signal, and for the purposes of the remaining steps of method 300, the maximum power value for the first frequency can be selected as the power at the first frequency.

[0070] At step 308, the power of the error signal component at the first frequency can be smoothed by filtering the power with a low pass filter. Mathematically, the power spectrum of the signal is found in terms of the expected value of the frequency transform of the signal. The actual way in which the expected value is found is to use a low pass filter. This step generally assumes that at least one historical value of the power of the error signal component at the first frequency (i.e. from a previous sample) can be input into the low pass filter, as the filter will smooth the power of the error signal component according to a mathematical function, with reference to the historical value. In alternative examples, other smoothing techniques can be used to find the expected value, such as using an exponential moving average for a set of historical values in a buffer. It will be appreciated that in various alternative examples, the smoothing can be omitted, and the non-smoothed value can be used in the following steps. The smoothed output of step 308 can be input into at least two different divergence detection methods, which are represented in Figure 3 as branch methods A and B.

[0071] Turning first to branch method A, at step 310, a time gradient of the power of the error signal component is determined. In other words, the time gradient is the change in the power of the error signal component (which can be the smoothed error signal component) with respect to the previously calculated error signal component power.

[0072] At step 312, a measure based on the time gradient of the power of the error signal component over a period of time can be compared to a threshold value. In one example, this measure can be determined according to sub-steps 314 and / or 316. At step 314, each time gradient is characterised with a value of -1, 0 or 1 depending on whether the time gradient is positive, unchanged or negative, respectively. Thus, step 314 ignores the magnitude of the change between consecutive samples, and only retains the change in the direction of the time gradient. Large changes are thus treated the same as small changes. This further acts to smooth out large jumps in power due to fast transients in the error signal. At step 316, the characterised time gradient is smoothed with reference to at least one historical value using a low pass filter, the cut-off frequency of which is selected according to the frequency of the “first frequency”. For example, a plurality of low pass filters each having a different cut-off frequency can be used for different frequency bands of the frequency value. The low pass filter of the plurality of filters used at step 316 can be determined according to the value of the first frequency. Smoothing the characterised time gradient with reference to historical values will help to mitigate against fast jumps in power at the first frequency, which can be evidence of an abnormal transient, rather than a divergence, whilst still detecting jumps that last for more than one sample.

[0073] The result of steps 314 and 316 will be a metric whose value represents the trend of the time gradient over a period of time. If the value of the metric is greater than 0, then the power of the error signal component at the first frequency is trending upward (i.e., generally increasing); however, if the value of the metric is less than 0, then the power of the error signal component at the first frequency is trending downward (i.e., generally decreasing). The value of the metric can be compared to a threshold value. Thus, when the power of the error signal component is trending upward over a period of time, the value of the metric will exceed the threshold value, thereby indicating that divergence is detected.

[0074] It should be understood that in alternative examples, different metrics based on the values of the time gradient of the error sensor component over a period of time can be used. For example, other smoothing methods, such as an exponential moving average on the buffered history of the represented time gradient, can be used instead of using a low pass filter to smooth the represented time gradient. However, because monitoring the trend at lower frequencies would require a larger value buffer to match higher frequencies, which would require a large amount of memory to occupy, applying a low pass filter to the values would be more efficient. In another example, the time gradient does not have to be represented with values such as -1, 0, or 1; instead, the magnitude of the time gradient can be smoothed directly. However, failing to represent the value can make the divergence detector more susceptible to false positives from rapid transients in the power of the error signal component.

[0075] Turning now to branch method B, a second method for detecting divergence is shown. As noted above, monitoring the time gradient in the manner described in connection with branch method A can miss rapidly increasing divergence because such divergence would quickly saturate the adaptive filter and thus appear to be constant power. However, such rapid divergence would likely saturate the adaptive filter at some frequencies but not others. Thus, branch method B monitors the ratio of the relative power of the first frequency window to the power of at least a second frequency window to determine when the adaptive filter is rapidly diverging.

[0076] At step 318, the power of the error signal component at at least a second frequency is determined. This step can occur simultaneously with step 306 when the error signal component is input into the frequency transform algorithm, but for completeness and clarity, this step is included as a separate step in Figure 3D It is envisioned, however, that the power values of the error signal component at the first and second frequencies can be determined at different times.

[0077] At step 320, a second metric based on a comparison of the power of the error signal component at the first frequency to the power of the error signal component at the second frequency can be compared to a second threshold. In one example, the second metric can be given by sub-steps 322 and / or 324. At step 322, a value of 0 or 1 is representative of a ratio of the relative power of the error signal component at the first frequency to the power of the error signal component at at least the second frequency depending on whether the power of the error signal component at the first frequency exceeds the power of the error signal component at at least the second frequency by a certain threshold (e.g., 0.15). Thus, if the power of the error signal component at the first frequency exceeds the power of the error signal component at at least the second frequency by more than the threshold, a 1 is representative of the relative power, and if the power of the error signal component at the first frequency does not exceed the power of the error signal component at at least the second frequency, a 0 is representative of the relative power.

[0078] In general, the "relative power" can be given by any suitable power comparison of the respective frequency windows. For example, the relative power can be given by a ratio of the power of the first frequency window to the sum of the powers of the first and second frequency windows

[0079]

[0080] where p relative is the relative power between the first and second frequency windows, pi is the power of the first frequency window, and p2 is the power of the second frequency window. Alternatively, the relative power can be given by a simple difference between the power of the first frequency window and the power of the second frequency window.

[0081] The power of the error signal component at the first frequency can be compared to the power of the error signal component at a plurality of other frequencies in various ways. For example, the power of the error signal component at the first frequency can be compared to the power of the error signal component at a plurality of other frequencies (e.g., a set of adjacent frequency values or representative frequencies) individually. The relative power is represented as 1 if the power of the error signal component at the first frequency exceeds the power of the error signal component at any of the other comparison frequencies by a predetermined threshold. Alternatively, the powers at a plurality of frequency values can be averaged or otherwise combined and compared to the power at the first frequency value. The relative power is represented as 1 if the power at the first frequency exceeds the combined power of the plurality of other frequency values by a predetermined threshold, since the power at the first frequency must necessarily exceed the power at at least the second frequency.

[0082] Similar to step 316, at step 324, the relative power characterized by step 322 is smoothed with at least one historical value of the relative power characterized with a low pass filter having a cutoff frequency determined by the value of the first frequency. The end result of steps 322 and 324 will be a second metric whose value represents a trend in the relative power between the error signal component at the first frequency and the error signal component at at least the second frequency over a period of time. The value of the second metric will exceed 0 due to the error signal component at the first frequency repeatedly exceeding the threshold for a number of samples. The value of the second metric can be compared to a threshold (e.g., 0.25) and when exceeded, the value of the second metric indicates that divergence is detected.

[0083] It should be appreciated that in alternative examples, different metrics based on relative power over a period of time can be used. For example, other smoothing methods can be used, such as an exponential moving average on the buffered historical values of the error signal component power, rather than using a low pass filter to smooth the characterized relative power. In another example, it is not necessary to characterize the relative power with values such as -1, 0, or 1; rather, the relative power value can be directly smoothed and compared to a threshold. However, failing to characterize the value will again potentially make the divergence detector more susceptible to false positives from rapid transients in the error signal component power.

[0084] Furthermore, to the extent steps 314 and 322 describe characterizing a value with values -1, 0, or 1, or with values 0 or 1, these are provided merely as example values that can be used. In light of a review of the present disclosure, one of ordinary skill in the art will appreciate that other values can be used while maintaining the same concept of characterizing a time gradient or relative power.

[0085] Both branch method A and branch method B are provided in step 326, which initiates a measure to correct for divergence detected by the previous branch method. It should be appreciated that branch method A and branch method B are merely examples of methods for detecting divergence, and the mitigation measures described herein can be used in conjunction with other divergence detection methods. Indeed, in some examples, only one of branch method A or branch method B can be implemented. Alternatively, one of branch method A or branch method B can be used in conjunction with another divergence detection method. In yet another example, a different divergence detection method can be used without using one of the methods described in branch method A or branch method B.

[0086] At step 326, after divergence is detected by branch method A or branch method B (or from another divergence detection method), the coefficients of the adaptive filter that can have caused the detected divergence are transitioned to a second set of previously stored coefficients. In one example, the transition can occur over a number of samples such that the user is not aware of the transition; however, this is not necessary and in one example, the transition can occur before the next sample is received. The previously stored coefficients can be a default set of coefficients or can be stored during the adaptive filter run-up prior to divergence. For example, during the adaptive filter run-up prior to divergence, the coefficients can be stored at predetermined or variable time intervals. Once divergence is detected, the most recently stored set of coefficients can be retrieved and transitioned to. In most cases of divergence, this will stop the divergence from continuing and reset the coefficients to a stable and converging set of coefficients.

[0087] In addition to transitioning to a previously stored set of coefficients, at step 328, the adaptation rate of the adaptive filter can be slowed down in order to reduce the risk of a second divergence occurring if the conditions that caused the first divergence are still valid. In fact, in one example, the adaptation rate can be slowed down to the extent that the adaptive filter becomes a fixed filter. However, in some cases, the detected divergence can be a false positive (i.e. not indicative of a true divergence). This can occur particularly in the case of playing a tonal sound through a loudspeaker in a vehicle. This often occurs when, for example, classical music, which is often characterised by tonal sounds, is played in the cabin. Such tonal sounds tend to excite certain frequencies in the error signal and thus create the appearance of divergence for the methods described in connection with branch method B. In order to avoid unnecessarily slowing down the adaptation rate, the first frequency (in which divergence was detected) can be monitored for a period of time after or during the transition to the second coefficients to see if the power at the first frequency reduces. If the power at the first frequency reduces after or during the transition to the second set of coefficients, then the divergence that occurred can be considered to be a true divergence (i.e. not a false positive) and the adaptation rate can be slowed down. However, if the power at the first frequency does not reduce after or during the transition to the second set of coefficients, then the divergence can be considered to be a false positive and the adaptation rate can be left unchanged.

[0088] To determine whether the power at the first frequency (i.e. the measured frequency for which divergence has been triggered in this step) decreases after or during the transition, the time gradient of the first frequency can be monitored during the transition or after the transition has completed. This is shown as sub-steps 332 and 334, and reflects steps 310 and 312 described above. In general, a measure based on the time gradient value of the error signal component at the first frequency can be compared to a threshold to determine whether the power at that frequency decreases over time. In this case, the threshold detects when the power of the first frequency decreases and so the threshold is negative (e.g. -0.8) in order to detect when the time gradient of the smoothed representation is trending downwards. (However, it will be appreciated that a negative time gradient value can simply be converted to a positive value by, for example, multiplying by -1, and so can be compared to a positive threshold. If the threshold has been exceeded, it can be determined that the power decreases after or during the transition and so can be a result of true divergence, and the adaptation rate can be slowed. However, if the threshold has not been exceeded after a set period, it is likely to be a false positive and the adaptation rate will be left unchanged.

[0089] Figure 3F Step 330 in Figure 3 represents an alternative to step 326, which is performed if divergence is detected within a predetermined period from the time at which the last set of previously stored coefficients was stored. For example, if the coefficients are stored at intervals during the operation of the adaptive system, a timer can be set to determine the length of time that has elapsed from the point in time at which a set of coefficients was stored. When divergence occurs, the timer can be compared to a predetermined length of time. If divergence occurs within the predetermined length of time from the point in time at which the last set of coefficients was stored, it is likely that the last set of stored coefficients was corrupted. Accordingly, at step 330, the adaptive filter can be transitioned to a third set of coefficients. The third set of coefficients can be a default set of coefficients or a set of coefficients that was stored prior to the second set of coefficients and that can be stable and converged.

[0090] It will be appreciated that step 330 can be implemented in the example in which step 326 restores the most recently stored set of coefficients. Conversely, if step 326 restores a default set of coefficients, it can not be necessary to check whether the stored coefficients can have sufficient stability.

[0091] The method of correcting divergence described above is merely an example of such a method that can be used in conjunction with the divergence detection methods described in the present disclosure. Corrective measures that can be taken in various examples in conjunction with or in place of the corrective measures described include shutting down certain target frequencies of the adaptive system or the adaptive filter that is diverging by filtering those frequencies to reduce their gain, reducing the adaptive filter coefficients for those frequencies, or freezing adaptation corresponding to those frequencies.

[0092] As described above, the steps of the method 300 can be repeated for a plurality of frequency values (values of the "first frequency" that change at each iteration). Moreover, the steps of the method 300 can be repeated over time as new samples are received from the error sensor, in order to continuously monitor the divergence. Thus, the method 300 serves as a loop that can detect divergence during the operation of the adaptive filter.

[0093] The functions described herein, or portions thereof, and various modifications thereto, hereinafter collectively referred to as "the functions," can be implemented, at least in part, via a computer program product, e.g., a computer program tangibly embodied in an information carrier, such as one or more non-transitory machine- readable media or storage device(s), for execution by, or to control the operation of, one or more data processing apparatus, e.g., a programmable processor, a computer, multiple computers, and / or programmable logic components.

[0094] A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a network.

[0095] Actions associated with implementing all or part of the functions can be performed by one or more programmable processors executing one or more computer programs to perform the functions of the calibration process. All or part of the functions can be implemented as, special purpose logic circuitry, e.g., an FPGA and / or an ASIC (application-specific integrated circuit).

[0096] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or input to, or both, one or more mass storage devices for storing data (e.g., magnetic, solid state, or optical disks); one or more output devices (e.g., a video display, speakers); and one or more input devices (e.g., a keyboard, a mouse).

[0097] While several inventive embodiments have been described and illustrated, various modifications are possible without departing from the scope and nature of the claims set forth below. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and / or configurations will depend upon the specific application or applications for which the teachings is / are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific inventive embodiments described herein. It is, therefore, to be understood that the embodiments described above are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, the inventive embodiments can be practiced otherwise than as specifically described and claimed. Inventive embodiments of the present disclosure are directed to each individual feature, system, article, material, and / or method described herein. In addition, any combination of two or more such features, systems, articles, materials, and / or methods, if such features, systems, articles, materials, and / or methods are not mutually inconsistent, is included within the inventive scope of the present disclosure.

Claims

1. A non-transitory storage medium storing program code for detecting divergence or instability in a noise-cancellation system, the program code being executed by a processor, comprising the steps of: determining a power of a component of an error signal at a first frequency, the component being related to a noise-cancellation signal by inputting the error signal to a least mean square algorithm using the noise-cancellation signal as a reference signal, the noise-cancellation signal being produced by an adaptive filter and being configured to cancel noise within a predetermined volume when converted into an acoustic signal, wherein the error signal represents an amplitude of residual noise within the predetermined volume; determining a time gradient of the power of the component of the error signal; and comparing a measure to a threshold, thereby detecting divergence or instability in the noise-cancellation system, wherein the measure is based at least partly on a value of the time gradient of the power of the component of the error signal over a period of time.

2. The non-transitory storage medium of claim 1, wherein the program code further comprises the step of: Upon determining that the measure exceeds the threshold, transitioning a first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter.

3. The non-transitory storage medium of claim 2, wherein the program code further comprises the step of: If, as a result of transitioning the first set of coefficients to the second set of coefficients, the power of the related component starts to decrease, slowing an adaptation rate of the adaptive filter.

4. The non-transitory storage medium of claim 2, wherein the program code further comprises the step of: Upon determining that the measure exceeds the threshold over a second period of time in which the second set of coefficients is stored, transitioning to a third set of coefficients of the adaptive filter.

5. The non-transitory storage medium of claim 1, wherein the measure is a filtered representation of the time gradient over the period of time, wherein a representation of the time gradient is filtered with a low-pass filter.

6. The non-transitory storage medium of claim 5, wherein a cut-off frequency of the low-pass filter is selected in dependence on the first frequency.

7. The non-transitory storage medium of claim 1, wherein the program code further comprises the step of: comparing a second measure to a second threshold, wherein the second measure is based on a comparison of the power of the component of the error signal at the first frequency and the power of the component of the error signal at at least a second frequency.

8. The non-transitory storage medium of claim 7, wherein the program code further comprises the step of: Upon determining that the measure exceeds the threshold or the second measure exceeds the second threshold, transitioning a first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter.

9. The non-transitory storage medium of claim 8, wherein the program code further comprises the step of: If, as a result of transitioning the first set of coefficients to the second set of coefficients, the power of the related component starts to decrease, slowing an adaptation rate of the adaptive filter.

10. The non-transitory storage medium of claim 7, wherein the second measure is a filtered representation of a relative power of the component of the error signal at the first frequency and the component of the error signal at the second frequency, wherein a representation of the relative power is filtered with a low-pass filter.

11. A method for detecting divergence in a noise-cancellation system, comprising: determining a power of a component of an error signal at a first frequency, the component being related to a noise canceling signal by inputting the error signal to a least mean square algorithm using the noise canceling signal as a reference signal, the noise canceling signal being generated by an adaptive filter and being configured to cancel noise within a predetermined volume when converted into an acoustic signal, wherein the error signal represents an amplitude of residual noise within the predetermined volume; determining a time gradient of the power of the component of the error signal; and comparing a measure to a threshold value, thereby detecting a divergence or instability in the noise canceling system, wherein the measure is based at least partly on a value of a time gradient of the power of the component of the error signal over a time period.

12. The method of claim 11, further comprising the step of: translating a first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter after determining that the measure exceeds the threshold value.

13. The method of claim 12, further comprising the step of: slowing down an adaptation rate of the adaptive filter if the power of the related component starts to decrease due to the translation of the first set of coefficients to the second set of coefficients.

14. The method of claim 12, further comprising the step of: translating to a third set of coefficients of the adaptive filter after determining that the measure exceeds the threshold value over a second time period in which the second set of coefficients is stored.

15. The method according to claim 11, wherein the measure is a filtered representation of the time gradient over the time period, wherein the representation of the time gradient is filtered with a low pass filter.

16. The method according to claim 15, wherein a cut-off frequency of the low pass filter is selected in dependence of the first frequency.

17. The method of claim 11, further comprising the step of: comparing a second measure to a second threshold value, wherein the second measure is based on a comparison of the power of the component of the error signal at the first frequency and the power of the component of the error signal at at least a second frequency.

18. The method of claim 17, further comprising the step of: translating a first set of coefficients of the adaptive filter to a second set of coefficients of the adaptive filter after determining that the measure exceeds the threshold value or the second measure exceeds the second threshold value.

19. The method of claim 18, further comprising the step of: slowing down an adaptation rate of the adaptive filter if the power of the related component starts to decrease due to the translation of the first set of coefficients to the second set of coefficients.

20. The method according to claim 17, wherein the second measure is a filtered representation of a relative power of the component of the error signal at the first frequency and the component of the error signal at the second frequency, wherein the representation of the relative power is filtered with a low pass filter.

Citation Information

Patent Citations

  • Systems and methods for detecting divergence in an adaptive system

    US10586524B1

  • Dynamic in-vehicle noise cancellation divergence control

    US10672378B1