The embodiments of the invention relate to active noise control or canceling (ANC) systems that feature an adaptive filter and an adaptive controller.
An active noise control or canceling (ANC) system helps improve the user's listening experience by striving to produce a quieter environment. An “anti-noise” sound wave is produced in such a way that is intended to destructively interfere with or cancel the ambient or background noise sound that would otherwise be heard by the user. In consumer electronics personal listening devices, such as smartphones and portable audio devices such as tablet computers and laptop computers, the listening device often does not have sufficient passive noise attenuation. For instance, a more confortable loose fitting ear bud provides lesser passive ambient noise reduction than a sealed in-ear one. Also, the user is often moving around with a listening device, e.g. walking or jogging. In the case of a smart phone being used in handset mode (against the ear), different users hold the phone differently against their ear, have varied ear anatomy, and tend to move it around during a phone call. All of these user-specific factors may change the acoustic environment or acoustic loading of the listening device in real-time. As a result, attempts are being made to improve the performance of the ANC system in personal listening devices by making the system adaptive. An adaptive filter and an adaptive controller aim to model the different parts of the acoustic environment surrounding the user, or the various acoustic paths leading to the user's eardrum, and to adapt or change the state of the adaptive filter so as to produce an anti-noise signal that better cancels the offending or unwanted noise.
In situations where the noise to be cancelled has transient characteristics, also referred to here as transient disturbances, the adaptive ANC system often loses its bearings, in that it fails to properly drive the adaptive filter. Examples of such “abnormal noise” include for example a police siren, a sudden wind burst, and a scratch of the housing of the personal listening device. This may cause the adaptive system to “diverge” from a solution to the noise cancellation problem, and thereby produce incorrect anti-noise, which of course leads to poor performance (because the noise is now being heard by the user). Transient disturbances are difficult to cancel in the small confines of personal listening devices, due to there being insufficient distance or time lapse between when the disturbance is picked up by a reference microphone and when the anti-noise should be available to cancel it. Moreover, transient disturbances appear suddenly and typically do not last very long, compared to other “normal” ambient or background noise that is long term and essentially periodic.
It has been found that since transient noise situations cause the active noise control (ANC) system to make incorrect updates to the filter coefficients or state of the adaptive filter, which leads to the production of the incorrect anti-noise, a robust approach to managing the filter coefficients is needed. An embodiment of the invention is a system for managing the state of an adaptive filter, within an ANC system, which may help improve user experience of the ANC system. The ANC system is automatically prevented from responding in its usual course, upon detecting an abnormal disturbance. The new system includes an adaptive filter state storage that stores copies of the prior states of the adaptive filter. A disturbance detector is also provided. An adaptive filter state manager repeatedly signals that a copy of a current state of the adaptive filter should be written to the state storage, so long as the disturbance detector is detecting normal ambient noise as time passes. But when the disturbance detector detects abnormal noise, the state manager signals that the adaptive filter be restored to one of its prior states (from the copies stored in the state storage). For example, the adaptive filter may be signaled to retreat back to how it was just prior to the disturbance having been detected.
In one embodiment, the state manager freezes an adaptive filter controller or state updater, in response to the disturbance detector having detected abnormal noise. While the adaptive filter controller remains frozen, the ANC system continues to produce anti-noise sound during the abnormal disturbance interval, but using the adaptive filter as configured into a selected one of its prior states. The state manager will then unfreeze the adaptive filter controller when the disturbance detector has detected normal noise.
In one embodiment, the adaptive filter state storage stores each of the copies of the prior states in association with a respective time stamp. This allows the state manager to, for example, select an earlier or older copy from the state storage (that will be used to restore the adaptive filter) when the latency of the disturbance detector is long. If, however, the latency of the disturbance detector is short, then the state manager may select a later or more recent copy from the state storage. For example, if the latency for a particular disturbance detections is 25 milliseconds, then the state manager may decide to select a copy of a prior state that has a time-stamp of about 25 milliseconds earlier than the point in time at which the state manager was alerted about the abnormal noise. If, however, the latency of the disturbance detector is 50 milliseconds, then the state manager will likely select a prior state that is time-stamped about 50 milliseconds earlier than the arrival of the abnormal noise alert.
The above summary does not include an exhaustive list of all aspects of the present invention. It is contemplated that the invention includes all systems and methods that can be practiced from all suitable combinations of the various aspects summarized above, as well as those disclosed in the Detailed Description below and particularly pointed out in the claims filed with the application. Such combinations have particular advantages not specifically recited in the above summary.
The embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment of the invention in this disclosure are not necessarily to the same embodiment, and they mean at least one.
Several embodiments of the invention with reference to the appended drawings are now explained. Whenever the shapes, relative positions and other aspects of the parts described in the embodiments are not clearly defined, the scope of the invention is not limited only to the parts shown, which are meant merely for the purpose of illustration. Also, while numerous details are set forth, it is understood that some embodiments of the invention may be practiced without these details. In other instances, well-known circuits, structures, and techniques have not been shown in detail so as not to obscure the understanding of this description.
The ANC processor 1 contains an adaptive filter state storage 10, which stores copies of prior states of the adaptive filter 7. The state of the adaptive filter may be defined at least in part by a set of digital filter coefficients, e.g. those of a finite impulse response digital filter that produces a signal from which is derived the anti-noise signal that is driven into the speaker 5. Thus, in one embodiment, the state storage 10 stores copies of prior sets of the digital filter coefficients. The current state of the adaptive filter 7 may be written into the state storage 10 so long as a disturbance detector 13 is detecting normal ambient noise.
The adaptive filter state storage 10 also has an output that produces a copy of a selected one of the prior states that it stores. When the disturbance detector detects abnormal noise, the adaptive filter 7 is to be restored to one of its prior states, from the copies stored in the state storage 10. As described further below, an adaptive filter state manager 11 serves to control the repeated storage of the current state of the adaptive filter 7, and the restoration of the adaptive filter to a prior state.
The disturbance detector 13 may be able to detect normal ambient noise by detecting that a primarily stationary and broad band acoustic disturbance is present. This may be based on an analysis of the audio signals provided by one or more reference microphones 2, the error microphone 3, and a further sensor 4 (e.g., another microphone). The disturbance detector 13 is also able to detect abnormal noise, by detecting a transient acoustic disturbance or a tonal acoustic disturbance. Examples of abnormal noise include for example a musical instrument being played, wind, scratching of the housing in which the reference microphone 2 is located, or extremely high background noise. In one embodiment, the disturbance detector 13 performs high speed digital signal processing (including, for example, spectral analysis and pattern recognition) upon the frames of audio data produced by the reference microphone 2 and optionally by the error microphone 3, as well as digitized data from another sensor 4, in order to detect patterns that are associated with normal ambient noise versus abnormal noise.
In one embodiment, when the disturbance detector 13 is detecting normal ambient noise, the adaptive filter controller 9 is believed to be in a known good state. This known good state may be indicated by for example the adaptive filter controller exhibiting primarily steady state behavior, without any substantial transient behavior, such that it is expected that the adaptive filter coefficients have converged to a solution that may reduce or minimize the error. Yet another approach for detecting normal ambient noise may be to monitor the adaptive filter controller 9 while it is updating the state of the adaptive filter 7 as time passes, to determine that that adaptive filter controller is in a known good state. For example, in a gradient descent adaptive algorithm, the updating of the filter coefficients may be monitored, and if continuous and significant changes are detected it may be assumed that the adaptive system is diverging and possibly becoming unstable, suggesting the presence of abnormal noise.
Turning now to the state manager 11, this block (as introduced above) serves to control when a current state of the adaptive filter 7 is to be written into the state storage 10, and when the adaptive filter 7 should be restored using one of the copies of its prior states (which are stored in the state storage 10). The state manager 11 also has other functions, including that of freezing the adaptive filter controller 9 so that the controller stops updating the state of the adaptive filter 7. This freezing of the state of the adaptive filter 7 may be performed in response to the disturbance detector 13 detecting abnormal noise. In addition, the state manager 11 is able to unfreeze the controller 9, in response to the disturbance detector 13 having detected normal noise. Operation of the state manager 11 in the context of freezing and unfreezing the adaptive filter controller will be described below in connection with
In another embodiment, the adaptive filter state storage 10 stores each of the copies of the prior states of the adaptive filter 7 in association with a respective time stamp. This allows the state manager 11 to select an earlier copy from the state storage 10 (that will be used to restore the adaptive filter 7) when the latency of the disturbance detector 13 is long, and a later or more recent copy when the latency of the disturbance detector 13 is short.
In a further embodiment, the adaptive filter state storage 10 stores each of the copies of the prior states in association with a flag that indicates whether or not the copy was written while downlink speech of a far-end user was determined to be present. This could be useful in an embodiment where the ANC system is being used within a near-end user device while a voice or videophone call is being conducted with a far-end user (see
Turning now to
In the ANC off state 39, a substantial portion of the ANC processor 1 (see
The state manager 11 may also have a static ANC state 44. The static ANC state 44 may be entered from the ANC active state 35, upon detection of abnormal disturbance. Here, the state manager 11 signals that the adaptive filter 7 be restored to one of its stored prior states, in response to abnormal noise being detected. In the static ANC state 44, the adaptive filter 7 continues to be used to produce an anti-noise signal that is also driven through the speaker 5, to produce anti-sound, but it does so based on a frozen adaptive filter state. The frozen state may have been restored from a copy of a prior state in the state storage 10 (following the detection of abnormal noise, coming out of the ANC active state 35). The state manager 11 stays in the static ANC state 44 so long as abnormal noise or disturbance is being detected. If, however, relatively low background noise starts to be detected, a transition may be made into the ANC off state 39, based on the understanding that at very low background noise levels, ANC may not be needed to improve the user's listening experience. On the other hand, if normal noise levels start to be detected, then a transition is made to the ANC active state 35, by way of first unfreezing the state updater (unfreezing the adaptive filter controller 9) so that the adaptive filter 7 can start to be updated, in the usual course of the adaptive filter algorithm.
The above described state diagram may yield a more robust ANC processor, because when abnormal disturbances are detected, the ANC processor 1 automatically and immediately transitions into a static ANC mode of operation, by freezing the adaptive filter state updater and restoring the adaptive filter 7 to a “known good state,” being a previously captured state of the filter 7, whose copy is stored in the state storage 10. While in the static ANC mode, the performance of the ANC system may not be optimal in that the restored filter state is a model of the acoustic system from a moment ago and not a model of the current acoustic system. However, the ANC processor 1 may find it easier or quicker to adapt when coming out of the abnormal disturbance situation (when normal noise starts to be detected), because at that point the adaptive filter 7 is already configured with a “reasonable” approximation to the ultimate set of digital filter coefficients that it would need to properly cancel the normal ambient or background noise.
The ANC processor 1 may transition from the ANC active state 35 to the ANC off state 39, if very low background noise starts to be detected. This, of course, is followed by a power down operation of the relevant sections of the ANC processor 1 (see
Still referring to
Other scenarios for the transition from ANC active state 35 to static ANC 44 include the detection of local speech (local speech activity or local voice activity being detected). This covers the situation where, for example, the user of the personal listening device begins talking, such that the need for noise cancellation to that user's ears may not be as strong. In some cases therefore, a decision may also be made to mute the ANC such that no anti-noise sound is produced, in the situation where local voice activity is detected (and a transition is made into the static ANC state).
A transition into static ANC 44 may also occur when the audio analysis reveals tones or, more particularly, narrow band tones (e.g., a siren) or very high ambient noise levels, wind, or scratch. In the latter case, the anti-noise sound production may also be muted or stopped.
When the ANC processor 1 is in the static ANC state 44, the adaptive filter controller may be frozen, or the adaptive filter may be frozen such that it is no longer being updated, but anti-noise sound may continue to be produced in accordance with the frozen state of the adaptive filter. Once again, the detected digital audio from the ref mic and error microphone may be analyzed for ambient background noise level, scratch, wind and tones. The analysis may once again be performed periodically as time passes (on sequential frames of audio), for example, every second. The static ANC state 44 continues so long as the background noise being detected is relatively high, or a tone, wind, or scratch is being detected. This refers to a transient disturbance situation, where the ANC processor 1 is not saving any snapshots of the adaptive filter state to storage, and is not allowed to update the adaptive filter in its usual course. This may help ensure that the adaptive filter is not mis-adapted to a state that is not representative of typical acoustic systems or environments in which the user may find itself. This helps avoid a poor noise cancellation performance situation, and may also avoid an irrecoverable state where the adaptive filter controller may then exhibit difficulty in converging to a proper solution (once the system transitions back to the ANC active state 35).
The system may transition back to the ANC active state 35 when the periodic analysis reveals that a normal background noise level is being detected, which triggers the adaptive filter controller to be unfrozen (unfreeze the LMS engine), and optionally unmute ANC (if ANC had been muted), to enable the anti-noise sound to be produced.
Still referring to
Finally, the last state in
It was described earlier that in the embodiment where the copies of the current state of the adaptive filter are periodically being captured and stored in the state storage 10, that these could also be time stamped. As such, this may allow the state manager 11 to select earlier or later ones of the stored prior states, depending upon the latency associated with the disturbance detector 13. Indeed, it is possible that each of the different possible disturbances that can be detected, namely normal ambient background noise, low ambient background noise, high ambient background noise, tones, wind, and scratch, may have a different, respective latency. These different latencies may be heuristically determined and programmed into the state manager 11. Thereafter, depending upon the detected disturbance, the state manager 11 can perform a table look up for instance to determine the latency associated with the current detection, and then use the time stamp values in the sate storage 10 to find the “closest” prior state, for restoring the adaptive filter.
It should also be noted that in addition to the real-time tracked prior states that are stored in the state storage 10, there may be a default state for the adaptive filter 7 (e.g., a default or fixed set of digital filter coefficients) that may be available for the state manager 11 to choose from when “restoring” the adaptive filter 7.
The mobile device 12 has an exterior housing in which are integrated an earpiece speaker (which may be the speaker 5—see
A block diagram of some of the functional unit blocks of the mobile device 12 is shown in
The user-level functions of the mobile device 12 are implemented under the control of an applications processor 19 or a system on a chip (SoC) processor that is programmed in accordance with instructions (code and data) stored in memory 28 (e.g., microelectronic non-volatile random access memory). The terms “processor” and “memory” are generically used here to refer to any suitable combination of programmable data processing components and data storage that can implement the operations needed for the various functions of the device described here. An operating system 32 may be stored in the memory 28, with several application programs, such as a telephony application 30 as well as other applications 31, each to perform a specific function of the device when the application is being run or executed. The telephony application 30, for instance, when it has been launched, unsuspended or brought to the foreground, enables a near-end user of the mobile device 12 to “dial” a telephone number or address of a communications device of the far-end user, to initiate a call, and then to “hang up” the call when finished.
For wireless telephony, several options are available in the mobile device 12 as depicted in
The uplink and downlink signals for a call that is being conducted using the cellular radio 18 can be processed by a channel codec 16 and a speech codec 14 as shown. The speech codec 14 performs speech coding and decoding in order to achieve compression of an audio signal, to make more efficient use of the limited bandwidth of typical cellular networks. Examples of speech coding include half-rate (HR), full-rate (FR), enhanced full-rate (EFR), and adaptive multi-rate wideband (AMR-WB). The latter is an example of a wideband speech coding protocol that transmits at a higher bit rate than the others, and allows not just speech but also music to be transmitted at greater fidelity due to its use of a wider audio frequency bandwidth. Channel coding and decoding performed by the channel codec 16 further helps reduce the information rate through the cellular network, as well as increase reliability in the event of errors that may be introduced while the call is passing through the network (e.g., cyclic encoding as used with convolutional encoding, and channel coding as implemented in a code division multiple access, CDMA, protocol). The functions of the speech codec 14 and the channel codec 16 may be implemented in a separate integrated circuit chip, some times referred to as a baseband processor chip. It should be noted that while the speech codec 14 and channel codec 16 are illustrated as separate boxes, with respect to the applications processor 19, one or both of these coding functions may be performed by the applications processor 19 provided that the latter has sufficient performance capability to do so.
The applications processor 19, while running the telephony application program 30, may conduct the call by enabling the transfer of uplink and downlink digital audio signals (also referred to here as voice or speech signals) between itself or the baseband processor on the network side, and any user-selected combination of acoustic transducers on the acoustic side. The downlink signal carries speech of the far-end user during the call, while the uplink signal contains speech of the near-end user that has been picked up by the handset talker microphone 6.
The analog-digital conversion interface between the acoustic transducers and the digital downlink and uplink signals may be accomplished by an audio codec 22. The acoustic transducers include an earpiece speaker (also referred to as a receiver) which may be the speaker 5, a loud speaker or speaker phone (not shown), one or more microphones including the talker microphone 6 that are intended to pick up the near-end user's speech primarily, a secondary microphone such as reference microphone 2 that is primarily intended to pick up the ambient or background sound, and the error microphone 3. The audio codec 22 may interface with the ANC processor 1 as shown, in that it outputs or provides the digital audio signals of reference microphone 2 and the error microphone 3 to the ANC processor 1, while receiving the anti-noise signal from the ANC processor 1. The audio codec 22 may then mix the anti-noise signal with the downlink audio (coming from the downlink audio signal processing chain) prior to driving a power amplifier that in turn drives the speaker 5.
The codec 22 may also provide coding and decoding functions for preparing any data that may need to be transmitted out of the mobile device 12 through a peripheral device connector such as a USB port (not shown), as well as data that is received into the mobile device 12 through that connector. The connector may be a conventional docking connector that is used to perform a docking function that synchronizes the user's personal data stored in the memory 28 with the user's personal data stored in the memory of an external computing system such as a desktop or laptop computer.
Still referring to
Various types of audio processing functions may be implemented in the downlink and uplink signal processing paths. The downlink signal path receives a downlink digital signal from either the baseband processor (and speech codec 14 in particular) in the case of a cellular network call, or the applications processor 19 in the case of a WLAN/VoIP call. The signal is buffered and is then subjected to various functions, which are also referred to here as a chain or sequence of functions. These functions are implemented by downlink processing blocks or audio signal processors that may include, one or more of the following which operate upon the downlink audio data stream or sequence: a noise suppressor, a voice equalizer, an automatic gain control unit, a compressor or limiter, and a side tone mixer.
The uplink signal path of the audio signal processor passes through a chain of several processors that may include an acoustic echo canceller, an automatic gain control block, an equalizer, a compander or expander, and an ambient noise suppressor. The latter is to reduce the amount of background or ambient sound that is in the talker signal coming from the primary microphone 6, using, for instance, the ambient sound signal picked up by a secondary microphone (e.g., reference microphone 2). Examples of ambient noise suppression algorithms are the spectral subtraction (frequency domain) technique where the frequency spectrum of the audio signal from the primary microphone 8 is analyzed to detect and then suppress what appear to be noise components, and the two microphone algorithm (referring to at least two microphones being used to detect a sound pressure difference between the microphones and infer that such is produced by noise rather than speech of the near-end user).
While certain embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention. For example, as shown in
Number | Name | Date | Kind |
---|---|---|---|
7589631 | Hovmalm et al. | Sep 2009 | B2 |
8260612 | Hetherington | Sep 2012 | B2 |
8515089 | Nicholson | Aug 2013 | B2 |
20060222194 | Bramslow et al. | Oct 2006 | A1 |
20070076896 | Hosaka et al. | Apr 2007 | A1 |
20100010947 | Kobayashi | Jan 2010 | A1 |
20100195839 | Barthel et al. | Aug 2010 | A1 |
20100296666 | Lin | Nov 2010 | A1 |
20110129098 | Delano et al. | Jun 2011 | A1 |
20120140943 | Hendrix et al. | Jun 2012 | A1 |
20120316872 | Stoltz et al. | Dec 2012 | A1 |
Entry |
---|
Kuo, Sen M., et al., “Active Noise Control: A Tutorial Review”, Proceedings of the IEEE, vol. 87, No. 6, Jun. 1999, (pp. 943-973). |
Lin, Chin E., et al., “A CFXLMS Algorithm with Selection Detector for Active Noise Control System”, Industrial Technology, 2005, ICIT 2005, IEEE International Conference Dec. 14-17, 2005, (pp. 137-141). |
Number | Date | Country | |
---|---|---|---|
20140072134 A1 | Mar 2014 | US |