WO2004021679A2 - Echo detector having correlator with preprocessing - Google Patents
Echo detector having correlator with preprocessing Download PDFInfo
- Publication number
- WO2004021679A2 WO2004021679A2 PCT/GB2003/000745 GB0300745W WO2004021679A2 WO 2004021679 A2 WO2004021679 A2 WO 2004021679A2 GB 0300745 W GB0300745 W GB 0300745W WO 2004021679 A2 WO2004021679 A2 WO 2004021679A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- echo
- detector
- delay
- correlation
- signal
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B3/00—Line transmission systems
- H04B3/02—Details
- H04B3/20—Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other
- H04B3/23—Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other using a replica of transmitted signal in the time domain, e.g. echo cancellers
Definitions
- the invention relates to methods and apparatus for detecting delays in echoes, to echo cancellers having such apparatus, to central offices having such echo cancellers for use in telecommunications networks, to methods of providing telecommunications services using the above, to corresponding software and to systems incorporating the above, and corresponding methods.
- Hybrid circuits located at terminal exchanges or in remote subscriber stages of a fixed network are the principal sources of electrical echo.
- Subscriber lines in a fixed network are normally two-wire lines for reasons of economy.
- Interexchange lines are four-wire lines.
- echo cancellation systems have been implemented without delay detection, it will play an ever more important role in echo canceller (EC) systems for the following reasons.
- the actual echo delay can be exaggerated by newer cascaded networks.
- ATM Asynchronous Transfer Mode
- GSM Global System for Mobile
- the round trip could be 80-200ms. This would make the echo more pronounced and more noticeable.
- the echo tails are delayed beyond the scope of the EC capability, and the EC is not switched off temporarily, it could have very undesirable effects such as distortion, or additional unpleasant sounds, such as howling.
- the EC as a system may rapidly become unstable.
- the EC • determining if the delay is within the required range, so that amongst other things, the EC can be adapted or switched off rapidly if it is out of range, and
- an echo detector having: a correlator for determining a correlation between an incoming signal an echo signal having an echo of the incoming signal, and a preprocesssor for extracting a characteristic pattern from the incoming signal and a characteristic pattern from the echo signal, the correlation being determined by correlating the characteristic patterns, and the detector being arranged to detect the echo from peaks in the correlation.
- characteristic pattern is not intended to encompass a low pass filtered version of the original signal such as that obtained in the above mentioned prior art by down sampling.
- Advantages of using a characteristic pattern for the correlation can include improved robustness to noise, reduced computational load, or larger correlation window size. These advantages can arise because the characteristic pattern is easier to correlate than the original signal.
- the pattern can contain more of the information in the signal which is useful for the correlation, and less of the information which is not useful for the correlation.
- the correlation output can provide clearer, more distinct peaks, with fewer false peaks to mask the peaks resulting from the echoes. Also, this can enable more down sampling before correlation, to reduce the computation load of the correlation, which is particularly useful for coarse estimation of echo delay.
- the characteristic patterns can be based on a quantised average of the respective signal or its power.
- the quantising serves to enhance the correlation peaks
- the averaging can serve to limit the number of transitions, to give more robustness to noise.
- .the quantisation can be into a binary form, using a threshold.
- the characteristic patterns are down sampled before the correlation. This can reduce the computation load. In many cases, such patterns can be down sampled much more than the original signals without undue loss of reliability of correlation. Such down sampling still causes a loss of precision of echo delay estimation, and so may be limited in some applications.
- the detector is arranged to determine a delay of the echo from the correlation.
- the correlation is arranged to be carried out recursively, using results obtained for preceding correlation values for determining a current correlation value.
- N is a number of samples in a correlation window.
- N can be a value in the order of hundreds in a typical application. Consequently there may be a corresponding reduction in computation delay.
- the load may now be proportional to the number of samples correlated, rather than the square of the number of samples.
- there may be some loss of accuracy especially in the first few frames if the algorithm produces an approximated correlation value rather than precisely the same result as a non recursive algorithm. For many applications, the dramatic drop in computational load, and thus faster output of results is much more valuable.
- the correlator is arranged to derive a current correlation component by correlating a current sample value of the characteristic pattern of the echo signal and a window of samples of the characteristic pattern of the incoming signal.
- This feature helps enables the computational load to be kept low, by reducing the number of multiplications.
- the characteristic patterns can be based on zero crossings of the respective signal. This can also enable the correlation peaks to be enhanced.
- the characteristic patterns can be based on auto correlation functions of the respective signal. This can also enable the correlation peaks to be enhanced.
- the characteristic patterns can be based on pitch.
- An advantage of using pitch for the correlation is that it can enable a more accurate and reliable detection of the echo.
- the detection can be more independent of signal level, more robust in the presence of noise.
- the correlation update rate can be reduced further, since human pitch normally does not change as rapidly as the entire signal. Typically it will not change over periods of 25-60 msecs This can outweigh the additional computational load and delay involved in determining the pitch.
- correlator here is intended to encompass anything which determines a similarity between the pitch of the two signals. Where the signal is an unvoiced part of speech, with no pitch, this still can be used for the correlation, since the correlator can distinguish occurrences of similar lack of signal from non similar higher level signals.
- Another aspect of the invention provides an echo canceller having such a detector.
- the canceller is arranged to be suppressed depending on an output of the echo detector.
- the canceller is arranged to adapt depending on an output of the echo detector.
- the canceller has an adaptable range of echo delay, the range being adaptable depending on an output of the echo detector.
- the detector or the echo canceller is in the form of software. This recognises the value of software as a component which may have great value and be independently traded, separately to hardware components.
- Another aspect provides an echo detector having a coarse echo delay estimator and a fine echo detector, each arranged to detect echoes having delays within a given range, the range of the coarse detector being wider than the range of the fine detector, the range of the fine detector being adjustable according to an echo delay determined by the coarse echo delay estimator.
- a centre of the range of the fine detector is adjustable.
- the coarse echo delay estimator has a correlator for determining a correlation between an incoming signal an echo signal having an echo of the incoming signal, and a preprocesssor for extracting a characteristic pattern from the incoming signal and a characteristic pattern from the echo signal, the correlation being determined by correlating the extracted characteristic patterns, and the detector being arranged to detect the echo from peaks in the correlation.
- the characteristic pattern is based on a quantised average of the signal or its power.
- a delay value output by the coarse echo delay estimator is compared to a cu ⁇ -ent range of the fine echo detector, and the result is used to confirm an echo detection output of the fine echo detector.
- Another aspect provides an echo canceller having the above echo detector, and arranged to suppress a cancellation action on the basis of an output of the coarse echo delay estimator.
- the canceller has a filter for filtering the incoming signal to model the echo, a centre of a window of the filter being adjustable on the basis of an output of the coarse echo delay estimator.
- the centre of the window is adjustable by providing an adjustable delay for delaying the incoming signal before it is input to the filter.
- Other aspects provide for methods or software corresponding to any of the apparatus or system aspects, or combinations or components of the above aspects. Other advantages than those set out above may be apparent to those skilled in the art, particularly over other prior art of which the inventor is not yet aware. The features of dependent claims within each aspect can be combined with each other or with other aspects of the invention as would be apparent to those skilled in the art.
- Fig 1 shows in schematic form echo cancellers in a known network
- Fig 2 shows in schematic form an arrangement of an echo canceller having a delay detector
- Fig 3 shows a delay detector,._according to an embodiment of the invention, having a correlator using extracted characteristic patterns
- Fig 4 shows an embodiment in which the extracted patterns are quantised average powers
- Fig 5 shows another embodiment showing how the quantised average power can be extracted and used
- Fig 6 shows another embodiment in which the extracted patterns are zero crossings
- Fig 7 shows another embodiment in which the extracted patterns are auto correlation functions
- Fig 8 shows another embodiment in which the extracted patterns are the pitch of the signals
- Fig 9 shows an example of how the pitch can be extracted.
- Fig 10 shows an embodiment of an echo canceller having a coarse delay estimator and a fine echo delay detector
- Fig 11 shows more details of a delay detector implementation according to another embodiment
- Fig 12 shows more details of an implementation of the recursive algorithm shown in
- Figure 11 shows an example of how to implement a classifier for processing the correlation results.
- FIG. 1 shows an application of the echo canceller of the invention in a conventional telephone network.
- a long-distance telephone network 50 is shown, for making a telephone call from one subscriber to another.
- a subscriber's handset 90 is coupled to a private branch exchange (P B X) by a 2-wire subscriber line 45.
- P B X a private branch exchange
- a hybrid coil 60 is used to convert between the two wire subscriber line and a 4 - wire line to the Central Office or local exchange 51.
- the conversion to 4-wire enables the voice signals in two directions to be a separated, which is useful for digitising and further processing.
- Each P B X may support tens or hundreds of subscribers, and will have sufficient hybrid coils according to how many calls are to be supported simultaneously.
- the central office contains the echo canceller 70, and a switch 80. For the sake of clarity, many other functions of the Central Office are not illustrated. There may be many echo cancellers provided, according to how many calls are to be handled simultaneously. Conventionally, each Central Office concentrates many calls on to one or more or trunk routes 130 which make up the long distance telephone network 50. At the far end, similar elements and functions are provided. A far end Central Office 52 contains an echo canceller 110 and a switch 100. 4-wire lines 150 are provide to connect the Central Office to one or more P B Xs 53. Each will contain a hybrid 120. Two-wire subscriber lines 160 couple handsets 165 to the hybrid.
- the echo cancellers are intended to cancel echoes arising from the hybrids at each end of the circuit, in principle, they can be located anywhere in between the hybrids. They are in practice usually located in a central office where many lines are switched and concentrated. This is convenient to enable them to be shared to make more efficient use of limited processing resource, and for ease of access.
- FIG 2 showing principal elements of an echo canceller with a delay detector DP
- a near end signal x(n) has an echo added by a hybrid 60.
- the hybrid has an impulse response h(n).
- An adder 210 is shown to represent schematically the addition of the echo r(n) to the near end signal, resulting in an echo signal s(n).
- the principal elements of the echo cancellor shown in figure 2 are an adaptive filter 200, a double talk/EPC (echo path change) control element 230, a delay detector (DD) 240, and bypass switch 250, and a subtractor 220.
- the adaptive filter creates a model echo r(n) from an incoming signal y(n) also termed a far end signal.
- the model echo and the echo signal are fed to the subtractor.
- the model echo is subtracted from the echo signal to produce an echo cancelled signal e(n).
- the bypass switch 250 enables the echo signal to bypass the subtractor. This can be achieved by a switch before the subtractor, or a switch after the subtractor, as would be well known to those skilled in the art.
- the bypass switch is controlled by the delay detector or the double talk/EPC control element. In both cases, the purpose is to avoid or reduce distortion in particular circumstances. Other detectors not shown may also trigger a bypass, such as tone detectors.
- the delay detector can also be arranged to influence the adaptive filter.
- the delay detector is arranged to receive the echo signal from the near end and the incoming signal from the far end. It is arranged to carry out the correlation between these signals to detect echoes and determine echo delays.
- Figure 3. showing an embodiment of the delay detector having a characteristic pattern extractor.
- Figure 3 shows in schematic form principal elements of a delay detector according to an embodiment of the invention. This embodiment can be used to implement the delay detector of figure 2.
- the incoming signal and the echo signal are fed to preprocessors in the form of extractors 72, 74 for extracting a characteristic pattern from the echo signal and the incoming signal respectively.
- the values of the characteristic pattern extracted are fed to a correlator 68.
- the output of the correlator is fed to a detector 59 for detecting consistent peaks in the correlation.
- the consistent peaks provide an indication of echoes, and the index of each consistent peak indicates the echo delay for each echo.
- Figure 4 is as figure 3, but where the characteristic pattern is the quantised average power, extracted from the incoming signal and the echo signal respectively by elements 725 and 735.
- a more detailed embodiment is shown in figure 5.
- a quantised average power is determined for each of the incoming signal and the echo signal, by elements 600 and 601 respectively.
- the output of these elements is a binary pattern.
- Components making up this element are shown for element 600 and omitted for element 601, for the sake.pf clarity.
- These components include a buffer 610 for converting a serial stream of 8kHz samples into a frame. This is effectively a serial to parallel convertor.
- each vector is output at the 8kHz sampling rate, (or optionally a slower rate) and so each vector contains a fixed number of samples N which appeared in the preceding vector, but are shifted one place, together with one new sample. In other words there is N-l samples of overlap between the vectors. In a typical example, N is 128.
- each sample in each vector is squared to make them all positive and proportional to signal power, in element 620.
- the squaring function can be carried out recursively using the results from the squaring of the preceding vector, and adding a square of the most recent sample, and subtracting the square of the oldest sample.
- an average value for the whole vector is obtained by summing these squares, and dividing by the length of the vector .
- this average value is quantised by threshold element 650. (Optionally this value can be converted to a dB value before thresholding.) This produces a binary value.
- the quantisation could be multi level, using multiple thresholds.
- the threshold level can be adaptable, and is selected to give enough transitions to give a good pattern for reliable correlation. In a typical example this threshold could be -40dB, equivalent to a barely audible speech level.
- the averaging over a whole vector of N samples helps reduce susceptibility to noise.
- the power could be averaged without quantisation, or quantised without averaging, but in practice, the combination produces better results.
- signal level or some value derived from signal level could be used other than signal power.
- both quantised average powers can be downsampled by element 660, in other words, decimated, to reduce the computational load in the correlator.
- the amount of decimation may depend on the accuracy of delay value required. For a coarse echo delay detector, decimation may be by a factor of up to 64, and still have enough information to give reliable correlation.
- the use of a characteristic pattern rather than the original signal enables much more decimation than could be achieved using the original signal. This enables the correlation window to be much longer for a given computational load.
- the correlation window length determines the range of echo delays that can be detected, which is a significant constraint in previous echo detectors.
- the correlator 690 can be any conventional correlator, but preferably is a recursive type as described below in more detail.
- Element 700 finds consistent peaks in this vector. This can be done using the classifier described below with reference to figures 11 and 13, or any type of conventional peak detector.
- the outputs of the peak detector are a flag to indicate a peak, and an index indicating the position of the peak value in the vector.
- This index is multiplied by the downsampling factor using element 710, to output a delay value.
- these outputs can be used in many applications. In echo cancelling applications, they can be used to vary an adaptive filter, by varying the coefficients, or delaying the input for example, or suppressing the cancellation by a bypass or similar operation.
- Figs 6 and 7. other examples of characteristic patterns.
- Figure 6 corresponds to figure 4 or figure 3, where the characteristic pattern is another quantized pattern, this time based on zero crossings of the signals. Corresponding reference numerals have been used as appropriate.
- a zero crossing extractor 745 operates on the incoming signal, and a similar extractor 750 operates on the echo signal.
- Figure 7 also corresponds to figure 4 or figure 3, where the characteristic pattern is based on an auto correlation function. This may be thresholded to give a quantised pattern.
- Corresponding reference numerals have been used as appropriate.
- a first auto correlation function 755 operates on the incoming signal, and a similar one 760 operates on the echo signal.
- Figure 8 showing an embodiment of the delay detector having a pitch extractor.
- Figure 8 shows in schematic form principal elements of a delay detector according to an embodiment of the invention. This embodiment can be used to implement the delay detector of figure 2.
- the incoming signal and the echo signal are fed to extractors 770, 765 for extracting a pitch value from the echo signal and the incoming signal respectively.
- the values of the pitch are fed to a correlator 68.
- the output of the correlator is fed to a detector 59 for detecting peaks in the correlation.
- the consistent peaks provide an indication of echoes, and the index of each peak indicates the echo delay for each echo.
- pitch extraction As described in US patent 6,035,271 to Chen, pitch extraction has been well known as an essential part of speech signal processing for decades. Traditionally, pitch is defined as the fundamental frequency of the voiced sections of a speech signal. Three methods are typically used for pitch extraction: autocorrelation, cepstrum, and subharmonic summation, as described in text books on the subject such as Wolfgang J. Hess, "Pitch Determination of Speech Signals Algorithms and Devices" Springer- Verlag, Berlin, 1983; and L. R. Rabiner and R. W. Schafer, “Digital Processing of Speech Signals", published in 1978, ISBN 0-13-213603-1.
- an auto correlation function (ACF) method is preferred. This involves comparing the samples from the frame with a delayed version of the same frame, and determining how closely they match. The matching can be done by multiplying each sample with a respective delayed sample, and summing the products to obtain one correlation value for each delay. Where there are N samples in the frame, the correlations can be carried out with up to 2N different offsets or delays. To obtain a complete correlation profile, a con-elation value should be obtained for each of these 2N different offsets. This can be implemented using a buffer 405, then feeding a frame to the ACF function 410. Any peaks in this correlation profile can represent pitch periods, if the peaks are above a certain threshold, and the offset or delay that results in the peak, is the pitch period value.
- ACF auto correlation function
- the profile is analysed by element 430 to determine if there are any peaks that would indicate the presence of a pitch period. Provided the peak has a magnitude of greater than a threshold such as one-third of the normalised maximum signal power, determined by element 440, the decision is made that a pitch period is present in that frame.
- the normalised maximum signal power may be represented as R(0), as shown in element 420 in the figure. The result in terms of a quantized value for the presence of a pitch period is then output.
- a value for the pitch period is output by element 460, in terms of the offset , also called index, at which the peak was detected.
- the two pitch period signals extracted from the incoming signal and the echo signal are then correlated, to find consistent peaks corresponding to echoes.
- canceller having fine echo detector and coarse echo delay estimator Figure 10 shows in schematic form elements of an echo canceller according to an embodiment of the invention, similar to the arrangement shown in figure 2. Corresponding reference numerals have been used where appropriate.
- the main difference is the delay detector, 268 which has a fine echo delay detect element 265 and a coarse echo delay estimate element 260.
- the coarse echo estimate element is arranged to determine an echo delay from the echo signal and the incoming signal. This can be implemented using a correlation element or optionally using other well known ways for estimating delays. An example of how it can be implemented is described above with reference to figure 5.
- the delay estimate output from this element is fed to a delay element 270, to adjust a delay applied to the input of the adaptive filter 200 derived from the incoming signal.
- This has the effect of altering the centre of the filter window, enabling modelling of echoes having a range of delays around the centre delay.
- Other ways of achieving this are readily available, including altering the filter coefficients directly on the basis of the estimated delay value, or altering the filter window such as by altering the sampling rate.
- the outputs of the fine delay are likewise used to control the delay. This can enable finer adjustment of the delay.
- the inputs to the fine echo delay estimate element are the echo signal and the delayed version of the incoming signal.
- the fine detector may be implemented using a correlation method, or alternative known methods.
- the coarse estimator has a much wider range, and much greater subsampling to reduce computation load, than the fine detector.
- the fine detector is more concerned with accuracy of the delay value, and subsampling reduces the accuracy. Since the fine detector has an adaptable centre of its range, the breadth of the range can be arranged to be much shorter. This range is proportional to the correlation window length. The computational load can be reduced for the fine detector by having a much shorter correlation window, instead of subsampling heavily.
- the outputs of the delay detector can be used for adjusting the delay 270, and/or for suppressing the cancellation if the delay detector determines there is no echo, or it is out of range (also called out of band).
- a bypass switch 220 is provided, to bypass subtractor 220 but alternatives are conceivable, including interrupting the output of the adaptive filter for example.
- the "Inband/Outband" flag output by the fine detector and the delay value output by the coarse estimator are combined as follows. If the fine detector flag shows inband, and this is confirmed by the echo delay estimate of the coarse estimator, then the bypass is not operated. If the flag indicates outband, and the delay estimate is invalid or out of range, then the bypass is operated. If there is a conflict, i.e. inband but out of range, or outband but in range, then the default is that the bypass is operated, to avoid disturbing effects such as howling.
- inbandl024 is HI (i.e. there is a delay >128ms but ⁇ 1024)
- the small DD128 can be moved to there, centred or bypassed switch if they don't want to use the DD128 else go to bypass switch
- the subsampling factor can be as high as 64
- the correlation window can be 128 samples long
- the range can extend to 1024 msecs, well beyond the usual limit of 128msecs of known systems (this increase the range of the delay detector by factor of 8 with practically the same amount of computation as a 128msec range detector).
- FIG. 11 More details of one example of how to implement the detector 75 for detecting peaks in the correlation, and then classifying the peaks, is shown in Figure 11.
- This arrangement can be used as a complete delay detector, or as a fine detector, or as a coarse delay estimator.
- the choices of characteristic pattern, of correlation frame length and of downsampling factor, and of sophistication of the classifier, can be made to suit the application.
- To detect distinct peaks a time margin around the highest peak can be used. A next highest peak outside the time margin is detected. Other peaks within the time margin are disregarded. This takes account of the common situation of an echo causing several closely spaced peaks in the correlation. The widely spaced peaks can represent echoes with widely differing delays.
- the peaks are fed to a classifier for classifying the peaks as shown in figure 11.
- the classification may include whether the peaks represent an echo which is suitable for cancellation, or periodic signals or other artefacts which might cause the echo canceller to become unstable, or degrade its output.
- inputs to the delay detector include an echo signal from the near end (NE), and an incoming signal from the far end (FE).
- the outputs include an inband / outband flag to indicate an echo which is suitable for cancellation, and one or more delay values corresponding to the echo or echoes detected.
- the echo signal from the near end (NE) is fed to a characteristic pattern extractor 11.
- the output is downsampled (decimated) by element 500 (having a decimation factor D, which can be 4 in one example). If the decimation is by a factor of 4, then for an original sampling rate of 8kHz, becomes a decimated sampling rate of 2kHz. This enables a frequency range of 1kHz to be represented.
- the incoming signal is similarly fed to a characteristic pattern extractor 10.
- the pattern output is fed to a downsampling element 510.
- Both downsampled characteristic patterns are fed to a recursive correlator 16 to give a cross correlation factor (CCF).
- CCF cross correlation factor
- a buffer and overlap function 14 is provided before input to the correlator.
- the buffer function enables a window of consecutive samples of the pattern to be presented as a vector to the correlator.
- the overlap indicates that consecutive vectors are formed from overlapping windows of samples.
- the echo signal pattern is fed to the correlator via a resampling element 15.
- This provides a delay to synchronise the signals, and reflects the correlation update rate, M which may be lower than the decimated sample rate to reduce the calculation load.
- No buffering is provided for this signal, since the recursive correlator can operate on just the current sample value of the characteristic pattern of the echo signal, without necessarily needing a vector of consecutive samples.
- An automatic gain control stage may be provided, (not shown in this figure).
- a modulus of the vector produced by the correlator is derived and fed to classifying stages 17-23,27.
- the modulus is derived so that positive or negative correlation peaks have the same effect.
- An updated vector is fed to the classifying stages every M samples. For each vector, first, a maximum and index finder 17, is used for determining a maximum peak in the entire vector, and a corresponding index (which represents the delay at this peak). These are used to control a series of vector selectors 18, 20,
- the vector may be divided into quarters or some other fraction. A first quarter can be centred on the index of the maximum peak, and other quarters or parts of quarters derived from the index of the maximum peak.
- Vector selectors 18, 20, 22 and so on are each used to carry out this segmentation, and feed the selected part of the vector to their associated maximum and index elements 19, 21, 23.
- the delay value represented by the index of the respective peak is derived by determining a product of the decimation factor and the index. Where multiple echoes are detected, multiple delay values can be output by the logical state machine.
- the logical state machine may have other inputs for controlling the flag output. Examples include the EPC detector 24, the double-talk detector 25 and the FE and NE activity detector 26.
- a tone detector 520 may be useful so that if a tone is detected, the state machine should be disabled or indicate that the correlator output cannot distinguish between echo or no echo.
- the flags can be arranged to indicate a "don't know" condition, and any delay value will be unreliable in this case. Normally the classifier will show no echo, because the correlator output will not show a sufficiently distinct peak. But this may mask the fact that there is an undetected echo.
- the correlator may be a recursive correlator, and such a correlator will now be described in more detail.
- the cross-correlation of the two signals NE and FE is calculated as in following equation for the correlation vector, termed the cross correlation factor ccf.
- FIG 12 reference numerals corresponding to those in figure 11 where appropriate.
- the echo signal and incoming signal are processed as shown in figure 11 up to the point where they are input to the recursive correlator.
- the incoming signal in the form of a vector output by the buffer and overlap element 14 is fed to a multiplier 30.
- the echo signal as output by the resampling element 15 is amplified by a constant factor 1/Q in element 31. This result is fed to the multiplier and multiplied by the incoming signal vector. This produces an instantaneous co ⁇ elation vector, but only in respect of the current echo signal sample.
- Resampling is effectively for synchronising the inputs of the correlator, since the buffer and overlap element introduces a delay. Resampling also effectively decimates the signal further, by a factor of M, to match the reduced rate of the output of the buffer and overlap element.
- the instantaneous correlation vector is added to preceding instantaneous correlation vectors.
- an adder 32, an amplifier 33 and a delay element 34 are provided.
- the instantaneous correlation vector is added to a delayed version of the output of the adder.
- the delayed version is amplified by a constant factor 1-1/Q before input to the adder.
- the amplifiers 31 and 33 may be used for AGC purposes as well.
- the output of the adder 32 may be used to feed an element (not shown) for deriving a modulus of the vector.
- Figure 13 showing operation of the classifier.
- Figure 13 shows in schematic form some of the principal steps in the operation of a classifier such as that shown in figure 11.
- the correlation vector is first fed to a modulus function 300 so that positive or negative correlation peaks are not treated differently.
- Step 310 takes the modulus and finds a maximum correlation value and its corresponding delay.
- the next highest correlation value is determined disregarding peaks having delays within a margin around the delay value of the highest peak.
- the peaks are classified by taking a ratio of the highest con-elation value and the next highest correlation value.
- the ratio is thresholded and if it exceeds a threshold, at step 350, a delay value is derived and output. It is derived by generating a product of the index and the decimation factor D.
- the flag is set to inband. Although it is possible to look for further peaks, if the threshold ratio is around 1.5 or greater, there will be limited benefit for echo cancellation applications at least, in looking for lower peaks. In contrast, if the threshold is not exceeded, it is more worthwhile looking for the ratio of the two next highest peaks. Hence at step 370, a ratio of the second and third highest peaks is derived. At step 380, it is compared to a threshold, typically but not necessarily the same threshold as before. If the threshold is exceeded this time, two delay values are output at step 390, corresponding to the two highest peaks. As before, they are derived by multiplying the index value con-esponding to the peak, with the decimation value D. Also, at step 360, the flag is set to "inband”. If the threshold is not exceeded, the flag is set to "outband".
- the method can be summarised as follows: a. Take the modules of the CCF vector, i.e.
- D 2-8, i.e. buffer of 128-512 samples for a window size N of 1024 samples. (2-64 for a coarse detector)
- M 1-6, i.e. overlap of 250-255 if the buffer is 256 samples.
- MIPS and memory consumption being very low, i.e. for a fine detector ⁇ 1 MIPS and memory usage of less than lkwords, where the word size depends on the processor.
- these figures can be ⁇ 0.05MLPS and ⁇ .5kWords.
- the echo detection is not restricted to echoes of speech, it can encompass echoes of other signals such as pulses or tones for example.
- the tones can include signalling tones of single or multiple frequencies, or any other types of tones.
- the echo canceller can be bypassed depending on the echo detector outputs, or in principle, the echo model input to the subtractor can be suppressed.
- the adaptive filter can be adapted using the echo delay values, and the correlation peak values, or shape. Additionally, the far end signal can be delayed before input to the adaptive filter, to enable a simpler, faster and more efficient filtering operation.
- the delay value from the delay detector would play a more important rule since, if echo delays (in other words the EC tails) lie in a different range, say from 128ms to 256ms (for example) the same 128ms filter length (and thus the same computational load) can still be used by just delaying the FE signal by estimated delay and putting the 128ms filter on that region or range. This is valid providing all of the echoes (hybrid(s) tails) are in the given range i.e. 128-256ms.
- the delay detector and the echo canceller and other functions can be implemented in well known programming languages such as C or Ada, or others, as would be well known to those skilled in the art.
- the resulting code can be cross-compiled into a lower level language appropriate to run on a DSP, such as the fixed or floating point types made by TI or Motorola or others, or on a general purpose microprocessor, or any type of firmware, or programmable or fixed hardware, or any combination.
- the software can in principle be implemented as instructions or as combinations of data, instructions, rules, objects and so on.
- an echo detector correlates between an incoming signal an echo signal to determine echo delay.
- a preprocesssor extracts a characteristic pattern such as a binary pattern derived by thresholding an averaged power of each signal. This pattern is down sampled then used for the con-elation, and delay is deduced from consistent peaks in the correlation. Advantages include reduced computational load, or larger correlation window size, because the characteristic pattern is easier to correlate.
- the quantising can enhance the correlation peaks, and the averaging can limit the number of transitions, to give more robustness to noise.
- An echo canceller has a coarse echo delay estimator and a fine echo delay estimator. The coarse estimated delay is used to adjust a delay detection range of a fine delay detector having a narrow range. The output of the fine detector is used to adjust or suppress the adaptive echo canceller.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2003294208A AU2003294208A1 (en) | 2002-02-21 | 2003-02-21 | Echo detector having correlator with preprocessing |
EP03790991A EP1588536A2 (en) | 2002-02-21 | 2003-02-21 | Echo detector having correlator with preprocessing |
CA002513224A CA2513224A1 (en) | 2002-02-21 | 2003-02-21 | Echo detector having correlator with preprocessing |
US10/537,105 US20060140392A1 (en) | 2002-02-21 | 2003-02-21 | Echo detector having correlator with preprocessing |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0204057.4 | 2002-02-21 | ||
GBGB0204057.4A GB0204057D0 (en) | 2002-02-21 | 2002-02-21 | Echo detector having correlator with preprocessing |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2004021679A2 true WO2004021679A2 (en) | 2004-03-11 |
WO2004021679A3 WO2004021679A3 (en) | 2006-03-30 |
Family
ID=9931474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB2003/000745 WO2004021679A2 (en) | 2002-02-21 | 2003-02-21 | Echo detector having correlator with preprocessing |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060140392A1 (en) |
EP (1) | EP1588536A2 (en) |
AU (1) | AU2003294208A1 (en) |
CA (1) | CA2513224A1 (en) |
GB (1) | GB0204057D0 (en) |
WO (1) | WO2004021679A2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007067125A2 (en) | 2005-12-05 | 2007-06-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Echo detection |
WO2007123727A2 (en) * | 2006-04-19 | 2007-11-01 | Tellabs Operations, Inc. | Echo detection and delay estimation |
WO2007123730A1 (en) * | 2006-04-19 | 2007-11-01 | Tellabs Operations, Inc. | Echo detection and delay estimation |
EP2043278A1 (en) | 2007-09-26 | 2009-04-01 | Psytechnics Ltd | Signal processing |
WO2009070073A1 (en) * | 2007-11-29 | 2009-06-04 | Telefonaktiebolaget Lm Ericssom (Publ) | A method and arrangement for echo cancellation of voice signals |
EP2493167A1 (en) * | 2011-02-28 | 2012-08-29 | QNX Software Systems Limited | Adaptive delay compensation for acoustic echo cancellation |
WO2013184130A1 (en) | 2012-06-08 | 2013-12-12 | Intel Corporation | Echo cancellation algorithm for long delayed echo |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8457614B2 (en) | 2005-04-07 | 2013-06-04 | Clearone Communications, Inc. | Wireless multi-unit conference phone |
EP1887708B1 (en) * | 2006-08-07 | 2012-09-19 | Mitel Networks Corporation | Delayed adaptation structure for improved double-talk immunity in echo cancellation devices |
EP2122962B1 (en) | 2007-01-18 | 2013-05-29 | Thomson Licensing | Method for symbol synchronization of received digital signal and digital signal receiver using the same method |
US8050398B1 (en) | 2007-10-31 | 2011-11-01 | Clearone Communications, Inc. | Adaptive conferencing pod sidetone compensator connecting to a telephonic device having intermittent sidetone |
US8199927B1 (en) | 2007-10-31 | 2012-06-12 | ClearOnce Communications, Inc. | Conferencing system implementing echo cancellation and push-to-talk microphone detection using two-stage frequency filter |
US8199681B2 (en) * | 2008-12-12 | 2012-06-12 | General Electric Company | Software radio frequency canceller |
US8625776B2 (en) | 2009-09-23 | 2014-01-07 | Polycom, Inc. | Detection and suppression of returned audio at near-end |
US8462936B2 (en) * | 2011-02-28 | 2013-06-11 | Qnx Software Systems Limited | Adaptive delay compensation for acoustic echo cancellation |
US8379800B2 (en) | 2011-03-29 | 2013-02-19 | Microsoft Corporation | Conference signal anomaly detection |
GB2501234A (en) * | 2012-03-05 | 2013-10-23 | Microsoft Corp | Determining correlation between first and second received signals to estimate delay while a disturbance condition is present on the second signal |
US9198150B2 (en) * | 2013-03-07 | 2015-11-24 | Raytheon Company | Link path delay estimator that combines coarse and fine delay estimates |
GB201309781D0 (en) | 2013-05-31 | 2013-07-17 | Microsoft Corp | Echo cancellation |
US9420114B2 (en) * | 2013-08-06 | 2016-08-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Echo canceller for VOIP networks |
US9270830B2 (en) | 2013-08-06 | 2016-02-23 | Telefonaktiebolaget L M Ericsson (Publ) | Echo canceller for VOIP networks |
JP6349977B2 (en) * | 2013-10-21 | 2018-07-04 | ソニー株式会社 | Information processing apparatus and method, and program |
GB201414352D0 (en) * | 2014-08-13 | 2014-09-24 | Microsoft Corp | Reversed echo canceller |
GB201518004D0 (en) | 2015-10-12 | 2015-11-25 | Microsoft Technology Licensing Llc | Audio signal processing |
CN109643553B (en) | 2016-06-08 | 2023-09-05 | 杜比实验室特许公司 | Adaptive echo estimation and management using sparse prediction filter set |
EP3694230A1 (en) * | 2019-02-08 | 2020-08-12 | Ningbo Geely Automobile Research & Development Co. Ltd. | Audio diagnostics in a vehicle |
CN112116919B (en) * | 2019-06-19 | 2024-06-04 | 杭州海康威视数字技术股份有限公司 | Echo cancellation method and device and electronic equipment |
CN112530450A (en) * | 2019-09-17 | 2021-03-19 | 杜比实验室特许公司 | Sample-precision delay identification in the frequency domain |
CN113870885B (en) * | 2021-12-02 | 2022-02-22 | 北京百瑞互联技术有限公司 | Bluetooth audio squeal detection and suppression method, device, medium, and apparatus |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4562312A (en) * | 1983-02-17 | 1985-12-31 | At&T Bell Laboratories | Subsampling delay estimator for an echo canceler |
EP0221221A1 (en) * | 1985-10-30 | 1987-05-13 | International Business Machines Corporation | A process for determining an echo path flat delay and echo canceler using said process |
EP0708535A1 (en) * | 1994-05-06 | 1996-04-24 | Ntt Mobile Communications Network Inc. | Method and device for detecting double-talk, and echo canceler |
WO1996027951A1 (en) * | 1995-03-03 | 1996-09-12 | At & T Ipm Corp. | Method and apparatus for reducing residual far-end echo in voice communication networks |
WO1998027668A1 (en) * | 1996-12-19 | 1998-06-25 | Northern Telecom Limited | Method and apparatus for computing measures of echo |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4947425A (en) * | 1989-10-27 | 1990-08-07 | At&T Bell Laboratories | Echo measurement arrangement |
CN1243416C (en) * | 2000-03-27 | 2006-02-22 | 朗迅科技公司 | Method and apparatus for testing calling overlapping by self-adaptive decision threshold |
US6766021B2 (en) * | 2001-03-13 | 2004-07-20 | Adaptive Digital Technologies | Echo canceller |
-
2002
- 2002-02-21 GB GBGB0204057.4A patent/GB0204057D0/en not_active Ceased
-
2003
- 2003-02-21 EP EP03790991A patent/EP1588536A2/en not_active Withdrawn
- 2003-02-21 WO PCT/GB2003/000745 patent/WO2004021679A2/en not_active Application Discontinuation
- 2003-02-21 US US10/537,105 patent/US20060140392A1/en not_active Abandoned
- 2003-02-21 AU AU2003294208A patent/AU2003294208A1/en not_active Abandoned
- 2003-02-21 CA CA002513224A patent/CA2513224A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4562312A (en) * | 1983-02-17 | 1985-12-31 | At&T Bell Laboratories | Subsampling delay estimator for an echo canceler |
EP0221221A1 (en) * | 1985-10-30 | 1987-05-13 | International Business Machines Corporation | A process for determining an echo path flat delay and echo canceler using said process |
EP0708535A1 (en) * | 1994-05-06 | 1996-04-24 | Ntt Mobile Communications Network Inc. | Method and device for detecting double-talk, and echo canceler |
WO1996027951A1 (en) * | 1995-03-03 | 1996-09-12 | At & T Ipm Corp. | Method and apparatus for reducing residual far-end echo in voice communication networks |
WO1998027668A1 (en) * | 1996-12-19 | 1998-06-25 | Northern Telecom Limited | Method and apparatus for computing measures of echo |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101322323B (en) * | 2005-12-05 | 2013-01-23 | 艾利森电话股份有限公司 | Echo detection method and device |
US8130940B2 (en) | 2005-12-05 | 2012-03-06 | Telefonaktiebolaget L M Ericsson (Publ) | Echo detection |
AU2006323242B2 (en) * | 2005-12-05 | 2010-08-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Echo detection |
WO2007067125A3 (en) * | 2005-12-05 | 2007-08-16 | Ericsson Telefon Ab L M | Echo detection |
JP2009518663A (en) * | 2005-12-05 | 2009-05-07 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Echo detection |
KR101300327B1 (en) | 2005-12-05 | 2013-08-28 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | Echo detection |
WO2007067125A2 (en) | 2005-12-05 | 2007-06-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Echo detection |
WO2007123730A1 (en) * | 2006-04-19 | 2007-11-01 | Tellabs Operations, Inc. | Echo detection and delay estimation |
WO2007123727A3 (en) * | 2006-04-19 | 2007-12-27 | Tellabs Operations Inc | Echo detection and delay estimation |
WO2007123727A2 (en) * | 2006-04-19 | 2007-11-01 | Tellabs Operations, Inc. | Echo detection and delay estimation |
EP2043278A1 (en) | 2007-09-26 | 2009-04-01 | Psytechnics Ltd | Signal processing |
US8009825B2 (en) | 2007-09-26 | 2011-08-30 | Psytechnics Limited | Signal processing |
WO2009070073A1 (en) * | 2007-11-29 | 2009-06-04 | Telefonaktiebolaget Lm Ericssom (Publ) | A method and arrangement for echo cancellation of voice signals |
US8538034B2 (en) | 2007-11-29 | 2013-09-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for echo cancellation of voice signals |
EP2493167A1 (en) * | 2011-02-28 | 2012-08-29 | QNX Software Systems Limited | Adaptive delay compensation for acoustic echo cancellation |
CN104364844B (en) * | 2012-06-08 | 2018-12-04 | 英特尔公司 | For the echo cancellation algorithm of long delay echo |
WO2013184130A1 (en) | 2012-06-08 | 2013-12-12 | Intel Corporation | Echo cancellation algorithm for long delayed echo |
CN104364844A (en) * | 2012-06-08 | 2015-02-18 | 英特尔公司 | Echo cancellation algorithm for long delayed echo |
EP2859549A4 (en) * | 2012-06-08 | 2016-04-20 | Intel Corp | Echo cancellation algorithm for long delayed echo |
Also Published As
Publication number | Publication date |
---|---|
GB0204057D0 (en) | 2002-04-10 |
US20060140392A1 (en) | 2006-06-29 |
EP1588536A2 (en) | 2005-10-26 |
AU2003294208A8 (en) | 2004-03-19 |
CA2513224A1 (en) | 2004-03-11 |
WO2004021679A3 (en) | 2006-03-30 |
AU2003294208A1 (en) | 2004-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060140392A1 (en) | Echo detector having correlator with preprocessing | |
US5343522A (en) | Adaptive sparse echo canceller using a sub-rate filter for active tap selection | |
US7003101B2 (en) | Subband echo location and double-talk detection in communication systems | |
JP3228940B2 (en) | Method and apparatus for reducing residual far-end echo in voice communication networks | |
US6269161B1 (en) | System and method for near-end talker detection by spectrum analysis | |
US6928160B2 (en) | Estimating bulk delay in a telephone system | |
US6940973B1 (en) | Method and apparatus for cancelling common mode noise occurring in communications channels | |
KR100316116B1 (en) | Noise reduction systems and devices, mobile radio stations | |
US8139760B2 (en) | Estimating delay of an echo path in a communication system | |
WO1995017784A1 (en) | Method for determining the location of echo in an echo cancellar | |
US6895094B1 (en) | Adaptive identification method and device, and adaptive echo canceller implementing such method | |
Lu et al. | Enhancing echo cancellation via estimation of delay | |
US20080219432A1 (en) | Echo Delay Detector | |
JPS61135239A (en) | Echo canceller | |
JP4345208B2 (en) | Reverberation and noise removal device | |
JPH0865216A (en) | Device for communication for subscriber of communicating partner | |
EP2043278B1 (en) | Signal processing | |
US20040252652A1 (en) | Cross correlation, bulk delay estimation, and echo cancellation | |
US7016487B1 (en) | Digital echo cancellation device | |
KR100324736B1 (en) | Method and circuit for removing sound echo | |
JPH0766756A (en) | Acoustic echo canceler | |
EP1232645B1 (en) | Echo canceller | |
KR100271508B1 (en) | Band power echo reducer for multifrequency signal detectors | |
JP2980141B2 (en) | Center clipper circuit | |
JPH07303067A (en) | Echo canceler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2003790991 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2513224 Country of ref document: CA |
|
WWP | Wipo information: published in national office |
Ref document number: 2003790991 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2006140392 Country of ref document: US Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 10537105 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |
|
WWP | Wipo information: published in national office |
Ref document number: 10537105 Country of ref document: US |