Noise cancellation with improved frequency resolution

JP7631295B2Active Publication Date: 2025-02-18SILENCER DEVICES LLC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022502475
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-07-15
Filing Date
2020-07-17
Publication Date
2025-02-18
Estimated Expiration
2040-07-17

Smart Images

  • Figure 0007631295000011
    Figure 0007631295000011
  • Figure 0007631295000012
    Figure 0007631295000012
  • Figure 0007631295000013
    Figure 0007631295000013
Patent Text Reader

Abstract

A noise cancellation technique with improved frequency resolution is presented, the method including: obtaining a digitized noise signal from an environment in which an audio signal stream is present; receiving data samples from the digitized noise signal; appending one or more additional samples, each having a magnitude substantially zero, to the data samples to form a series of samples; calculating a frequency-domain representation of the series of samples in the frequency domain; using digital processor circuitry, shifting in time the frequency-domain representation of the series of samples to thereby generate a shifted frequency-domain representation of the series of samples; transforming the shifted frequency-domain representation of the series of samples to the time domain to form a portion of an anti-noise signal; and outputting the anti-noise signal into the audio signal stream to reduce noise by destructive interference.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Cross-reference to related applications

[0002] This international application claims the benefit of priority to U.S. Application No. 16 / 929,504, filed July 15, 2020, and U.S. Application No. 16 / 514,465, filed July 17, 2019. U.S. Application No. 16 / 929,504 is a continuation of U.S. Application No. 16 / 514,465. The disclosures of both applications are incorporated herein by reference in their entirety.

[0003] This disclosure relates generally to automatic electronic noise cancellation techniques. [Background technology]

[0004] Scientists and engineers have been working on the challenge of electronic automatic noise cancellation (ANC) for decades. The basic physics of wave propagation suggests that it would be possible to create an "anti-noise" wave that is 180 degrees out of phase with the noise signal, completely cancelling it out through destructive interference. This method works reasonably well for simple, repeating low-frequency sounds. However, it doesn't work well for dynamic sounds that change quickly or that contain higher frequencies.

[0005] The accuracy of anti-noise in active noise cancellation algorithms is greatly affected by the frequency resolution during Fourier analysis. The reason is that the frequency response of microphones and speakers is not completely uniform across the entire spectrum, and the attenuation in the air is not uniform at all frequencies. In addition, accurate calculation of anti-noise depends on how accurately the main noise is estimated. To successfully estimate the main noise, good frequency resolution is essential. Therefore, in addition to good frequency resolution, it is necessary to divide the entire spectrum into small bands and adjust the suppression coefficient and phase correction separately for each band.

[0006] Good frequency resolution means that the gap between consecutive frequencies in the spectrum is short. In Fourier transform, there is a trade-off between time resolution and frequency resolution. If the time resolution is good, the frequency resolution is poor and vice versa. It is difficult to find the best trade-off between these two variables. Mathematically, frequency resolution (ΔF) is the ratio between the "sampling rate (Fs)" and the number of samples in one chunk (N). Therefore, there are two ways to increase frequency resolution: 1) decrease the sampling rate or 2) increase the size of the chunk. Summary of the Invention [Problem to be solved by the invention]

[0007] One of the basic prerequisites of active noise cancellation is that before the noise travels from the input microphone to the anti-noise speaker, it must go through a comprehensive process that includes microphone pickup, mathematical analysis, anti-noise preparation, and anti-noise output using the speaker. If this is not done, the noise will pass through before the anti-noise can be superimposed.

[0008] In small devices such as headphones or small earphones, the distance between the input microphone and the anti-noise speaker is very short, so the noise takes very little time to travel the intermediate distance. This makes it impossible to collect enough samples to obtain a good frequency resolution, because if the active noise cancellation system waits long enough to collect a reasonable number of samples, the anti-noise generation will be delayed and will not be synchronized with the main noise. Therefore, for small devices, the frequency resolution will be too low to obtain satisfactory results.

[0009] This section provides background information related to the present disclosure that is not necessarily prior art. [Means for solving the problem]

[0010] A noise cancellation technique with improved frequency resolution is presented. The method includes obtaining a digitized noise signal from an environment in which an audio signal stream is present, receiving data samples from the digitized noise signal, adding one or more additional samples, each having a magnitude substantially zero, to the data samples to form a series of samples, calculating a frequency domain representation of the series of samples in the frequency domain, shifting in time the frequency domain representation of the series of samples using a digital processor circuit, thereby generating a shifted frequency domain representation of the series of samples, transforming the shifted frequency domain representation of the series of samples to the time domain to form a part of an anti-noise signal, and outputting the anti-noise signal in the audio signal stream to reduce noise by destructive interference. The number of additional samples added to the data samples depends on the frequency resolution desired for the anti-noise signal.

[0011] In one aspect, the frequency domain representation is calculated using a Fast Fourier Transform method. After shifting the frequency domain representation of the series of samples in time, the shifted frequency domain representation of the series of samples is transformed back to the time domain using an Inverse Fast Fourier Transform method.

[0012] In one aspect, the frequency domain representation is shifted by an amount of time that depends on the selected frequency of the frequency domain representation, taking into account both the propagation time associated with the noise signal and the system propagation time associated with the throughput speed of the digital processor circuitry and associated equipment. In some embodiments, the time shift takes into account the frequency response of the physical components of the system (e.g., microphones and speakers). Additionally, the amplitude of the frequency domain representation may be scaled prior to transforming the shifted frequency domain representation of the series of samples into the time domain.

[0013] In some embodiments, one or more noise segments of the frequency domain representation are shifted individually. In most cases, the frequency domain representation includes multiple noise segments, which may be grouped into multiple frequency bands, such that each noise segment of the multiple noise segments grouped into a particular frequency band has an additional time or amplitude change applied to the group or frequency band.

[0014] In another embodiment, to save computation time and load, we calculate a shifted impulse response with a magnitude of 1 and multiply the magnitude of each noise data sample by the shifted impulse response. The impulse response is preferably calculated and stored before acquiring the digitized noise signal. Further areas of applicability will become apparent from the description herein. The description and specific examples in this summary are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure. [Brief description of the drawings]

[0015] The drawings described herein are intended to only depict selected embodiments rather than all possible embodiments and are not intended to limit the scope of the present disclosure. [Figure 1] FIG. 1 is a block diagram illustrating a first embodiment of a silencer device useful for reducing or canceling noise in an in-air system. [Diagram 2] FIG. 2 is a block diagram illustrating a second embodiment of a silencer device useful for reducing or canceling noise in a telecommunications microphone, telecommunications headset or headphone / earbud system. [Diagram 3] FIG. 3 is a block diagram illustrating a third embodiment of a silencer device useful for reducing or canceling noise in a signal processing system. [Figure 4] FIG. 4 is a block diagram illustrating a fourth embodiment of a silencer device useful for encrypting and decrypting confidential communications. [Diagram 5] FIG. 5 is a block diagram illustrating a fifth embodiment of a silencer device useful for isolating a particular device signature or communication from background noise on a power line (e.g., as used in “power line communications” and “smart grid” applications) or for removing noise from electromagnetic transmissions. [Figure 6] FIG. 6 is a block diagram illustrating a method of programming the digital processor circuit to execute the core engine algorithms used in the silencer device. [Figure 7] FIG. 7 is a flow chart diagram further illustrating a method of programming the digital processor circuit to execute the core engine algorithms used in the silencer device. [Figure 8] FIG. 8 is a signal processing diagram illustrating the processing technique performed by the core engine algorithm of FIG. [Figure 9] FIG. 9 is a detailed signal processing diagram showing the calibration mode used with the core engine algorithm. [Figure 10] FIG. 10 is a process diagram of the core engine. [Figure 11] FIG. 11 is an exemplary low-power, single-unit in-air silencer system configured as a desktop personal quiet zone system. [Figure 12] FIG. 12 is an exemplary low output, single unit in-air silencer system configured as a windowed unit. [Figure 13] FIG. 13 is an exemplary low output, single unit in-air silencer system configured as an air plenum mounted package. [Figure 14] FIG. 14 is an exemplary high output, multi-unit in-air silencer system configured for highway noise reduction. [Figure 15] FIG. 15 is an exemplary high output, multi-unit in-air silencer system configured to reduce vehicle noise. [Figure 16] FIG. 16 is an exemplary high-power, multi-unit in-air silencer system configured to create a silence zone to prevent others from overhearing private conversations. [Figure 17] FIG. 17 is an exemplary smartphone integration embodiment. [Figure 18] FIG. 18 is an exemplary noise cancelling headphone embodiment. [Figure 19] FIG. 19 is another exemplary noise cancelling headphone embodiment. [Figure 20] FIG. 20 illustrates an example processor implementation. [Figure 21] FIG. 21 illustrates an exemplary encryption-decryption embodiment. [Figure 22] FIG. 22 illustrates an exemplary signature detection concept. [Diagram 23] FIG. 23 is a flow chart diagram illustrating a technique for improving frequency resolution during active noise reduction. [Figure 24A] FIG. 24A shows a portion of a noise signal in the time domain. [Figure 24B] FIG. 24B shows the unit impulse with zero padding. [Figure 24C] FIG. 24C is a table showing the time shift of the unit impulse after padding. [Figure 24D] FIG. 24D shows an example of a unit impulse response. [Diagram 25] FIG. 25 is a table showing a method for calculating an anti-noise signal using a unit impulse response.

[0016] Corresponding reference numerals indicate corresponding parts throughout the several views of the drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. The silencer device disclosed herein can be deployed in a wide variety of applications. For illustrative purposes, five exemplary embodiments will now be described in detail. It will be understood that these examples provide an understanding of some of the different uses in which the silencer device can be employed. Other uses and applications are possible within the scope defined in the appended claims.

[0018] Referring to FIG. 1, a first exemplary embodiment of a silencer device is shown. This embodiment is designed to provide noise cancellation for an in-air system. Here, incoming environmental noise is sensed and a noise canceling signal is generated and broadcast to the surrounding area. As shown, this embodiment includes a digital signal processor circuit 10 having an associated memory 12. The memory stores configuration data, referred to herein as application-specific presets. In one exemplary embodiment, the digital signal processor circuit 10 is implemented using a commercially available multimedia processor integrated circuit, such as a Broadcom BCM2837 Quad Core ARM Cortex A53 processor. Details of how the digital signal processor circuit is programmed are described below. In another exemplary embodiment, the digital signal processor circuit 10 can be implemented using a Raspberry Pi computer, such as a Raspberry Pi 3 Model B, or higher. The device includes the signal processor circuit 10 as well as a VideoCore IV GPU, on-board SDRAM, WiFi and Bluetooth transceiver circuitry, 802.11n wireless LAN circuitry, and support for Bluetooth 4.1 communications. Also provided are 26 GPIO ports, as well as four USB 2 ports, a 100Base-T Ethernet port, DSI and CSI ports, a 4-pole composite video / audio port, and an HDMI 1.4 port. These ports can be used to provide input and output connections to the signal processor circuit 10 as shown in the block diagrams of Figures 1-4. Similarly, the FPGA can be programmed to perform the required functions supported by the analog-to-digital and digital-to-analog converters.

[0019] The in-air noise cancellation system of Figure 1 includes one or more input microphones 14 located at physical locations where they can sense the noise source to be cancelled. Each microphone 14 is connected to an audio-to-digital converter or ADC 16 that converts the analog signal waveform from the connected microphone into digital data, such as by sampling. Although different sampling rates may be used depending on the task, the illustrated embodiment employs a sampling rate of 48 kHz. The sampling rate is selected taking into account the frequency range in which the majority of the noise sound energy resides, the distance between the input microphone and the feedback microphone, and other factors related to the particular application and goals.

[0020] An optional gating circuit 18 is connected between the ADC 16 and the digital signal processor circuit 10 to pass noise energy above a predetermined threshold and block energy below the threshold. The gating circuit 18 may be implemented using software running on the processor or may be implemented using a stand-alone noise gate integrated circuit. The purpose of the gating circuit is to distinguish between ambient background noise levels that are not considered objectionable and higher noise levels associated with objectionable noise. For example, if an in-air noise cancellation system is deployed to reduce intermittent road noise from a nearby highway, the threshold gate may be configured to open when sound energy from a moving automobile is detected and close when only the rustling of leaves in a nearby tree is detected. In this way, the gate helps reduce the load on the digital signal processor 10 and prevent unnecessary pumping.

[0021] The optional gating circuit 18 may be user configurable, allowing the user to set a noise threshold above which only sounds are treated as noise. For example, in a quiet office, the ambient noise level may be around 50 dB SPL. In such an environment, the user may set the noise threshold to only act on signals above 60 dB SPL.

[0022] Connected to the output of the digital signal processor circuit 10 is a digital-to-analog converter or DAC 20. The DAC 20 functions to complement the ADC 16 to convert the output of the digital signal processor circuit 10 into an analog signal. This analog signal represents a specially constructed noise cancellation signal designed to cancel out the noise detected by the one or more input microphones 14. This noise cancellation signal is emitted or transmitted into the air by a suitable amplifier 22 and a loudspeaker or transducer system 24, where it mixes with and cancels the noise source so that it can be heard in the air from a vantage point within the effective transmission area of ​​the loudspeaker or transducer system 24. In effect, the loudspeaker system 24 is placed between the noise source and the listener or receiver so that the listener / receiver can receive the signal that arrives at his / her location, except that the signal from the noise source is cancelled by the noise cancellation signal from the loudspeaker or transducer system 24.

[0023] Optionally, the circuitry may also include a white or pink noise source that is fed to amplifier 22 (via DAC 20) which essentially mixes a predetermined amount of white or pink noise with the analog signal from digital signal processing circuitry 10. This noise source helps to soften the impact of the noise cancellation signal by masking transients that may occur when the noise cancellation signal combines with the noise source signal downstream of the loudspeaker and that would otherwise be audible.

[0024] A feedback microphone 26 is positioned before (downstream of) the loudspeaker system 24. The feedback microphone is used to sample the signal stream after introducing anti-noise into the signal stream. This microphone provides a feedback signal to the digital signal processor circuit 10 that is used to adapt an algorithm that controls how the digital signal processor circuit generates an appropriate noise cancellation signal. Although not shown in FIG. 1, the output of the feedback microphone may be processed by suitable amplification and / or analog-to-digital converter circuitry to provide a feedback signal used in the noise cancellation algorithm. In some applications where only the amplitude of the noise-to-noise cancellation signal is utilized, the output of the feedback microphone may be processed in the analog domain to derive an amplitude voltage signal, which may be processed by averaging or other means as required. In other applications where a more accurate assessment of the noise-to-noise cancellation signal is desired, a phase comparison with the input microphone signal may also be performed. In most embodiments of the system, both the phase and amplitude of discrete segments of the feedback signal are analyzed relative to the input microphone signal or the desired result for the application (the creation and processing of discrete segments is described later in this specification). The output of the feedback microphone may be sampled and converted to the digital domain using an analog-to-digital converter, and the feedback microphone may be connected to either a microphone input or a line input that is connected to a video / audio port of the digital signal processor circuit. For other examples of the noise reduction system shown in FIG. 1, see the section below entitled "Different Use Case Embodiments."

[0025] A second embodiment of the silencer device is shown in FIG. 2. As will be described below, this embodiment features two signal paths: a "receive" audio signal path that reduces noise in the user's earphones, headphones or speakers 24a, and a "transmit" audio signal path in which the sound captured by the microphone of the phone 34 is processed to reduce the ambient noise also captured by the microphone of the phone 34. Thus, the receive audio signal path is used to improve what the user hears in the earphones, headphones or speakers by reducing or eliminating the ambient sounds in the environment. This makes it easier to listen to music or hear a phone conversation. The transmit audio signal path may be used to partially or completely cancel ambient sounds, such as wind noise, that enter the microphone of the user's phone 34. Of course, the same noise cancellation techniques can be used in other systems, such as microphones for live recording or broadcasting, not just phones.

[0026] Referring to FIG. 2, the illustrated exemplary embodiment is for use in a headset system and shares some of the same components as the embodiment of FIG. 1. In this embodiment, the input microphone is realized using one or more noise-detecting microphones 14a located on the outside of the headset or headphones / earbuds. Analog-to-digital circuitry associated with or integrated with each noise-detecting microphone converts the ambient noise into a digital signal that is sent to the digital signal processing circuitry 10. As this is a more tightly controlled physical embodiment, the feedback microphone 26 may be located within the headphones / earbuds with audio coupling to one or more headphone speakers 24a, or the feedback microphone may be eliminated entirely. In systems including a feedback microphone, the feedback microphone data includes the desired entertainment content (e.g., music or audio / video soundtrack) and / or audio signal plus noise and anti-noise, and components of a composite signal that may be compared to the noise and anti-noise signals, or components of a composite signal of the input signal and the desired signal.

[0027] The main difference between this system and conventional systems is that it can effectively cancel out sounds with frequencies above 2000Hz, eliminating the need for the sound-blocking methods used in conventional noise-canceling headphones. This makes it possible to manufacture lighter, more affordable products, and makes it easier to effectively implement in "small earphone" form factors.

[0028] In this embodiment, the noise processing of the silencer device can be realized independently for each earpiece. Also, in a low-cost headphone / small earphone / headset product, it is possible to perform processing collectively for two earpieces of a stereo system, or to perform processing by an outboard processor installed in a device such as a smartphone.

[0029] Another important difference with this embodiment is that it also uses a calibration mode to calculate the appropriate amplitude and phase adjustments required for each frequency band, to compensate for the effects that the physical properties of the headphone or earphone construction have on ambient / unwanted noise before it reaches the ear (calibration modes and frequency bands are discussed below).

[0030] Similarly, the anti-noise generated by the system of the present embodiment will likely be mixed with a desired music or audio signal via mixer 30 (the desired music or audio signal being provided by a phone 30, music player, communication device, etc.) and output together through a common speaker. In such use cases, the feedback microphone will only function during the calibration mode and may be omitted in production units in some circumstances. Alternatively, in any multi-speaker application of the present embodiment (such as a VR or "gaming" headset), the feedback microphone may function continuously.

[0031] As mentioned above, in a headset system including an audio microphone, the output of the digital signal processor circuit 10 can be fed to the audio microphone circuit as well as to the headphone speaker circuit. This is shown in FIG. 2, where a first output signal from the digital signal processor circuit 10 is fed to a first mixer 30 which feeds an audio playback system (amplifier 22 and headphone speaker 24a). A second output signal from the digital signal processor circuit 10 is fed to a second mixer 32 which feeds a telephone 34 or other audio processing circuit. The ambient noise signal is sampled away from the communication / audio microphone location so that it does not cancel out the desired audio signal. Depending on the application, the amplitude of the frequency band of this separate anti-noise signal may or may not be adjusted during the calibration mode as described above.

[0032] In critical communication applications such as media broadcasting and military communications, separate signal processing circuitry may be desired and used for microphone noise cancellation, allowing for precise cancellation of known noise signatures, the ability to not cancel certain important information frequency bands, and facilitating other customization for these mission-critical applications through user settings and presets. For other examples of the noise reduction system shown in FIG. 2, see the section below entitled "Different Use Case Embodiments."

[0033] A third, more generalized embodiment is shown in FIG. 3. In this embodiment, the input signal may be from any source, and the output signal may be coupled to a circuit or device (not shown) that normally processes the input signal. Thus, the embodiment of FIG. 3 is designed to be interposed or placed in-line with a signal processing device or transmission. In this embodiment, feedback is not typically used. For known noise characteristics, compensation can be made by the system parameters (set using settings labeled "preset" 12). If these characteristics are not known, the system can be calibrated to cancel the noise by processing portions of the material that contain noise but no signal (e.g., a "pre-roll" portion of a video segment can be used to calibrate the system to the noise signature). Examples of applications of this embodiment include removing noise from audio surveillance or recordings of events, or in "live" situations with an appropriate amount of "broadcast delay," such as the "7 second" delay currently used to allow censorship of profanity during live broadcasts.

[0034] Although the above examples illustrate a standalone digital signal processor circuit 10, it will be appreciated that a processor in a mobile device such as a smartphone can be used to execute the signal processing algorithms, or the core engine can be implemented as a "plug-in" to a software suite or integrated into another signal processing system. Thus, the description herein also uses the term "core engine" to refer to signal processing algorithms, as described in more detail below, executed on a processor, such as a standalone digital signal processor circuit or a processor embedded in a device such as a smartphone. As shown in the embodiment of FIG. 3, the core engine can be used to process noise in signal processing applications where an input microphone, an output amplified loudspeaker and a feedback microphone may not be required, or in an offline mode.

[0035] For other examples of the noise reduction system shown in FIG. 3, see the section below entitled "Different Use Case Embodiments."

[0036] A fourth embodiment is shown in Figure 4. In this embodiment, there are two parties who wish to share information with each other by means of files, broadcast, signal transmission, etc., and who wish to restrict access to that information. In this embodiment, both the "encoding party" and the "decoding party" need to have access to the device that includes the present invention.

[0037] The secret to setting the frequency bands used to encode information is the encryption / decryption "keys." The encryption and decryption "keys" are created taking into account the characteristics of the noise and the signal in which the information is to be embedded. These frequency bands contain frequency and amplitude information. This allows, for example, to embed the encoded signal in a very narrow segment of a transmission that appears to be a benign wideband transmission of other material or a "white noise" signal. In the example of embedding the secret transmission in what appears to be white noise, the encryption would require a recording of the white noise of an appropriate length to transmit the full content of the message. Only a very narrow frequency band or set of bands of that white noise will be processed by the present invention (i.e., a very narrow slice of the noise will be "carved out" by the "core engine"), and any frequencies that are not within this defined set of ranges will pass through the system unchanged (frequencies that are not within the encryption band definition will have a default amplitude of 1). The amplitude of the frequency ranges containing the secret information can then be adjusted to make them easier to hide in the noise. The information to be shared can be further encoded into the "carrier signal" within a narrow frequency range using techniques such as frequency modulation (providing an additional layer of encryption), and this is then mixed with the output of the system (a slice taken out as noise), effectively embedding the information into what appears in this example to be a random white noise signal (or other type of broadband or signal transmission as desired).

[0038] The "decoding" side needs to know the frequency and amplitude settings for that frequency band, which indicates where the information was recorded, as the "decoding key". The decoding side needs to set the default amplitude for frequencies that are not included in the frequency band definition to 0. This means that the system will not output anything for frequencies that are not included in the frequency band definition, and only the desired signal to be decoded will be output.

[0039] The ability to select default amplitudes for frequencies not included in the defined frequency bands is a defining feature of this embodiment.

[0040] The security of the information transmission is greatly enhanced if the encryption / decryption "key" is shared between the parties by other means, which may be included in a transmission or file "calibration header" or calculated based on settings such as a timestamp. For other examples of the noise reduction system shown in Figure 4, see the section below entitled "Different Use Case Embodiments."

[0041] A fifth embodiment is shown in Figure 5. In this embodiment, the invention is deployed to assist in recognizing, detecting or receiving transmissions or device signatures in noise fields, such as those present in dense electromagnetic fields in areas such as major cities inherent to power lines, etc. Such an embodiment can be applied to physical security (e.g., detecting disturbances of known types of electromagnetic fields) as well as non-security applications such as monitoring power usage.

[0042] The silencer device disclosed herein can be used to aid in the detection, recognition or reception of signals contained within such noise by creating presets for frequency band settings designed to pass only the target signal. These frequency band settings contain both frequency and amplitude information necessary to identify the "fingerprint" or "signature" of the target signal against the characteristics of the background noise determined by prior analysis. These settings will be achieved by excluding the frequency components of the target signal from the frequency band settings and using a default amplitude of 0 for frequencies not included in the frequency band settings, effectively passing only the target signal through the system, and appropriately adjusting the amplitude and frequency of adjacent frequencies or harmonics to further emphasize the target signal. This will aid in the detection of weak signals that would otherwise go unnoticed in a noise field.

[0043] For example, when an air conditioning compressor turns on, it gives a unique impulse to the grid. In a power company substation, the invention can be used in a system that counts impulses from various products to help predict peak loads. In a "power line communication" application, presets designed for the task can be used to minimize "normal" noise and fluctuation characteristics and enhance the desired communication signal. Presets can also be designed to detect and enhance electromagnetic communications that are far away or weak. Similarly, presets can be designed to detect disturbances in noise fields that are identified with certain types of objects or other potential threats.

[0044] In this embodiment, multiple instances of the core engine may be deployed on a server (or other multi-core or multiplexed device) to facilitate recognition, detection or reception of various types of signals or signatures at a single node.

[0045] For other examples of the noise reduction system shown in FIG. 5, see the section below entitled "Different Use Case Embodiments." Overview of Core Engine Noise Cancellation Algorithm

[0046] The essence of the core engine noise canceling algorithm is to create perfect anti-noise for many small discrete segments or samples that comprise the noise signal. The digital signal processing circuit 10 (whether implemented as a stand-alone circuit or using the processor of another device such as a smartphone) is programmed to execute a signal processing algorithm that precisely generates a set of adjusted noise canceling signals for each frequency component that comprises the target noise signal or a portion thereof, separately. In the simplest embodiment, a frequency domain representation of the noise signal is calculated and then shifted in time. For example, the frequency domain representation of the noise signal is shifted by the amount necessary to phase shift its frequency components by 180 degrees. Also, the frequency domain representation of the noise signal is shifted by an overall "system offset time", defined as the difference between the air propagation time of the signal propagating from the position of the input microphone 14 in FIG. 1 to the feedback microphone 26 and the system propagation time, defined as the time required for the signal captured by the input microphone 14 to pass through the circuit shown in FIG. 1, be output by the speaker 24, and be received by the feedback microphone 26.

[0047] In other embodiments, the frequency domain representation of the noise signal includes multiple noise segments. The noise segments are individually shifted in time, where each noise segment correlates with a different frequency band. Similarly, each noise segment is shifted by the amount necessary to phase shift its frequency components by 180 degrees. The amplitude and phase of each discrete noise segment are also adjusted to account for the frequency characteristics of the physical components. In this and other embodiments, a system-wide gain or scaling factor can be applied to the output signal. This processed signal is then converted back to an analog time domain signal and output through speaker 26. For signal processing applications that do not require over-the-air transmission, the difference in delay of each signal path would be used to calculate the appropriate "system offset time."

[0048] FIG. 6 illustrates the basic concept of a preferred embodiment of the core engine noise canceling algorithm. As shown, the frequency components of the acquired noise signal sample 40 can be subdivided into different frequency band segments. In a currently preferred embodiment, the width of those frequency band segments, the amplitude scaling factor applied to the frequencies within the frequency band, and the additional phase correction by frequency band can be set differently for each of the different frequency bands 42. In various embodiments, these parameters for the frequency bands can be set by a "user interface", a preset, or dynamically based on criteria. Each frequency band is then further subdivided into frequency band segments of a selected width. For each frequency band segment, the phase of that segment is then shifted by a digital signal processing circuit by an amount that depends on the selected frequency of the subdivided noise signal. For example, the selected frequency can be the center frequency of the frequency band segment. For example, if a frequency band segment is between 100 Hz and 200 Hz, the selected center frequency is 150 Hz. In many applications, all frequencies within each frequency band are shifted individually and are also adjusted by the system-wide offset time, the system-wide gain, and the frequency band-wide phase and amplitude parameters. The frequency band specific parameters may be used to enable specific applications or to compensate for imperfections in system components.

[0049] The digital signal processing circuit can tailor the noise canceling algorithm to the specific application of a given application by subdividing the incoming noise signal into multiple different frequency segments. This is done by selectively controlling the size of each segment to suit the specific application. As an example, each segment across the frequency range of the incoming noise signal can be very small (e.g., 1 Hz). Alternatively, different parts of the frequency range can be subdivided into larger or smaller segments, using smaller (high resolution) segments where the most important information content is present or short wavelengths require this, and larger (low resolution) segments where frequencies carrying less information or with longer wavelengths are used. In some embodiments, the processor can not only subdivide the entire frequency band into segments, but also manipulate the amplitude and / or phase within a given segment separately based on the frequency band settings.

[0050] If very high noise cancellation accuracy is desired, the noise signal is divided into small segments (e.g., segments as large as 1 Hz) over the entire spectrum or over the entire spectrum of the noise signal as appropriate. Such fine subdivision requires a large processing power. Thus, for applications where a low-power, low-cost processor is desired, the core engine noise cancellation algorithm is configured to divide the signal into frequency bands or bands. The number of frequency bands can be adjusted in the core engine software code to suit the needs of the application. If necessary, the digital processor can be programmed to apply wavelet decomposition to sub-divide the acquired noise signal into different frequency band segments, thereby generating a plurality of segmented noise signals.

[0051] For a given application, the size of the segments and how / if they vary across the spectrum are the initial state of the system determined by defining parameters for the various frequency ranges. These parameters can be set via a user interface and are then stored in memory 12 (Figure 7) as presets for each application.

[0052] Once the noise signal has been segmented (automatically and / or based on user configuration) according to the segmentation scheme established by the digital signal processing circuitry, phase corrections are selectively applied to each segment to generate a segment waveform that substantially cancels the noise signal in that segment's frequency band through destructive interference. Specifically, the processing circuitry calculates and applies a frequency-dependent delay 46, taking into account the frequency of the segment and also taking into account system propagation and delay times. The digital signal processing circuitry may also make adjustments required for specific frequency bands due to equipment phase response and environment. Since this frequency-dependent delay is calculated and applied separately for each segment, the processing circuitry 10 may calculate and apply these phase corrections in parallel or very rapidly sequentially. The phase-corrected (phase-shifted) segmented noise signals are then combined at 48 to generate a composite anti-noise signal 50, which is then output in the signal stream to reduce noise through destructive interference. As shown in FIG. 6, the anti-noise signal may be introduced into the signal stream via an amplifier speaker system or other transducer 24. Alternatively, depending on the application, an anti-noise signal can be introduced into the signal stream using suitable digital or analog mixing circuitry.

[0053] In some embodiments, the noise can be further reduced by using a feedback signal. For this purpose, as shown in FIG. 6, a feedback microphone 26 can be placed in the signal stream downstream of where the anti-noise signal is introduced. In this way, the feedback microphone detects the result of the destructive interference between the noise signal and the anti-noise signal. The feedback signal obtained from the feedback microphone is then fed to a processing circuit 10 for use in adjusting the amplitude and / or phase of the anti-noise signal. This feedback process is generally shown at 52 in FIG. 6. The feedback process 52 includes converting the feedback microphone signal to a suitable digital signal by analog-to-digital conversion, and then using the feedback microphone signal as a reference to adjust the amplitude and / or phase of the anti-noise signal to maximize the noise reduction. When the anti-noise signal and the noise signal destructively interfere in an optimal way, the feedback microphone signal detects a null because the noise energy and the anti-noise energy cancel each other out optimally.

[0054] In one embodiment, the amplitude of the synthesized anti-noise signal 50 can be adjusted based on the feedback microphone signal. Alternatively, the amplitude and / or phase of each frequency band segment can be adjusted individually by comparing the amplitude and phase of the signal stream at the feedback point with the input signal and adjusting the anti-noise and / or frequency band parameters. Alternatively, the frequency content and amplitude of the feedback signal itself can be examined to fine-tune the amplitude and frequency-dependent delay time 46 of each segment to indicate the necessary adjustments to the anti-noise parameters to improve results. Determination of frequency-dependent delay times

[0055] Signal processing circuit 10 calculates a frequency-dependent time delay for each segment, taking into account several factors, one of which is the calculated 180 degree phase shift time associated with a given frequency (e.g., the center frequency of the segment) for each individual signal segment.

[0056] This calculation may be done in a calibration mode and stored in a table in memory 12, or it may be continuously recalculated in real time, depending on the application and available processing power. The exact time delay required to produce the proper anti-noise for each frequency "f" is calculated by the formula (1 / f) / 2, where f is the given frequency (e.g., center frequency) of the segment:

number

[0057] Another factor used by the signal processing circuitry is the "system offset time", which depends on two factors: air propagation time and system propagation time.

[0058] A third factor is the imperfect frequency response of the system's physical components, which can be compensated for.

[0059] To generate an accurate noise canceling signal, the processing circuit relies on a priori knowledge of the speed of sound propagation through air, measured as the transit time of the signal from the input microphone to the feedback microphone. As used herein, this transit time is referred to as the "air transit time." The processing circuit also relies on a priori knowledge of the time it takes the processor 10 and associated input / output components (e.g., 14, 16, 18, 20, 22, 24) to generate the noise canceling signal, referred to herein as the "system transit time." These data are used to ensure that the noise canceling signal is precisely phase-matched with the noise signal to provide perfect cancellation. The speed at which the noise signal propagates through air depends on various physical factors, such as the temperature, pressure, density, and humidity of the air. The processor's computation time and the circuit's throughput time depend, in various embodiments, on the speed of the processor, the speed of the bus accessing the memory 12, and the delay of the signal through the input / output circuitry associated with the processor 10.

[0060] In a preferred embodiment, these airborne and system propagation times are measured and stored in memory 12 during a calibration mode which may be manually requested by a user via a user interface, or the processor 10 may be programmed to perform calibrations periodically or in response to measured air temperature, pressure, density and humidity conditions.

[0061] Thus, in a preferred embodiment, the air propagation time is measured from when a noise signal is detected by the input microphone 14 until it is later detected by the feedback microphone 26. In some applications, the two microphones are spaced a fixed distance apart that does not change (as in the headset embodiment of FIG. 2), while in other applications the distance between the two microphones varies depending on where the microphones are located at any given time. The time delay due to the time it takes for the input signal to be processed, output to the speaker system 24 (24a), and received by the feedback microphone 26 corresponds to the system propagation time.

[0062] Once the air propagation time and the system propagation time are measured and stored in the calibration mode, the signal processing circuit 10 calculates the "system offset time" as the arithmetic difference between the air propagation time and the system propagation time. This difference calculation may also be calculated in real time or may be stored in the memory 12. For fixed applications such as headphones, the calibration may be done on the manufacturing line or may be established based on the known fixed geometry of the headphones, so that an on-board calibration mode may not be necessary. The system offset time may be stored as a constant (or in some applications, may be calculated dynamically) for use in the noise reduction calculations described herein.

[0063] For each discrete frequency segment being processed, the anti-noise signal is generated by delaying the processed signal by a time equal to the absolute value of the 180 degree phase shift time for that discrete frequency segment minus the "system offset time." This value is referred to herein as the applied time delay. The applied time delay for each frequency segment may be stored in a table or may be calculated continuously in various implementations of the algorithm. In embodiments utilizing frequency bands, additional phase correction and amplitude scaling appropriate for each frequency band are also applied.

[0064] Figure 7 shows in detail how the signal processing circuitry can be programmed to implement the core engine noise cancelling algorithm. The programming process begins with a series of steps which implement a set of data structures 59 in memory 12 in which parameters used by the algorithm are stored so that they can be accessed as required. Further details of the core engine process are also described below in conjunction with Figure 10.

[0065] Referring to FIG. 7, first, a record containing the selected chunk size is stored in data structure 59. The chunk size is the length of the time slice processed in each iteration performed by the core engine, expressed as the number of samples to be processed as a group or "chunk" of data. The chunk size is primarily based on the application (the frequency band to be processed and the required resolution), the system propagation time, and the travel time between the input and output of the noise signal, such as over the air (processing must be completed before the original signal passes the anti-noise output point, and anti-noise must be injected into the signal stream). Also, in some embodiments, applications, or signal processing schemes, a "chunk" may be a single sample.

[0066] For example, for an in-air system processing the entire audio spectrum, with a 5.0-inch distance between the input and output microphones, a 48 kHz sampling rate, and a system propagation time of 0.2 ms, a chunk size of 16 would be appropriate (at a 48 kHz sampling rate, 16 samples correspond to a time of approximately 0.3333 ms, during which sound travels approximately 4.5 inches in air at standard temperature and pressure). By limiting system calls and state changes to one per chunk, the processor can be optimized to operate efficiently to handle the desired chunk size.

[0067] This chunk size record is typically initially stored when the noise cancellation device is configured for a given application. In most cases, it is not necessary or desirable to change the chunk size record while the core engine noise cancellation algorithms are in operation. The chunk size may be specified indirectly by selecting a target frequency resolution for the system at a defined sampling rate.

[0068] The initial conditions for each frequency band, the segment size within each frequency band, and the power scaling factor for each frequency band are set depending on the application and stored in data structure 59. These parameters can be set in the "user interface", included as system presets, or calculated dynamically.

[0069] The processing circuitry at 62 then measures and stores in data structure 59 a "system propagation time" which corresponds to the time spent by the processing circuitry and its associated input and output circuitry to perform the noise reduction process. This is done by operating the processing circuitry in a calibration mode, described below, in which a noise signal is provided to the processing circuitry and acted upon by the processing circuitry to produce an anti-noise signal and output. The time elapsed from when the noise signal is input to when the anti-noise signal is output is the system propagation time. This value is stored in data structure 59.

[0070] In addition, the processing circuitry at 64 measures and stores in data structure 59 the "time through the air." This is also done by the processing circuitry in a calibration mode, described below, in which the processing circuitry is switched into a mode in which it does not generate output. The time that elapses between receiving a signal at the input microphone and receiving the signal at the feedback microphone is measured and stored as the time through the air.

[0071] The processing circuitry at 66 then calculates the "system offset time", defined as the air propagation time minus the system propagation time, and stores this in data structure 59. This value is later required by the processing circuitry to calculate the applied delay time.

[0072] Once the aforementioned calibration parameters have been so calculated and stored, the core engine noise cancelling algorithm can perform per-segment pre-calculation (alternatively, with sufficient processing power, these calculations can be performed in real-time). In some embodiments, the frequency band settings (frequency band widths, frequency band segment sizes, frequency band phase corrections and frequency band amplitude scaling) are also stored in "memory" 12.

[0073] As shown, step 68 followed by steps 70 and 72 are performed in parallel (or short sequentially) for each segment depending on the frequency band configuration. If there are 1000 segments for a given application, then steps 68-70 are performed 1000 times, preferably in parallel, and the data is stored in data structure 59.

[0074] In step 70, the "180 degree phase shift time" is adjusted by subtracting the previously stored "system offset time" for each segment. The processor circuit calculates and stores the absolute value of this value as the "applied delay time." The applied delay time is thus a positive number representing the amount of phase shift applied to the corresponding segment. Note that if the phase performance characteristics of the transducer (such as a microphone or speaker), the environment, or other factors require further adjustment of the frequency band (beyond taking into account air propagation time and system propagation time), additional time and / or amplitude adjustments will be made in step 70.

[0075] The core engine uses this stored data to process the frequency segments more quickly (by applying a pre-calculated time shift to all frequency segments in advance). The processor circuit in step 72 phase-shifts the segment noise signal by time-shifting it by the amount stored as the "applied delay time" for that segment. Additionally, if an amplitude adjustment (or fine-tuning phase adjustment) is required depending on the frequency band settings or feedback processing 52 (FIG. 6), that adjustment is also applied here (in some embodiments, storing the information as a vector allows for simultaneous application of phase shift and amplitude adjustment). Depending on the system architecture, all segments are processed in parallel or shortly sequentially.

[0076] Once all the segments of a particular chunk have been properly adjusted, the processing circuitry at 74 recombines all the processed segments to generate an anti-noise waveform for output in the signal stream.

[0077] To further understand the process performed by the processing circuitry, please refer to Figure 8 which is a more physical representation of how the noise signal is processed. Beginning at step 80, a noise signal 82 is obtained. In Figure 8, the noise signal is plotted as a time-varying signal containing many different frequency components or harmonics.

[0078] In step 84, the noise signal spectral chunks are subdivided into segments 86 according to parameters 59 as described in relation to Figure 7. For purposes of illustration, Figure 7 assumes that the time-varying noise signal 82 is represented in the frequency domain, with the lowest frequency components assigned to the left-most side of the spectral plot 86 and the highest frequency components or harmonics assigned to the right-most side of the spectral plot. For example, the spectral plot 86 may range from 20 Hz to 20,000 Hz, covering the full range of human hearing. Of course, different spectral allocations may be used depending on the application.

[0079] Although the noise signal is represented in the frequency domain of the spectrum 86, it should be recognized that the noise signal is inherently a time-varying signal. Thus, the amount of energy in each frequency domain segment varies over time. To illustrate this variation, a waterfall plot 88 shows how the energy in each frequency segment may change with time along the vertical axis.

[0080] For each segment, a frequency dependent phase shift (i.e., "applied delay time") is applied individually, similar to step 90. To illustrate this, waveform 92 represents the noise frequency in a segment before a shift. Waveform 94 represents the same noise frequency after application of the "system offset time". Finally, waveform 96 represents the resulting noise frequency after application of the "180 degree phase shift time" (although this is for illustrative purposes only; in actual processing, only the applied delay time, which is the absolute value of the 180 degree phase shift time minus the system offset time, would be applied, and frequency band specific phase correction would be required). This figure also assumes that no amplitude scaling is required for the segments being processed.

[0081] By combining the time-shifted components from each segment in step 98, an anti-noise signal 100 is constructed. When this anti-noise signal is output into the signal stream as in step 102, it is mixed with the original noise signal 104 and the two signals interfere destructively, effectively canceling or reducing the noise signal. What remains is an information-bearing signal 108 that can be extracted in step 106. Calibration Mode

[0082] FIG. 9 illustrates how the processing circuitry 10, input microphone 14, amplifier speaker 24 and feedback microphone 26 are utilized to perform the calibration by selectively enabling and disabling the core engine algorithms in taking measurements.

[0083] In a currently preferred embodiment, the air propagation time is calculated with the anti-noise system and output of the core engine "disabled". In this state, the air propagation time is calculated as the time difference between when the input noise is captured at the input of the input microphone 14 and when the noise is captured at the feedback microphone 26. The system propagation time is measured with the anti-noise system of the core engine "enabled". The same input is again introduced to the input microphone 14. This time it is processed by the core engine and output via a speaker (e.g., loudspeaker system 24 or other suitable calibration speaker or transducer) placed in front of the feedback microphone 26. While the input signal is being processed by the core engine, it is possible to change the frequency of the input signal so that the output impulse is distinguishable from the input impulse noise (alternatively, the timing / phase of the two signals can be used to distinguish the system output from the original noise). Both the air-born signal and the system-generated signal reach the feedback microphone. The system propagation time can then be calculated from the time it takes for the input impulse signal to reach the feedback microphone and the time it takes for the output signal to reach the feedback microphone.

[0084] Note that this calibration mode can be used to virtually eliminate the extensive engineering hours required to "tune" a noise cancelling headphone or mini earphone system to account for slight variations in the microphones used and their physical shapes, which can result in significant savings in product development costs. Calibration mode also eliminates the physical challenges of tuning each individual set on a production line due to the manufacturing tolerances and variations of the individual components (especially microphones) by providing a way to automate the initial tuning, again resulting in significant savings in manufacturing costs.

[0085] Using this system offset time, the processor calculates the specific "segment time delay" to be applied to each segment to generate the exact anti-noise required for that segment. To calculate the exact segment time delay, the processor determines the time required to produce a 180 degree phase shift in the center frequency of a particular frequency segment and adjusts it with the system offset time. Specifically, the segment time delay is calculated as the absolute value of the 180 degree phase shift time minus the system offset time. Frequency band specific phase corrections are also applied in this process.

[0086] After all anti-noise segment time delays have been calculated, the digital signal of each segment is time delayed by the amount calculated for that segment, and all anti-noise segments thus produced are combined into one anti-noise signal for output (e.g., to a speaker system).

[0087] In embodiments employing a feedback microphone, or other source of feedback signal, the processor 10 compares the feedback microphone input signal with the input microphone input signal in both phase and amplitude. The processor uses the phase comparison to adjust the "applied delay time" and the anti-noise amplitude to adjust the amplitude of the generated noise canceling signal. In adjusting the amplitude, the processor may manipulate the amplitude for each segment of the frequency band individually (thus effectively controlling the amplitude for each segment). Alternatively, the frequency content and amplitude of the feedback signal itself may be used to determine the required adjustments to the amplitude and phase of each segment. Core engine process details

[0088] How the signal processing circuit 10 implements the core engine process will now be described in detail with reference to FIG. 10. In particular, FIG. 10 details the software architecture implemented by the signal processing circuit of the preferred embodiment. The user can interact with the processor running the core engine process in several ways. If desired, the user can activate a silencer configuration mode, as at 120. By doing so, the user can optionally configure the frequency bands and corresponding segment widths, phase and amplitude corrections by frequency band, as well as noise threshold gate parameters (part of data structure 59 (see also FIG. 7)). The chunk size can also be set as a user interface parameter.

[0089] Alternatively, the user may simply activate the silencer device, as at 132. In doing so, the user can instruct the core engine process to calibrate the device, as at 134. The calibration process causes the core engine software 124 to perform a calibration process by invoking a calibration engine 126, which is part of the core engine software 124 executing on the signal processing circuitry, to perform the calibration process detailed above, thereby storing the air propagation time, system propagation time and other calculated parameters in data structure 59. These stored parameters are used by an anti-noise generation engine 128, which is also part of the core engine software 124. As shown, after the anti-noise generation engine 128 provides a signal to the loudspeaker, the loudspeaker introduces an anti-noise signal into the signal stream, as at 130.

[0090] Whether required as part of a calibration process or as part of a noise reduction process at use, the core engine inputs signals from the input and feedback microphones, as at 136. Also, for noise reduction at use, the user commands the device to suppress noise via the user interface, as at 138. As shown, this introduces an anti-noise signal into the signal stream (e.g., into the air 140). If white or pink noise is utilized, these can also be introduced into the signal stream, as at 142.

[0091] To further illustrate how the signal processing circuitry implementing the core engine algorithm operates in response to exemplary input data, reference is made to the following table (which assumes for simplicity that no frequency band corrections are required): In the table below, exemplary user-defined frequency band ranges are specified. Thus, the applied delay times can be expressed as floating point numbers corresponding to delay times in seconds. As this data shows, for each given frequency segment, each applied time delay is precisely calculated, even though typical applied time delays can be made very small. TIFF0007631295000002.tif81153TIFF0007631295000003.tif51152

[0092] In contrast to conventional noise cancellation techniques, the Core Engine noise cancellation algorithm achieves excellent results at frequencies above 2,000Hz, and is more likely to achieve good results across the entire audio spectrum (up to 20,000Hz) and beyond (with sufficient processing speed). Conventional techniques currently in use are only reasonably effective up to about 2,000Hz, and essentially ineffective above 3,000Hz. Improved frequency resolution

[0093] Zero padding is a technique for improving frequency resolution by adding zeros to a signal. However, this approach significantly distorts the signal, resulting in noise. Another aspect of the present disclosure proposes to achieve better frequency resolution while maintaining good time domain resolution by applying zero padding to each data sample from a noise signal. This technique is generally described with reference to FIG. 23.

[0094] First, at 201, a digitized noise signal is obtained from an environment in which an audio signal stream is present. Each data sample from the digitized noise signal is processed to improve the frequency resolution. Specifically, at 203, one or more additional samples are added to a given data sample to form a series of samples, where each of the one or more samples has a magnitude that is substantially zero. The more zeros added to the data sample, the higher the frequency resolution. For a noise signal sampled at 48 kHz, adding 15 zeros to the data sample achieves a frequency resolution of 3000 Hz, whereas adding 159 zeros to the data sample achieves a frequency resolution of 300 Hz. Thus, the number of zeros added depends on the desired frequency resolution. It is understood that the number of zeros added to a given data sample can be varied depending on the application.

[0095] The remainder of the noise reduction method proceeds as described above. That is, at 204, a frequency domain representation of the series of samples in the frequency domain is calculated. In one example, at 205, the series of samples is converted to the frequency domain using a fast Fourier transform method, although other methods are contemplated in this disclosure. In the frequency domain, the frequency domain representation of the series of samples is shifted in time at 206. The frequency domain representation is shifted by an amount of time that accounts for both the propagation time associated with the noise signal and the system propagation time associated with the throughput speed of the digital processor circuit and any associated equipment. In one embodiment, the frequency domain representation is shifted by the same amount of time across all frequencies. In another embodiment, the frequency domain representation is subdivided into multiple noise segments, where each noise segment correlates to a different band of frequencies, and one or more noise segments are shifted individually. In this case, the amount of time the noise segments are shifted may vary among the multiple noise segments.

[0096] The shifted frequency domain representation is then transformed back to the time domain at 206, thereby forming a synthetic anti-noise signal, which is output at 207 into the audio signal stream to reduce noise by destructive interference.

[0097] Further, Fig. 24A-C show an exemplary embodiment of a method for noise reduction with improved frequency resolution. Fig. 24A shows a portion of a noise signal in the time domain. In this technique, a unit impulse response for the system is calculated and stored to reduce computation time and computational load. This unit impulse (i.e., an impulse response with a magnitude of 1) is padded with a predetermined number of zeros. As mentioned above, the number of zeros added depends on the desired frequency resolution. For illustrative purposes, the unit impulse is padded with 15 zeros to form a series of samples as shown in Fig. 24B.

[0098] The impulse response is then Fourier transformed, and all of the "core engine" parameter settings, both as a whole and for each frequency band, are applied to effectively appropriately shift each frequency component represented by the impulse response based on the "core engine" parameters. An inverse Fourier transform is then applied to the impulse response to create a set of amplitude values ​​that represent the zero-padded and shifted impulse response. Thus, rather than applying a Fast Fourier Transform to each sample of the target noise signal (which is computationally intensive and time consuming), the anti-noise for any sample can be calculated by simply multiplying each sample's amplitude by each value of the shifted impulse response and adding them together, as described below.

[0099] To illustrate this technique, a numerical example is given below. A unit impulse after padding with 15 zeros looks like this: TIFF0007631295000004.tif15169 Applying a Fourier transform to the unit impulse after padding gives the following result. TIFF0007631295000005.tif13164In the table above, the amplitude of each sine wave is 1 and the initial phase is 0. Assuming the sampling rate is 48kHz, the frequency (KHz) of the sine wave is as shown in the following table. TIFF0007631295000006.tif15165For each frequency component, an applicable time shift is performed. An example of the values ​​is shown in the table in Figure 24C. In this example, the different frequency components are shown in the first column. The "Suppression Factor (SF)" is measured in calibration mode for each individual frequency band or set by the user to accommodate the non-uniform frequency response of air, microphones, speakers, and other devices. The second column of the table shows the value of the suppression factor for each specific frequency, measured during the calibration process. The total amount of phase shift required for each frequency component is composed of four components. First, the "System Offset Time (SOT)" is constant for all sine waves, which is 10 microseconds in this example. Second, the phase shift for each specific sine wave is different, since each sine wave corresponds to a different frequency. This shift is called the "System Offset Phase (SOP)" as shown in the fourth column. It can be calculated in radians by the following formula: SOP=2×PI×frequency×(SOT / 1000000). Third, each device, such as microphone, sound card, speaker, wire, etc., has its own phase response to different frequencies, which can be obtained from the Bode plot. In addition to the SOP, a frequency-specific "phase correction (PC)" must be performed for each frequency. The "phase correction (PC)" value is determined during the calibration process or set empirically. Fourth, to invert the noise signal, a half-wave shift equivalent to 180 degrees or π radians is performed at any frequency. The total phase shift amount for each frequency is shown in the seventh column. Then, the anti-noise sine wave can be obtained by shifting the noise signal amplitude and phase by the values ​​in the eighth column. To return to the time domain, an inverse Fourier transform is applied to the values ​​in column 8 of the table shown in Figure 24C. This time domain signal is known as the unit impulse response of the system shown in Figure 24D. The numerical values ​​of this unit impulse response are shown in the table below. TIFF0007631295000007.tif12164These values ​​are for illustration purposes only. We store the unit impulse response of the system for later use in active noise cancellation.

[0100] During active noise cancellation, the stored unit impulse response can be used to construct the anti-noise signal without computationally expensive conversion to and from the frequency domain. In this exemplary embodiment, each data sample from the noise signal is multiplied by the stored unit impulse response. Continuing with the above example, the numerical values ​​for the data samples shown in the following table are provided: TIFF0007631295000008.tif13133Multiplying the first value (0.5 in this example) by the unit impulse response gives the following result: TIFF0007631295000009.tif14163

[0101] Similarly, multiplying the second value (0.49 in this example) by the unit impulse response results in: TIFF0007631295000010.tif12162

[0102] Continuing with each data sample, we end up with a table as shown in Figure 25. The values ​​in each row are summed and the sums are displayed in the corresponding columns of the bottom row. Thus, the bottom row of the table represents the anti-noise signal in the digital domain. In this example, each data sample is padded with 15 zeros, making the first 15 results inaccurate. Starting with the 16th column of the table (i.e., the value 0.269), the sums form the amplitude of each sample of the anti-noise signal with the appropriate delay times and amplitude scaling applied. The simple multiplication and addition operations in this technique are faster than converting each sample to and from the frequency domain.

[0103] Although the zero padding technique has been described in the context of noise cancellation, it will be appreciated that the technique is applicable to other signal processing methods that require increased frequency resolution while maintaining resolution in the time domain. As mentioned above, the signal can later be transformed back to the time domain and output to reduce the original noise signal. Different Use Cases Embodiments

[0104] The basic techniques disclosed above can be leveraged for a wide variety of uses, some examples of which are described below. An embodiment of an in-air silencer system (audio)

[0105] An in-air silencer system can be implemented as shown in FIG. 1 and described above. There are several possible implementations. These include a low-powered, single-unit system optimized to provide a personal quiet zone. As shown in FIG. 11, a desktop or tabletop box containing an amplified speaker has the components shown in FIG. 1 mounted and pointed towards the user. Note that the feedback microphone 26 is located within the sound field of the speaker. This can be a fixed configuration or a removable extension arm that also functions as a microphone stand can be provided to allow the user to place the feedback microphone closer to where they are. Another possible implementation is to encode the silencer system on a smartphone or add it as a smartphone app. In this case, the system can be built using the microphone and speaker built into the phone and the microphone from the headset.

[0106] FIG. 12 shows another embodiment in which the components of FIG. 1 are arranged as a mounting frame that fits inside a window in a room, here indicated by the window frame W. In this embodiment, an input microphone 14 captures sound from outside the window, and an amplified speaker 24 introduces anti-noise audio into the room. A feedback microphone may be mounted on an extension arm or conveniently located near the user. If desired, the feedback microphone may wirelessly communicate with the processing circuit 10 using Bluetooth or other wireless protocols. In this embodiment, the amplitude adjustments for the various frequency bands determined by the calibration model may be large (as in the headphone embodiment) because walls and windows affect the original noise.

[0107] FIG. 13 shows another embodiment in which the components of FIG. 1 are arranged as a plenum mount package to fit in the air duct of an HVAC system or in the duct of a fan system (bathroom ceiling fan, kitchen exhaust fan, industrial exhaust fan, etc.). In this embodiment, sound produced by the HVAC system or fan system is sampled by input microphone 14 and an anti-noise signal is fed into the air duct system. In this embodiment, multiple speaker systems can be placed at ventilation registers throughout the home or building, if desired, so that the noise of the HVAC or fan system can be further reduced at each location. In such a multi-speaker embodiment, separate feedback microphones 26 can be employed for each room, such as adjacent to each register. The processing circuitry 10 can provide separate amplifier volume control signals to each amplifier speaker to adjust the sound pressure level of the anti-noise signal for each room. Rooms closer to a noise-generating blower may require a higher amplification of the anti-noise signal than rooms further away. Separate devices can also be attached to individual registers to provide location-specific control.

[0108] The second class of in-air silencer devices are high-power, multi-unit systems designed to reduce noise from high-energy sources, such as those generated by construction sites, along busy roads and highways, and at nearby airports. These same high-power, multi-unit systems can also be used to silence school neighborhoods and stadiums. Additionally, high-power, multi-unit systems can be used to reduce road noise in vehicles (such as cars, trucks, military tanks, boats, and airplanes).

[0109] An exemplary high powered multi-unit system deployed to reduce highway noise is shown in Figure 14. Each silencer device implemented as shown in Figure 1 is positioned to block highway noise using its respective input microphone 14 and deliver anti-noise audio energy into the environment so that the highway noise is cancelled by destructive interference in the remote section. Alternatively, the silencer devices can be installed directly in the garden of a home to provide more direct coverage.

[0110] In highway noise reduction embodiments, each silencer unit is preferably mounted on a vertical stand or other suitable structure so that the speaker is well above the head of a person standing nearby. Feedback microphone 26 may be located a significant distance from the silencer unit, using a wireless communication protocol such as WiFi communication to transmit feedback information to a processing circuit.

[0111] Also, if desired, individual silencer devices may wirelessly participate in a network, such as a mesh network or local area network, to allow information about the local sound input and feedback signals obtained by each silencer device unit to be shared between the silencer devices. In the case of highway noise, the loud noise source can be located by the input microphones of each silencer device. Thus, as a trailer truck applies its air brakes or a motorcycle with an ineffective muffler motor drives along the noise-protected highway, the collective system of silencer devices can communicate with each other and adapt their respective anti-noise signals to increase what can be done using the individual input and feedback microphones. This achieves a form of "diversity" noise cancellation, made possible by the fact that two different and mathematically orthogonal sources of information are used: (a) a source of feedback microphones and (b) a collective input microphone shared over the mesh network or local area network.

[0112] Figure 15 shows how a high-power multi-unit system can be deployed in a vehicle such as a car. Multiple input microphones are placed at the locations where the noise enters the cabin. These input data are processed separately, either using multiple cores of a multi-core processor 10 or using multiple processors 10 (here shown as icons on the car's infotainment screen, representing the case where the system is installed at the factory and integrated into the car's electronics). Since each input signal is processed separately, it is not necessary to subdivide each signal in the same way. In fact, different types of noise signals usually have their own noise signatures (for example, tire noise and muffler noise are quite different). Therefore, each input signal is subdivided in a way that best suits the frequency spectrum and sound pressure level of each of the different noise locations, to achieve the desired results for each occupant location.

[0113] In the vehicle cabin, dedicated anti-noise speakers can be used, but it is also possible to use a sound system already present in the vehicle. Thus, in the illustrated embodiment, the processing circuit 10 provides a stereo or surround sound audio signal that is mixed with the audio from the entertainment system in the vehicle cabin. This mixing can be done in either the digital or audio domain. In either case, however, the processing circuit 10 receives a data signal that provides the processing circuit with information about what volume level the user has selected for the entertainment system. The processor uses this information to adjust the volume of the anti-noise signal to properly cancel the noise source, whatever volume level the user has selected for the entertainment system. Thus, if the user increases the entertainment volume level, the processing circuit 10 reduces the anti-noise signal sent to the mixer to compensate. The processor is programmed such that the correct anti-noise sound pressure level is generated in the vehicle cabin, regardless of how the user has set the entertainment audio level.

[0114] Yet another class of in-air silencer systems reverses the in-air function. In this type of system, the silencer system is configured in reverse to create a "silence zone" that allows private conversations to take place in public without others being able to clearly hear what is being said. As shown in FIG. 16, the silencer device is arranged with one or more outward-facing speakers. The input microphone is located in the center of the speaker arrangement so that people having private conversations are on the "noise input" side of the audio stream. In this embodiment, the feedback microphones 26 are located where a third party listener (uninvited listener) cannot easily block these microphones and alter the anti-noise signal that is generated to cancel the conversation. Communication microphones, communication headsets, personal headphones / small earphones (audio)

[0115] A "communications / headphone" system can be implemented as shown in Figure 2 and described above. This can have several different implementations.

[0116] One such embodiment, shown in FIG. 17, is for a handheld smartphone application, where the input microphone is on the back of the smartphone, the speaker is the smartphone's receiver speaker, the "core engine" is implemented using the smartphone's processor, and the feedback microphone is not used (as it is fixedly positioned). In this embodiment, the same anti-noise can be added to the microphone transmission. Alternatives to this embodiment include passive headsets that plug into a microphone / headphone jack, lightning connector, etc. For this alternative embodiment to be effective, the phone's microphone must be exposed to ambient noise, rather than being in a pocket, purse, or backpack.

[0117] Another consumer embodiment is a noise cancelling headset, headphones or mini-earbuds as shown in Figure 18, where the "core engine" processing is performed using a processor and input microphone included as part of the headset, headphones or mini-earbuds. In this embodiment (as described above), a lower cost, lower performance product may use a common processor for both ears of a stereo system, while a higher cost, higher performance product may use separate processors for each ear.

[0118] Commercial and military products may use faster processors, separate processing for each earpiece, or a separate processor for noise cancellation in the microphone. In the most critical applications, an additional input microphone may be used to capture severe ambient noise (from stadium crowds, wind, vehicles, weapons, etc.) and place the microphone "core engine" processor in close proximity to the actual transmit microphone, as shown in Figure 19. For example, Navy SEALs aboard Combat Rubber Raiding Crafts could benefit from improved communications using this kind of system, eliminating the need for the throat microphones they currently use. Similarly, sports broadcasters would enjoy a smaller, lighter, less intrusive, and more "camera friendly" headset design. Offline signal processing (audio)

[0119] As shown in FIG. 3 and described above, an "offline signal processing" system can be realized. In this embodiment, known noise characteristics can be reduced or removed in recording or live situations with an appropriate delay between the act and the actual broadcast. In this embodiment, the "core engine" can be a "plug-in" for other editing or processing software systems, can be integrated into other signal processors, or can be a stand-alone device as shown in FIG. 20. Given the characteristics of the noise to be removed (or the characteristics of the signal to be passed in an unknown noise environment: if you exclude those frequencies from the frequency band settings and set the amplitude scaling factor of the frequencies not included in the frequency band definition to 1, only those frequencies will pass), the system parameters can be set manually (or by presets) to effectively remove the noise and pass the target signal. Alternatively, a calibration mode can be used to analyze the noise in the "pre-roll" portion and determine the appropriate anti-noise settings. Examples of uses of this embodiment include removing noise from old recordings, reducing noise in "live" situations without adversely affecting the quality of the voice announcer, removing noise from surveillance recordings, and enhancing the voice of surveillance recordings. Encryption / Decryption (Above Audio Band)

[0120] An encryption / decryption system can be implemented as shown in FIG. 4 and described above. The primary use case here is to covertly encode and transmit private information within narrow segments of a wideband transmission or noise signal in a manner that does not significantly affect the wideband signal. Another use case of this embodiment is to include additional data or information on the wideband transmission. As shown in FIG. 21, the encryption "key" includes frequency and amplitude information to "carry out" discrete "channels" of the wideband signal (e.g., white noise) that do not substantially affect the wideband content. The encoded signal is modulated onto a "carrier" of the appropriate frequency, so that when the "carrier" is added to the broadband content, it appears "normal" to an observer. The key for decryption prescribes amplitude and frequency settings for a frequency band, so that all information other than the "carrier" is cancelled out, which can then be demodulated and decoded. It is envisioned that this is most often achieved by excluding the "carrier" frequencies from the frequency band definition and setting the default amplitude from the excluded frequencies to 0. Further preservation of the "carrier" signal may be achieved by appropriately scaling the amplitude of the anti-noise created adjacent to the "carrier" frequency as part of the definition of the "decryption key".

[0121] In an alternative embodiment, the step of "carving out" the individual channels of the broadband signal from the encryption / decryption system may be omitted. Rather, these discrete channels are simply identified by a processor based on personal a priori knowledge of which portions of the frequency spectrum to select. Such a priori knowledge of the selected channels is stored in a memory accessed by the processor and is communicated to the intended message recipients by covert or private means. The message to be transmitted is then modulated onto an appropriate carrier that places the message on these discrete channels but is mixed with noise signals that would otherwise be present. The entire wideband signal (including the discrete channels masked with noise) is then transmitted. On reception, at the decode side, the wideband signal is processed using a processor programmed to subdivide the wideband signal into segments, identify the discrete channels that contain the message (based on a priori knowledge of the channel frequencies), and reduce noise in the channels that contain the message. Enhanced recognition, detection or reception of signal signatures (audio band and above)

[0122] As shown in FIG. 5 and described above, signal signature recognition, detection or enhanced reception can be achieved. This embodiment of the "core engine" facilitates recognition, detection or enhancement of a particular type of transmission or device signature in a noise field. FIG. 22 shows the possibility of deploying multiple instances of the core engine to look at a single noise or data transmission field to recognize or detect different signatures in the field. Unlike other embodiments that use a microphone to capture the incoming noise signal, this embodiment captures the noise generated by a particular device over a period of time, and then processes the captured data by calculating a moving average or other statistical smoothing operation to create a noise signature for that device. Depending on the nature of the device, this noise signature can be an audio frequency signature (e.g., representing the sound of a fan in a blower motor) or an electromagnetic frequency signature (e.g., representing radio frequency interference generated by a commutated or electronically switched motor). The noise signature of the device is then used to generate an anti-noise signal. The noise signatures generated as described above can be stored in memory (or in a database for access by other systems) and accessed by signal processing circuitry as needed to reduce noise for a particular device or class of devices.

[0123] The database of stored noise signatures not only helps to reduce noise for specific devices, but also helps to identify devices by these signatures by configuring the "core engine" to pass only the signatures of the noise they generate. One use case would be to allow utilities to detect the energization of non-smart grid products and predict grid loads due to legacy products (HVAC systems, refrigerators, etc.). Another use case would be to detect or enhance long-distance or weak electromagnetic communications with known characteristics. Alternatively, by configuring the amplitude and frequency parameters of a frequency band, it would be possible to detect disturbances of noise fields or transmissions associated with specific incidents, such as electromagnetic interference that may occur due to an object such as an unmanned drone crossing a transmission or noise field, activation of surveillance or anti-surveillance devices, tampering with a transmission or field source, or natural or geological disasters.

[0124] The above description of the embodiments has been given for the purpose of illustration and description. It is not intended to be exhaustive or limiting of the present disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, and can be interchanged where applicable and used in selected embodiments without specific illustration or description. The same can also be modified in various ways. Such variations are not to be considered as departures from the present disclosure, and all such modifications are intended to be included within the scope of the present disclosure.

Claims

1. 1. A method for reducing noise in an audio signal stream containing an unwanted signal, referred to as a noise signal, comprising the steps of: obtaining a digitized noise signal from an environment in which the audio signal stream resides, the noise signal comprising a plurality of data samples; receiving the digitized noise signal by a digital signal processor circuit; for each data sample of the plurality of data samples, adding, by the digital signal processor circuit, one or more data, each having a magnitude of zero, to each data sample to form a set of data; calculating, by the digital signal processor circuit, a frequency domain representation of the set of data in the frequency domain; using the digital signal processor circuitry to shift in time the frequency domain representation of the set of data, thereby generating a shifted frequency domain representation of the set of data; transforming the shifted frequency domain representation of the set of data into a time domain to form a portion of an anti-noise signal; outputting the anti-noise signal into the audio signal stream to reduce the noise by destructive interference.

2. The method of claim 1 , wherein the number of one or more data added to the data sample depends on a desired frequency resolution of the anti-noise signal.

3. 2. The method of claim 1 , wherein shifting the frequency domain representation of the set of data and transforming the shifted frequency domain representation further comprises: computing a Fourier transform of an impulse response of magnitude unity, shifting the impulse response in the frequency domain, computing an inverse Fourier transform of the shifted impulse response, and multiplying the magnitude of the data samples by the magnitude of the shifted impulse response in the time domain.

4. The method of claim 3 further comprising padding the impulse response with zeros before computing the Fourier transform.

5. 4. The method of claim 3, further comprising shifting the impulse response by an amount of time that accounts for both a propagation time associated with the noise signal and a system propagation time associated with a throughput speed of the digital signal processor circuit and associated equipment.

6. The method of claim 3 , further comprising calculating and storing the impulse response prior to obtaining the digitized noise signal.

7. 2. The method of claim 1, further comprising: computing the frequency domain representation using a Fast Fourier Transform method; and transforming the shifted frequency domain representation of the set of data to a time domain using an Inverse Fast Fourier Transform method.

8. 2. The method of claim 1, further comprising shifting the frequency domain representation by an amount of time that depends on a selected frequency of the frequency domain representation, taking into account both a propagation time associated with the noise signal and a system propagation time associated with a throughput speed of the digital signal processor circuitry and associated equipment.

9. 9. The method of claim 8, further comprising shifting the frequency domain representation by an amount corresponding to a phase shift time calculated as one-half the reciprocal of the selected frequency.

10. The method of claim 1 , further comprising amplitude scaling the shifted frequency domain representation of the set of data prior to transforming the frequency domain representation to the time domain.

11. 2. The method of claim 1, further comprising individually shifting one or more noise segments of the frequency domain representation, the frequency domain representation comprising a plurality of noise segments, each noise segment of the plurality of noise segments correlating with a different frequency band.

12. 10. The method of claim 1, further comprising outputting the anti-noise signal in the audio signal stream by converting the anti-noise signal to an analog signal and mixing the anti-noise signal with original noise in the audio signal stream.

13. 13. The method of claim 12, further comprising mixing the anti-noise signal with the original noise in the audio signal stream by using an amplified speaker or other transducer placed in the audio signal stream.

14. 10. The method of claim 1, further comprising: capturing the noise signal in the audio signal stream using at least one microphone connected to an analog-to-digital converter to generate the captured digitized noise signal.

15. outputting the anti-noise signal into the audio signal stream and then sampling the audio signal stream to obtain a feedback signal; 10. The method of claim 1, further comprising processing the feedback signal using the digital signal processor circuit to adjust an amplitude or a phase of the anti-noise signal to facilitate reducing the noise signal.

16. 1. A method for reducing noise in an audio signal stream containing an unwanted signal, referred to as a noise signal, comprising the steps of: obtaining a digitized noise signal from an environment in which the audio signal stream resides, the noise signal comprising a plurality of data samples; receiving the digitized noise signal by a digital signal processor circuit; for each data sample of the plurality of data samples, adding, by the digital signal processor circuit, one or more data, each having a magnitude of zero, to each data sample to form a set of data; calculating by the digital signal processor circuit a frequency domain representation of the set of data in the frequency domain, the frequency domain representation including a plurality of noise segments, each noise segment correlating with a different frequency band; using said digital signal processor circuitry to individually time shift one or more noise segments; combining the plurality of noise segments to form an anti-noise signal; outputting the anti-noise signal into the audio signal stream to reduce the noise by destructive interference.

17. The method of claim 16 , wherein the number of one or more data added to the data sample depends on a desired frequency resolution of the anti-noise signal.

18. 17. The method of claim 16, wherein computing the frequency domain representation of the set of data and individually shifting one or more noise segments further comprises computing a Fourier transform of an impulse response of magnitude unity, shifting the impulse response in the frequency domain, computing an inverse Fourier transform of the shifted impulse response, and multiplying the magnitude of the data samples by the magnitude of the shifted impulse response in the time domain.

19. The method of claim 18 , further comprising padding the impulse response with zeros before computing the Fourier transform.

20. 20. The method of claim 18, further comprising shifting the impulse response by an amount of time that accounts for both a propagation time associated with the noise signal and a system propagation time associated with a throughput speed of the digital signal processor circuit and associated equipment.

21. The method of claim 18 , further comprising calculating and storing the impulse response prior to obtaining the digitized noise signal.

22. 17. The method of claim 16, further comprising shifting the frequency domain representation by an amount of time that depends on a selected frequency of the frequency domain representation, taking into account both a propagation time associated with the noise signal and a system propagation time associated with a throughput speed of the digital signal processor circuitry and associated equipment.

23. 23. The method of claim 22, further comprising shifting the frequency domain representation by an amount corresponding to a phase shift time calculated as one-half the reciprocal of the selected frequency.

24. The method of claim 16 , further comprising amplitude scaling the frequency domain representation.

25. 17. The method of claim 16, further comprising outputting the anti-noise signal in the audio signal stream by converting the anti-noise signal to an analog signal and mixing the anti-noise signal with the original noise in the audio signal stream.

26. 17. The method of claim 16, further comprising mixing the anti-noise signal with the original noise in the audio signal stream by using an amplified speaker or other transducer placed in the audio signal stream.

27. 17. The method of claim 16, further comprising capturing the noise signal in the audio signal stream using at least one microphone connected to an analog-to-digital converter to generate the captured digitized noise signal.

28. outputting the anti-noise signal into the audio signal stream and then sampling the audio signal stream to obtain a feedback signal; 17. The method of claim 16, further comprising processing the feedback signal using the digital signal processor circuit to adjust an amplitude or a phase of the anti-noise signal to facilitate reducing the noise signal.

29. 1. A system for reducing noise in an audio signal stream including a noise signal, comprising: a microphone configured to acquire a noise signal from an environment in which the audio signal stream is present; an analog-to-digital converter configured to operate to receive the noise signal from the microphone and convert the noise signal into a digitized noise signal; receiving the digitized noise signal from the analog-to-digital converter; and for each data sample of the digitized noise signal, determining a given data sample as: adding one or more data, each having a magnitude substantially zero, to the given data sample to form a set of data; Computing a frequency domain representation of the set of data in the frequency domain; shifting in time the frequency domain representation of the set of data, thereby generating a shifted frequency domain representation of the set of data; transforming the shifted frequency domain representation of the set of data into a time domain to form part of an anti-noise signal; a digital signal processor circuit configured to process the a digital-to-analog converter configured to operate to receive the anti-noise signal from the digital signal processor circuit and convert the anti-noise signal to an analog anti-noise signal.

30. 30. The system of claim 29, further comprising a mixer configured to receive the audio signal stream and the analog anti-noise signal and to operate to combine the audio signal stream and the analog anti-noise signal.

31. 30. The system of claim 29, further comprising a speaker configured to receive an audio signal stream along with the analog anti-noise signal.

32. 30. The system of claim 29, wherein the digital signal processor circuit calculates the frequency domain representation using a Fast Fourier Transform method and transforms the shifted frequency domain representation of the set of data to the time domain using an Inverse Fast Fourier Transform method.

33. The system of claim 29, wherein the digital signal processor circuit shifts the frequency domain representation by an amount of time that depends on a selected frequency of the frequency domain representation, taking into account both a propagation time associated with the noise signal and a system propagation time associated with a throughput speed of the digital signal processor circuit and associated equipment.

34. The system of claim 33, wherein the digital signal processor circuit shifts the frequency domain representation by an amount corresponding to a phase shift time calculated as half the reciprocal of the selected frequency.

35. 30. The system of claim 29, wherein the digital signal processor circuit amplitude scales the shifted frequency domain representation of the set of data prior to transforming the frequency domain representation to the time domain.

36. 30. The system of claim 29, wherein the digital signal processor circuitry individually shifts one or more noise segments in the frequency domain representation, the frequency domain representation comprising a plurality of noise segments, each noise segment of the plurality of noise segments correlating with a different frequency band.

37. 32. The system of claim 31, further comprising a feedback microphone proximate to the speaker and configured to receive the audio signal stream output by the speaker, the digital signal processor circuit being interfaced with the feedback microphone.

38. 30. The system of claim 29, wherein the digital signal processor circuit transforms the shifted frequency domain representation by shifting the frequency domain representation of the set of data and computing a Fourier transform of an impulse response of magnitude unity, shifting the impulse response in the frequency domain, computing an inverse Fourier transform of the shifted impulse response, and multiplying the magnitude of the data samples by the magnitude of the shifted impulse response in the time domain.

39. 40. The system of claim 38, further comprising padding the impulse response with zeros before computing the Fourier transform.

40. 40. The system of claim 39, wherein the impulse response is calculated and stored prior to obtaining the digitized noise signal.

Citation Information

Patent Citations

  • Vibration removing device

    JP1996083086A

  • Channel gain correction system and noise reduction method in voice communication

    JP2003526109A

  • Reproduction device, reproduction method and reproduction program

    JP2008209903A

  • Noise Cancellation Using Segmented, Frequency-Dependent Phase Cancellation

    US20180226064A1