SDR-based adaptive noise cancellation (ANC) system
11631390 · 2023-04-18
Assignee
Inventors
Cpc classification
H04M1/03
ELECTRICITY
G10K2210/108
PHYSICS
G10K11/17881
PHYSICS
G10K11/178
PHYSICS
G10K11/17885
PHYSICS
G10K2210/3028
PHYSICS
G10K11/17827
PHYSICS
G10K2210/1081
PHYSICS
International classification
G10K11/178
PHYSICS
H04M1/03
ELECTRICITY
Abstract
The overall performance of an ANC system may be improved by configuring the ANC system to perform adaption in the frequency domain. The ANC systems may be configured to update an algorithm of an adaptive filter based, at least in part, on the first input signal, the second input signal, and a feedback signal that is based on an output of the adaptive filter. Updating may include changing parameters of the algorithm based on a SDR based, at least in part, on the first input signal. Updating may also include normalizing a step size and processing at least full band information for the input signal in a frequency domain to generate coefficient values for the algorithm. Updating may also include applying a frequency domain magnitude constraint on adaptive filter coefficients.
Claims
1. A method, comprising: receiving a first input signal for reproduction through a transducer; receiving a second input signal from a reference microphone or an error microphone; and updating an algorithm of an adaptive filter based, at least in part, on the first input signal, the second input signal, and a feedback signal that is based on an output of the adaptive filter by changing parameters of the algorithm based on a signal-to-disturbance ratio (SDR) based, at least in part, on the first input signal, wherein the signal-to-disturbance ratio (SDR) comprises a ratio of a signal to a disturbance, wherein the disturbance comprises at least one of ambient tone, howling, wind, or scratch noise, wherein the step of changing parameters of the algorithm comprises changing at least one of coefficients, step size, leakage, and frequency domain bins, wherein the step of updating the algorithm of the adaptive filter comprises calculating a set of coefficients SE.sub.m.sup.f for a secondary path estimate (SE) based on:
SE.sub.m.sup.f(n+1)=(1−μ.sub.m.sup.fλ.sub.m.sup.f)SE.sub.m.sup.f(n)+μ.sub.m.sup.fpb.sub.m.sup.f(n)e.sub.m.sup.f(n), wherein pb.sub.m.sup.f(n) is a playback signal corresponding to the first input signal for reproduction through the transducer for frequency bin m, wherein e.sub.m.sup.f(n) is an error signal based, at least in part on the second input signal, for frequency bin m, wherein λ.sub.m.sup.f is the leakage for frequency bin m, and wherein μ.sub.m.sup.f is the step size for frequency bin m based on the SDR.
2. The method of claim 1, wherein the step size for updating the algorithm of the adaptive filter is based, at least in part, on the SDR.
3. The method of claim 1, wherein the step size is increased for a small disturbance, and wherein the step size is decreased for a large disturbance.
4. The method of claim 1, further comprising holding the algorithm of the adaptive filter when the SDR falls below a threshold value.
5. The method of claim 1, further comprising generating an adaptive noise cancellation (ANC) signal using the adaptive filter, wherein the step of updating the algorithm of the adaptive filter comprises processing in the frequency domain.
6. The method of claim 5, wherein the step of generating the ANC signal comprises estimating a SDR for a frequency bin.
7. The method of claim 5, further comprising generating an output signal for output to the transducer comprising a combination of the first input signal and the adaptive noise cancellation (ANC) signal.
8. An apparatus, comprising: an audio controller configured to perform steps comprising: receiving a first input signal for reproduction through a transducer; receiving a second input signal from a reference microphone or an error microphone; and updating an algorithm of an adaptive filter based, at least in part, on the first input signal, the second input signal, and a feedback signal that is based on an output of the adaptive filter by changing parameters of the algorithm based on a signal-to-disturbance ratio (SDR) based, at least in part, on the first input signal, wherein the signal-to-disturbance ratio (SDR) comprises a ratio of a signal to a disturbance, wherein the disturbance comprises at least one of ambient tone, howling, wind, or scratch noise, wherein the step of changing parameters of the algorithm comprises changing at least one of coefficients, step size, leakage, and frequency domain bins, wherein the step of updating the algorithm of the adaptive filter comprises calculating a set of coefficients SE.sub.m.sup.f for a secondary path estimate (SE) based on:
SE.sub.m.sup.f(n+1)=(1−μ.sub.m.sup.fλ.sub.m.sup.f)SE.sub.m.sup.f(n)+μ.sub.m.sup.fpb.sub.m.sup.f(n)e.sub.m.sup.f(n), wherein pb.sub.m.sup.f(n) is a playback signal corresponding to the first input signal for reproduction through the transducer for frequency bin m, wherein e.sub.m.sup.f(n) is an error signal based, at least in part on the second input signal, for frequency bin m, wherein λ.sub.m.sup.f is the leakage for frequency bin m, and wherein μ.sub.m.sup.f is the step size for frequency bin m based on the SDR.
9. The apparatus of claim 8, wherein the step size for updating the algorithm of the adaptive filter is based, at least in part, on the SDR.
10. The apparatus of claim 8, wherein the step size is increased for a small disturbance, and wherein the step size is decreased for a large disturbance.
11. The apparatus of claim 8, wherein the audio controller is further configured to perform the step of holding the algorithm of the adaptive filter when the SDR falls below a threshold value.
12. The apparatus of claim 8, wherein the audio controller is further configured to perform the step of generating an adaptive noise cancellation (ANC) signal using the adaptive filter, wherein the step of updating the algorithm of the adaptive filter comprises processing in the frequency domain.
13. The apparatus of claim 12, wherein the step of generating the ANC signal comprises estimating a SDR for a frequency bin.
14. The apparatus of claim 12, wherein the audio controller is further configured to perform the step of generating an output signal for output to the transducer comprising a combination of the first input signal and the adaptive noise cancellation (ANC) signal.
15. A computer program product, comprising: a non-transitory computer readable medium comprising code to perform steps comprising: receiving a first input signal for reproduction through a transducer; receiving a second input signal from a reference microphone or an error microphone; and updating an algorithm of an adaptive filter based, at least in part, on the first input signal, the second input signal, and a feedback signal that is based on an output of the adaptive filter by changing parameters of the algorithm based on a signal-to-disturbance ratio (SDR) based, at least in part, on the first input signal, wherein the signal-to-disturbance ratio (SDR) comprises a ratio of a signal to a disturbance, wherein the disturbance comprises at least one of ambient tone, howling, wind, or scratch noise, wherein the step of changing parameters of the algorithm comprises changing at least one of coefficients, step size, leakage, and frequency domain bins, wherein the step of updating the algorithm of the adaptive filter comprises calculating a set of coefficients SE.sub.m.sup.f for a secondary path estimate (SE) based on:
SE.sub.m.sup.f(n+1)=(1−μ.sub.m.sup.fλ.sub.m.sup.f)SE.sub.m.sup.f(n)+μpb.sub.m.sup.f(n)e.sub.m.sup.f(n), wherein pb.sub.m.sup.f(n) is a playback signal corresponding to the first input signal for reproduction through the transducer for frequency bin m, wherein e.sub.m.sup.f(n) is an error signal based, at least in part on the second input signal, for frequency bin m, wherein λ.sub.m.sup.f is the leakage for frequency bin m, and wherein μ.sub.m.sup.f is the step size for frequency bin m based on the SDR.
16. The computer program product of claim 15, wherein the step of changing parameters of the algorithm comprises changing a step size of the algorithm, and wherein the step size is increased for a small disturbance, and wherein the step size is decreased for a large disturbance.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a more complete understanding of the disclosed systems and methods, reference is now made to the following descriptions taken in conjunction with the accompanying drawings. In the appended figures, similar components or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label with a second label that distinguishes among the similar components. If just the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13)
(14) Wireless telephone 10 may include ANC circuits and features that inject an anti-noise signal into speaker SPKR to improve intelligibility of the distant speech and other audio reproduced by speaker SPKR. A reference microphone R may be provided for measuring the ambient acoustic environment, and may be positioned away from the typical position of a user's mouth, so that the near-end speech may be minimized in the signal produced by reference microphone R. Another microphone, error microphone E, may be provided in order to further improve the ANC operation by providing a measure of the ambient audio combined with the audio reproduced by speaker SPKR close to ear 5, when wireless telephone 10 is in close proximity to ear 5. In different embodiments, additional reference and/or error microphones may be employed. Circuit 14 within wireless telephone 10 may include an audio CODEC integrated circuit (IC) 20 that receives the signals from reference microphone R, near-speech microphone NS, and error microphone E and interfaces with other integrated circuits such as a radio-frequency (RF) integrated circuit 12 having a wireless telephone transceiver. In some embodiments of the disclosure, the circuits and techniques disclosed herein may be incorporated in a single integrated circuit that includes control circuits and other functionality for implementing the entirety of the personal audio device, such as an MP3 player-on-a-chip integrated circuit. In these and other embodiments, the circuits and techniques disclosed herein may be implemented partially or fully in software and/or firmware embodied in computer-readable media and executable by a controller or other processing device.
(15) In general, ANC techniques of the present disclosure measure ambient acoustic events (as opposed to the output of speaker SPKR and/or the near-end speech) impinging on reference microphone R, and by also measuring the same ambient acoustic events impinging on error microphone E, ANC processing circuits of wireless telephone 10 adapt an anti-noise signal generated from the output of reference microphone R to have a characteristic that minimizes the amplitude of the ambient acoustic events at error microphone E. Because acoustic path P(z) extends from reference microphone R to error microphone E, ANC circuits are effectively estimating acoustic path P(z) while removing effects of an electro-acoustic path S(z) that represents the response of the audio output circuits of CODEC IC 20 and the acoustic/electric transfer function of speaker SPKR including the coupling between speaker SPKR and error microphone E in the particular acoustic environment, which may be affected by the proximity and structure of ear 5 and other physical objects and human head structures that may be in proximity to wireless telephone 10, when wireless telephone 10 is not firmly pressed to ear 5. While the illustrated wireless telephone 10 includes a two-microphone ANC system with a third near-speech microphone NS, some aspects of the present invention may be practiced in a system that does not include separate error and reference microphones, or a wireless telephone that uses near-speech microphone NS to perform the function of the reference microphone R. Also, in personal audio devices designed only for audio playback, near-speech microphone NS will generally not be included, and the near-speech signal paths in the circuits described in further detail below may be omitted, without changing the scope of the disclosure, other than to limit the options provided for input to the microphone covering detection schemes.
(16)
(17) Combox 16 or another portion of headphone assembly 13 may have a near-speech microphone NS that may capture near-end speech in addition to or in lieu of near-speech microphone NS of wireless telephone 10. In addition, each headphone 18A, 18B may include a transducer, such as speaker SPKR, that reproduces distant speech received by wireless telephone 10, along with other local audio events such as ringtones, stored audio program material, injection of near-end speech (i.e., the speech of the user of wireless telephone 10) to provide a balanced conversational perception, and other audio that requires reproduction by wireless telephone 10, such as sources from webpages or other network communications received by wireless telephone 10 and audio indications, such as a low battery indication and other system event notifications. Each headphone 18A, 18B may include a reference microphone R for measuring the ambient acoustic environment and an error microphone E for measuring of the ambient audio combined with the audio reproduced by speaker SPKR close to a listener's ear when such headphone 18A, 18B is engaged with the listener's ear. In some embodiments, CODEC IC 20 may receive the signals from reference microphone R, near-speech microphone NS, and error microphone E of each headphone and perform adaptive noise cancellation for each headphone as described herein. In other embodiments, a CODEC IC or another circuit may be present within headphone assembly 13, communicatively coupled to reference microphone R, near-speech microphone NS, and error microphone E, and configured to perform adaptive noise cancellation as described herein.
(18)
(19)
(20) To implement the above, adaptive filter 34A may have coefficients controlled by SE coefficient control block 33, which may compare downlink audio signal ds and/or internal audio signal ia and error microphone signal err after removal of the above-described filtered downlink audio signal ds and/or internal audio signal ia, that has been filtered by adaptive filter 34A to represent the expected downlink audio delivered to error microphone E, and which is removed from the output of adaptive filter 34A by a combiner 36 to generate a playback-corrected error (shown as PBCE in
(21) In some embodiments, ANC system 30A may be configured to receive an input signal for reproduction through a transducer (e.g., a speaker). The input signal may include downlink audio signal ds and/or internal audio signal ia. As illustrated in
(22)
(23)
(24) At block 306, method 300 includes updating an algorithm of an adaptive filter based, at least in part, on the first input signal, the second input signal, and a feedback signal that is based on an output of the adaptive filter by changing parameters of the algorithm based on a signal-to-disturbance ratio (SDR) based, at least in part, on the first input signal. In some embodiments, the step of changing parameters of the algorithm may include changing at least one of coefficients, step size, leakage, and frequency-domain bins. In embodiments that change the step size, the step size may be adjusted based, at least in part, on a ratio of an amplitude of the first input signal to an amplitude of a disturbance on the second input signal. The ratio is one example of a signal-to-disturbance ratio (SDR). The step size for updating the algorithm of the adaptive filter may be based, at least in part, on the SDR or another parameter related to the SDR.
(25) The step of block 306 for updating the algorithm may include updating an algorithm for a secondary path estimate (SE). In some embodiments, the SE may be represented in the frequency domain as SE(z), as illustrated in
SE=(1−μλ)SE(n)+μpb(n)e(n). (1)
In equation (1), μ may represent the step size for updates to equation (1), λ may represent signal leakage, pb(n) may represent an audio signal to be played back to a user (e.g., x(n)), and e(n) may represent an error or reference signal. In some embodiments, playback signal pb(n) may correspond to, or be determined from, the first input signal, and e(n) may correspond to, or be determined from, the second input signal.
(26) In certain embodiments, the step, at block 306, of updating the algorithm of the adaptive filter may also include calculating a set of updating coefficients SE.sub.m.sup.f for the SE provided in equation (1) based on at least one of the following frequency-domain updating equations:
(27)
In equation (2a), e.sub.m.sup.f can be represented by the sum of actual error caused by the difference S(z) and SE(z), and disturbance signal v.sub.m.sup.f. Therefore, equation (2a) can be represented as equation (2b), and S.sub.m.sup.f may correspond to, or be determined from, the first input signal. According to an embodiment, disturbance signal v.sub.m.sup.f may be determined from the second input signal, e.g., the reference signal and/or error microphone signal. In some embodiments, for SE adaptation control, the SDR may be a function of the inverse of the ratio
(28)
The ratio
(29)
which is a ratio of the disturbance to the playback signal, may be determined from the first input signal and the second input signal. If the second input signal is the error signal, the disturbance can be estimated by tracking the error signal power using a fast tracking parameter and a slow tracking parameter. For example, ANC system 30A may determine the ratio periodically or non-periodically at the occurrence of specified events.
(30) According to some embodiments, the subscript/superscript .sub.m.sup.f may signify that the parameter corresponds to a distinct frequency bin m. In other words, a parameter with subscript m represents that the value for that parameter is the value for that parameter at frequency bin m. Accordingly, as shown in equation (2), updates for the adaptive filtering algorithm shown in equation (2) may be determined on a per-frequency-bin basis such that every frequency bin is distinctly updated according to equation (2). Stated differently, an adaptive filtering block of ANC system 30A may generate an ANC signal in the frequency domain such that the step of updating the algorithm of the adaptive filter may include processing in the frequency domain. Similarly, the SDR and the ratio of the disturbance to the playback signal may be determined for each frequency bin. Therefore, processing in the ANC system may also include estimating a SDR for a frequency bin.
(31) In some embodiments, μ, the step size for updating the algorithm of an adaptive filtering block, may be determined based, at least in part, on the SDR. Similarly, μ may be determined based, at least in part, on the ratio
(32)
because the ratio
(33)
has an inverse relationship with the SDR. For example, ANC system 30A may be configured to adapt μ to be inversely related to the ratio
(34)
In some embodiments, when the disturbance signal v.sub.m.sup.f increases, the step size μ may be decreased by ANC system 30A so that the step size is small when the disturbance signal is large. Similarly, the step size may be increased by ANC system 30A when the disturbance signal decreases so that the step size is large when the disturbance signal is small. In other words, the step size may be increased by ANC system 30A for a small disturbance, and the step size may be decreased by ANC system 30A for a large disturbance. The step size may be held nearly constant or may be set to zero to prevent the algorithm from updating to a new value when the disturbance exceeds a threshold value. In other words, the adaptive filter may be held nearly constant when the SDR falls below a threshold value. In some embodiments, the value of the step size μ may range from a minimum of 0 to a maximum of 1. In addition, in certain embodiments, ANC system 30A may vary the step size μ periodically based on the periodic measurements of the disturbance to playback ratio.
(35) Updating the algorithm of an adaptive filtering block with a variable step size as disclosed herein may result in many advantages for the ANC system 30A of this disclosure over traditional ANC systems. In particular, the inverse adaptation of the algorithm-updating step size with respect to the disturbance may have the advantageous effects of reducing the impact of disturbances on the signal that is reproduced through a transducer while also improving the convergence of the adaptation algorithm. For example, a disturbance signal may reduce the ability of an ANC system to converge because the disturbance causes the algorithm updates to move in a direction that does not correspond to the direction of optimal convergence. By making the step size small when the disturbance is large, the divergent impact of the disturbance may be reduced because the algorithm update may not move significantly away from the direction of optimal convergence because the update step size is small. Similarly, by making the step size large when the disturbance is small, the algorithm may converge faster. In other words, the variable step size controlling of the updating algorithm allows the algorithm to take large steps towards convergence when the divergent impact of the disturbance is low and to take small steps away from convergence when the divergent impact of the disturbance is high.
(36) Equation (2) is a frequency-domain updating algorithm for SE where the step size can be a variable step size that is varied by the ANC system 30A to counteract the impact of disturbance signals. A similar algorithm may be employed in the time domain. That is, in certain embodiments, the step, at block 306, of updating the algorithm of the adaptive filter may also include calculating a set of updating coefficients for the SE provided in equation (1) based on the following time-domain updating equation:
SE.sub.m.sup.f(n+1)=(1−μ.sub.m.sup.fλ.sub.m.sup.f)SE.sub.m.sup.f(n)+μ.sub.m.sup.fpb.sub.m.sup.f(n)e.sub.m.sup.f(n). (3)
Equation (3) is a time-domain updating algorithm for SE where the step size can be a variable step size that is varied by the ANC system 30A to counteract the impact of disturbance signals.
(37) A similar concept can also be extended to the W(z) coefficient control block 31 in
(38) The control of updating an ANC system may also be improved in other ways in addition to, or as an alternative to, the variable step size control described with respect to
(39) In some embodiments, block 406 may include updating W(z) in the frequency domain using full-band information for step size normalization. Examples of ANC systems with frequency-domain adaptations are illustrated in
(40)
In equation (4), μ.sub.m may represent the step size for frequency bin m for updates to equation (4), λ.sub.m may represent signal leakage in frequency bin m, x.sub.m.sup.f(n) may represent an input signal from the reference microphone, and e.sub.m.sup.f(n) may represent an error signal from error microphone feedback signal. |x.sub.m.sup.f(n)|.sub.max may be the maximum magnitude of full-band x.sub.m.sup.f(n). |x.sub.m.sup.f(n)| may be the signal magnitude at frequency bin m.
(41) In some embodiments, block 406 may include processing full band information for the input signal in a frequency domain to generate coefficient values for the algorithm, as shown in equation (4). In some embodiments, the full band information for the input signal may include a full band average power or maximum power for the input signal. For example, in equation (4), the maximum power of all frequency bins corresponds to the denominator parameter |x.sub.m.sup.f(n)|.sub.max.
(42) According to one embodiment, the step of normalizing the step size may also include normalizing the step size based, at least in part, on the second input signal, such as the signal from the reference microphone. In another embodiment, the step of normalizing the step size may also include normalizing the step size based, at least in part, on a maximum magnitude of full band information of the second input signal. In yet another embodiment, the step of normalizing the step size may also include normalizing the step size based, at least in part, on full-band information of the second input signal. According to another embodiment, the step size may be normalized using at least full band information in each frequency bin.
(43) Magnitude constraints may be applied to further improve the control of the updating of an ANC system. For example, magnitude constraints may be applied to improve ANC spectrum performance and to prevent adverse impacts from noise boosting and filter divergence. To implement the magnitude constraints, in some embodiments, the step of updating the algorithm for the adaptive filter may include applying magnitude constraints at individual frequency bins. As one specific example with reference to equation (4), the step, at block 406, of updating the algorithm of the adaptive filter may include calculating a set of updating coefficients W.sub.m.sup.f for transfer function W(z) based on the following frequency-domain updating equation that implements magnitude constraints:
(44)
(45) In another specific example with reference to equation (4), block 406 may include calculating a set of updating coefficients W.sub.m.sup.f for transfer function W(z) based on the following frequency-domain updating equation that implements magnitude constraints:
(46)
(47) An ANC system that implements a frequency-domain updating algorithm that implements magnitude constraints, such as those provided in equations (5) and (6), may have its frequency domain magnitude response constrained at individual frequency bins. According to some embodiments, the constraints on the magnitudes provided in equations (5) and (6) may be adjusted automatically based on the magnitude of the S(z) response. For example, the constraint on W(z) magnitude could be adjusted automatically based on the magnitude of the S(z) response. In some embodiments, the phase response of the updating algorithm may continue updating even when the magnitude is constrained. According to one embodiment, the magnitude constraints may be user defined. In another embodiment, the magnitude constraints may be adjusted based on response of an electro-acoustic path S(z). For example, as the overall gain of S(z) increases, the magnitude constraints can be lowered so that there is a small magnitude constraint when the input signal has an overall large gain. Similarly, as the overall gain of S(z) decreases, the magnitude constraints can be raised so that there is a large magnitude constraint when the input signal has an overall small gain. Through such adaptation of the magnitude constraints, performance variance between users of personal devices may be reduced.
(48) ANC system 30A may also be configured to generate an output signal for output to the transducer based on an ANC signal that is determined based on any of the embodiments disclosed herein. According to some embodiments, the generated output signal may include a combination of the first input signal and the ANC signal output by the adaptive filtering block. For example, in certain embodiments, an adaptive filtering block of ANC system 30A may implement the frequency-domain updating algorithm provided in equation (2) to update the SE.sub.m.sup.f coefficients. In another embodiment, an adaptive filtering block of ANC system 30A may implement the time-domain updating algorithm provided in equation (3) to update the SE.sub.m.sup.f coefficients. In yet another embodiment, an adaptive filtering block of ANC system 30A may implement the frequency-domain updating algorithm provided in equation (4) to update the W.sub.m.sup.f coefficients. In another embodiment, an adaptive filtering block of an ANC system 30A may implement the frequency-domain updating algorithm provided in equation (5) or equation (6) where magnitude constraints are also used to update the W.sub.m.sup.f coefficients.
(49) An ANC system configured in accordance with any of the foregoing embodiments may be further configured to specifically handle various disturbances experienced by personal audio devices. Because of the advantages offered by the improved ANC systems that include the advanced updating algorithms disclosed herein, the ANC systems configured in accordance with any of the foregoing embodiments may also offer improved performance when handling various disturbances experienced by personal audio devices.
(50)
(51) At block 506, method 500 includes determining if a disturbance is present at a first frequency in the second input signal received from the reference microphone and/or error microphone. In some embodiments, an ANC system may determine the disturbance periodically or non-periodically. When a disturbance is detected, the frequency bins corresponding to the disturbance may be identified.
(52) At block 508, method 500 includes updating an algorithm by adjusting processing of frequencies at or near the disturbance. Block 508 may include updating an adaptive filter based, at least in part, on the first input signal, the second input signal, and a feedback signal that is based on an output of the adaptive filter by changing parameters of the algorithm such that the adaptive filter adapts around the first frequency differently than other frequencies when the disturbance is present. The algorithm of block 508 may correspond to, or be similar to, any of the ANC updating algorithms disclosed herein. According to an embodiment, block 508 may include updating the algorithm of the adaptive filter around the first frequency and a predetermined number of frequency bins around the first frequency. In another embodiment, block 508 may be performed in the frequency domain. According to one embodiment, the step of updating an algorithm of an adaptive filter may be performed in the time domain, such as through the use of a band-pass filter.
(53) In some embodiments, adapting the filter around the first frequency where the disturbance is present differently than other frequencies may allow the ANC system to more sensitively detect disturbances and to handle such disturbances more robustly by not having to adapt the full band of audio information as drastic as is needed at the frequency where the significant disturbance is present. In other words, because the adaptation may be done on a per-frequency-bin basis, only those frequency bins that experience significant disturbances may require significant adaptation or cancellation while other frequency bins may be adapted or cancelled less drastically.
(54) In some embodiments, the step of determining if the disturbance is present may include determining a presence of a new tone disturbance, and the step, at block 508, of updating the algorithm of the adaptive filter may include holding constant the adaptive filter at the first frequency. In particular, the new tone disturbance may be determined to exist at the first frequency or a frequency range that includes the first frequency. In some embodiments, the new tone disturbance may cause the SDR to approach zero or be near a zero value. In an embodiment where the step size of the updating algorithm may be varied based on the value of the disturbance, a near-zero SDR may result in the step size being set to be near zero. In some embodiments, when the step size is set to be near zero or is set to be zero, the step size may be frozen, i.e., not modified, to prevent the algorithm from updating to a new value. In other words, the algorithm of the adaptive filter may be held still when the SDR falls below a threshold value.
(55) In another embodiment, the step of determining if the disturbance is present may include determining a presence of a howling action, and the step of updating the algorithm of the adaptive filter may include reducing anti-noise strength at the first frequency or a higher frequency. According to an embodiment, howling disturbance may be caused by the personal audio device itself, such as through feedback from other components on the device to the audio signal. In some embodiments, reducing the anti-noise strength at the first frequency or a higher frequency to counteract the howling disturbance may include increasing the leakage in the updating algorithm and reducing the step size in the updating algorithm, both for frequency bins that include the howling disturbance.
(56) In yet another embodiment, the step of determining if the disturbance is present may include determining a presence of wind-scratch noise, and the step of updating the algorithm of the adaptive filter may include reducing anti-noise strength at the first frequency and generating anti-noise at higher frequency bins. In some embodiments, generating anti-noise at the first frequency to counteract the wind-scratch disturbance may include increasing the leakage in the updating algorithm and reducing the step size in the updating algorithm, both for frequency bins that include the wind-scratch disturbance.
(57) The schematic flow chart diagrams of
(58) If implemented in firmware and/or software, functions described above may be stored as one or more instructions or code on a computer-readable medium. Examples include non-transitory computer-readable media encoded with a data structure and computer-readable media encoded with a computer program. Computer-readable media includes physical computer storage media. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise random access memory (RAM), read-only memory (ROM), electrically-erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc includes compact discs (CD), laser discs, optical discs, digital versatile discs (DVD), floppy disks and Blu-ray discs. Generally, disks reproduce data magnetically, and discs reproduce data optically. Combinations of the above should also be included within the scope of computer-readable media.
(59) In addition to storage on computer readable medium, instructions and/or data may be provided as signals on transmission media included in a communication apparatus. For example, a communication apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims.
(60) Although the present disclosure and certain representative advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. For example, although ANCs are described in embodiments above, aspects of the disclosed invention may also be applied to other noise cancellation systems. As one of ordinary skill in the art will readily appreciate from the present disclosure, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.