System and method for detecting divergence in an adaptive system
By detecting the time gradient average value of the error signal component power in the controller of the noise cancellation system, the problem of divergence of the adaptive system in the event of a failure is solved, and effective detection and correction of the noise cancellation system is realized to ensure the stable operation of the system.
Patent Information
- Application Number
- CN202080039402.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-29
- Filing Date
- 2020-03-19
- Publication Date
- 2025-03-07
- Estimated Expiration
- 2040-03-19
AI Technical Summary
Adaptive systems such as noise cancellation systems may deviate from expected values in the event of a failure, resulting in increased noise rather than reduction, and it is difficult for the prior art to effectively detect and correct this divergence phenomenon.
Determine the time gradient average of the error signal component power by configuring in the controller and comparing it with the threshold to detect whether the system is in a divergent state. If divergence is detected, corrective measures are taken to mitigate its impact on the system.
Effective detection and correction of divergence situations in the adaptive system is realized, ensuring that the system can quickly return to the expected state in the event of a failure and avoid noise increase.
Smart Images

Figure CN113924616B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This patent application claims priority to U.S. patent application serial number 16 / 369,620, filed on March 29, 2019, entitled “Systems and Methods for Detecting Divergence in an Adaptive System,” which is incorporated herein by reference in its entirety. Background Art
[0003] The present disclosure generally relates to systems and methods for detecting divergence in adaptive systems. Summary of the invention
[0004] All examples and features mentioned below can be combined in any technically possible way.
[0005] According to one aspect, a system for detecting divergence in a noise cancellation system is disclosed, the system comprising: a controller configured to: determine a power of a component of an error signal, the component being related to at least one reference signal; determine an average value of a time gradient representing the power of the component of the error signal over a first time period; and determine whether the average value is greater than a threshold.
[0006] In one example, the controller is further configured to normalize the power of the component according to a total power of the at least one reference signal.
[0007] In one example, the value representing the temporal gradient is a smoothed temporal gradient of the power of the component.
[0008] In one example, the smoothed temporal gradient is reduced by the new value of the temporal gradient.
[0009] In one example, the smoothed time gradient is an exponential sliding average of the time gradient.
[0010] In one example, when the time gradient of the power of the component is higher than a gradient threshold, the value representing the time gradient is set to a first marking value, and when the time gradient of the power of the component is lower than the gradient threshold, the value representing the time gradient is set to a second marking value.
[0011] In one example, the controller is configured to weight at least one frequency of the component of the error signal more highly than at least one other frequency of the component of the error signal.
[0012] In one example, the controller is configured to determine a second average value of a second value representing a time gradient of power of the component over a second time period; and determine whether the average value or the second average value is greater than the threshold value.
[0013] In one example, the second time period is greater than the first time period.
[0014] In one example, the controller is further configured to: determine a second power of a component of a second error signal, the component of the second error signal being related to the at least one reference signal; determine a second average value of a value representing a time gradient of the second power of the component of the second error signal within the first time period; and determine whether the second average value is greater than the threshold.
[0015] In one example, the system further includes an error sensor that outputs the error signal.
[0016] In one example, the system further includes at least one reference sensor that outputs the at least one reference signal.
[0017] According to another aspect, a method for detecting divergence in a noise cancellation system is disclosed, the method comprising: determining the power of a component of an error signal, the component being correlated with at least one reference signal; determining an average value of a time gradient representing the power of the component of the error signal over a first time period; and determining whether the average value is greater than a threshold.
[0018] In one example, the method further comprises the step of normalizing the power of the component according to a total power of at least one reference signal.
[0019] In one example, the value representing the temporal gradient is a smoothed temporal gradient of the power of the component.
[0020] In one example, the smoothed temporal gradient is reduced by the new value of the temporal gradient.
[0021] In one example, the smoothed time gradient is an exponential sliding average of the time gradient.
[0022] In one example, when the time gradient of the power of the component is higher than a gradient threshold, the value representing the time gradient is set to a first marking value, and when the time gradient of the power of the component is lower than the gradient threshold, the value representing the time gradient is set to a second marking value.
[0023] In one example, the method further comprises the step of weighting at least one frequency of the component of the error signal more highly than at least one other frequency of the component of the error signal.
[0024] In one example, the method further includes the steps of: determining a second average value of a second value representing a time gradient of the power of the component within a second time period; and determining whether the average value or the second average value is greater than the threshold value.
[0025] The details of one or more implementations are discussed in the accompanying drawings and the description that follows. Other features, objects, and advantages will be apparent in the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1 Depicted is a schematic diagram of a noise cancellation system according to an example.
[0027] Figure 2 Depicted is a block diagram of a noise cancellation system according to one example.
[0028] Figure 3 Depicted is a block diagram of a divergence detector according to one example.
[0029] Figure 4 Depicted is a block diagram of a correlator according to one example.
[0030] Figure 5A Depicted is a block diagram of a divergence calculator according to one example.
[0031] Figure 5B Depicted is a block diagram of a divergence calculator according to one example.
[0032] Figure 5C Depicted is a block diagram of a divergence calculator according to one example.
[0033] Figure 5D Depicted is a block diagram of a divergence calculator according to one example.
[0034] Figure 5E Depicted is a block diagram of a divergence calculator according to one example.
[0035] Fig. 6A Depicted is a block diagram of a threshold detector according to one example.
[0036] Figure 6B Depicted is a block diagram of a threshold detector according to one example.
[0037] Fig. 7A Depicted is a graph of an exemplary divergence calculator output according to one example.
[0038] Figure 7B Depicted is a graph of marker settings in response to an exemplary divergence according to one example. DETAILED DESCRIPTION
[0039] Adaptive systems, such as noise cancellation systems, often employ feedback or feedforward topologies to adjust adaptive system parameters based on the requirements of the environment. Generally speaking, these systems will converge to a state that minimizes a specific value. For example, a noise cancellation system may adjust parameters based on feedback from an error sensor to minimize noise in a specific region. In this case, the noise cancellation system will converge to zero noise in that region.
[0040] However, if an adaptive system fails, the system may deviate from a specific value. In the worst case, this will exacerbate the expected value instead of minimizing it. Similarly, in the noise cancellation example, a divergent noise cancellation system may add noise to the area instead of eliminating it.
[0041] Various examples disclosed herein relate to systems for detecting divergence in an adaptive system, such as a noise cancellation system. In some examples, once divergence is detected, corrective measures can be taken to mitigate the effects of the divergence on the adaptive system.
[0042] As mentioned, one type of adaptive system is a noise cancellation system, such as Figure 1 . The road noise cancellation system 100 may be configured to destructively interfere with undesired sounds in at least one cancellation zone 102 (near the head of a passenger) within a predefined volume 104 (such as a vehicle cabin). At a high level, one example of the road noise cancellation system 100 may include a reference sensor 106, an error sensor 108, an actuator 110, and a controller 112.
[0043] In one example, the reference sensor 106 is configured to generate a reference sensor signal 114 that is representative of an undesired sound or a source of an undesired sound within the predefined volume 104. Figure 1 As shown, the reference sensor 106 may be an accelerometer or a plurality of accelerometers mounted to a vehicle structure 116 and configured to detect vibrations transmitted through the vehicle structure. The vibrations transmitted through the vehicle structure 116 are converted by the structure into undesirable sounds within the vehicle cabin (perceived as road noise), and thus the accelerometer mounted to the structure provides a signal representative of the undesirable sounds.
[0044] The actuators 110 may be, for example, speakers distributed at discrete locations around the perimeter of the predefined volume. In one example, four or more speakers may be disposed within a vehicle cabin, with each of the four speakers being located within a respective door of the vehicle and configured to project sound into the vehicle cabin. In alternative examples, the speakers may be located within headrests, in the rear of the vehicle body, or elsewhere within the vehicle cabin.
[0045] The noise cancellation signal 118 may be generated by the controller 112 and provided to one or more speakers in the predefined volume, which convert the noise cancellation signal 118 into acoustic energy (i.e., sound waves). Since the acoustic energy generated by the noise cancellation signal 118 is approximately 180° out of phase with the undesirable sound within the cancellation zone 102 and therefore destructively interferes with the undesirable sound, the combination of the sound waves generated from the noise cancellation signal 118 and the undesirable noise in the predefined volume results in cancellation of the undesirable noise, which is perceived by a listener in the cancellation zone.
[0046] Because noise cancellation cannot be equal throughout a predefined volume, the road noise cancellation system 100 is configured to produce maximum noise cancellation within one or more predefined cancellation zones 102 within the predefined volume. Noise cancellation within the cancellation zone may reduce undesirable sounds by approximately 3 dB or more (although different amounts of noise cancellation may occur in different examples). Additionally, noise cancellation may cancel sounds within a certain frequency range, such as frequencies less than approximately 350 Hz (although other ranges are possible).
[0047] The error sensor 108 disposed within the predefined volume generates an error sensor signal 120 based on the detection of residual noise, which is generated by a combination of sound waves generated from the noise cancellation signal 118 and undesired sounds in the cancellation zone. The error sensor signal 120 is provided as feedback to the controller 112, and the error sensor signal 120 represents the residual noise that is 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).
[0048] It should be noted that the cancellation zone may be located remotely from the error sensors 108. In such a case, the error sensor signal 120 may be filtered to represent an estimate of the residual noise in the cancellation zone. Furthermore, the error sensor signal 120 may be formed from an array of error sensors 108 (e.g., microphones) and / or other signals in order to generate an estimate of the residual noise in the cancellation zone remotely from one or more of the array of error sensors 108. Indeed, it should be understood that, as used herein, any given error signal may be received directly from one or more error sensors 108, or may be the result of some filtering applied to the signal 120 received from one or more error sensors 108 and / or other signals. Regardless of the number of error sensors 108 used, or the filtering applied to the error sensor signal 120, in the context of the road noise cancellation system 100, the error signal will be understood to represent the residual undesirable noise in the cancellation zone.
[0049] In one example, the controller 112 may include a non-transitory storage medium 122 and a processor 124. In one example, the non-transitory storage medium 122 may store program code that, when executed by the processor 124, implements the noise cancellation and emanation detection systems and methods described below. The controller 112 may be implemented in hardware and / or software. For example, the controller 112 may be implemented by a SHARC floating-point DSP processor, but it should be understood that the controller 112 may be implemented by any other processor, FPGA, ASIC, or other suitable hardware.
[0050] Go to Figure 2 , which shows a block diagram of an example of a road noise cancellation system 100 with divergence detection, the road noise cancellation system including a plurality of filters implemented by a controller 112. As shown, the controller 112 may define a plurality of filters including W adapt Control system of filter 126 and adaptive processing module 128.
[0051] W adapt The filter 126 is configured to receive the reference sensor signal 114 of the reference sensor 106 and generate the 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 Filter 126 may be implemented as any suitable linear filter, such as a multiple-input multiple-output (MIMO) finite impulse response (FIR) filter. adapt The filter 126 employs a set of coefficients that define the noise cancellation signal 118 and can be adjusted to accommodate the changing behavior of a non-linear vehicle in response to road inputs.
[0052] The adjustment of the coefficients may be performed by an adaptive processing module 128 that receives the error sensor signal 120 and the reference sensor signal 114 as inputs and uses these inputs to generate a filter update signal 130. The filter update signal 130 is a signal generated by the adaptive processing module 128. adapt The filter coefficients implemented in filter 126 are updated by the updated W adapt The noise cancellation signal 118 generated by the filter 126 will minimize the error sensor signal 120 and, therefore, minimize the undesired noise in the cancellation zone.
[0053] W at time step n can be updated according to the following formula adapt The coefficients of filter 126 are:
[0054]
[0055] in is an estimate of the physical transfer function between the actuator 110 and the noise cancellation zone 102, yes , y is the error signal, and x is the output signal of the reference sensor 106. In the update formula, the output signal x of the reference sensor is divided by the norm of x (expressed as ||x||2).
[0056] As described in detail below, divergence detector 300 receives error sensor signal 120 and reference sensor signal 114 and uses these inputs to determine whether road noise cancellation system 100 is likely to be diverging. In response to this measurement, road noise cancellation system 100 may take corrective action to mitigate the divergence.
[0057] When the road noise cancellation system 100 is operating properly, it should converge to no road noise in the cancellation zone, and therefore, the content of the error signal correlated to the reference signal should be low within the cancellation zone 102. Therefore, an increase in the correlation content in the error signal is an indication of divergence. Therefore, the divergence detector 300 is used at a high level to detect an increase in the correlation content in the error signal 120.
[0058] Figure 3 3 is an exemplary divergence detector 300 for detecting divergence in an adaptive system such as the road noise cancellation system 100. As shown, the divergence detector 300 may include a correlator 302, a divergence calculator 304, and a threshold detector 306. In this example, the divergence calculator 304 receives the power of a component of the error sensor signal y(n) associated with the input signal x(n) from the correlator 302, and determines a time average of a value representing a time gradient of the associated power of the error sensor signal y(n) based on the power. The threshold detector 306 receives the time average of the value representing the time gradient of the associated power from the divergence calculator 304 and compares it to a user-defined threshold.
[0059] As described above, the correlator 302 outputs a signal representing the power of a component of the error sensor signal y(n) that is correlated with one or more input signals x(n). Also, as described above, the error sensor signal y(n) may be received from a single error sensor, or may be a combination of multiple error sensor signals and / or other signals. In addition, the error sensor signal y(n) may be filtered prior to being input to the divergence detector 300. It should also be understood that the input signal x(n) represents one or more signals input to the adaptive system that represent the environment or context to which the adaptive system is adapted. In the example of the road noise cancellation system 100, the input signal is a reference sensor signal 114, such as an accelerometer signal.
[0060] The functionality of correlator 302 can be divided into at least two separate tasks: (1) finding components of the error sensor signal y(n) that are correlated with one or more input signals x(n), and (2) finding the power of the components of the error sensor signal y(n) that are correlated with the one or more input signals x(n), the one or more input signals being received from, for example, one or more reference sensors (such as reference sensor 106).
[0061] In the example of the road noise cancellation system 100, the reference sensor 106 may be positioned to detect vibrations in the vehicle structure that are perceived by passengers as road noise, while the error sensor 108 may be positioned to detect all noise in the cabin or a subset of noise in the cabin (e.g., noise that falls within a specific cancellation zone and within a specific frequency range). In this example, the error sensor 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 in the cabin, conversations of passengers in the cabin, wind blowing through the vehicle, etc. Therefore, the error sensor signal y(n) can be expressed as the sum of its components, as follows:
[0062] y(n)=y a (n)+y resi (n) (2)
[0063] where y a(n) is the component of the error sensor signal y(n) related to the input signal x(n), and y resi(n) is a residual component that is uncorrelated with the input signal x(n). In the context of the road noise cancellation system 100, since the adaptive system is adapted to limit road noise, the noise detected by the error sensor 108 that is uncorrelated with the road noise (i.e., a component that is uncorrelated with the reference sensor 106) does not indicate whether the adaptive system is diverging or converging. Therefore, the correlator 302 is configured to correlate the error sensor signal y(n) with the input signal x(n) to cancel the uncorrelated input to the error sensor 108.
[0064] The correlator 302 may find the power of the error sensor signal y(n) before or after correlating the error sensor signal y(n) with the input signal x(n). For example, the correlator 302 may first determine the power of the error sensor 108 and then determine which component of the power of the error sensor signal y(n) is correlated with the power of the input signal x(n). (Such a system may be used, for example, in Figure 4 ) Alternatively, the correlator 302 may first determine the component of the error sensor signal y(n) that is correlated with the input signal x(n), and then determine the power of the correlated component. In either case, the output of the correlator is the power of the component of the error sensor signal y(n) that is correlated with the input signal x(n).
[0065] Figure 4 An example of a correlator 302 is depicted. In this example, input signals (collectively denoted x1(n), x2(n), ... xN(n)) (indicating that any number of input signals may be used) and an error sensor signal y(n) are each input to a short time Fourier transform 400, which computes a Fourier transform and outputs a spectrum relative to the frequency of each respective signal. It should be appreciated that, although a short time Fourier transform is illustrated, any suitable Fourier transform or Fourier correlation transform algorithm that transforms the input signal to the frequency domain (e.g., DCT) may be implemented in alternative examples. Since the input (y(n), x1(n), x2(n), ... xN(n)) is a running time series, where each time sample is received sequentially, the input signal may be buffered and an FFT or FFT correlation algorithm performed on the buffer. Thus, any suitable FFT algorithm or FFT correlation algorithm may include additional buffering and windowing to account for the running time series input. Furthermore, it should be appreciated that the FFT or FFT correlation algorithm may be limited to a frequency band of interest. For example, in the context of road noise cancellation, the output of the STFT 400 may be limited to a range such as 60 Hz to 300 Hz, as this is typically the frequency band in which road noise is cancelled.
[0066] The output of the STFT 400 is input to a cross spectral density matrix calculator 402 which determines a cross spectral density matrix. Inputting the output of the cross spectral density matrix to a matrix diagonalizer 404 will produce the power spectral density of the uncorrelated components of the error sensor signal Since the power spectral density of the error sensor signal (which is the last diagonal term of the cross spectral density matrix) S y,y is related (S ya,ya ) components and unrelated The sum of the power spectral densities of the components:
[0067]
[0068] From S y,y Minus An estimate of the power spectral density of the relevant component of the error output signal will be generated as follows:
[0069]
[0070] That is, the subtractor 406 is used to obtain the y,y Subtracting the diagonalization of the cross spectral density matrix from (the last diagonal entries of the cross spectral density matrix) will produce an estimate of the power spectral density of the components of the error sensor signal y(n) associated with the input signals x1(n), x2(n), ... xN(n)
[0071] It should be understood that the components of the error sensor signal y(n) associated with the input signals x1(n), x2(n), ... xN(n) are The estimate of the power of can be calculated in other suitable ways. In fact, there are many methods, such as for calculating power spectral density and for calculating the cross-correlation between the error sensor signal and the input signal, any of which can be applicable to various examples. In addition, it should be understood that power spectral density is only one way to represent the power of a signal (i.e., relative to frequency), and in other examples, different methods of representing the power of a signal can be used to calculate the relevant power. (and other powers mentioned in this disclosure). Input to the divergence calculator 304.
[0072] In addition to the relevant power of the error sensor signal In addition, the power of the input signal can also be input to the divergence calculator 304. This is for example Figure 4 , where the first N diagonal entries of the cross spectral density matrix are summed to produce the sum of the power spectral densities of the input signals, given by:
[0073]
[0074] At time index n and frequency bin k. Then the sum of the power spectral densities S of the input signals is x,x[n,k] Input to the divergence calculator 304, such as Figure 5A shown.
[0075] The power spectral density calculated above may, for example, use a frame size of 256 frequency bins. Preferably, the resolution should be at least as much as the resolution of the adaptive filter, in one example, 125 taps. In addition, the length of the time averaging window used to calculate the power spectral density may be approximately 50 seconds, but other time lengths may also be used. During the power spectral density calculation, the time overlap length of adjacent frames may be approximately 95%, resulting in a rate for divergence estimation of approximately once every 3.2 seconds. It should be understood that, in conjunction with a review of the present disclosure, these parameters may be adjusted to suit the context of the divergence detector 300 and the requirements of the adaptive system.
[0076] The divergence detector 300 is configured to determine the relative power The likelihood that the sensor signal will diverge (e.g., may grow unchecked or without returning to an acceptable level). Of course, any adaptive system will go through growth periods and convergence periods. For example, the road noise cancellation system 100 will (if operating properly) generally cancel the road noise present in the vehicle cabin, and thus the associated power of the sensor signal. will generally converge to zero. However, as the characteristics of the road noise change and the road noise cancellation system adapts to these changes, there will be periods when the road noise will grow in the cabin (and therefore the power of the associated component of the error sensor signal will grow). As long as the noise cancellation system 100 adapts to these changes and the associated power Once again, it converges to zero, which is not a problem; it is a sign that the adaptive system is working properly. However, if the road noise begins to grow unchecked and the adaptive system fails to eliminate it, or worse, exacerbates it, this may indicate that the adaptive system is diverging.
[0077] As described above, in order to determine whether the adaptive system is likely to be diverging, the divergence detector 300 may include a divergence calculator 304 and a threshold detector 306. The divergence calculator 304 may generate a plurality of signals representing the relative power over time. The values of the time gradient of are averaged. This average corresponds to an estimate of the degree of divergence of the adaptive system, which can be input to a threshold detector 306, which compares the determined degree of divergence with a user-defined threshold. If the threshold is exceeded, corrective action can be taken, as described below.
[0078] like Figure 5A As shown, in one example, the divergence calculator 304 may include a time gradient calculator 500 and an average value calculator 502. The relevant power input to the time gradient calculator 500 is This can be the relevant power itself, or the relevant power in decibels, for example determined by:
[0079]
[0080] in Likewise the associated power at sample n and frequency bin k.
[0081] A change in the environment that produces more road noise (or other higher power signals in other adaptive systems) will generally cause the input power and the associated power The instantaneous increase in the power of the input signal is therefore normalized by a value that reflects the increase in the power of the input signal. Such a value could be, for example, the average power of the input signals x1(n), x2(n), ... xN(n). Alternatively, the sum of the input powers S x,x [n, k] can be used, for example, by the following formula shown:
[0082]
[0083] Where S x,x[n, k] is given by equation (5). In various examples, an average value of the input signal power may be used, or other values indicative of the input signal power may be used to provide a normalized value of the relative power.
[0084] In addition, a frequency correction W[k] can be introduced to ensure that the relevant power is corrected according to the user-defined importance The sum of the input power S x,x Any frequency-dependent attenuation in the ratio [n, k] (e.g., due to transmission between the accelerometer and the ear) is calculated as follows:
[0085]
[0086] Regardless of the method used to determine G[n, k], for a given time and a given frequency, the time gradient of G[n, k] can be determined by:
[0087] ΔG[n,k]=G[n,k]-G[n-1,k] (9)
[0088] where G[n, k] is the correlation power between the current (or latest) sample and a given frequency (eg, frequency bin k), and G[n-1, k] is the correlation power between the previous sample and the same frequency.
[0089] Therefore, the time gradient calculator 500 will output a value ΔG[n, k] representing the time gradient of the correlation power. This output will be input to the average calculator 502 to calculate the sample number T. A The averaging is performed as follows:
[0090]
[0091] The average time gradient AvgGradient[n, k] will represent the average increase in the correlation power and will therefore represent the average time gradient AvgGradient[n, k] at the received sample T A The estimated divergence degree within a time period. The number of samples T for its average time gradient ΔG[n, k] A It can be defined by the user that a short averaging time will produce a fast divergence, while a longer average will smooth out the fast divergence, resulting in a longer divergence. For this reason, it may be useful to run both short-term and long-term averages at the same time, as will be described below in conjunction with Figure 5C described.
[0092] In addition to defining the time gradient, such as Figure 5B As shown, the time gradient calculator output ΔG[n, k] may first be input to a smoother 504, which is used to smooth the new value toward an average value. For example, the smoother may use an exponential sliding average, which is given by:
[0093] ΔG smooth [n,k]=(1-α)ΔG[n,k]+αΔG[n-1,k] (11)
[0094] where α is a user-defined smoothing value between 0 and 1. If α is set to, for example, 0.1, then the result of the exponential sliding average will weight the time gradients computed for new samples more heavily than the time gradients computed for older samples. This will therefore "subtract" the new samples only slightly, making the smoothed time gradient ΔG smooth [n, k] reflects gradient changes that occur over short time periods (e.g., 2 minutes). Alternatively, if α is set to, for example, 0.99, new samples will be heavily discounted in favor of temporal gradients computed for older samples. The net result of such a value of α will be to weight older temporal gradients more heavily, so that the resulting smoothed temporal gradient ΔG is smooth [n, k] better reflects gradient changes that occur over longer time periods (e.g., 5 minutes or longer).
[0095] The output ΔG of the smoother 504 can be smooth [n, k] and average sample length T A In other words, smaller values of α will give greater weight to newer temporal gradient values and shorter T A will also provide a larger weight. Therefore, the divergence calculator 304 can improve the performance by selecting a smaller α and a shorter T A However, such a divergence calculator 304 will not be able to identify long-term divergence. Therefore, the divergence calculator 304 may alternatively select a higher α and a longer T A And focus on long-term divergence.
[0096] It should be appreciated that the exponential sliding average defined by equation (11) is only one way to smooth the values. In practice, any other suitable sliding average or filtering may be used to smooth the temporal gradient to favor newer or older values.
[0097] However, if a peak in the temporal gradient (diverging or converging) occurs and resolves very quickly, the average temporal gradient AvgGradient[n, k] may not accurately reflect the degree of divergence. In fact, such a peak may have too large an influence on the average temporal gradient AvgGradient[n, k], skewing the result in some way. Furthermore, it may be difficult to accurately set the threshold of the threshold detector 306, because fast diverging values and slow diverging values may span a large range of positive values. Therefore, a slow divergence may be mistakenly identified as converging.
[0098] Therefore, if Figure 5BAs shown, each smoothed temporal gradient may be input to a flag setter 506, which assigns a value of 1 or 0 depending on whether the temporal gradient is growing (i.e., above or equal to zero) or contracting (i.e., less than zero), as described below:
[0099]
[0100] Therefore, setting the labels according to equation (12) will broadly characterize the smoothed time gradient of each sample according to whether it is growing (diverging) or shrinking (converging). Of course, 1 and 0 are provided only as examples, and any other values for labels may be used.
[0101] Thus, the output of the flag setter 506 is a value representing the temporal gradient of the correlation power, broadly characterizing each sample or smoothed sample according to whether the temporal gradient is above or below zero. Figure 5B In the example of , the average calculator will calculate the average of the values representing the time gradient of the relevant power as follows:
[0102]
[0103] In this example, using the label values 1 and 0, the average temporal gradient AvgGradient[n, k] will fall between 0 and 1. If the value of AvgGradient[n, k] is closer to 0, it will indicate a low degree of divergence; however, if the value is closer to 1, it will indicate a high degree of divergence. In this example, the average temporal gradient AvgGradient[n, k] can be considered as a rough probability of divergence because the value falls between 0 and 1.
[0104] The flag setter 506 may be used in conjunction with the smoother 504 or without the smoother 504. Thus, in different examples, the flag setter 506 may receive the output from the time gradient calculator 500 or from the smoother 504. Similarly, in an alternative example, the divergence calculator 304 may input the output of the smoother 504 directly to the average calculator 502 without the flag setter 506, in which case the average time gradient of the average calculator 502 will be calculated as:
[0105]
[0106] Thus, in a separate example, a value representing the temporal gradient may be computed with or without the smoother 504 and with or without the flag setter 506 .
[0107] As described above, the divergence calculator 304 can calculate multiple probabilities AvgGradient[n, k] in parallel, with each parallel branch utilizing a unique sample length T AAn example of this is in Figure 5C , where multiple branches (each branch includes an average calculator) receive the output of the time gradient calculator 500 and use the calculated time gradient to calculate the time average of a unique length respectively. In other words, each average calculator can use a different sample length T A The time average is applied to the time gradient. For example, as shown, the first branch 508 includes a short-term average calculator 512 that uses a short sample length T A (e.g., 2 minutes), thus generating a short-term average time gradient AvgGradient S [n, k] The second branch 510 includes, for example, a long-term average calculator 514, which uses a long sample length T A (e.g., 5 minutes), thus generating the long-term average time gradient AvgGradient L [n, k] It should be appreciated that although two branches are shown, any number of branches may be used, each branch computing a different length-averaged time gradient.
[0108] For example, Figure 5D As shown, each branch may include one or both of a smoother and / or a flag setter 506. The smoother in each branch may be configured to apply an alpha value coordinated with the length of the corresponding average calculator. For example, a branch 516 including a short-term average calculator 512 may include a short-term smoother 520, which has a small alpha value, so that newer values are more heavily weighted. A branch 518 including a long-term average calculator 514 may include a long-term smoother 522, which has a large alpha value, so that older values are more heavily weighted.
[0109] In either case, the output of divergence calculator 304 may be calculated by maximum 524 as the maximum of the branches for each sample and frequency such that:
[0110] AvgGradient[n,k]=max(AvgGradient L [n, k], AvgGradient S [n,k]) (15)
[0111] However, it may be useful to weight some frequency outputs of AvgGradient[n, k] more heavily than others. For example, at some frequencies, the relevant power spectral density may have a value of zero, while at other frequencies the relevant power spectral density may have a peak value. If there is a peak in the error signal, it is preferable to detect its divergence as early as possible, because the increasing peak value will be more obvious to the user; however, if there is a zero value, it is acceptable for its power to increase by a certain amount before the divergence is marked. Therefore, if Figure 5E As shown, each frequency may be weighted by the relative importance factor calculator 526 according to the relative importance according to the following formula:
[0112]
[0113] In other words, each sample at a given frequency may be multiplied by a value corresponding to the quotient of the difference between the power of the sample at that frequency and the minimum expected associated power and the difference between the maximum expected associated power and the minimum expected associated power. If a sample has a large amount of power, it will quickly exceed the threshold of the threshold detector because its relative importance will be relatively large. If a sample with a small amount of power begins to diverge, its relative importance will grow as its power increases, eventually flagging the threshold detector 306.
[0114] The divergence calculator output may then be given by multiplying each average temporal gradient AvgGradient[n, k] for a particular frequency by the relative importance I[n, k] of the samples at the given frequency using multiplier 528 as follows:
[0115] AvgGradientWeighted[n,k]=AvgGradient[n,k]I[n,k] (17)
[0116] It should be understood that the above example for calculating relative importance given by formula (15) is only one example of a method for assigning relative importance. In fact, relative importance can be assigned according to any method for weighting a given sample according to the power of the sample at a given frequency.
[0117] return Figure 3As briefly described above, the value representing the temporal gradient (output 306 from the divergence calculator 304) is input to a threshold detector 306. The threshold detector compares the temporal average of the value representing the temporal gradient AvgGradient[n, k] to a threshold to determine whether the degree of divergence is large enough to warrant corrective action. The threshold may be user defined and will depend at least in part on the properties of the average temporal gradient AvgGradient[n, k] calculated by the divergence calculator 304. For example, if the divergence calculator does not employ a mark setter, the threshold will likely be set to near zero because the output values of the temporal gradient calculator 500 and the smoother 504 typically indicate that the sample is divergent if greater than zero and convergent if less than zero. However, if the mark setter 506 is used, the threshold will likely be near the midpoint between the low mark value and the high mark value. Thus, as described above, if each output of the smoother 504 (or time gradient calculator 500) below zero is assigned a low tag value of 0, and each output of the smoother 504 greater than zero is assigned a high tag value of 1, then the midpoint between 0 and 1 is 0.5. Therefore, it can be assumed that any output of the divergence calculator 304 greater than 0.5 indicates divergence, and corrective action can be taken. Likewise, as another example, if the low tag value is set to 0 and the high tag value is set to 4, then the midpoint indicating the possibility of divergence can be 2.
[0118] However, it should be understood that the "sensitivity" of the divergence detector 300 can be adjusted by changing the level of the threshold. The divergence detector 300 can be made more sensitive to divergence by lowering the threshold. For example, looking at the example of the divergence detector 300 without the marker setter 506, the threshold can be set to -0.05 to require that the average time gradient (or smoothed time gradient) is generally convergent. Although lowering the threshold will make the divergence detector 300 more sensitive to divergence (and will take action faster if it occurs), it will also be more sensitive to false positives. Therefore, if the divergence detector is to be less susceptible to false positives, the threshold can be set to above zero, for example, to 0.05. Similarly, in an example with a marker setter 506 (e.g., a low marker value of 0 and a high marker value of 1), the threshold can be set to 0.6 to reduce false positives. It may typically be desirable to set the threshold above 0 (in the example without marker setter 506) and above 0.5 (in the example with a marker setter) because a random signal with zero mean and finite averaging will typically fluctuate around 0 or 0.5 (in the different examples), so a slightly larger threshold may be used to reduce false positives.
[0119] Fig. 6AAn example of a threshold detector 306 is shown. In this example, the threshold detector 306 may employ a maximum value across all frequencies 600 and a comparator 602. The maximum value across all frequencies 600 determines the maximum average time gradient AvgGradient[n, k] across each frequency output by the divergence calculator 304. For example, the maximum value across all frequencies calculator 600 may receive the average time gradient AvgGradient[n, k] of each frequency on a sample-by-sample basis, determine which frequency exhibits the highest average time gradient AvgGradient[n, k], and input the average to the comparator. Thus, the output of the maximum value across all frequencies may be characterized as follows:
[0120] MaxAvgGradient[n]=max(AvgGradient[n,k]) All Frequencies (18)
[0121] As described above, the comparator 602 may simply compare the received maximum average time gradient MaxAvgGradient[n] with a predetermined threshold. In one example, the comparator 602 may output a final flag value indicating divergence or convergence. For example, the comparator 602 may output 0 if the maximum average time gradient MaxAvgGradient[n] is below the threshold, and output 1 if the maximum average time gradient MaxAvgGradient[n] is above the threshold, as described below:
[0122]
[0123] (0.6 is provided as an exemplary threshold only).
[0124] It should be understood that in an alternative example, the maximum value calculator 600 across all frequencies may be excluded so that the comparator may compare each average time gradient AvgGradient[n, k] calculated for each frequency, rather than just comparing the maximum average time gradient MaxAvgGradient[n] across all frequencies for each sample.
[0125] If multiple error sensors are employed in the adaptive system (e.g., multiple microphones are employed in the road noise cancellation system 100), the relative power of each of these error signals may be input to the parallel divergence calculator 304. The outputs of these parallel divergence calculators 304 may be averaged sample by sample and frequency by an average calculator 604, the output of which may be input to the maximum across all frequencies 600. In this example, the output of the maximum across frequencies may be characterized as follows:
[0126] MaxAvgGradient[n]=max(mean(AvgGradient[n,k]) All signals ) All Frequencies (20)
[0127] Combined with Figures 3 to 6B The above example described above determines the average temporal gradient AvgGradient[n, k] on a sample-by-sample, frequency-by-frequency basis. In other words, the output of the divergence calculator 304 will be for each frequency or by Figure 4 At least one frequency subset of the STFT 400 outputs of the sample outputs the corresponding divergence degree of the sample. However, in alternative embodiments, different power values can be used. For example, the relevant power can be the average power across all frequencies for each sample. Alternatively, the relevant power for only one frequency per sample can be calculated. Therefore, the average time gradient is not necessarily repeated for multiple frequencies. These examples will bring higher processing efficiency at the expense of reduced granularity.
[0128] As described above, once the output of the divergence calculator exceeds the predetermined threshold of the threshold detector 306, corrective action may be taken. In various examples, such corrective action may be: shutting down the adaptive system, restarting the adaptive system to a default or stored previously converged state, reducing the step size to slow down the adaptive system's adaptation and reduce the effects of divergence over time, scaling down the adaptive filter and "freezing" the adaptation in the current state, or targeting specific frequencies of the adaptive filter's divergence by filtering those frequencies to reduce their gain, reducing the adaptive filter coefficients relative to those frequencies, or freezing the adaptation corresponding to those frequencies. Since this final example targets only certain frequencies, the remaining non-divergent frequencies of the adaptive filter are allowed to continue to adapt as usual.
[0129] Fig. 7A 3 depicts a graph of an exemplary average temporal gradient AvgGradient[n, k] output by the divergence calculator 304 in response to a road noise cancellation system. Fig. 7A Threshold line 700 on FIG. 7 depicts an exemplary threshold for determining that divergence has occurred. Figure 7B The inference output of the threshold detector 306 is depicted. When the average temporal gradient AvgGradient[n, k] exceeds Fig. 7A In each case of the threshold Figure 7B The flag is set to 1 at the output of the threshold detector 306 in .
[0130] The above-described system and method for detecting divergence improves the functionality of a computer by allowing the computer to detect when an adaptive system diverges, something that was previously not possible for the computer to do. In addition, the above-described system improves the functionality of a computer by allowing the computer to take corrective action once divergence is detected in an adaptive system.
[0131] The functions or parts thereof described herein, as well as various modifications thereof (hereinafter referred to as "functions") may be implemented at least in part via a computer program product, such as a computer program tangibly embodied in an information carrier, such as one or more non-transitory machine-readable media or storage devices, for executing, or controlling the operation of one or more data processing apparatuses, such as a programmable processor, a computer, multiple computers and / or a programmable logic component.
[0132] 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 on one computer or executed on multiple computers distributed at one site or multiple sites and interconnected by a network.
[0133] The actions associated with implementing all or part of the functionality may be performed by one or more programmable processors executing one or more computer programs to perform the functionality of the calibration process. All or part of the functionality may be implemented as special purpose logic circuitry, such as an FPGA and / or an ASIC (Application Specific Integrated Circuit).
[0134] Processors suitable for executing computer programs include, for example, both general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Generally speaking, a processor will receive instructions and data from a read-only memory or a random access memory, or both. The components of a computer include a processor for executing instructions and one or more memory devices for storing instructions and data.
[0135] Although several inventive embodiments have been described and illustrated herein, a person of ordinary skill in the art will readily conceive of a variety of other devices and / or structures for performing the functions described herein and / or obtaining one or more of the results and / or advantages described herein, and each of such variations and / or modifications is considered to be within the scope of the inventive embodiments described herein. More generally, a person of ordinary skill in the art will readily understand that all parameters, dimensions, materials, and configurations described herein are intended to be exemplary, and that actual parameters, dimensions, materials, and / or configurations will depend on one or more specific applications using the teachings of the present invention. A person of ordinary skill in the art will recognize or be able to determine many equivalents of the specific inventive embodiments described herein using only routine experiments. Therefore, it should be understood that the above embodiments are presented only by way of example, and within the scope of the appended claims and their equivalents, the inventive embodiments may be practiced in a manner different from that specifically described and claimed. The inventive embodiments of the present disclosure relate to each individual feature, system, article, material, and / or method described herein. In addition, if such features, systems, articles, materials, and / or methods are not mutually contradictory, any combination of two or more such features, systems, articles, materials, and / or methods is included within the scope of the invention disclosed herein.
Claims
1. A system for detecting divergence in a noise cancellation system, comprising: A controller, the controller being configured to: determining a power of a component of the error signal, the component being related to at least one reference signal; determining an average value of a value representative of the time gradient of the power of the component of the error signal over a first time period, the average value corresponding to an estimate of a degree of divergence of the noise cancellation system; and It is determined whether the average value is greater than a threshold value. 2 . The system of claim 1 , wherein the controller is further configured to normalize the power of the component according to a total power of the at least one reference signal. 3 . The system of claim 1 , wherein the value representing the temporal gradient is a smoothed temporal gradient of the power of the component.
4. The system of claim 3, wherein the smoothed time gradient is reduced by a new value of the time gradient. The system of claim 3 , wherein the smoothed time gradient is an exponential sliding average of the time gradient.
6. A system according to claim 1, wherein when the time gradient of the power of the component is higher than a gradient threshold, the value representing the time gradient is set to a first marking value, and when the time gradient of the power of the component is lower than the gradient threshold, the value representing the time gradient is set to a second marking value. 7 . The system of claim 1 , wherein the controller is configured to weight at least one frequency of the component of the error signal more highly than at least one other frequency of the component of the error signal.
8. The system of claim 1, wherein the controller is configured to determine a second average value of the second value representing the time gradient of the power of the component over a second time period; and determine whether the average value or the second average value is greater than the threshold value.
9. The system of claim 8, wherein the second time period is greater than the first time period.
10. The system of claim 1, wherein the controller is further configured to: determining a second power of a component of a second error signal, the component of the second error signal being related to the at least one reference signal; determining a third average value representing a time gradient of the second power of the component of the second error signal over the first time period; and It is determined whether the third average value is greater than the threshold value.
11. The system of claim 1 , further comprising: An error sensor outputs the error signal.
12. The system of claim 1, further comprising: At least one reference sensor outputs the at least one reference signal.
13. A method for detecting divergence in a noise cancellation system, comprising: determining a power of a component of the error signal, the component being related to at least one reference signal; determining an average value of a value representative of the time gradient of the power of the component of the error signal over a first time period, the average value corresponding to an estimate of a degree of divergence of the noise cancellation system; and It is determined whether the average value is greater than a threshold value.
14. The method according to claim 13, further comprising the steps of: The power of the component is normalized according to a total power of the at least one reference signal.
15. The method of claim 13, wherein the value representing the temporal gradient is a smoothed temporal gradient of the power of the component. The method of claim 15 , wherein the smoothed temporal gradient is reduced by a new value of the temporal gradient. The method of claim 15 , wherein the smoothed time gradient is an exponential sliding average of the time gradient.
18. A method according to claim 13, wherein when the time gradient of the power of the component is higher than a gradient threshold, the value representing the time gradient is set to a first marking value, and when the time gradient of the power of the component is lower than the gradient threshold, the value representing the time gradient is set to a second marking value.
19. The method according to claim 13, further comprising the steps of: At least one frequency of the component of the error signal is weighted more highly than at least one other frequency of the component of the error signal.
20. The method according to claim 13, further comprising the steps of: determining a second average value of a second value representative of the time gradient of the power of the component over a second time period; And determining whether the average value or the second average value is greater than the threshold value.
Citation Information
Patent Citations
Coefficient updating method for an adaptive filter
US5668747A
Coherence based dynamic stability control system
WO2018097946A1