System and method for detecting the noise floor of a sensor
By calculating the power spectral density of the sensor signal and judging whether its minimum power exceeds the threshold, the problem of noise floor deviation recognition in the accelerometer signal is solved, and effective monitoring and performance improvement of the noise cancellation system is achieved.
Patent Information
- Application Number
- CN202180013720.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-21
- Filing Date
- 2021-01-15
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2041-01-15
AI Technical Summary
The prior art is difficult to effectively identify and process noise floor deviations in accelerometer signals, resulting in a degradation in the performance of the noise cancellation system or a noise generation.
By receiving sensor signals, multiple power spectral densities are calculated, and the minimum power is identified, and whether it exceeds the threshold value is determined, and then whether the sensor is in an idle state and take corresponding measures.
Reliable estimation and deviation detection of sensor noise floor are realized, avoiding noise generated by the noise cancellation system due to faulty sensors and improving system performance.
Smart Images

Figure CN115066723B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This patent application claims priority to U.S. patent application serial number 16 / 747,932, filed on January 21, 2020, entitled “Systems and Methods for Detecting Noise Floor of a Sensor,” which is incorporated herein by reference in its entirety. Background Art
[0003] The present disclosure as a whole relates to systems and methods for estimating the noise floor of a sensor and for detecting when the noise floor of the sensor deviates from an expected noise floor. In particular, various examples described in the present disclosure relate to systems and methods for estimating the noise floor of an accelerometer deployed in a noise cancellation system implemented in a vehicle and for detecting when the estimated noise floor deviates from the expected noise floor. 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 computer-implemented method for detecting background noise of a sensor is disclosed, the method comprising the following steps: receiving a sensor signal from a sensor; determining a plurality of power spectral densities based on a plurality of consecutive sample frames of the sensor signal, each of the plurality of power spectral densities being determined based on a corresponding frame of the plurality of consecutive frames, each of the power spectral densities comprising a plurality of frequency windows, each frequency window being associated with a power of the sensor signal at a frequency of a corresponding frequency window, wherein each of the plurality of consecutive frames differs by at least one sample; identifying a minimum power of the plurality of power spectral densities; and determining whether the minimum power exceeds a threshold.
[0006] In one example, the computer-implemented method further includes the following steps: determining whether the vehicle in which the sensor is located is in an idle state based on at least one condition, wherein the step of determining whether the estimated background noise of the sensor signal exceeds a threshold occurs only when the vehicle is in an idle state.
[0007] In one example, the at least one condition is selected from at least one of: vehicle engine rpm, accelerator pedal position, vehicle speed, and engine harmonics.
[0008] In one example, the at least one condition also includes detecting whether a door of the vehicle is open or closed.
[0009] In one example, the computer-implemented method further comprises the step of filtering each of the plurality of power spectral densities such that a frequency peak within each power spectral density is reduced.
[0010] In one example, each power spectral density is filtered using a median filter.
[0011] In one example, the computer-implemented method further includes the steps of incrementing a counter by a first value if the estimated noise floor exceeds a threshold, and decrementing the counter by a second value if the estimated noise floor does not exceed the threshold.
[0012] In one example, the computer implemented method further comprises the step of excluding the sensor signal from adaptive filter update calculations if the value of the counter exceeds the counter value.
[0013] In one example, the first value and the second value are the same.
[0014] In one example, the computer-implemented method further includes the steps of: incrementing a counter by a predetermined amount if the estimated noise exceeds the threshold; excluding the sensor signal from adaptive filter update calculations if the value of the counter exceeds the counter value; and excluding a filter associated with the sensor signal from generation of a noise cancellation signal.
[0015] According to another aspect, a non-transitory storage medium including program code is disclosed, which, when executed by a processor, causes the processor to perform the following steps: receiving a sensor signal from a sensor; determining a plurality of power spectral densities based on a plurality of consecutive sample frames of the sensor signal, each of the plurality of power spectral densities being determined based on a corresponding frame of the plurality of consecutive frames, each of the power spectral densities comprising a plurality of frequency windows, each frequency window being associated with a power of the sensor signal at a frequency of the corresponding frequency window, wherein each of the plurality of consecutive frames differs by at least one sample; identifying a minimum power of the plurality of power spectral densities; and determining whether the minimum power exceeds a threshold.
[0016] In one example, the program code also includes the following steps: determining whether the vehicle where the sensor is located is in an idle state based on at least one condition, wherein the step of determining whether the estimated background noise of the sensor signal exceeds a threshold only occurs when the vehicle is in an idle state.
[0017] In one example, the at least one condition is selected from at least one of: vehicle engine rpm, accelerator pedal position, vehicle speed, and engine harmonics.
[0018] In one example, the at least one condition also includes detecting whether a door of the vehicle is open or closed.
[0019] In one example, the program code further includes the following step: filtering each of the plurality of power spectrum densities such that a frequency peak within each power spectrum density is reduced.
[0020] In one example, each power spectral density is filtered using a median filter.
[0021] In one example, the program code further comprises the steps of incrementing a counter by a first value if the estimated noise floor exceeds a threshold, and decrementing the counter by a second value if the estimated noise floor does not exceed the threshold.
[0022] 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
[0023] In the drawings, like reference characters generally refer to the same parts throughout the different views. Also, the drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the various aspects.
[0024] Figure 1 Depicted is a schematic diagram of a noise cancellation system according to one example.
[0025] Figure 2 Depicted is a block diagram of a noise cancellation system according to one example.
[0026] Figure 3A Depicted is a flow chart of a method for estimating a noise floor of a sensor and for determining whether the estimated noise floor of the sensor deviates from an expected value, according to one example.
[0027] Figure 3B Depicted is a flow chart of a method for estimating the noise floor of a sensor according to one example.
[0028] Figure 3C Depicted is a flow chart of a method for estimating the noise floor of a sensor according to one example.
[0029] Figure 3D Depicted is a flow chart of a method for estimating the noise floor of a sensor according to one example.
[0030] Figure 3E Depicted is a flow chart of a method for estimating the noise floor of a sensor according to one example.
[0031] Figure 3FA flow chart of a method for determining whether an estimated noise floor of a sensor deviates from an expected value is depicted according to one example.
[0032] Figure 3G A flow chart of a method for determining whether an estimated noise floor of a sensor deviates from an expected value is depicted according to one example.
[0033] Figure 3H A flow chart of a method for determining whether an estimated noise floor of a sensor deviates from an expected value is depicted according to one example.
[0034] Fig. 3I Depicted is a flow chart of a method for estimating a noise floor of a sensor, for determining whether the estimated noise floor of the sensor deviates from an expected value, and for taking mitigating measures according to one example.
[0035] Figure 3J Depicted is a flow chart of a method for estimating a noise floor of a sensor, for determining whether the estimated noise floor of the sensor deviates from an expected value, and for taking mitigating measures according to one example.
[0036] Figure 3K Depicted is a flow chart of a method for checking update conditions and for estimating a noise floor of a sensor according to one example. DETAILED DESCRIPTION
[0037] In vehicle-implemented noise cancellation systems, accelerometers are often employed to generate reference signals for the noise cancellation system. When an accelerometer fails, the noise floor (i.e., the noise present in the accelerometer output signal even when the accelerometer does not detect any acceleration) tends to drift upward or increase dramatically over time. The increased noise in the accelerometer signal can be interpreted by the noise cancellation system as the reference signal itself, which in the best case degrades the performance of the noise cancellation system, and in the worst case causes the noise cancellation system to generate noise in the vehicle cabin rather than canceling it.
[0038] Therefore, it is desirable to identify deviations from the expected noise floor of an accelerometer before the deviations affect the performance of a noise cancellation system. It is also desirable to identify deviations from the expected noise floor of an accelerometer during run-time so that noisy accelerometer signals or malfunctioning accelerometers can be automatically excluded from the noise cancellation system without intervention by a user or technician. Furthermore, it is desirable to identify deviations from the expected noise floor of an accelerometer so that malfunctioning accelerometers can be identified for repair or replacement.
[0039] As described above, in various examples, the systems and methods described in the present disclosure for detecting deviations from expected local noise of a sensor may be used by a noise cancellation system, such as a noise cancellation system implemented in a vehicle. Figure 1 to Figure 2 An example of a vehicle implemented noise cancellation system is briefly described. However, in alternative examples, the systems and methods described herein can be used separately from a noise cancellation system to identify any sensors having a noise floor that deviates from a baseline.
[0040] Figure 1 is a schematic diagram of an exemplary noise cancellation system 100. The noise cancellation system 100 may be configured to destructively interfere with undesired sounds 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 may include a reference sensor 106, an error sensor 108, an actuator 110, and a controller 112.
[0041] In one example, the reference sensor 106 is configured to generate a noise 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, reference sensor 106 may be an accelerometer or a plurality of accelerometers mounted and configured to detect vibrations transmitted through vehicle structure 116. Vibrations transmitted through 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.
[0042] 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 or other locations within the vehicle cabin.
[0043] 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.
[0044] Since 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. Noise cancellation within the cancellation zone can reduce undesirable sounds by about 3 dB or more (although in different examples, different amounts of noise cancellation may occur). In addition, noise cancellation can cancel sounds within a certain frequency range, such as frequencies less than about 350 Hz (although other ranges are possible).
[0045] 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).
[0046] It should be noted that the cancellation zone may be located away from the error sensor 108. In this case, the error sensor signal 120 may 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.
[0047] 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 various filters and algorithms described below. The controller 112 may be implemented in hardware and / or software. For example, the controller may be implemented by a SHARC floating-point DSP processor, but it should be understood that the controller may be implemented by any other processor, FPGA, ASIC, or other suitable hardware.
[0048] Go to Figure 2 , which shows a block diagram of an example of a noise cancellation system 100, the noise cancellation system includes a plurality of filters implemented by a controller 112. As shown, the controller may define a filter including W adapt Control system of filter 126 and adaptive processing module 128.
[0049] W adaptThe 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 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 that may be adjusted to accommodate the changing behavior of the vehicle in response to road inputs (or other inputs in the non-vehicle noise cancellation environment).
[0050] The adjustment of the coefficients may be performed by an adaptive processing module 128 that 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 a signal generated by the adaptive processing module 128. adapt The filter coefficients implemented in filter 126 are updated. 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.
[0051] W at time step n can be updated according to the following formula adapt The coefficients of filter 126 are:
[0052]
[0053] in is an estimate of the physical transfer function between the actuator 110 and the noise cancellation zone 102, yes The conjugate transpose of , e 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.
[0054] In applications, the total number of filters is usually equal to the number of reference sensors (M) multiplied by the number of speakers (N). Each reference sensor signal is filtered N times, and then each speaker signal is obtained as the sum of M signals (each sensor signal is filtered by the corresponding filter).
[0055] The noise cancellation system 100 also includes a noise floor detection module 132 that is configured to receive the noise signal 114 in order to determine whether the noise floor of the reference sensor 106 deviates from an expected amount. The noise floor detection module 132 is described below in conjunction with FIG. 3A to FIG. 3KIf the noise floor of the noise signal 114 is deemed to have deviated from the expected noise floor, the noise cancellation system 100 may suspend operation to avoid adding noise to the vehicle cabin due to the failed reference sensor 106. For another example, if only one reference sensor 106 or a subset of the reference sensors 106 of the plurality of reference sensors 106 is deemed to have deviated from the expected noise floor, the noise cancellation signal 118 may be calculated to exclude the failed reference sensor. For example, W may be updated adapt The coefficients of filter 126 exclude the noise signal 114 received from the failed reference sensor 106. Finally, in either case, the user or technician may be notified of the failed reference sensor 106 so that the reference sensor 106 may be repaired or replaced.
[0056] same, Figure 1 and Figure 2 The noise cancellation system 100 is provided merely as an example of such a system. This system, variations of this system, and other suitable noise cancellation systems may be used within the scope of the present disclosure.
[0057] FIG. 3A to FIG. 3K A flow chart of a computer-implemented method for estimating the noise floor of a sensor and for detecting when the estimated noise floor deviates from the expected noise floor is depicted. As described above, this method can be implemented by a computing device, such as a controller 112, a general purpose computer, or some other suitable computing device. Typically, the steps of the computer-implemented method are stored in a non-transitory storage medium configured to communicate with a processor of the computing device and are executed by the processor of the computing device. For purposes of this disclosure, the noise floor of a sensor is defined as the noise present in the sensor output signal when the sensor does not receive any input.
[0058] Figure 3A A high-level flow chart of a computer-implemented method is shown, which broadly includes the steps of identifying a noise floor of a sensor and determining whether the noise floor deviates from an expected noise floor. At a first step 302, a sensor (e.g., accelerometer) signal is received at a computing device. The received signal is digitized (e.g., by an AC-DC converter) into a plurality of samples. The computing device may digitize the sensor signal itself or may receive samples that have been digitized by some upstream processor / device. At step 304, the noise floor of the sensor signal is estimated based on the received sensor signal. As will be described in conjunction with FIG. 3B to FIG. 3EAs described above, this step may include the step of selecting the minimum power of at least one power spectral density calculated based on the sensor signal. At step 306, the estimated noise floor is compared with the expected noise floor to determine whether the estimated noise floor deviates from the expected noise floor. This step may include the step of comparing the estimated noise floor with a threshold and updating a counter accordingly, such as combining FIG. 3F to FIG. 3H If the estimated noise floor is deemed to have deviated from the expected noise floor, action may be taken, which may include freezing the adaptive process or continuing the adaptive process with the failed sensor excluded, such as in combination with FIG. 3I to FIG. 3J Finally, as described. Figure 3K As described, the computer-implemented method 300 may include the step of monitoring an update condition, which if not met, freezes the updating of the noise floor estimate until the update condition is met.
[0059] Figure 3B A flowchart showing an example implementation of estimating the noise floor of a sensor (in conjunction with Figure 3A As shown in step 304 of the description, at step 308, samples of the sensor signal are organized into at least one sample frame. Each frame typically includes multiple samples, but it is conceivable that each frame may include only a single sample.
[0060] At step 310, a power spectral density of the sensor signal is calculated based on the at least one sample frame determined in step 308. Calculating the PSD of the sensor signal will result in a plurality of frequency bins, each frequency bin being associated with a corresponding power of the sensor signal at the frequency of the frequency bin. The PSD may be calculated according to any method suitable for calculating the PSD. In the simplest example, the PSD may be calculated from a single sample frame according to the following formula:
[0061]
[0062] in is the frequency window f and the current frame n F The PSD estimate at , and is the frequency window f and the current frame n F The i-th sensor signal x at i (This formula assumes that i sensor signals are received from i sensors, and therefore the PSD of only one of these sensor signals is calculated. For the purposes of this disclosure, the i-th sensor will alternatively be referred to as the sensor under test. The sensor under test need not be one of the many sensors to be tested.)
[0063] The PSD may also be calculated based on multiple sample frames rather than using a single frame. In step 308, the samples may be organized into multiple consecutive frames, since the samples are derived from the sensor signal over time, each of the multiple consecutive frames differing from the previous frame by at least one sample. Thus, for example, if the first frame includes samples s1, s2, s3, s4, and s5, the next frame may include samples s2, s3, s4, and s5, but also include s6. Thus, consecutive frames may overlap in samples but differ by at least one sample. However, consecutive frames need not overlap at all, and in fact, consecutive frames may be spaced apart by one or more samples. Finally, although each frame typically includes more than one sample, in an alternative example, each frame may contain only a single sample.
[0064] Step 310 will typically be repeated for each new sample frame determined in step 308. As samples are obtained and organized into consecutive sample frames, the power spectral density of the sensor signal may be updated for each new frame using the following formula:
[0065]
[0066] in is the frequency window f and the current frame n F The estimated PSD at is the previously computed PSD estimate at the same frequency bin, α is a smoothing constant, and is the ith sensor signal x i At the frequency window f and the current frame n F The initial value of PSD, that is, Set to any suitable predetermined sensor noise floor value.
[0067] Formula (3) above represents a memory-efficient method of using a previously calculated PSD to calculate the PSD of the current frame to update the current PSD. In an alternative example, the previous frame may be stored in memory and used to calculate the PSD each time the PSD is calculated. (As will be described below, each time step 304 is repeated as part of a loop, a new frame is typically generated and the PSD updated. However, it is conceivable that multiple frames may be generated and the PSD updated or otherwise calculated as part of a single execution of step 304.)
[0068] At step 312, the noise floor of the ith sensor signal may be estimated based on the PSD of the sensor calculated in step 310 by selecting the minimum power of the calculated PSD, as follows:
[0069]
[0070] in is the calculated PSD, for example according to the above formula (2) or (3), and f min …f max The frequency range of minimum power. The frequency range can be a frequency range where it is known that the sensor will reduce to the measured background noise. For example, in the context of an accelerometer disposed in a vehicle, the frequency subset can be the frequency to which the accelerometer reduces to when the vehicle is at idle. The frequency range can be consistent with the frequency range in which the PSD is found or can be a subset of those frequencies. The result of step 312 is an estimated background noise for the i-th sensor. This estimated background noise can then be compared to a threshold, or used to update a counter, to determine whether the background noise deviates from the expected noise. These steps will be described in more detail below.
[0071] However, the noise floor estimated in step 310 is not necessarily reliable because it is not known at the time of calculation whether the estimated noise floor actually represents the noise floor of the sensor or is the result of some input to the sensor. For example, if the sensor is an accelerometer located in an idling vehicle, music playing in the vehicle may cause the accelerometer to output a signal corresponding to the vibrations generated by the music and therefore not represent the noise floor of the accelerometer itself. In other words, even though the minimum power of the PSD may contain a certain amount of input signal, it does not represent the noise floor of the sensor. One or more steps may be taken to mitigate the risk of inaccurate noise floor estimates.
[0072] Figure 3C and Figure 3B The same as above, including step 314. Step 314 adds an additional step of filtering the PSD calculation results before selecting the minimum power in order to estimate the noise floor. Filtering the PSD can be achieved by any suitable digital filtering method that reduces transient peaks in the frequency domain. By definition, such peaks do not represent the noise floor of the sensor, but are the result of some input to the sensor (e.g., vibration). For example, the PSD calculation can be smoothed in the frequency domain according to a median filter, where the value at each frequency bin is replaced by the median of the values in the adjacent bins as follows:
[0073]
[0074] where f L and f R Determined by the median filter order. In an alternative example, the value of the PSD can be averaged over the length of the entire PSD or locally around each frequency window. However, this approach is not as ideal as median filtering because averaging tends to increase the total value of the calculated power values of the PSD to an accurate estimate above the noise floor.
[0075] Furthermore, rather than calculating a single PSD or using only the most recently calculated PSD to estimate the noise floor, the noise floor can be selected from a set of historical PSD calculations. Figure 3D and Figure 3E Two methods for selecting the noise floor from a set of historical PSD calculations are shown in FIG.
[0076] First turn Figure 3D , the minimum power identified in step 312 is stored in a buffer of minimum power values at 316. Thus, each minimum power value stored in the buffer is derived from a PSD obtained with respect to a certain sample frame (and previous historical frames as described in connection with step 310). Thus, the buffer of minimum power values represents a set of historical minimum values obtained over time.
[0077] In other words, as described in conjunction with step 310 and equation (3), since consecutive frames are defined based on recently received samples of the sensor signal, the PSD calculation can be updated over time. Therefore, based on the corresponding consecutive frames, each PSD update can be used to generate a new noise floor estimate, which can be stored in a buffer as a history of noise floor estimates.
[0078] At step 316, from the buffer, the minimum noise floor may be selected as the noise floor estimate as follows:
[0079]
[0080] where j is the time index of the buffer and NF offset is an offset for the normalization factor used to compensate for the PSD. Several factors determine the required offset, including the time domain window size, the number of FFT points, the window used (rectangular window, Hamming window, Hanning window, etc.), and the sampling frequency. These normalization factors should be understood in the art and can be implemented at any suitable time, not just during step 316.
[0081] The end result of steps 316 and 318 is a specific implementation of a time window from which the last N values for the sensor under test are stored. h The length of the time window is determined by the length of the buffer, which in one example is a circular buffer, but any first-in-first-out buffer can be used. The length of this window can be determined by setting the maximum number of frames N h Once you find a number that produces reliable results, set the maximum number of frames N to h Change to an appropriate number.
[0082] In an alternative example, multiple power spectral densities can be stored and the minimum power can be selected from the multiple power spectral densities, rather than storing the minimum power of each historical power spectral density. However, this does not save much memory, because it requires additional data (the entire PSD) to be stored in the memory, rather than just storing the minimum power of each PSD. However, storing multiple PSDs allows estimating the noise floor of each frequency window, rather than a single noise floor across all stored PSDs. In other words, the minimum power of each frequency window can be selected across all PSDs, rather than selecting the minimum power across all PSDs, thereby generating a set of minimum powers across frequencies. This is very useful for detecting whether the noise floor deviates on a frequency. Alternatively, the minimum value of a subset of frequency windows for the PSD can be stored, rather than storing the minimum value for each frequency window.
[0083] Now turn to Figure 3E , the noise floor history can be implemented by storing a single noise minimum frame. In this example, each time the PSD is updated, the stored noise floor estimate is replaced only if the new noise floor estimate is less than the previously stored estimate. Over a period of time, this will produce the minimum noise floor estimate from a set of calculated noise floor estimates. Therefore, step 320 is a decision box that asks whether the identified minimum power (from step 312) is less than the previously stored minimum power. The previously stored minimum power comes from the previously calculated power spectral density. If the identified minimum power is less than the previously stored minimum power, the previously stored minimum power will be replaced by the identified minimum power in step 322. (If there is no previous minimum power, the identified minimum power is stored.) In this way, only the identified minimum power is stored, rather than as combined Figure 3D As described, a buffer of minimum power is stored at one time.
[0084] However, if the noise floor continues to increase over time, this approach will have the effect of not being able to update the currently stored noise floor estimate (because the new noise floor estimate will never be lower than the previously calculated noise floor estimate). Therefore, step 324 requires a periodic forced update of the noise floor estimate. Therefore, step 324 is a decision box that asks whether the predetermined time period has passed at step 322. If the time period has passed, the previously stored minimum power is replaced with the newly identified minimum power. The time period of step 324 is the same as Figure 3D The length of the buffer is comparable to that of , as it defines the time window over which the noise floor estimate is calculated. Therefore, the time period can be similarly tuned by varying the length of the time period starting from the maximum value until an optimal value is found. (Without affecting the combination Figure 3E In the case of the described method functionality, the order of steps 320 and 324 may be changed. )
[0085] In an alternative example, the noise floor for each frequency window can be estimated. This can be achieved by comparing the previously stored power with the new power for each frequency window. If the new power is less than the previously stored power, the new power will replace the previously stored power as the minimum power for a given frequency window, thereby storing a set of minimum powers across frequencies. In addition, the power for each frequency window can be updated after a mandatory period. Alternatively, the power for a subset of frequency windows can be stored instead of storing the power for each frequency window.
[0086] Therefore, combined with Figure 3D and Figure 3E The methods described all describe a manner of generating an estimated noise floor by identifying a minimum power from a plurality of historical power spectral densities, each of which is determined by a corresponding frame in a set of consecutive frames (e.g., according to Equation 3). In this way, no single PSD is overly relied upon, and PSDs that are affected by sensor inputs may be ignored rather than used as a basis for noise floor estimation. Once the noise floor of the sensor is estimated, the noise floor is checked to determine whether it deviates from an expected value (step 306). In the simplest example, to determine whether the noise floor deviates by an expected amount, the estimated noise floor calculated in step 304 is compared to a threshold. If the estimated noise floor exceeds the threshold, the sensor can be considered to have deviated from the expected noise floor. The method is described in detail in detail. Figure 3F , which asks whether the minimum power identified in step 304 is greater than a threshold. If the minimum power is greater than the threshold, the noise floor is considered to have deviated from the expected noise floor, and the flowchart proceeds to one of a number of possible mitigation measures (represented by the A connector and in conjunction with Fig. 3I and Figure 3J described in more detail).
[0087] If the noise floor does not exceed the threshold, the method returns to step 304 to identify a new noise floor estimate based at least in part on the frame of newly received samples. Thus, method 300 represents a cycle of determining a noise floor estimate, determining whether the estimate deviates from expected noise, and repeating. Assuming the iterative nature of method 300 (and specifically, steps 302-306), in steps 316-322, it is necessary to select the noise floor estimate from a set of historical power spectral densities (e.g., multiple minimum powers stored in the buffer of step 316 or previously stored minimum powers), so each historical power spectral density has been presented in a previous iteration of step 304.
[0088] The threshold of step 326 may be a predetermined threshold, or may be determined during runtime based on historical values or other factors. For example, the threshold may be based on an average value of the estimated noise floor obtained over a predetermined period of time.
[0089] However, using the threshold as the sole determinant of deviation is prone to false positives (i.e., situations where the input signal exceeds the threshold but is incorrectly assigned to the noise floor). Setting a relatively high threshold can help avoid such false positives, but can result in unnecessary delays in detecting deviations from the noise floor because the estimated noise floor must be raised higher than strictly necessary.
[0090] Thus, in an alternative example, if the minimum power exceeds the threshold of step 326, then the counter is incremented. If the counter exceeds a predetermined amount within a certain time period, then the sensor is considered to have deviated from the expected noise floor. Thus, the time period is a sliding time window during which a certain number of noise floor estimates must exceed the threshold of step 326 in order to determine that the sensor has deviated from the expected noise floor. An example of this is in Figure 3G , which requires that the counter be incremented at step 328 if the minimum power is greater than the threshold of step 326. At step 330, a decision box asks whether the counter value is greater than the threshold over a period of time. In one example, the counter can be implemented by a circular buffer that stores each consecutive minimum power presented over a period of time (resulting from repeated execution of step 304), regardless of whether it exceeds the threshold (for example, if a given minimum power exceeds the threshold, the buffer can store 1, and if the minimum power does not exceed the threshold, the buffer can store 0). Therefore, in step 330, if the buffer stores more than a predetermined threshold number of instances at any time, where the buffer exceeds the threshold (for example, a certain number greater than 1), then the sensor is considered to have deviated from the background noise. This is only used in conjunction with Figure 3G The described methods are provided for exemplary implementations of counters and should not be considered limiting.
[0091] Similar to Figure 3F In the exemplary method, if the sensor is considered to have deviated from the noise floor, mitigation actions can be taken (connector A); and if the sensor is not considered to have deviated from the noise floor, the method returns to step 304 to generate a new noise floor estimate.
[0092] However, combined with Figure 3G The described method may not adequately account for situations where the noise floor does not exceed a threshold, which is unlikely to occur in a sensor with an elevated noise floor. Therefore, in another example, a counter may be incremented each time the estimated noise floor exceeds a predetermined threshold. The counter may be decremented each time the estimated noise floor does not exceed the predetermined threshold. Once the counter value exceeds the predetermined value, the sensor may be considered to have deviated from the expected noise floor. The incremented and decremented values may be different or the same. This method is Figure 3H, where the result of the step 326 decision box causes the counter to be incremented by a first value (step 332) or the counter to be decremented by a second value (step 334). At step 336, if the counter value is greater than the threshold, then an action is taken (advancing to connector A). However, if the counter value is less than the threshold, then the method returns to step 304 to generate a new noise floor estimate.
[0093] Once the sensor is deemed to have deviated from the expected noise floor, one of several actions may be taken. If the sensor is used in an adaptive system, such as in a noise cancellation system, the operation of the adaptive system may be stopped. Fig. 3I 338 of . Stopping the operation of the adaptive system can avoid situations where the noise sensor causes the adaptive system to malfunction. For example, as described above, a noise sensor in a noise cancellation system can cause the system to add noise instead of canceling it. Once the operation of the adaptive system is stopped, it can remain in the off state until the sensor is repaired or replaced. To this end, the sensor can be identified to the user for future repair or replacement.
[0094] In an alternative example, if the sensor is one of several sensors used in an adaptive system, a sensor that is deemed to have exceeded an expected noise floor can be excluded from future updates of the adaptive system. Thus, in a vehicle-implemented noise cancellation system, if a tested accelerometer is deemed to have a high noise floor, the remaining accelerometers can be used to update the noise cancellation system, thereby excluding the tested accelerometer. Additionally, since each filter associated with the faulty sensor is non-zero, it will continue to produce a signal to be played by the speaker. Thus, any filter associated with the faulty sensor is prevented from producing a signal to the speaker. In other words, when a sensor is found to be faulty, its contribution to the update formula as well as the speaker signal (N outputs, one for each speaker) is removed, thereby removing the faulty sensor from the production of the noise cancellation signal. This is achieved in a vehicle-implemented noise cancellation system. Figure 3J 340. Similar to Fig. 3I For example, a malfunctioning sensor can be notified to the user so that the sensor can be repaired or replaced.
[0095] If multiple noise floors are found for multiple frequency bins, the combination can be repeated for each estimated noise floor. FIG. 3F to FIG. 3H If the noise floor for any given frequency window is found to have deviated from the expected noise floor, a combination of FIG. 3I to FIG. 3J One of the mitigation measures described.
[0096] In a vehicle-implemented noise cancellation system implementation, the operation of the vehicle may interfere with the estimation of the background noise. Therefore, it is useful to require the vehicle to be in an idle state (thereby minimizing interfering vibrations from the engine) before estimating the background noise.
[0097] Therefore, in Figure 3K In the example of step 304 shown, before calculating the noise estimate, an update condition is checked. This is represented in step 344 as a decision box asking whether the update condition is met. If the update condition is met (e.g., the vehicle is in an idle state), the noise estimation proceeds to step 310. However, if the update condition is not met, the method returns to step 308 and waits for the next frame. Therefore, step 344 is a loop that checks whether the update condition is met each time a new frame is generated based on new samples received from the sensor. Until the update condition is met, step 304 will no longer generate new noise estimates. As a result, frames obtained when the update condition is not met will be ignored.
[0098] Update conditions that may be checked include, for example, vehicle speed (to determine if the vehicle is moving), accelerator pedal position (to determine if the accelerator is pressed, even if the vehicle is not moving), engine RPM (to determine if the accelerator has been pressed and released before the RPM reaches idle). Each of these conditions may be read from, for example, the vehicle controller area network bus (CAN bus), which forwards the status of these conditions to the controller. In addition to or instead of reading inputs from the vehicle CAN bus, the harmonics of the engine may be analyzed via accelerometer inputs to determine if they are characteristic of a vehicle at idle. The above checks are merely examples of the types of checks that may be performed to determine if the engine is in an idle state, and other checks that similarly determine vehicle status also fall within the scope of the present disclosure. Furthermore, in addition to checking if the engine is in an idle state, other conditions that may negatively impact the noise floor estimate, such as the opening or closing of a door or music playing, may also be checked during the update conditions.
[0099] The above-described system and method for detecting when the noise floor of a sensor deviates from the expected noise floor improves the function of a computer by allowing the computer to reliably estimate the noise floor of a sensor and determine when the noise floor has deviated from an expected value. In addition, the above-described system improves the function of a computer by allowing the computer to take corrective action once a malfunctioning sensor is identified.
[0100] 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.
[0101] 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.
[0102] 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).
[0103] 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.
[0104] 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 computer-implemented method for detecting the noise floor of a sensor, the method comprising the following steps: receiving a sensor signal from a sensor; determining a plurality of power spectral densities from a plurality of consecutive frames of samples of the sensor signal, each power spectral density of the plurality of power spectral densities being determined from a corresponding frame of the plurality of consecutive frames, each power spectral density comprising a plurality of frequency bins, each frequency bin being associated with a power of the sensor signal at a frequency of a corresponding frequency bin, wherein each of the plurality of consecutive frames differs by at least one sample; identifying a minimum power of the plurality of power spectral densities as an estimated noise floor for the sensor signal; Determining whether the vehicle where the sensor is located is in an idle state according to at least one condition; as well as Only when the vehicle is in the idle state, it is determined whether the minimum power exceeds a threshold. 2 . The computer-implemented method of claim 1 , wherein the at least one condition is selected from at least one of: vehicle engine rpm, accelerator pedal position, vehicle speed, and engine harmonics. 3 . The computer-implemented method of claim 1 , wherein the at least one condition further comprises detecting whether a door of the vehicle is open or closed.
4. The computer-implemented method of claim 1 , further comprising the steps of: Each of the plurality of power spectral densities is filtered such that a frequency peak within each power spectral density is reduced.
5. The computer-implemented method of claim 4, wherein each power spectral density is filtered using a median filter.
6. The computer-implemented method of claim 1 , further comprising the steps of: In the event that the estimated noise floor exceeds a threshold, a counter is incremented by a first value, and in the event that the estimated noise floor does not exceed the threshold, a counter is decremented by a second value.
7. The computer-implemented method of claim 6, further comprising the steps of: In case the counter value exceeds the counter value, the sensor signal is excluded from adaptive filter update calculations.
8. The computer-implemented method of claim 6, wherein the first value and the second value are the same.
9. The computer-implemented method of claim 1 , further comprising the steps of: In the event that the estimated noise floor exceeds the threshold, incrementing a counter by a predetermined amount; excluding the sensor signal from adaptive filter update calculations if the counter value exceeds the counter value; and A filter associated with the sensor signal is excluded from generation of the noise cancellation signal.
10. A non-transitory storage medium comprising program code, which, when executed by a processor, causes the processor to perform steps comprising: receiving a sensor signal from a sensor; determining a plurality of power spectral densities from a plurality of consecutive frames of samples of the sensor signal, each power spectral density of the plurality of power spectral densities being determined from a corresponding frame of the plurality of consecutive frames, each power spectral density comprising a plurality of frequency bins, each frequency bin being associated with a power of the sensor signal at a frequency of a corresponding frequency bin, wherein each of the plurality of consecutive frames differs by at least one sample; identifying a minimum power of the plurality of power spectral densities as an estimated noise floor for the sensor signal; Determining whether the vehicle where the sensor is located is in an idle state according to at least one condition; as well as Only when the vehicle is in the idle state, it is determined whether the minimum power exceeds a threshold. 11 . The non-transitory storage medium of claim 10 , wherein the at least one condition is selected from at least one of: vehicle engine rpm, accelerator pedal position, vehicle speed, and engine harmonics. 12 . The non-transitory storage medium of claim 10 , wherein the at least one condition further comprises detecting whether a door of the vehicle is open or closed.
13. The non-transitory storage medium according to claim 10, further comprising the following steps: Each of the plurality of power spectral densities is filtered such that a frequency peak within each power spectral density is reduced.
14. The non-transitory storage medium of claim 13, wherein each power spectral density is filtered using a median filter.
15. The non-transitory storage medium according to claim 10, further comprising the following steps: When the estimated noise floor exceeds a threshold, the counter is incremented by a first value, and when the estimated noise floor does not exceed the threshold, the counter is decremented by a second value.
16. The non-transitory storage medium according to claim 15, further comprising the following steps: In case the counter value exceeds the counter value, the sensor signal is excluded from adaptive filter update calculations. The non-transitory storage medium of claim 15 , wherein the first value and the second value are the same.
18. The non-transitory storage medium according to claim 10, further comprising the following steps: In the event that the estimated noise floor exceeds the threshold, incrementing a counter by a predetermined amount; excluding the sensor signal from adaptive filter update calculations if the counter value exceeds the counter value; and A filter associated with the sensor signal is excluded from generation of the noise cancellation signal.
Citation Information
Patent Citations
Dynamic sound adjustment based on noise floor estimate
US20190198005A1