System and Method for Processing an Audio Signal

Systems and methods for audio signal processing are provided. In exemplary embodiments, a filter cascade of complex-valued filters are used to decompose an input audio signal into a plurality of frequency components or sub-band signals. These sub-band signals may be processed for phase alignment, amplitude compensation, and time delay prior to summation of real portions of the sub-band signals to generate a reconstructed audio signal.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No. 11/441,675 filed on May 25, 2006 entitled “System and Method for Processing an Audio Signal.” The present application is also related to U.S. patent application Ser. No. 10/613,224 entitled “Filter Set for Frequency Analysis” filed Jul. 3, 2003; U.S. patent application Ser. No. 10/613,224 is a continuation of U.S. U.S. patent application Ser. No. 10/074,991, entitled “Filter Set for Frequency Analysis” filed Feb. 13, 2002, which is a continuation of U.S. patent application Ser. No. 09/534,682 entitled “Efficient Computation of Log-Frequency-Scale Digital Filter Cascade” filed Mar. 24, 2000; the disclosures of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Embodiments of the present invention are related to audio processing, and more particularly to the analysis of audio signals.

2. Related Art

There are numerous solutions for splitting an audio signal into sub-bands and deriving frequency-dependent amplitude and phase characteristics varying over time. Examples include windowed fast Fourier transform/inverse fast Fourier transform (FFT/IFFT) systems as well as parallel banks of finite impulse response (FIR) and infinite impulse response (IIR) filter banks. These conventional solutions, however, all suffer from deficiencies.

Disadvantageously, windowed FFT systems only provide a single, fixed bandwidth for each frequency band. Typically, a bandwidth which is applied from low frequency to high frequency is chosen with a fine resolution at the bottom. For example, at 100 Hz, a filter (bank) with a 50 kHz bandwidth is desired. This means, however, that at 8 kHz, a 50 Hz bandwidth is used where a wider bandwidth such as 400 Hz may be more appropriate. Therefore, flexibility to match human perception cannot be provided by these systems.

Another disadvantage of windowed FFT systems is that inadequate fine frequency resolution of sparsely sampled windowed FFT systems at high frequencies can result in objectionable artifacts (e.g., “musical noise”) if modifications are applied, (e.g., for noise suppression). The number of artifacts can be reduced to some extent by dramatically reducing the number of samples of overlap between the windowed frames size “FFT hop size” (i.e., increasing oversampling). Unfortunately, computational costs of FFT systems increase as oversampling increases. Similarly, the FIR subclass of filter banks are also computationally expensive due to the convolution of the sampled impulse responses in each sub-band which can result in high latency. For example, a system with a window of 256 samples will require 256 multiplies and a latency of 128 samples, if the window is symmetric.

The IIR subclass is computationally less expensive due to its recursive nature, but implementations employing only real-valued filter coefficients present difficulties in achieving near-perfect reconstruction, especially if the sub-band signals are modified. Further, phase and amplitude compensation as well as time-alignment for each sub-band is required in order to produce a flat frequency response at the output. The phase compensation is difficult to perform with real-valued signals, since they are missing the quadrature component for straight-forward computation of amplitude and phase with fine time-resolution. The most common way to determine amplitude and frequency is to apply a Hilbert transform on each stage output. But an extra computation step is required for calculating the Hilbert transform in real-valued filter banks, and is computationally expensive.

Therefore, there is a need for systems and methods for analyzing and reconstructing an audio signal that is computationally less expensive than existing systems, while providing low end-to-end latency, and the necessary degrees of freedom for time-frequency resolution.

SUMMARY OF THE INVENTION

Embodiments of the present invention provide systems and methods for audio signal processing. In exemplary embodiments, a filter cascade of complex-valued filters is used to decompose an input audio signal into a plurality of sub-band signals. In one embodiment, an input signal is filtered with a complex-valued filter of the filter cascade to produce a first filtered signal. The first filtered signal is subtracted from the input signal to derive a first sub-band signal. Next, the first filtered signal is processed by a next complex-valued filter of the filter cascade to produce a next filtered signal. The processes repeat until the last complex-valued filters in the cascade has been utilized. In some embodiments, the complex-valued filters are single pole, complex-valued filters.

Once the input signal is decomposed, the sub-band signals may be processed by a reconstruction module. The reconstruction module is configured to perform a phase alignment on one or more of the sub-band signals. The reconstruction module may also be configured to perform amplitude compensation on one or more of the sub-band signals. Further, a time delay may be performed on one or more of the sub-band signals by the reconstruction module. Real portions of the compensated and/or time delayed sub-band signals are summed to generate a reconstructed audio signal.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram of a system employing embodiments of the present invention;

FIG. 2 is an exemplary block diagram of the analysis filter bank module in an exemplary embodiment of the present invention;

FIG. 3 illustrates a filter of the analysis filter bank module, according to one embodiment;

FIG. 4 illustrates for every six (6) sub-bands a log display of magnitude and phase of the sub-band transfer function;

FIG. 5 illustrates for every six (6) stages a log display of magnitude and phase of the accumulated filter transfer functions;

FIG. 6 illustrates the operation of the exemplary reconstruction module;

FIG. 7 illustrates a graphical representation of an exemplary reconstruction of the audio signal; and

FIG. 8 is a flowchart of an exemplary method for reconstructing an audio signal.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Embodiments of the present invention provide systems and methods for near perfect reconstruction of an audio signal. The exemplary system utilizes a recursive filter bank to generate quadrature outputs. In exemplary embodiments, the filter bank comprises a plurality of complex-valued filters. In further embodiments, the filter bank comprises a plurality of single pole, complex-valued filters.

Referring to FIG. 1, an exemplary system 100 in which embodiments of the present invention may be practiced is shown. The system 100 may be any device, such as, but not limited to, a cellular phone, hearing aid, speakerphone, telephone, computer, or any other device capable of processing audio signals. The system 100 may also represent an audio path of any of these devices.

The system 100 comprises an audio processing engine 102, an audio source 104, a conditioning module 106, and an audio sink 108. Further components not related to reconstruction of the audio signal may be provided in the system 100. Additionally, while the system 100 describes a logical progression of data from each component of FIG. 1 to the next, alternative embodiments may comprise the various components of the system 100 coupled via one or more buses or other elements.

The exemplary audio processing engine 102 processes the input (audio) signals inputted via the audio source 104. In one embodiment, the audio processing engine 102 comprises software stored on a device which is operated upon by a general processor. The audio processing engine 102, in various embodiments, comprises an analysis filter bank module 110, a modification module 112, and a reconstruction module 114. It should be noted that more, less, or functionally equivalent modules may be provided in the audio processing engine 102. For example, one or more modules 110-114 may be combined into few modules and still provide the same functionality.

The audio source 104 comprises any device which receives input (audio) signals. In some embodiments, the audio source 104 is configured to receive analog audio signals. In one example, the audio source 104 is a microphone coupled to an analog-to-digital (A/D) converter. The microphone is configured to receive analog audio signals while the A/D converter samples the analog audio signals to convert the analog audio signals into digital audio signals suitable for further processing. In other examples, the audio source 104 is configured to receive analog audio signals while the conditioning module 106 comprises the A/D converter. In alternative embodiments, the audio source 104 is configured to receive digital audio signals. For example, the audio source 104 is a disk device capable of reading audio signal data stored on a hard disk or other forms of media. Further embodiments may utilize other forms of audio signal sensing/capturing devices.

The conditioning module 106 pre-processes the input signal (i.e., any processing that does not require decomposition of the input signal). In one embodiment, the conditioning module 106 comprises an auto-gain control. The conditioning module 106 may also perform error correction and noise filtering. The conditioning module 106 may comprise other components and functions for pre-processing the audio signal.

The analysis filter bank module 110 decomposes the received input signal into a plurality of sub-band signals. In some embodiments, the outputs from the analysis filter bank module 110 can be used directly (e.g., for a visual display). The analysis filter bank module 110 will be discussed in more detail in connection with FIG. 2. In exemplary embodiments, each sub-band signal represents a frequency component.

The exemplary modification module 112 receives each of the sub-band signals over respective analysis paths from the analysis filter bank module 110. The modification module 112 can modify/adjust the sub-band signals based on the respective analysis paths. In one example, the modification module 112 filters noise from sub-band signals received over specific analysis paths. In another example, a sub-band signal received from specific analysis paths may be attenuated, suppressed, or passed through a further filter to eliminate objectionable portions of the sub-band signal.

The reconstruction module 114 reconstructs the modified sub-band signals into a reconstructed audio signal for output. In exemplary embodiments, the reconstruction module 114 performs phase alignment on the complex sub-band signals, performs amplitude compensation, cancels the complex portion, and delays remaining real portions of the sub-band signals during reconstruction in order to improve resolution of the reconstructed audio signal. The reconstruction module 114 will be discussed in more details in connection with FIG. 6.

The audio sink 108 comprises any device for outputting the reconstructed audio signal. In some embodiments, the audio sink 108 outputs an analog reconstructed audio signal. For example, the audio sink 108 may comprise a digital-to-analog (D/A) converter and a speaker. In this example, the D/A converter is configured to receive and convert the reconstructed audio signal from the audio processing engine 102 into the analog reconstructed audio signal. The speaker can then receive and output the analog reconstructed audio signal. The audio sink 108 can comprise any analog output device including, but not limited to, headphones, ear buds, or a hearing aid. Alternately, the audio sink 108 comprises the D/A converter and an audio output port configured to be coupled to external audio devices (e.g., speakers, headphones, ear buds, hearing aid).

In alternative embodiments, the audio sink 108 outputs a digital reconstructed audio signal. In another example, the audio sink 108 is a disk device, wherein the reconstructed audio signal may be stored onto a hard disk or other medium. In alternate embodiments, the audio sink 108 is optional and the audio processing engine 102 produces the reconstructed audio signal for further processing (not depicted in FIG. 1).

Referring now to FIG. 2, the exemplary analysis filter bank module 110 is shown in more detail. In exemplary embodiments, the analysis filter bank module 110 receives an input signal 202, and processes the input signal 202 through a series of filters 204 to produce a plurality of sub-band signals or components (e.g., P1-P6). Any number of filters 204 may comprise the analysis filter bank module 110. In exemplary embodiments, the filters 204 are complex valued filters. In further embodiments, the filters 204 are first order filters (e.g., single pole, complex valued). The filters 204 are further discussed in FIG. 3.

In exemplary embodiments, the filters 204 are organized into a filter cascade whereby an output of one filter 204 becomes an input in a next filter 204 in the cascade. Thus, the input signal 202 is fed to a first filter 204a. An output signal, P1, of the first filter 204a is subtracted from the input signal 202 by a first computation node 206a to produce an output D1. The output D1 represents the difference signal between the signal going into the first filter 204a and the signal after the first filter 204a.

In alternative embodiments, benefits of the filter cascade may be realized without the use of the computation node 206 to determine sub-band signals. That is, the output of each filter 204 may be used directly to represent energy of the signal at the output or be displayed, for example.

Because of the cascade structure of the analysis filter bank module 110, the output signal, P1, is now an input signal into a next filter 204b in the cascade. Similar to the process associated with the first filter 204a, an output of the next filter 204b (i.e., P2) is subtracted from the input signal P1 by a next computation node 206b to obtain a next frequency band or channel (i.e., output D2). This next frequency channel emphasizes frequencies between cutoff frequencies of the present filter 204b and the previous filter 204a. This process continues through the remainder of the filters 204 of the cascade.

In one embodiment, sets of filters in the cascade are separated into octaves. Filter parameters and coefficients may then be shared among corresponding filters (in a similar position) in different octaves. This process is described in detail in U.S. patent application Ser. No. 09/534,682.

In some embodiments, the filters 204 are single pole, complex-valued filters. For example, the filters 204 may comprise first order digital or analog filters that operate with complex values. Collectively, the outputs of the filters 204 represent the sub-band components of the audio signal. Because of the computation node 206, each output represents a sub-band, and a sum of all outputs represents the entire input signal 202. Since the cascading filters 204 are first order, the computational expense may be much less than if the cascading filters 204 were second order or more. Further, each sub-band extracted from the audio signal can be easily modified by altering the first order filters 204. In other embodiments, the filters 204 are complex-valued filters and not necessarily single pole.

In further embodiments, the modification module 112 (FIG. 1) can process the outputs of the computation node 206 as necessary. For example, the modification module 112 may half wave rectify the filtered sub-bands. Further, the gain of the outputs can be adjusted to compress or expand a dynamic range. In some embodiments, the output of any filter 204 may be downsampled before being processed by another chain/cascade of filters 204.

In exemplary embodiments, the filters 204 are infinite impulse response (IIR) filters with cutoff frequencies designed to produce a desired channel resolution. The filters 204 may perform successive Hilbert transformations with a variety of coefficients upon the complex audio signal in order to suppress or output signals within specific sub-bands.

FIG. 3 is a block diagram illustrating this signal flow in one exemplary embodiment of the present invention. The output of the filter 204, yreal[n] and yimag[n] is passed as an input xreal[n+1] and ximag[n+1], respectively, of a next filter 204 in the cascade. The term “n” identifies the sub-band to be extracted from the audio signal, where “n” is assumed to be an integer. Since the IIR filter 204 is recursive, the output of the filter can change based on previous outputs. The imaginary components of the input signal (e.g., ximag[n]) can be summed after, before, or during the summation of the real components of the signal. In one embodiment, the filter 204 can be described by the complex first order difference equation y(k)=g*(x(k)+b*x(k−1))+a*y(k−1) where b=r_z*exp(i*theta_p) and a=−r_p*exp(i*theta_p) and “y” is a sample index.

In the present embodiment, “g” is a gain factor. It should be noted that the gain factor can be applied anywhere that does not affect the pole and zero locations. In alternative embodiments, the gain may be applied by the modification module 112 (FIG. 1) after the audio signals have been decomposed into sub-band signals.

Referring now to FIG. 4, an example log display of magnitude and phase for every six (6) sub-bands of an audio signal is shown. The magnitude and phase information is based on outputs from the analysis filter bank module 110 (FIG. 1). That is, the amplitudes shown in FIG. 4 are the outputs (i.e., output D1-D6) from the computation node 206 (FIG. 2). In the present example, the analysis filter bank module 110 is operating at a 16 kHz sampling rate with 235 sub-bands for a frequency range from 80 Hz to 8 kHz. End-to-end latency of this analysis filter bank module 110 is 17.3 ms.

In some embodiments, it is desirable to have a wide frequency response at high frequencies and a narrow frequency response at low frequencies. Because embodiments of the present invention are adaptable to many audio sources 104 (FIG. 1), different bandwidths at different frequencies may be used. Thus, fast responses with wide bandwidths at high frequencies and slow responses with a narrow, short bandwidth at low frequencies may be obtained. This results in responses that are much more adapted to the human ear with relatively low latency (e.g., 12 ms).

Referring now to FIG. 5, an example of magnitude and phase per stage of an analytic cochlea design is shown. The amplitude shown in FIG. 5 is the outputs of filters 204 of FIG. 2 (e.g., P1-P6).

FIG. 6 illustrates operation of the reconstruction module 114 according to one embodiment of the present invention. In exemplary embodiments, the phase of each sub-band signal is aligned, amplitude compensation is performed, the complex portion of each sub-band signal is removed, and then time is aligned by delaying each sub-band signal as necessary to achieve a flat reconstruction spectrum and reduce impulse response dispersion.

Because the filters use complex signals (e.g., real and imaginary parts), phase may be derived for any sample. Additionally, amplitude may also be calculated by A=√{square root over (((yreal[n])2+(yimag[n])2))}{square root over (((yreal[n])2+(yimag[n])2))}. Thus, the reconstruction of the audio signal is mathematically made easier. As a result of this approach, the amplitude and phase for any sample is readily available for further processing (i.e., to the modification module 112 (FIG. 1).

Since the impulse responses of the sub-band signals may have varying group delays, merely summing up the outputs of the analysis filter bank module 110 (FIG. 1) may not provide an accurate reconstruction of the audio signal. Consequently, the output of a sub-band can be delayed by the sub-band's impulse response peak time so that all sub-band filters have their impulse response envelope maximum at a same instance in time.

In an embodiment where the impulse response waveform maximum is later in time than the desired group delay, the filter output is multiplied with a complex constant such that the real part of the impulse response has a local maximum at the desired group delay.

As shown, sub-band signals 602 (e.g., S0, Sn, and Sm) are received by the reconstruction module 114 from the modification module 112 (FIG. 1). Coefficients 604 (e.g., a0, an, and am) are then applied to the sub-band signal. The coefficient comprises a fixed, complex factor (i.e., comprising a real and imaginary portion). Alternately, the coefficients 604 can be applied to the sub-band signal within the analysis filter bank module 110. The application of the coefficient to each sub-band signal aligns the phases of the sub-band signal and compensates each amplitude. In exemplary embodiments, the coefficients are predetermined. After the application of the coefficient, the imaginary portion is discarded by a real value module 606 (i.e., Re{ }).

Each real portion of the sub-band signal is then delayed by a delay Z−1 608. This delay allows for cross sub-band alignment. In one embodiment, the delay Z−1 608 provides a one tap delay. After the delay, the respective sub-band signal is summed in a summation node 610, resulting in a value. The partially reconstructed signal is then carried into a next summation node 610 and applied to a next delayed sub-band signal. The process continues until all sub-band signals are summed resulting in a reconstructed audio signal. The reconstructed audio signal is then suitable for the audio sink 108 (FIG. 1). Although the delays Z−1 608 are depicted after sub-band signals are summed, the order of operations of the reconstruction module 114 can be interchangeable.

FIG. 7 illustrates a reconstruction graph based on the example of FIG. 4 and FIG. 5. The reconstruction (i.e., reconstructed audio signal) is obtained by combining the outputs of each filter 204 (FIG. 2) after phase alignment, amplitude compensation, and delay for cross sub-band alignment by the reconstruction module 114 (FIG. 1). As a result, the reconstruction graph is relatively flat.

Referring now to FIG. 8, a flowchart 800 of an exemplary method for audio signal processing is provided. In step 802, an audio signal is decomposed into sub-band signals. In exemplary embodiments, the audio signal is processed by the analysis filter bank module 110 (FIG. 1). The processing comprises filtering the audio signal through a cascade of filters 204 (FIG. 2), the output of each filter 204 resulting in a sub-band signal at the respective outputs. In one embodiment, the filters 204 are complex-valued filters. In a further embodiment, the filters 204 are single pole, complex-valued filters.

After sub-band decomposition, the sub-band signals are processed through the modification module 112 (FIG. 1) in step 804. In exemplary embodiments, the modification module 112 (FIG. 1) adjusts the gain of the outputs to compress or expand a dynamic range. In some embodiments, the modification module 112 may suppress objectionable sub-band signals.

A reconstruction module 114 (FIG. 1) then performs phase and amplitude compensation on each sub-band signal in step 806. In one embodiment, the phase and amplitude compensation occurs by applying a complex coefficient to the sub-band signal. The imaginary portion of the compensated sub-band signal is then discarded in step 808. In other embodiments, the imaginary portion of the compensated sub-band signal is retained.

Using the real portion of the compensated sub-band signal, the sub-band signal is delayed for cross-sub-band alignment in step 810. In one embodiment, the delay is obtained by utilizing a delay line in the reconstruction module 114.

In step 812, the delayed sub-band signals are summed to obtain a reconstructed signal. In exemplary embodiments, each sub-band signal/segment represents a frequency.

Embodiments of the present invention have been described above with reference to exemplary embodiments. It will be apparent to those skilled in the art that various modifications may be made and other embodiments can be used without departing from the broader scope of the invention. Therefore, these and other variations upon the exemplary embodiments are intended to be covered by the present invention.

Claims

1. A method for processing audio signals, comprising:

filtering an input signal with a complex-valued filter of a filter cascade to produce a first filtered signal;
subtracting the first filtered signal from the input signal to derive a first sub-band signal;
filtering the first filtered signal with a next complex-valued filter of the filter cascade to produce a next filtered signal; and
subtracting the next filtered signal from the first filtered signal to derive a next sub-band signal.

2. The method of claim 1 wherein the complex-valued filter and the next complex-valued filter are single pole, complex-valued filters.

3. The method of claim 1 further comprising performing phase alignment on one or more of the sub-band signals.

4. The method of claim 3 further comprising disposing of an imaginary portion of the one or more phase aligned sub-band signals.

5. The method of claim 1 further comprising performing amplitude compensation on one or more of the sub-band signals.

6. The method of claim 1 further comprising performing a time delay on one or more of the sub-band signals for cross-sub-band alignment.

7. The method of claim 6 further comprising summing the delayed one or more sub-band signals to generate a reconstructed audio signal.

8. The method of claim 1 further comprising pre-processing the input signal prior to filtering the input signal with the complex-valued filter of the filter cascade.

9. The method of claim 1 further comprising modifying one or more of the sub-band signals based on an analysis path from the filter cascade.

10. The method of claim 1 wherein the sub-band signals are frequency components of the input signal.

11. A system for processing an audio signal, comprising:

an audio processing engine comprising a filter cascade of complex-valued filters configured to derive a plurality of sub-band signals from an input signal, the set of complex-valued filters arranged in the filter cascade whereby an output of each complex-valued filter is passed to a next complex-valued filter in the filter cascade.

12. The system of claim 11 wherein the complex-valued filters are single pole, complex-valued filters.

13. The system of claim 11 wherein the audio processing engine further comprises a reconstruction module configured to perform phase alignment on one or more of the sub-band signals.

14. The system of claim 11 wherein the audio processing engine further comprises a reconstruction module configured to perform amplitude compensation on one or more of the sub-band signals.

15. The system of claim 11 wherein the audio processing engine further comprises a reconstruction module configured to perform a time delay on one or more of the sub-band signals.

16. The system of claim 11 wherein the audio processing engine further comprises a modification module configured to modify one or more of the sub-band signals based on an analysis path from the filter cascade.

17. The system of claim 11 further comprising a conditioning module configured to pre-process the input signal prior to filtering the input signal with the filter cascade.

18. A machine-readable medium having embodied thereon a program, the program being executable by a machine to perform a method for processing an audio signal, the method comprising:

filtering an input signal with a complex-valued filter of a filter cascade to produce a first filtered signal;
subtracting the first filtered signal from the input signal to derive a first sub-band signal;
filtering the first filtered signal with a next complex-valued filter of the filter cascade to produce a next filtered signal; and
subtracting the next filtered signal from the first filtered signal to derive a next sub-band signal.

19. The machine-readable medium of claim 18 wherein the complex-valued filter and the next complex-valued filter are single pole, complex-valued filters.

20. The machine-readable medium of claim 18 wherein the method further comprises performing phase alignment on one or more of the sub-band signals.

21. The machine-readable medium of claim 18 wherein the method further comprises performing amplitude compensation on one or more of the sub-band signals.

22. The machine-readable medium of claim 18 wherein the method further comprises performing a time delay on one or more the sub-band signals.

23. The machine-readable medium of claim 18 wherein the method further comprises pre-processing the input signal prior to filtering the input signal with the filter cascade.

Patent History
Publication number: 20120140951
Type: Application
Filed: Feb 15, 2012
Publication Date: Jun 7, 2012
Inventors: Ludger Solbach (Mountain View, CA), Lloyd Watts (Mountain View, CA)
Application Number: 13/397,597
Classifications
Current U.S. Class: In Multiple Frequency Bands (381/94.3)
International Classification: H04B 15/00 (20060101);