USPatent applicationPatented

Channel control and post filter for acoustic echo cancellation

Granted 13 Feb 2007 · 4 office actions

Assignee: FORTEMEDIA, INC.

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Ming Zhang, KuoYu Lin · Examiner: Sinh Tran · AU 2615 · TC 2600

Application· this page
10/193,689
filed 10 Jul 2002
Publication
Not published
not published
Patent
US 7,177,416
granted 13 Feb 2007

Life of the application

15 dated events
⤢ drag to zoom20022004200620082010201220142016201820202022ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

An acoustic echo canceller comprising an adaptive filter, a post filter, and an adjustable filter. The adaptive filter receives a reference signal and a near-end signal, cancels a portion of the echo in the near-end signal using the reference signal, and provides an intermediate signal having remaining echo not canceled by the adaptive filter. The post filter calculates the cross-correlation between the near-end signal and intermediate signal, and provides a set of coefficients based on a variable suppression parameter. The adjustable filter processes the intermediate signal based on the coefficients and provides an output signal having at least a portion of the remaining echo removed. The acoustic echo canceller may further comprise a channel control unit that provides control signals, an adjustable amplifier, a noise estimator that estimates the noise in the intermediate signal, and a noise reinsertion unit that reinserts a version of the estimated noise back into the output signal.

Description

10 parts
›CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of provisional U.S. Application Ser. No. 60/375,923, entitled “Channel Control and Post Filter for Acoustic Echo Cancellation,” filed Apr. 7, 2002, which is incorporated herein by reference in its entirety for all purposes.

This application is further related to U.S. application Serial No., entitled “Acoustic Echo Cancellation with Adaptive Step Size and Stability Control,” filed on the same day herewith and incorporated herein by reference in its entirety for all purposes.

›BACKGROUND OF THE INVENTION

The present invention relates generally to signal processing, and more specifically to techniques for canceling acoustic echo using channel control and post filtering.

Full-duplex hands-free communication systems are used for many applications, such as speakerphone, hands-free car kit, teleconferencing system, cellular phone, and so on. For each of these systems, a microphone picks up an acoustic signal emitted by a speaker and the reflections from the borders of an enclosure, such as a room or a car. In the case of a telecommunication system, users are often annoyed by listening to their own voice, which is delayed by the path of the system. This acoustic disturbance is referred to as echo.

Echo cancellation is often required in many communication systems to eliminate echo as well as remove howling effect. For example, echo cancellation is typically used in a hands-free full-duplex environment, such as a vehicle or a room, where the speaker and microphone may be located some distance away from a user. Conventionally, echo cancellation is achieved by a circuit that employs an adaptive filter. This adaptive filter may implement a least mean square (LMS) algorithm or a normalized least mean square (NLMS) algorithm. The adaptive filter performs echo cancellation based on a reference signal, which may be a line input from a communication or telematics device such as a cellular phone or some other device. The adaptive filter is typically able to remove the portion of the echo that is correlated to the reference signal.

However, conventional echo cancellation techniques are not able to remove certain portion of the echo. For example, non-linearity of the circuitry in the communication systems (e.g., the speaker, analog-to-digital (A/D) converter, digital-to-analog (D/A) converter, and so on) generates echo that is not correlated to the reference signal. This type of echo cannot be canceled by conventional echo cancellation techniques which only employ an adaptive filter. Moreover, user movement and volume change can cause the echo path to vary. This results in varying echo that typically cannot be canceled very well, particularly if the echo path changes faster than the convergence rate of the adaptive filter. For these and other reasons, a portion of the echo often remains after the conventional echo cancellation with the adaptive filter.

Non-linear echo cancellation techniques may be used to attempt to cancel the remaining echo. However, some conventional non-linear echo cancellation techniques, such as a center clipper, can cause voice distortion by cutting off low power voice. The techniques also cannot handle high volume echo. Conventional center clippers are described, for example, in U.S. Pat. Nos. 4,031,338, 4,679,230 and 5,475,731, and European Patent Nos. EP-0164159-A1 and EP-0164159-B1. Other conventional non-linear echo cancellation techniques, such as conventional post filters, also cannot deal with very strong echo and serious non-linearity.

As can be seen, techniques that can effectively cancel acoustic echo in communication systems are highly desirable.

›SUMMARY OF THE INVENTION

Techniques are provided herein to cancel acoustic echo using channel control and variable suppression post filtering. These techniques are effective at suppressing remaining echo due to non-linearity and non-convergence, which are not canceled by conventional echo cancellation techniques. The inventive techniques provide good full-duplex and voice quality, which are highly desirable for hands-free full-duplex applications.

A specific embodiment of the invention provides an acoustic echo canceller comprising an adaptive filter, a post filter, and an adjustable filter. The adaptive filter receives a reference signal r(n) and a near-end signal s(n), cancels a portion of the echo in the near-end signal using the reference signal, and provides an intermediate signal e(n) having remaining echo not canceled by the adaptive filter. The post filter calculates the cross-correlation between the intermediate signal and the near-end signal, and provides a set of coefficients for further suppression of echo. The adjustable filter processes the intermediate signal based on the post filter output and provides an output signal y(n) having at least a portion of the remaining echo removed.

The adaptive filter may implement a normalized least mean square (NLMS) algorithm or some other adaptive algorithm. The post filter output may comprise a set of coefficients for the adjustable filter, which may be implemented as a finite impulse response (FIR) filter.

The acoustic echo canceller may further comprise a channel control unit, an adjustable amplifier, a noise estimator, and a noise reinsertion unit. The channel control unit provides a first control for the adjustable amplifier and a second control for the adjustable filter. The adjustable amplifier amplifies an input signal with a particular gain, which is determined based on the first control, to provide an amplified signal from which the near-end signal is derived. In an embodiment, the adjustable filter either filters the intermediate signal based on the coefficients from the post filter if the second control is in a first state or passes the intermediate signal if the second control is in a second state. The noise estimator estimates the noise in the intermediate signal, and the noise reinsertion unit reinserts (or adds) a version of the estimated noise back into the output signal.

Various other aspects, embodiments, and features of the invention are also provided, as described in further detail below.

The foregoing, together with other aspects of this invention, will become more apparent when referring to the following specification, claims, and accompanying drawings.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a conventional echo cancellation system;

FIG. 2 is a diagram of an echo cancellation system, which is a specific embodiment of the present invention;

FIG. 3 is a diagram of an adaptive filter;

FIG. 4A is a diagram of a post filter;

FIGS. 4B and 4C are diagrams of a suppression parameter calculation unit and a coefficient constraint unit, respectively, within the post filter;

FIG. 5 is a diagram of a channel control unit;

FIG. 6 is a diagram of an adjustable FIR filter;

FIG. 7 is a diagram of a noise reinsertion unit; and

FIG. 8 is a diagram of an implementation of the echo cancellation system.

›DESCRIPTION OF THE SPECIFIC EMBODIMENTS · 1 of 6

For clarity, various signals and controls for the echo cancellation systems described herein are labeled with either lower case or upper case. Time-variant signals and control are labeled with “(n)”, where n denotes sample time. Lower case symbols (e.g., r(n)) are used to denote scalars, and upper case symbols (e.g., H(n)) are used to denote vectors. The operations shown in the figures may thus be scalar operations (if both input operands are denoted with lower case symbols) or vector operations (if at least one input operand is denoted with an upper case symbol).

FIG. 1 is a diagram of a conventional echo cancellation system 100 . In the “output path”, a digital signal r(n), which includes audio activity (e.g., speech) from a far-end source, is converted to an analog signal by a digital-to-analog (D/A) converter 112 , amplified by a power amplifier 114 , and outputted from a speaker 116 to one or more near-end users. A far-end user is one who is located away (or remote) from system 100 , and a near-end user is one who is located within the vicinity of system 100 . The far-end signal r(n) is also used as a reference signal for an adaptive filter 130 .

In the “input path”, a microphone 122 receives audio activity from the near-end user (i.e., near-end voice or talk), local ambient noise, and echo from speaker 116 via an echo path 120 . The signal from microphone 122 is amplified by an amplifier 124 and further digitized by an analog-to-digital (A/D) converter 126 to provide a digitized near-end signal s(n).

To cancel echo due to the far-end signal r(n) on the near-end signal s(n), a double-talk detection unit 136 receives and processes the far-end signal and the near-end signal to determine whether or not double-talk exists. Near-end talk refers to audio activity (e.g., speech) from a near-end user, far-end talk refers to audio activity from a far-end user, and double-talk refers to a situation when both near-end talk and far-end talk are present. For a teleconference system, the near-end talk may come from users within the room where the teleconference system is installed, and the far-end talk may come from users outside the room. Double-talk detection unit 136 then provides a double-talk control signal to adaptive filter 130 . This control signal indicates whether or not double-talk is present and is used to control the updating of the adaptive filter.

Adaptive filter 130 receives the reference signal r(n), the double-talk control signal and the near-end signal s(n), and generates an error signal e(n). Adaptive filter 130 filters the reference signal r(n) based on an adaptive algorithm 132 to provide an estimate of the echo in the near-end signal s(n). The error signal e(n) is then fed back to adaptive algorithm 132 to update the coefficients of the filter. The echo estimate signal x(n) is then subtracted from the near-end signal s(n) by a summer 134 to obtain the error signal e(n).

Adaptive algorithm 132 within adaptive filter 130 is updated when far-end talk is detected and double-talk is not detected, i.e., when the near-end signal s(n) includes mostly the echo from the far-end (or reference) signal r(n). If the echo cancellation by adaptive filter 130 is effective, then the echo estimate signal x(n) is approximately equal to the near-end signal s(n) when double-talk is not present, and the error signal e(n) would be small. However, in a typical implementation, at least a portion of the echo cannot be canceled by adaptive filter 130 . In this case, the error signal e(n) would include the remaining echo that has not been canceled. The remaining echo may include components due to various factors such as (1) change of echo path, (2) non-linear effects in amplifier 114 , microphone 122 , A/D converter 126 , speaker 116 , and so on when the volume is high, (3) an inadequate number of taps in adaptive algorithm 132 to accurately estimate the echo, and so on.

A center clipper unit 142 processes the error signal e(n) and removes as much of the remaining echo as possible. Center clipper unit 142 is controlled by an envelope estimation unit 140 . Center clipper unit 142 outputs an echo-suppressed signal y(n), which is the output of echo cancellation system 100 . Center clipper unit 142 is known in the art and not described herein.

The conventional echo cancellation system 100 suffers from some of the shortcomings described above. In particular, system 100 is hard to cancel remaining echo related to echo path change, non-linearity, and so on.

FIG. 2 is a diagram of an echo cancellation system 200 , which is a specific embodiment of the present invention. In the output path, the far-end signal r(n), which includes audio activity from a far-end source, is converted to an analog signal by a D/A converter 212 , amplified by a power amplifier 214 , and outputted from a speaker 216 to one or more near-end users. The far-end signal r(n) is also used as the reference signal for an adaptive filter 230 .

In the input path, a microphone 222 receives near-end voice, local ambient noise, and echo from speaker 216 via an echo path 220 . The signal received by microphone 222 is amplified by an adjustable amplifier 224 with a gain g(n) and further digitized by an A/D converter 226 to provide the near-end signal s(n). In an embodiment, the gain g(n) is adjusted based on a control signal f AMP (n) from a channel control unit 240 . In a specific embodiment, the gain g(n) is defined as:

g ⁡ ( n ) = { g 1 , if ⁢ ⁢ f AMP ⁡ ( n ) = 1 , and g 2 , if ⁢ ⁢ f AMP ⁡ ( n ) = 0 , Eq ⁢ ⁢ ( 1 )

where g 1 is the gain to be used for amplifier 224 if the far-end voice exists, and g 2 is the gain to be used for amplifier 224 if the far-end voice is not present. Typically, g 1 is less than g 2 (i.e., g 2 >g 1 ).

A double-talk detection unit 236 or an adaptive step size control unit 238 may be used to control the updating of adaptive filter 230 . Double-talk detection unit 236 processes the far-end signal r(n) and the near-end signal s(n) to determine whether or not double-talk exists. Double-talk detection unit 236 then provides the double-talk control signal, which indicates whether or not double-talk is present. Adaptive step size control unit 238 provides a step size signal u(n) that is used to control the updating of the coefficients by adaptive algorithm 232 . A specific design for adaptive step size control unit 238 is described in detail in the aforementioned U.S. patent application Serial No.

›DESCRIPTION OF THE SPECIFIC EMBODIMENTS · 2 of 6

Adaptive filter 230 receives the reference signal r(n), the control signal from double-talk/step-size control unit 240 and the near-end signal s(n), and generates the error signal e(n). The error signal e(n) is then fed back to adaptive algorithm 232 to update the coefficients of the filter and the double-talk control signal from double-talk detection unit 236 and/or the step size signal u(n) from adaptive step size control unit 238 . Adaptive filter 230 then filters the reference signal r(n) based on an adaptive algorithm 232 to provide an estimate of the echo in the near-end signal s(n). The echo estimate signal x(n) is then subtracted from the near-end signal s(n) by a summer 234 to provide the error signal e(n).

If double-talk detection unit 236 is used to control the updating of adaptive filter 230 , then adaptive algorithm 232 is updated when far-end talk is detected and double-talk is not detected, i.e., when the near-end signal s(n) includes mostly the echo from the far-end (or reference) signal r(n). Alternatively, if adaptive step size control unit 238 is used to control the updating of adaptive filter 230 , then adaptive algorithm 232 may be updated whenever it is enabled (e.g., at all times, even when double-talk is detected). However, the updating may be performed based on variable step size signal u(n). For example, the step size signal u(n) may be smaller when double-talk exists and may be larger when double-talk is not present.

The error signal e(n) is further provided to a noise estimator 242 , which estimates the amount of noise in the error signal e(n) and provides a noise estimate z(n). In one embodiment, the error signal e(n) is further processed by a noise reduction unit (which may be implemented within noise estimator 242 ) to provide a noise-suppressed signal. In another embodiment, the noise reduction is not performed. In either case, noise estimator 242 provides an output signal v(n). The signal v(n) is equal to the error signal e(n) if noise suppression is not performed by noise estimator 242 , and is equal to the noise-suppressed signal if noise suppression is performed.

A post filter 250 receives and processes the near-end signal s(n) and the error signal e(n) to provide a set of coefficients H a (n) for an adjustable finite impulse response (FIR) filter 260 . The coefficients H a (n) may be derived based on an NLMS algorithm or some other adaptive filter algorithm, as described in further detail below. The coefficients H a (n) may be used to remove as much of the remaining echo in the signal v(n) as possible.

Adjustable FIR filter 260 receives the signal v(n) from noise estimator 242 , the coefficients H a (n) from post filter 250 , and a control signal f FIR (n) from channel control unit 240 . As noted above, the signal v(n) includes remaining echo due to various factors (e.g., echo path change, non-linearity, and so on). Adjustable FIR filter 260 attempts to remove as much of this remaining echo as possible to provide improved echo cancellation performance over the conventional echo cancellation system shown in FIG. 1 . In an embodiment, adjustable FIR filter 260 initially adjusts the coefficients H a (n) based on the control signal f FIR (n) to provide adjusted coefficients H a ′(n). Adjustable FIR filter 260 then filters the signal v(n) based on the adjusted coefficients H a ′(n) to provide a signal p(n) having as much of the remaining echo removed as possible.

A noise reinsertion unit 270 receives the signal p(n) from adjustable FIR filter 260 , the noise estimate signal z(n) from noise estimator 242 , and a set of coefficients H b (n) from adjustable FIR filter 260 . The coefficients H b (n) are indicative of the amount of noise to reinsert (or add or “paste”) back into the signal p(n). In the process of removing as much of the remaining echo as possible, adjustable FIR filter 260 also removes a corresponding amount of noise. For some applications, it is important to maintain the noise level in the output signal approximately constant. This may be necessary, for example, so that changes in the noise level is not mistaken by a subsequent processing unit as changes in the near-end environment or some other factors. Noise reinsertion unit 270 initially derives a noise component z′(n) to be reinserted back into the signal p(n). This noise component z′(n) is derived based on the noise estimate z(n) and the coefficients H b (n). Noise reinsertion unit 270 then adds the noise component z′(n) to the signal p(n) to provide the echo-suppressed signal y(n).

Channel control unit 240 receives the reference signal r(n), the echo estimate signal x(n), and the step size signal u(n) if adaptive step size control unit 238 is used to control the updating of adaptive filter 230 . Channel control unit 240 processes the received signals and provides the control signals f FIR (n) and f AMP (n) for adjustable FIR filter 260 and adjustable amplifier 224 , respectively.

Some of the processing units in FIG. 2 are described in further detail below.

FIG. 3 is a diagram of an adaptive filter 230 x , which is a specific embodiment of adaptive filter 230 in FIG. 2 . In this embodiment, adaptive filter 230 x includes a FIR filter 310 , a summer 234 x (which corresponds to summer 234 in FIG. 2 ), and a coefficient update unit 320 . An infinite impulse response (IIR) filter or some other filter architecture may also be used in place of the FIR filter, and is within the scope of the invention.

Within FIR filter 310 , the digital samples for the signal r(n) are provided to a number of delay elements 312 b through 312 m , which are coupled in series. Each delay element 312 provides one sample period of delay. The signal r(n) and the outputs of delay elements 312 b through 312 m are provided to multipliers 314 a through 314 m , respectively. Each multiplier 314 also receives a respective coefficient h i (n) from coefficient update unit 320 . Each multiplier 314 scales the received samples with the coefficient and provides the scaled samples to a summer 316 . For each sample period n, summer 316 sums the scaled samples from multipliers 314 a through 314 m and provides a filtered sample for that sample period. The filtered sample for sample period n, x(n), may be computed as:

›DESCRIPTION OF THE SPECIFIC EMBODIMENTS · 3 of 6

x ⁡ ( n ) = ∑ i = 0 M - 1 ⁢ ⁢ h i * ⁢ r ⁡ ( n - i ) , Eq ⁢ ⁢ ( 2 )

where the symbol (*) denotes a complex conjugate and M is the number of taps of FIR filter 310 . The signal x(n) thus comprises a sequence of filtered samples, one filtered sample for each sample period, with each filtered sample being derived as shown in equation (2).

Summer 234 x receives and subtracts the signal x(n) from the signal s(n) to provide the error signal e(n).

Coefficient update unit 320 provides the set of M coefficients for FIR filter 310 , which is denoted as H(n)=[h 0 (n), h 1 (n), . . . h M−1 (n)], and further updates these coefficients based on a particular adaptive algorithm. This adaptive algorithm may be implemented with any one of a number of algorithms such as a least mean square (LMS) algorithm, a normalized least mean square (NLMS), a recursive least square (RLS) algorithm, a direct matrix inversion (DMI) algorithm, or some other algorithm. Each of the LMS, NLMS, RLS, and DMI algorithms (directly or indirectly) attempts to minimize the mean square error (MSE) of the error signal e(n).

The NLMS and other algorithms are described in detail by B. Widrow and S. D. Sterns in a book entitled “Adaptive Signal Processing,” Prentice-Hall Inc., Englewood Cliffs, N.J., 1986. The LMS, NLMS, RLS, DMI, and other adaptive algorithms are described in further detail by Simon Haykin in a book entitled “Adaptive Filter Theory”, 3rd edition, Prentice Hall, 1996. The pertinent sections of these books are incorporated herein by reference.

As shown in FIG. 3 , coefficient update unit 320 may also receive the step size signal u(n) from adaptive step size control unit 238 and/or the double-talk control signal from double-talk detection unit 236 . These signals may be used to control the manner in which the coefficients are updated. The double-talk control signal may be used to enable the updating of the coefficients. For example, the coefficients may be maintained (i.e., H(n+1)=H(n)) whenever double-talk is detected.

FIG. 4A is a diagram of a post filter 250 x , which is a specific embodiment of post filter 250 in FIG. 2 . In this embodiment, within post filter 250 x , a suppression parameter calculation unit 410 receives and processes the error signal e(n) and the near-end signal s(n) to provide a suppression parameter b(n). The suppression parameter b(n) is indicative of the amount of cross-correlation between the error signal e(n) and the near-end signal s(n), and may be derived as described below. The suppression parameter b(n) is multiplied with the error signal e(n) by a multiplier 412 to provide the scaled error signal, b(n)·e(n).

The suppression parameter b(n) is also subtracted from a constant c 1 (which may be set equal to one, i.e., c 1 =1) by a summer 416 to provide a second parameter, c 1 −b(n). The second parameter c 1 −b(n) is then multiplied with the near-end signal s(n) by a multiplier 414 to provide a scaled near-end signal (c 1 −b(n))·s(n). The two scaled signals from multipliers 412 and 414 are then summed together by a summer 418 to provide a combined signal q(n). If c 1 =1, then the combined signal q(n) may be expressed as:

q ( n )= b ( n )· e ( n )+(1 −b ( n ))· s ( n ).  Eq (3)

The error signal e(n) is also delayed by L samples by a delay element 420 to provide a delayed error signal e(n−L). The delayed error signal e(n−L) is multiplied by the constant c 1 by a multiplier 422 to obtain a scaled signal, which is used as a reference signal for an adaptive filter 430 .

Adaptive filter 430 receives the combined signal q(n) and the reference signal e(n−L), processes these two signals, and provides a set of coefficients H a ′(n). Adaptive filter 430 may implement the NLMS algorithm or some other adaptive filter algorithm. Adaptive filter 430 attempts to minimize the mean square error between the combined signal q(n) and the reference signal e(n−L), and the coefficients H a ′(n) are updated to minimize this mean square error. Adaptive filter 430 may be implemented using the same design as adaptive filter 230 x in FIG. 3 . In this case, the reference signal e(n−L) would substitute for the signal r(n) and the combined signal q(n) would substitute for the signal s(n). The coefficients H a ′(n) would then correspond to the coefficients H(n) provided by coefficient update unit 320 .

In an embodiment, the coefficients H a ′(n) are provided to a coefficient constraint unit 432 , which limits the magnitude of these coefficients to within a particular range of values to provide constrained coefficients H a (n). Coefficient constraint unit 432 may be used to ensure stability and prevent other deleterious effects.

The coefficients H a ′(n) may be updated by adaptive filter 430 as follows:

H a ′( n )= H a ( n− 1)+Δ H a ( n ),  Eq (4)

where

H a (n−1) is the constrained coefficient vector provided by coefficient constraint unit 432 for the previous sample period, and ΔH a (n) is the amount of adjustment for the constrained coefficients H a (n−1) to obtain the coefficients H a ′(n) for the current sample period.

The adjustment ΔH a (n) may be derived, for example, based on the NLMS algorithm. The constrained coefficients H a (n) are then derived by coefficient constraint unit 432 based on the coefficients H a ′(n) and are provided as the output from post filter 250 x to adjustable FIR filter 260 .

FIG. 4B is a diagram of a suppression parameter calculation unit 410 x , which is a specific embodiment of suppression parameter calculation unit 410 in FIG. 4A . In an embodiment, suppression parameter calculation unit 410 x derives the suppression parameter b(n) based on a cross-correlated power for the error signal e(n) and the near-end signal s(n). The suppression parameter b(n) may also be derived based on other properties of the received signals, and this is within the scope of the invention.

As shown in FIG. 4B , within unit 410 x , a power calculation unit 440 receives the error signal e(n) and the near-end signal s(n). Power calculation unit 440 then calculates an average cross-correlated power P se (n), which may be expressed as:

›DESCRIPTION OF THE SPECIFIC EMBODIMENTS · 4 of 6

P se ( n )=α· P se ( n− 1)+(1−α)· s ( n )· e ( n ),  Eq (5)

where α is a “forgetting” factor for the power computation. As shown in equation (5), the cross-correlated power is first calculated as s(n)·e(n). The cross-correlated power is then exponentially averaged. The factor α is a time constant for the exponential averaging, with a large value for α corresponding to a longer time constant and a small value for α corresponding to a shorter time constant.

The cross-correlated power P se (n) is then provided to a reciprocal calculation unit 442 to obtain a reciprocal of P se (n). If the error signal e(n) and the near-end signal s(n) are correlated, then the cross-correlated power P se (n) is larger, and the reciprocal of P se (n) is smaller. The reciprocal of P se (n) is then multiplied by a multiplier 444 with a positive constant c 2 , and the resultant product c 2 /P se (n) is provided to a comparator 446 .

Comparator 446 compares the product c 2 /P se (n) with an upper threshold b max and a lower threshold b min to provide the suppression parameter b(n). In particular, the suppression parameter b(n) may be expressed as:

b ⁡ ( n ) = { b max if ⁢ ⁢ c 2 / P se ⁡ ( n ) > b max , c 2 / P se ⁡ ( n ) if ⁢ ⁢ b max ≥ c 2 / P se ⁡ ( n ) ≥ b min , and b min if ⁢ ⁢ b min > c 2 / P se ⁡ ( n ) . Eq ⁢ ⁢ ( 6 )

By limiting the suppression parameter b(n) to within the range of values defined by b max and b min , certain deleterious effects may be avoided.

FIG. 4C is a diagram of a coefficient constraint unit 432 x , which is a specific embodiment of coefficient constraint unit 432 in FIG. 4A . Within unit 432 x , a comparator 450 receives the coefficients H a ′(n) from adaptive filter 430 , limits these coefficients to within a particular range of values defined by a maximum value H max and a minimum value H min , and provides the constrained coefficients H a (n). In an embodiment, the comparison is individually performed for each coefficient, and a different set of maximum and minimum values, H max and H max , may be used for each coefficient. The comparison of each coefficient H a ′(n) may then be expressed as:

H a , i ⁡ ( n ) = { H max , i if ⁢ ⁢ H a , i ′ ⁡ ( n ) > H max , i , H a , i ′ ⁡ ( n ) if ⁢ ⁢ H max , i ≥ H a , i ′ ⁡ ( n ) ≥ H min , i , and H min , i if ⁢ ⁢ H min , i > H a , i ′ ⁡ ( n ) , Eq ⁢ ⁢ ( 7 )

where H max,i and H min,i are the maximum and minimum values, respectively, for the i-th coefficient of the vector H a ′(n).

In another embodiment, the same set of maximum and minimum values H max and H min may be used for all coefficients in the vector H a ′(n). In yet another embodiment, a different set of maximum and minimum values H max and H min may be used for each group of indices.

The constrained coefficients H a (n) are then used by adaptive filter 430 to update the coefficients H a ′(n), as shown in equation (7). The constrained coefficients H a (n) are also provided to adjustable FIR filter 260 .

As shown in FIG. 4A , post filter 250 x receives two input signals (one signal s(n) before and one signal e(n) after adaptive filter 230 ) and derives the coefficients H a (n) based on these two input signals. These two input signals are used by suppression parameter calculation unit 410 x to estimate the suppression parameter b(n).

FIG. 5 is a diagram of a channel control unit 240 x , which is a specific embodiment of channel control unit 240 in FIG. 2 . Channel control unit 240 x provides the control signals used to dynamically adjust the echo cancellation such that improved performance may be achieved by echo cancellation system 200 . In an embodiment, if the far-end signal is detected, then (1) the gain of amplifier 224 may be reduced, (2) FIR filter 260 may be enabled, and so on. Conversely, if the near-end signal is only present, then (1) the gain of amplifier 224 may be increased, (2) FIR filter 260 may be disabled, and so on.

In the embodiment shown in FIG. 5 , channel control unit 240 x receives the echo estimate signal x(n) from adaptive filter 230 and the step size signal u(n) from adaptive step size control unit 238 , if this control unit is used to control the updating of adaptive filter 230 . The amount of echo in the near-end signal s(n) may be estimated based on either of these two signals, or based on both signals.

A power calculation unit 510 computes the power P x (n) of the echo estimate signal x(n), and may further average the echo power P x (n). A comparator 512 then compares the (averaged or unaveraged) echo power P x (n) with an echo power threshold T p to obtain a first indicator signal d 1 (n). The comparison to obtain the indicator signal d 1 (n) may be expressed as:

A comparator 514 receives the step size signal u(n), if it is available, and compares this signal with a step size threshold T u to obtain a second indicator signal d 2 (n). The comparison to obtain the indicator signal d 2 (n) may be expressed as:

The indicator signals d 1 (n) and d 2 (n) are provided to a decision unit 516 and evaluated to derive the control signals f FIR (n) and f AMP (n) for adjustable FIR filter 260 and adjustable amplifier 224 , respectively. In an embodiment, these control signals may be derived as follows:

f FIR ⁡ ( n ) = { 1 , if ⁢ ⁢ d 1 ⁡ ( n ) = 1 ⁢ ⁢ and ⁢ ⁢ d 2 ⁡ ( n ) = 1 , and 0 , otherwise , Eq ⁢ ⁢ ( 10 )

and

As shown in equations (8) and (9), if the echo power P x (n) is small (i.e., P x (n)<T p ) and the step size signal is also small (i.e., u(n)<T u ), indicating that only the near-end signal is present, then the control signal f FIR (n) is set to logic high. Otherwise, the control signal f FIR (n) is set to logic low. The adjustment of FIR filter 260 based on the control signal f FIR (n) is described below.

As shown in equations (8) and (9), if the echo power P x (n) is large (i.e., P x (n)≧T p ) and the step size signal is also large (i.e., u(n)≧T u ), indicating that the far-end signal exists, then the control signal f AMP (n) is set to logic high. A smaller gain (g(n)=g 1 ) may then be used for adjustable amplifier 224 . Otherwise, the control signal f AMP (n) is set to logic low, and a larger gain (g(n)=g 2 , where g 2 >g 1 ) may be used for the adjustable amplifier.

›DESCRIPTION OF THE SPECIFIC EMBODIMENTS · 5 of 6

In the above embodiment, the step size signal u(n) is used to derive the indicator signal d 2 (n), which is then used to derive the control signals f FIR (n) and f AMP (n), as shown in equations (10) and (11). If adaptive step size control unit 238 is not used to control the updating of adaptive filter 230 , then the term d 2 (n) may be ignored in equations (10) and (11) and the control signals f FIR (n) and f AMP (n) may be derived based only on the indicator signal d 1 (n).

FIG. 6 is a diagram of an adjustable FIR filter 260 x , which is a specific embodiment of adjustable FIR filter 260 in FIG. 2 . Within adjustable FIR filter 260 x , a coefficient adjustment unit 610 receives and adjusts the vector of coefficients H a (n) from post filter 250 based on the control signal f FIR (n) received from channel control unit 240 . In an embodiment, the adjusted coefficients H b (n) are derived as follows:

H b ⁡ ( n ) = { δ ⁡ ( n ) , if ⁢ ⁢ f FIR ⁡ ( n ) = 1 , and H a ⁡ ( n ) , otherwise , Eq ⁢ ⁢ ( 12 )

where δ(n) is an impulse vector having the same number of coefficients as the vector H a (n) and is defined as:

=

A FIR filter 612 receives and filters the signal v(n) from noise estimator 242 with the adjusted coefficients H b (n) received from coefficient adjustment unit 610 to provide the signal p(n). FIR filter 612 may be implemented with FIR filter 310 in FIG. 3 . In this case, the signal v(n) would substitute for the signal r(n), the coefficients H b (n) would substitute for the coefficients H a (n), and the signal p(n) would substitute for the signal x(n). If the control signal f FIR (n) is set to logic high (“1”), indicating that only the near-end signal is present, then the adjusted coefficients H b (n) are set to the impulse vector δ(n) and the FIR filtering is effectively omitted. Otherwise, if the control signal f FIR (n) is set to logic low (“0”), indicating that a large amount of echo is detected, then the adjusted coefficients H b (n) are set to the coefficients H a (n) and the filtering is performed based on these coefficients to further suppress echo residue.

FIG. 7 is a diagram of a noise reinsertion unit 270 x , which is a specific embodiment of noise reinsertion unit 270 in FIG. 2 . In this embodiment, the center value H bm (n) of the coefficients H b (n) are provided to a summer 712 and subtracted from a value of 1 to obtain a scalar H bm ′(n)=(1−H bm (n)). The scalar H bm ′(n) is indicative of the amount of noise to be reinserted back and are determined (indirectly) by channel control unit 240 . A multiplier 714 receives and scales the noise estimate signal z(n) received from noise estimator 242 with the scalar H bm ′(n) to provide the noise component z′(n) to be inserted back. This entire process of noise reinsertion is also referred to as “noise paste”. In an embodiment and as shown in FIG. 2 , the noise to be reinserted back is derived from the estimate of the actual noise in the error signal, z(n). The use of the actual noise instead of a pseudo-randomly generated noise may provide improved performance. The noise component z′(n) is then provided to a summer 716 and added to the signal p(n) received from adjustable FIR filter 260 to provide the noise-suppressed signal y(n). The signal y(n) has as much of the remaining echo removed as possible and approximately constant amount of noise.

FIG. 8 is a diagram of an implementation of an echo cancellation system 800 . In this implementation, system 800 includes a digital signal processor (DSP) 810 , a memory 812 , an analog processing unit 820 , a speaker 816 , and a microphone 822 . Digital signal processor 810 may be designed to implement various processing units for echo suppression, such as the processing units shown in FIG. 2 . Memory 812 provides storage for program codes and data used by signal processor 810 . Analog processing unit 820 performs the analog processing and may include D/A converter 212 and power amplifier 214 in the output path and adjustable amplifier 224 and A/D converter 226 in the input path. Digital signal processor 810 may then implement the remaining processing units of system 200 .

The techniques described herein provide improved performance by employing the following mechanisms:

Adjustable gain amplifier 224 . If the speaker is too loud, then the echo will likely be strong with respect to the near-end talk. In this case, the gain of amplifier 224 in the input path may be reduced to a lower gain. Adjustable FIR filter 260 . The response of this FIR filter may be adjusted based on step size signal or double-talk detection. Filter 260 may be used to suppress remaining echo that is not suppressed by adaptive filter 230 and pass through the near-end speech without filtering. Noise reinsertion. The noise level in the output signal y(n) is maintained approximately constant to avoid deleterious effects by subsequent processing units.

The echo suppression techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, software, or a combination thereof. For a hardware implementation, the processing units used to implement any one or a combination of the techniques described herein may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.

For a software implementation, the echo suppression techniques may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in a memory unit (e.g., memory 812 in FIG. 8 ) and executed by a processor (e.g., digital signal processor 810 ). The memory unit may be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art.

›DESCRIPTION OF THE SPECIFIC EMBODIMENTS · 6 of 6

The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

›Tables in the description — 1
δ⁡
(n)

Claims as granted

26 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

3 codes
IPC · International Patent Classification
Section H — Electricity
  • H04M9/08
USPC · US Patent Classification
379/387.1379/406.5

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2002Jan 2003Jul 2003Jan 2004Jul 2004Jan 2005Jul 2005Jan 2006Jul 2006Jan 2007USPTOApplicantNon-final rejectionFinal rejectionRequest for continued examinationNon-final rejectionResponse after non-finalResponse after final
USPTOApplicanthover for detail · click to open
Pendency
4.6 y
1,679 days filing → grant
Office actions
4
non-final + final
Responses
4
1 RCE
Examiner
Sinh Tran
art unit 2615 · TC 2600
Citations: 6 back · 12 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20022004200620082010201220142016201820202022Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock