Patent Document

Background of the Invention  
         [0001]    I. Field of the Invention  
           [0002]    The present invention relates generally to echo cancellers. More particularly, the present invention relates to a novel and improved system and method for reducing the chopiness heard in full-duplex systems that use echo cancellers. The teachings of the present invention apply to acoustic echo cancellers, as well as to echo cancellers in networks and other non-acoustic systems.  
           [0003]    II. Description of the Related Art  
           [0004]    Acoustic echo-cancellers (AEC) are used in teleconferencing and hands-free telephony applications to eliminate acoustic feedback between a loudspeaker and a microphone. In a cellular telephone system where the driver uses a hands-free telephone, acoustic echo cancellers are used in the mobile station to provide full-duplex communications. A block diagram of a traditional acoustic echo canceller is illustrated in FIG. 1.  
           [0005]    For reference purposes, the driver is the near-end talker with input speech signal v(n) and the person at the other end of the connection is the far-end talker with input digital speech signal x(n). The speech of the far-end talker is broadcast out of loudspeaker  2  in the mobile telephone. If this speech is picked up by microphone  10 , the far-end talker hears an annoying echo of his or her own voice. The output of microphone  10 , r(n), is a digital signal. Typically the functions performed by microphone  10  may be accomplished by a microphone, which would convert the audio signal to an analog electrical signal and an analog to digital (A/D) converter. The AEC identifies the impulse response between speaker  2  and microphone  10 , generates a replica of the echo using adaptive filter  14 , and subtracts it in summer  12  from the microphone output, r(n), to cancel the far-end talker echo y(n). Since the adaptive filter cannot generally remove all of the echo, some form of echo suppression provided by residual echo suppression element  18  (e.g., a non-linear post processor) is typically employed to remove any residual echo.  
           [0006]    In FIG. 1, the far end talker echo signal y(n) is illustrated as the output of an acoustic echo path element  4 , which is an artifact of the proximity of the loudspeaker  2  and microphone  10 . To the far end talker echo signal y(n) is added noise signal w(n) and near-end speech signal v(n), illustrated by summing elements  6  and  8  respectively. It should be noted that summing elements  6  and  8  and acoustic echo path  4  are artifacts of the mobile environment and are presented for illustrative purposes.  
           [0007]    Adaptive filter  14  uses the far-end speech x(n) as a reference signal. If adaptive filter  14  is allowed to adapt in the presence of v(n), the near-end speech will be added to the error signal e(n), which drives the filter tap coefficient adaptation, corrupting the estimate of acoustic echo path  4 . It is therefore necessary to disable coefficient adaptation when both talkers are speaking, a condition referred to as doubletalk. During doubletalk, residual echo suppression element  18  must also be disabled to prevent corruption of the near-end speech. A doubletalk detector (not shown) typically detects the presence of doubletalk and provides control signals to disable adaptive filter  14  and residual echo suppression element  18  when doubletalk is present.  
           [0008]    As shown in FIG. 2, in prior art echo cancellation systems, residual echo supression element  18  functions to cancel any residual echo by muting (i.e., gating-off) its output whenever an echo is detected by the adaptive filter  14 . This aspect of element  18  is shown in portion “A” of FIG. 2. The upper half of portion “A” of FIG. 2  illustrates the detection of an echo condition resulting from acoustic feedback between loudspeaker  2  and a microphone  10  when the word “HELLO” is spoken by a far-end talker. The lower half of portion “A” of FIG. 2 shows that, as soon as the echo is detected at t 1 , the output of element  18  is muted-off entirely. Thereafter, as soon as the echo ceases to be present at t 2 , the output of element  18  is unmuted.  
           [0009]    In addition, in instances where the output of residual echo supression element  18  is muted because adaptive filter  14  has detected an echo and the double-talk detector simultaneouesly detects double-talk, residual echo supression element  18  will unmute its output during the double-talk period. This aspect of element  18  is shown in portion “B” of FIG. 2. The upper half of portion “B” of FIG. 2 illustrates the detection of a double-talk condition at t 4  at a time when the output of element  18  is being muted as a result of the detection of an echo condition between t 3  and t 4 . The double-talk condition results from simultaneous speech by the far-end and near-end talkers (i.e, the near-end talker is saying “HI” during the time that the far-end talker is saying “HELLO”). The lower half of portion “B” of FIG. 2 shows that, as soon as the double-talk is detected at t 4 , the output of element  18  is unmuted. Thereafter, as soon as the double-talk condition ceases to be present at t 5 , the output of element  18  is muted again. The output of element  18  remains fully muted until the echo resulting from the word “HELLO” spoken by the far end talker ceases at t 6 . Aas soon as the echo ceases to be present at t 6 , the output of element  18  is unmuted.  
           [0010]    Portion “C” of FIG. 2 similarly illustrates an example where the output of element  18  remains unmuted when a double-talk condition is detected between t 7  and t 8 . Thereafter, as soon as the double-talk condition ceases to be present at t 8 , the output of element  18  is muted again because of an ongoing echo condition. The output of element  18  remains fully muted until this echo condition ceases at t 9 , thereby causing muting of the word “UP” from the near-end talker between t 8 , and t 9 . As soon as the echo ceases to be present at t 9 , the output of element  18  is unmuted.  
           [0011]    Referring still to the prior art system of FIG. 1, when the echo component y(n) dominates the near-end speech signal v(n) during particular periods, the near-end speech will be muted out by element  18 . This situation can result in an undesireable chopiness in the audible signal heard by the user. One purpose of the present invention is smooth this chopiness, which can be unpleasant and annoying to the user.  
           [0012]    In addition to be annoying to the user, this chopiness often results in the presentation of an unsmooth energy curve to the vocoder used for encoding the near-end speech signal. In applications where variable rate vocoders are used, the chopiness in the energy curve can cause the vocoder to transmit at the full data rate more often than is necessary, thereby wasting limited system capacity. Thus, it is a further object of the present invention to present a smoother energy curve to the vocoder, thereby improving its performance.  
           [0013]    These problems and deficiencies are recognized and solved by the present invention in the manner described below.  
         SUMMARY OF THE INVENTION  
         [0014]    One aspect of the present invention is directed to a system and method for canceling an echo signal. This aspect of the invention may be used, for example, for removing an abrupt transition in the audible signal that would otherwise occur when the near-end speech signal is dominated by an echo and the output of the non-linear post-processor is being changed from a non-muted to a muted state. According to this aspect of the invention, an input waveform is provided to an acoustic processor, and a determination is made whether the input waveform includes information representative of an echo signal. If the input waveform includes information representative of an echo signal, an output waveform is formed by attenuating a residual waveform with the acoustic processor. The residual waveform is attenuated by an attenuation factor that gradually changes from an initial attenuation value to a final attenuation value during the attenuation step. This aspect of the invention may also be used, for example, for removing the chopiness in the audible signal that would otherwise occur when the near-end speech is dominated by an echo and the output of the non-linear post-processor is being changed for a non-muted to a muted state.  
           [0015]    In accordance with a further aspect, the present invention is directed to a system and method for adjusting an acoustic signal from a muted state to an unmuted state by varying an attenuation factor applied to an acoustic signal by an acoustic processor. This aspect of the invention may be used, for example, for removing the chopiness in the audible signal that would otherwise occur when the end of an echo condition is detected and the output of the non-linear post-processor is being changed from a muted to a non-muted state. According to this aspect of the invention, an acoustic signal is provided to an acoustic processor, and an output waveform is formed from the acoustic processor by adjusting the attenuation factor from the muted state to a first attenuation value associated with the non-muted state. After the attenuation factor is adjusted to the first attenuation value, the output waveform is formed by gradually changing the attenuation factor from the first attenuation value to a second attenuation value. The input waveform is attenuated by a smaller amount when the second attenuation value is applied to the acoustic signal than when the first attenuation value is applied to the acoustic signal. This aspect of the invention may also be used, for example, for removing the chopiness in the audible signal that might otherwise result when a mobile phone is operating in AMPS mode and bursty noise is present. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]    The features, objects and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout and wherein:  
         [0017]    [0017]FIG. 1 is a block diagram of a prior art acoustic echo canceller.  
         [0018]    [0018]FIG. 2 is a timing diagram showing the operation of the prior art residual echo supression element shown in FIG. 1.  
         [0019]    [0019]FIG. 3 is a block diagram of a novel non-linear post processor that functions in accordance with a preferred embodiment of the present invention.  
         [0020]    [0020]FIG. 4 is a flow diagram showing the method of operation of the nonlinear post processor shown in FIG. 3.  
         [0021]    [0021]FIG. 5 is a timing diagram showing the operation of the non-linear post-processor shown in FIG. 3 in instances where echo and double-talk conditions are present.  
         [0022]    [0022]FIG. 6 is a timing diagram showing the operation of the non-linear post-processor of FIG. 3 when bursty noise is present at the far-end talker. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0023]    Referring now to FIG. 3, there is shown a block diagram of an acoustic processor  300  that functions in accordance with a preferred embodiment of the present invention. Acoustic processor  300  is a non-linear post processor that accepts as its input, for example, the error signal e(n) described above in connection with FIG. 1. Acoustic processor  300  includes a switch  310  for varying the state of the processor between an off state and an up/down state. When acoustic processor  300  is operating in its off state, the input signal e(n) is applied to a muting means  320  which functions to completely gate-off the input signal, thereby producing an output signal at the output of processor  300  that is entirely muted off. When acoustic processor  300  is operating in its up/down state, the input signal e(n) is applied to a variable attentuator  330  which produces an output signal by partially attenuating the input signal. The attenuation factor (k) that is applied to the input signal by the variable attenuator  330  is calculated and adjusted using method  400  shown in FIG. 4. As explained more fully below, the variable attenuator  330  has three states, namely UP, DOWN and OFF. These states are alternatively used depending on whether the variable attenuator is ramping-up the attenuation factor (k) being applied to the input signal (k), ramping-down the attenuation factor (k) that is being applying to the input signal e(n), or off.  
         [0024]    Referring now to FIG. 4, there is shown a flow diagram illustrating a method  400  of operation of the acoustic processor shown in FIG. 3. Method  400  is used to control switch  310  (thereby switching the processor between its off and up/down states) and to vary the attenuation factor (k) applied to the input signal by the variable attenuator  330 . Method  400  may be implemented in software using controller  340  in acoustic processor  300 . Method  400  is particularly well-suited for controlling an acoustic processor used for processing signals sent between a base station and a mobile telephone using CDMA modulation. The use of CDMA techniques in a multiple access communication system is well known and disclosed, for example, in U.S. Pat. No. 4,901,307, entitled “SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS,” assigned to the assignee of the present invention and incorporated by reference herein.  
         [0025]    Referring still to FIG. 4, in step  402 , the system tests whether processor  300  is about to begin attenuating the input signal e(n). Step  402  will determine that attenuation of the input signal e(n) is about to begin, for example, when an echo condition is first detected by adaptive filter  14 , when bursty noise is present at the far-end talker or when an echo condition remains present following the end of a double-talk period. If a determination is made in step  402  that the attenuating of the input signal is about to begin, then processing proceeds to step  404  where the state of processor  300  is set to up/down (i.e., switch  310  directs the input signal to variable attenuator  330 ), the state of variable attenuator is set to UP, and the current value of the attenuation factor (k) applied to the input signal by attenuator  330  is set to 0 db. Next, in step  406 , the current value of the attenuation factor (k) is compared to a threshold k up  which is calculated in accordance with equation (1) below: 
           K   up =α(( M* 2 32   *bnS*G   pred )/(12* E )) 0.5   (1) 
         [0026]    where E represents an energy estimate of the input waveform e(n) over M samples, bnS is a background noise scale value associated with the uniformly distributed random noise generator used for generating w(n), and G pred  is the prediction gain of a LPC shaping filter associated with the CDMA modulation used for transmission and reception of the speech signal x(n) between a base station and a mobile station. The constant α is preferably set to 1.0. In alternate embodiments where it is desirable to cause the attenuation of e(n) to ramp-up more quickly, α will preferably be set to a value greater than 1.0. The values bnS and G pred  are preferably calculated as set forth in U.S. Pat. No. 5,646,691, entitled “Noise Replacement Ssytm in an Echo Canceller,” incorporated herein by reference.  
         [0027]    If in step  406  it is determined that the current value of the attenuation factor (k) is not less than threshold k up . then processing proceeds back to step  402 . In cases where a determination was made in the previous iteration of step  402  that the attenuating of the input signal e(n) was about to begin, the current state of variable attenuator  330  will be set to UP, the testing in step  402  will return a NO value and the testing in step  408  (which tests to determine if attenuation of the input signal has just ended) will similarly return a NO value. In such cases, processing thereafter proceeds to step  410  which tests to determine if the current state of the variable attenuator is UP. If the current state of the variable attenuator is UP, then in step  412  the current value of the attenuation factor (k) applied to the input signal is ramped-up. In a preferred embodiment, the attenuation factor is ramped-up an amount equal to −1.5 db/5 msec interval; however, it will be understood by those skilled in the art that the ramp-up amount applied to k in each iteration of step  412  is a matter of design choice and may be greater or less than −1.5 db per step. Next, in step  406 , the current value of the attenuation factor (k) is compared to the threshold k up . If in step  406  it is determined that the current value of the attenuation factor (k) is not less than threshold k up  then the processing loop described above continues to repeat until, as a result of repeated ramping of the value of k in step  412 , the current value of the attenuation factor (k) is determined to be less than the threshold k up  in step  406 .  
         [0028]    When the current value of the attenuation factor (k) is determined to be less than the max of the threshold k up  or gamma (e.g., gamma =30 dB) in step  406 , then in steps  414  and  416 , the state of processor  300  is changed from its up/down to its off state (i.e., switch  310  redirects the input signal from variable attenuator  330  to muting means  320 ), the current value of the attenuation factor (k) is reset to 0, and the state of variable attenuator  330  is set to OFF.  
         [0029]    Thus, in cases where the attenuating of the input signal e(n) is initiated because, for example, an echo condition is first detected by adaptive filter  14 , bursty noise is present at the far-end talker or an echo condition remains present following the end of a double-talk period, the attenuation is ramped-up gradually (in a step-wise manner at −1.5 db/5 msec interval) until the current value of the attenuation factor reaches k up , at which point the input signal is entirely muted. An example of this aspect of the invention is illustrated in FIG. 5 which shows the gradual ramping-up of the attenuation factor (k) starting at t 1  when an echo condition first begins. The gradual ramping-up of the attenuation factor (k) continues from t 1  until t 2 , when the value of the attenuation factor (k) reaches k up . Immediately following t 2 , the variable attenuator  330  is turned off and the input signal is entirely muted (i.e., gated-off). By gradually ramping-up the attentuation factor (k) prior to gating-off the input signal at t 2 , the present invention substantially reduces the “chopiness” in the audible signal that is typically heard by users of prior art echo cancellers. The gradual ramping-up of the attenuation factor (k) when an echo condition first begins is also shown as occuring from t 5  to t 6  in FIG. 5.  
         [0030]    In FIG. 5 there is also shown an example of the operation of the present invention in a case where an echo condition remains present following the end of a double-talk period. In particular, at t 11  the double-talk condition resulting from simultaneous uttering of “HEY” (by the far-end talker) and the beginning of the phrase “WHAT&#39;S UP” by the near-end talker, ceases to exist. However, at this same time, an echo condition remains as a result of, for example, acoustic coupling of speaker  2  and microphone  10 . Gradual ramping-up of the attenuation factor (k) starts at t 11  when the double-talk period ends and the echo condition remains present. The gradual ramping-up of the attenuation factor (k) continues from t 11  until t 12 , when the value of the attenuation factor (k) reaches k up . Immediately following t 12 , the variable attenuator  330  is turned off and the input signal is entirely muted (i.e., gated-off). Significantly by gradually ramping-up the attentuation prior to gating-off the input signal at t 12 , the present invention permits the portion of the phrase “WHAT&#39;S UP” (from the near-end talker) remaining after cessation of the double-talk period to be transmitted through processor  300 , albeit in a partially attenuated form. This result stands in contrast to that achieved by prior art residual echo suppression element  18  (shown in FIG. 2) which, in the identical situation, would entirely gate-off the input signal following cessation of the double-talk period (cessation of the double-talk period occurs at t 8  in FIG. 2) thereby precluding any portion of the phrase “WHAT&#39;S UP” (from the near-end talker) remaining after cessation of the double-talk period to be transmitted through to the far-end talker. In addition, by gradually ramping-up the attentuation factor (k) prior to gating-off the input signal at t 12 , the present invention substantially reduces the “chopiness” in the audible signal that is typically heard by users of prior art echo cancellers.  
         [0031]    Referring again to FIG. 4, in step  408 , the system tests whether processor  300  is about to cease muting the input signal e(n). Step  408  will determine that the attenuation of the input signal e(n) is about to cease, for example, when adaptive filter  14  determines that a previously detected echo condition is no longer present, when previous bursty noise at the far-end talker ceases to be present or when a double-talk period begins during the existence of an echo condition. If a determination is made in step  408  that the attenuating of the input signal is about to cease, then processing proceeds to step  418  where the state of the variable attenuator is changed to DOWN. In step  420 , the system tests to determine if the previous state of the variable attenuator  330  was UP. If so, processing proceeds to step  422  where the state of processor  300  is set to up/down (i.e., switch  310  directs the input signal to variable attenuator  330 ), and the current value of the attenuation factor (k) applied to the input signal by attenuator  330  is set to k down , where k down  is calculated in accordance with equation (2) below: 
           k   down   =B (( M* 2 32   *bnS*G   pred )/(12 *E )) 0.5   (2) 
         [0032]    where E represents an energy estimate of the input waveform over M samples, bnS is a background noise scale value for the uniformly distributed random noise generator used for generating w(n), and G pred  is the prediction gain of a LPC shaping filter associated with the CDMA modulation used for transmission and reception of the speech signal x(n) between a base station and a mobile station. The constant B is preferably set to 1.0. In alternate embodiments where it is desirable to cause the attenuation of e(n) to ramp-down more quickly, B will preferably be set to a value greater than 1.0.  
         [0033]    Next, processing proceeds back to step  402 . In cases where a determination was made in the previous iteration of step  408  that the attenuating of the input signal e(n) was about to cease, the current state of variable attenuator  330  will be set to DOWN, the testing in step  402  will return a NO value and the testing in step  408  will similarly return a NO value. In such cases, processing thereafter proceeds to step  426  which tests to determine if the current state of the variable attenuator is DOWN. If the current state of the variable attenuator is DOWN, then in step  428  the current value of the attenuation factor (k) applied to the input signal is ramped-down. In a preferred embodiment, the attenuation factor is ramped-down an amount equal to 1.5 dB/5 msec interval; however, it will be understood by those skilled in the art that the ramp-down amount applied to k in each iteration of step  428  is a matter of design choice and may be greater or less than 1.5 db per step. Next, in step  430 , the current value of the attenuation factor (k) is compared to 0 db. If in step  430  it is determined that the current value of the attenuation factor (k) is less than 0 db, then the processing loop described above continues to repeat until, as a result of repeated ramping of the value of k in step  428 , the current value of the attenuation factor (k) is determined to be greater than or equal to 0 db in step  430 . When the current value of the attenuation factor (k) is determined to be greater than or equal to 0 db in step  430 , then in step  416  the state of variable attenuator  330  is set to OFF.  
         [0034]    Thus, in cases where the attenuating of the input signal e(n) is terminated because, for example, adaptive filter  14  determines that a previously detected echo condition is no longer present, bursty noise that was previously present at the far-end source ceases to be present or a double-talk period begins during the existence of an echo condition, the attenuation factor is initally set to k down . Thereafter, the attenuation factor is ramped-down gradually (in a step-wise manner at 1.0 dB/5 msec interval) until the current value of the attenuation factor reaches 0 dB. An example of this aspect of the invention is illustrated in FIG. 5 which shows the setting of the attenuation factor to k down  at t 3  when an echo condition first ceases and thereafter the gradual ramping-down of the attenuation factor (k) until t 4  when the attenuation factor (k) reaches 0 db. By gradually ramping-down the attentuation factor until reaching 0 db at t 4 , the present invention substantially reduces the “chopiness” in the audible signal that is typically heard by users of prior art echo cancellers. Examples where, upon cessation of an echo condition, the attenuation factor (k) is intially set to k down  and then gradually ramped-down until it reaches 0 db are also shown as occuring from t 9  to t 10  and from t 13  to t 14  in FIG. 5.  
         [0035]    In FIG. 5 there is also shown an example of the operation of the present invention in a case where a double-talk period begins during the existence of an echo condition. In particular, at t 7  a double-talk condition begins as a result of the phase “HI” being spoken by the near-end talker while the phrase “HELLO” is being spoken by the far-end talker. However, immeidately preceeding t 7  an echo condition already existed as a result of the uttering of the beginning of the phrase “HELLO” by the far-end talker. When the double-talk period first begins during an echo at t 7 ,the attenuation factor (k) is initally set to k down  and then gradually ramped-down until the double-talk period ceases at t 8 . At t 8 , a double-talk period has ended and an echo condition remains present. Normally, as explained above, when an echo condition remains present following a double-talk period gradual ramping-up of the attenuation factor (k) until it reaches k up  begins. However, since at t 8  the attenuation factor (k) is already less than k up  the input signal is simply muted-off at t 8 .  
         [0036]    At the beginning and ends of words, voice segments are typically of low energy but still important for understanding. The smooth transition between states in the present invention allows otherwise unvoiced segments to get through, albeit in an attenuated fashion making the speech more understandable.  
         [0037]    Referring now to FIG. 6, there is shown an example of the operation of the present invention in a case where bursty noise is present at the far-end talker. As shown in FIG. 6, each time a short segment of bursty noise appears at the far-end talker, a condition that is analagous to the echo conditions described above occurs. Thus, at the beginning of each bursty noise segment, the attenuation factor (k) begins ramping-up. However, since each bursty-noise segment is relatively short, the bursty-noise segment ends before the system reaches k up . At the end of each bursty noise segment, the attenuation factor begins ramping-down until it reaches 0 db. Unlike the ramping-down that typically occurs at the end of an echo condition, the ramping-down that occurs at the end of a bursty noise segment does not begin at k down  because, due to the brevity of each bursty noise segment, the attenuation factor (k) usually does not reach k down  during the ramping-up that occurs during the bursty noise segment. This gradual ramping-up and down of the attenuation factor during bursty noise segments stands in contrast to the operation at achieved by prior art residual echo suppression element  18  which, in the identical situation, would entirely gate-off the input signal during each bursty noise segment. By gradually ramping-up and down the attentuation factor (k) for each bursty-noise segment (rather than entirely gating-off the input signal during each such segment), the present invention substantially reduces the “chopiness” in the audible signal that is typically heard by users of prior art echo cancellers.  
         [0038]    Although the preferred embodiments of the present invention have been described above in connection with mobile telephones that use CDMA modulation, it will be understood by those skilled in the art that the present invention may be used for implementing an echo canceller in a mobile telephone system that uses alternative modulation techniques such as, for example, time-division multiple-access modulation systems. Moreover, it will be understood by those skilled in the art that the present invention may be used to improve echo cancellation in acoustic systems other than mobile telephone systems, and that the teachings of the present invention may be used in non-acoustic echo cancellers such as those used in network applications.  
         [0039]    The previous description of the preferred embodiments is provided to enable any person skilled in the art to make or use the present invention. The 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 the use of inventive faculty. Thus, the present invention is not intended to be limited to the methods and apparatuses shown herein but is to be accorded the widest scope consistent with the claims set forth below.

Technology Category: h