GB2439989A - Correlator for signal or noise classification - Google Patents

Correlator for signal or noise classification Download PDF

Info

Publication number
GB2439989A
GB2439989A GB0511163A GB0511163A GB2439989A GB 2439989 A GB2439989 A GB 2439989A GB 0511163 A GB0511163 A GB 0511163A GB 0511163 A GB0511163 A GB 0511163A GB 2439989 A GB2439989 A GB 2439989A
Authority
GB
United Kingdom
Prior art keywords
signal
echo
input
double
talk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0511163A
Other versions
GB0511163D0 (en
Inventor
Adrian Fratila
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TECTEON PLC
Original Assignee
TECTEON PLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TECTEON PLC filed Critical TECTEON PLC
Priority to GB0511163A priority Critical patent/GB2439989A/en
Publication of GB0511163D0 publication Critical patent/GB0511163D0/en
Publication of GB2439989A publication Critical patent/GB2439989A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/02Details
    • H04B3/20Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other
    • H04B3/23Reducing 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
    • H04B3/234Reducing 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 using double talk detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/02Details
    • H04B3/20Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other
    • H04B3/23Reducing 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Telephone Function (AREA)

Abstract

To reduce the number of multiplication and addition steps, in determining an average correlation coefficient, an accumulator generates an accumulated output combining two or more differently delayed components derived from a first input, and a dot product multiplier makes a dot product of the accumulated output with a second input. By pre-adding the differently delayed versions, the number of multiplications and additions can be reduced. For multiplications the reduction is from NxN to N where N is the number of coefficients. This has applications in speech detection, echo cancellation, image processing and others where speed and efficiency of calculation is important.

Description

<p>1 2439989</p>
<p>TECTEON PATENT APPLICATION I0</p>
<p>CORRELATOR FOR SIGNAL OR NOISE CLASSIFICATION</p>
<p>RELATED APPLICATIONS</p>
<p>This application is related to UK patent application no.0125386.3 entitled "Discriminator for echo canceller", and to UK patent application no.0 125387.1 entitled "Discriminator for echo-canceller using far-end signal" which are hereby incorporated by reference.</p>
<p>FIELD OF THE INVENTION</p>
<p>The invention relates to methods and apparatus for determining an average correlation coefficient, to echo cancellers, to speech detectors, to software for controlling adaptable filters, to systems for switching telephone calls incorporating echo cancellers, to corresponding methods, to software for carrying out the methods and to systems incorporating the above, and methods of using such systems.</p>
<p>BACKGROUND</p>
<p>It is well known to distinguish between penodic or quasi periodic signals like speech, and noise. This is useful in applications such as speech recognition, image processing, pattern recognition, and echo cancellation. Many techniques are known, including power level thresholding and correlation. Some explanation of correlation now follows.</p>
<p>In order to measure the similarity between two signals the cross correlation coefficients can be calculated for those signals and peak coefficients based on their amplitudes. (See figures 4 and 5). If the peak amplitudes have large values it means that the signals are very similar (fig 5, graph 2). The first peak coefficient index gives the delay between the two signals. If the peak amplitudes are small and/or random that means that the signals are uncorrelated (fig 4, graphs 2 and 4).</p>
<p>In the case of auto correlation to detect the fundamental frequency of a signal or its periodic behavior the peak amplitude coefficients can be used. If the peaks have large values it means that the signal is periodic or quasi periodic like speech (fig 5, graph 1). The index of the first peak coefficient gives the fundamental period of the analyzed signal. If the peak coefficient amplitudes are small, it can be deduced that there is no periodic signal, only noise (fig 4, graph 3) The coefficient index means the coefficient number. This number represents "k" in the formula (1) below. Because the auto correlation coefficient with index 0 has the value of the signal energy and the coefficients with indexes from I to 2 contain energy leakage, the useful coefficients for the fundamental frequency estimation are those with indexes from 3 to N-I.</p>
<p>The correlation process can be represented as a multiply and accumulate of 2 buffers, for each coefficient performing a shift with one for one of the buffers. In both auto-and cross-correlation cases the amount of calculation required to determine the whole set of coefficients is rather large because it is necessary to perform N multiplications and additions for each coefficient. N is the buffer length which is also equal to the number of possible correlation coefficients. This is a major problem for some applications, particularly where speed of detection is important, or processing power is limited. One such application is in echo cancellation systems for telephone networks. The role played by distinguishing double-talk from noise in such systems will now be explained.</p>
<p>Echo cancellers are well known for use in eliminating long delayed echo interference in telephone networks as well as other applications. Another application is in reducing acoustic echo in hands-free and conferencing audio systems. In order to remove the echo, an echo replica r(n) is generated by an adaptive filter and is subtracted from a "near end" signal as it is transmitted towards its destination at a "far end" of a telephone circuit.</p>
<p>Poor echo cancellation performance may be one of the principal degradations noticed by users. One of the main causes of poor echo cancellation is when a double-talk condition occurs. This is when both the far-end and the near-end users are talking simultaneously into the circuit. In normal conversations, double-talk periods are short in duration (typically 20 % of the talking time) and usually occur at the moment when one user is finishing a sentence while the other user starts to respond. If the adaptive filter continues to adjust its coefficients during Double-talk periods, the adaptive filter will be greatly disturbed and will quickly diverge from its converged state. In order to overcome this problem the adaptive filter coefficients must be frozen during double-talking.</p>
<p>Various known methods of detecting double-talk are shown in US patent 4,894,820 (Miyamoto). The level of the residual echo signal or error may be compared to a predetermined threshold. The threshold may be varied depending on whether double-talk has been detected. Another is to compare a difference between residual and received signal, to the threshold. Yet another is to rapidly decrease the threshold when howling is detected.</p>
<p>Another double-talk detector, shown in US patent 5,193,112 (Sano) determines a cross correlation between incoming and echo signals to see if it is below a first threshold. If so, and if estimated echo cancellation exceeds a second threshold, double-talk is detected.</p>
<p>However, these known arrangements are susceptible to another problem. Double talk may be falsely detected when the residual echo or error increases for other reasons. One such reason is a change in the network topology during a call, causing a new hybrid with a different impulse response become active. This is called Echo Path Change (EPC). In this case, the adaptive filter must be allowed to continue adapting in order to track the new hybrid impulse response and any change in characteristics such as delay and attenuation, in the transmission path between the hybrid and the canceller. Hence the desired reaction to EPC is precisely the opposite of the desired reaction to double-talk.</p>
<p>Contributing to why EPC can be mistaken for double-talk is that the time for the adaptive filter to adapt to EPC may be lengthy, depending on the type of filter used (depending on, for example, the number of taps, and whether a recursive, computationally efficient algorithm is used). For a typical DSP (Digital Signal Processor) implementation of a Least Mean Squares (LMS) algorithm using 256 taps, the rate of adaptation may be around 10dB per second. Thus the time taken to adapt to EPC may be in the order of seconds, during which time a double-talk detector is likely to trigger falsely, and freeze the adaptation, resulting in poor echo cancellation performance.</p>
<p>The adaptive filter can also be disturbed if the signal from the far-end user changes abruptly. In US patent 5,206,854 (Betts), presence or absence of this remote signal is detected by determining a correlation between an echo estimate and the echo cancelled signal, and comparing it to a threshold. Optionally, this is done for both a far-end originating echo estimate, and a near-end originating echo estimate.</p>
<p>Both EPC (Echo Path Change) and Double-talk cause an increase of the output error level. A measurement which enables double-talkJEPC occurrence to be detected is given by the ERLE (Echo Return Loss) value which is the ratio between the averages of output error and near end signal. ERLE is often defined as: N1 ERLE[dB]----log N, s(n)12 where e(n) is the output error and s(n) is the near end signal before the hybrid.</p>
<p>But ERLE cannot be used to distinguish between double-talk and EPC.</p>
<p>One known attempt to address this, which is sensitive to the difference between EPC and double-talk, involves calculating a correlation between the incoming far end signal and output error. This is compared to a threshold, to make the decision.</p>
<p>A paper of Hua Ye, Bo-Xiu Wu, "A New Double-Talk Detection Algorithm Based on the Orthogonality Theorem", IEEE Transactions on Communications, vol.39, no. 11, November 1991, proposed calculating in the time domain an average cross correlation which uses exponential weighted correlation coefficients. The value of the average cross correlation is compared with a threshold to determine whether double-talk is occurring.</p>
<p>A paper of K. Chow, "Transform Domain Double-Talk Protection Scheme", published by Coherent Communications Systems Corp., USA translates the above idea into the frequency domain, the estimation procedure being the same.</p>
<p>Both above methods are computationally very expensive because they use the whole set of cross correlation coefficients which for N coefficients means NxN multiplications and additions. If the calculation is carried out too slowly, or if the threshold is set too high, then double-talk detection is delayed and the filter adaptation is not frozen quickly enough to prevent disruption of the convergence of the filter. If the threshold is set lower to give faster detection, the system becomes more susceptible to false double-talk detections which will prevent adaptation to EPC or other changes, thus giving poor echo cancellation performance.</p>
<p>Obtaining average correlation coefficients is also known for other applications, such as image processing, for example as shown in US patent 5 506 622. This shows estimating an image motion vector based on average correlation coefficients of a two-dimensional spatial correlation.</p>
<p>SUMMARY OF THE INVENTION</p>
<p>It is an object of the invention to provide improved apparatus or methods. According to a first aspect of the invention, there is provided apparatus for determining an average correlation coefficient from first and second inputs, the apparatus having: an accumulator coupled to receive the first input and generate an accumulated output combining two or more differently delayed components derived from the first input, and a dot product multiplier coupled to make a dot product of the accumulated output with the second input.</p>
<p>By reversing the order of the multiplication and addition, the amount of calculation can be reduced. This arises because by pre-adding the differently delayed versions, the number of multiplications and additions necessary to calculate the correlation coefficients can be reduced by (N1)*N, where N is the number of coefficients. The invention is based on the insight that the advantage of the prior art post-shifting technique, as used universally for correlation, of discrete calculation of each correlation coefficient so that peaks can be identified, is no longer necessary when determining an average of all such coefficients. Instead, the inventor realised that the old coefficient averaging calculation can be partially merged with the old coefficient calculation, to reach the result directly without calculating the intermediate result of all the individual coefficients. The number of calculations required for the average coefficient calculation are 2*N additions and N multiplications which is far less than N*N multiplications and additions necessary for the prior art correlation calculation.</p>
<p>Particularly for applications where speed of detection is important or processing power is limited, this advantage of reduced amount of calculation will be commercially significant. Also, the advantage increases as the number of coefficients increases.</p>
<p>An effect of the accumulator, is to make any noise in the signal appear more random, closer to white noise, and at the same time, accentuate any non-random periodic features in the signal. This makes the subsequent multiplication part of the correlation more effective at distinguishing noise from signal. One of the consequences of making this correlation more effective is that the decision threshold can be lowered, and a decision that periodic signal features such as double talk, has been detected can be made more quickly and reliably.</p>
<p>It is not intended to be limited to particular types of correlation, and encompasses average coefficients of both auto correlation and cross-correlation. It need not be limited to one-dimensional signals such as sound, but can be applied to two-(or more) dimensional patterns such as images. It is clearly applicable to a wide range of applications.</p>
<p>Other aspects of the invention provide for application of the above apparatus to speech detectors, and to echo cancellers.</p>
<p>Another aspect of the invention provides a switching system for routing and processing voice calls, having the echo canceller set out above. This aspect recognises the importance of the echo canceller as a key element, adding value to such systems, as echo cancellation performance has such a direct impact on users of such systems.</p>
<p>Another aspect of the invention provides a method of providing a telephone service using the echo canceller. This aspect recognises the added value to the end user of a telephone service, of improved double-talk discrimination, or improved echo cancellation performance. It also recognises the value of the activity or operation, once the apparatus is installed, in generating more revenue from telephone calls, which may be much greater than the cost of the apparatus.</p>
<p>Other aspects provide methods of controlling an adaptive echo modeller in an echo canceller, corresponding software, and software for controlling when to alter adaptation of a filter. These aspects recognise the value of software as a significant component of working systems and which can be independently traded or upgraded.</p>
<p>Preferred features include providing the apparatus with a subtractor for subtracting a further delayed component derived from the first input. This is useful to prevent overflow and to remove older components which often make less contribution to a realistic result.</p>
<p>Another preferred feature provides the apparatus with an input buffer for storing a series of samples of the first input, and outputting the series as a vector, the accumulator bring arranged to operate on the vector. The buffer stores the input signal and may have a length equal to the length of the vectors handled by the dot product multiplier. There may also be an accumulator buffer for storing these vectors. The input buffer may be integral with an output buffer of a preceding calculation stage. It should preferably have a length larger or equal to the accumulator buffer length.</p>
<p>Another preferred feature provides a relative delay between the first and second inputs.</p>
<p>This enables the lowest index coefficients to be removed from the calculation. In the case of auto correlation calculation, as those coefficients contain the energy information of the signal, accuracy can be improved by removing them.</p>
<p>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.</p>
<p>BRIEF DESCRIPTION OF THE FIGURES</p>
<p>Embodiments of the invention will now be described with reference to the figures as follows:</p>
<p>Figure 1 shows a prior art telephone network,</p>
<p>Figure 2 shows a prior art echo canceller,</p>
<p>Figure 3 shows a conventional circuit for obtaining average correlation coefficients, Figure 4 shows graphs of a typical noise signal, noise and signal cross correlation coefficients, noise auto-correlation, and noise cross correlation coefficients, Figure 5 shows graphs of a typical speech signal, and coefficient values for correlation between two speech signals, and speech auto correlation, Figure 6 shows an arrangement for determining average correlation coefficients according to a first embodiment of the invention, Figure 7 shows in schematic form another embodiment of the invention having buffers enabling processing in vector form, and a subtraction stage Figure 8 shows another embodiment having a relative delay in one branch, Figure 9 shows another embodiment having a relative delay in the other branch, Figure 10 shows another embodiment using cross correlation, Figure 1 1A shows another embodiment of an echo canceller, having a periodic signal detector for detecting double-talk or EPC, followed by a discriminator for discriminating between double-talk or EPC, Figure 1 lB shows steps in the operation of a detector and a discriminator such as those of figure hA, and Figure 12 shows a typical D S P implementation of a switch including an echo cancellation module.</p>
<p>DETAILED DESCRIPTION</p>
<p>Figure 1. Telephone Network.</p>
<p>Figure 1 shows a prior art telephone network having an echo canceller which can be adapted to incorporate embodiments of the invention for detecting double-talk by determining average correlation coefficients. In this figure, a long-distance telephone network 50 is shown, for making a telephone call from one subscriber to another. For convenience, one side of the network is denoted the near end, and the other side is denoted the far end. A subscriber's handset 90 is coupled to a private branch exchange (P B X) by a 2-wire subscriber line 45. In the P B X, 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 10. The conversion to 4-wire enables the voice signals in two directions to be a separated, which is useful for digiti sing 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.</p>
<p>Connections from many PBXs and many subscriber lines may be concentrated at a Central Office 10, which maybe many miles away from the subscriber. 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.</p>
<p>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 20 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 30. Each will contain a hybrid 120. Two-wire subscriber lines 160 couple handsets 165 to the hybrid.</p>
<p>As 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.</p>
<p>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.</p>
<p>Figure 2, Prior Art Echo Canceller.</p>
<p>Figure 2 shows more details in schematic form of a prior art echo canceller. The canceller 70 has a subtractor 220, an adaptive filter 230, and a double-talk detector 240.</p>
<p>The hybrid coil 60 is illustrated as a two part model, the first part being a subtractor 200, the second part being a hybrid impulse response h (n). The hybrid coil is coupled to the echo canceller by a 4-wire transmission line 235. The near-end signal 270 is carried to the subtractor of the echo canceller. A model echo 260 is generated by the adaptive filter and subtracted from the near-end signal. Hence the adaptive filter is an example or implementation of the generic echo model generator feature. In principle, other known techniques could be used to generate the echo model.</p>
<p>The subtractor produces an echo-cancelled near-end signal 245, for transmission through the rest of the telephone network. The echo-cancelled near-end signal 245 is fed back to the adaptive filter 230. It contains the combination of the near-end talker signal, and a residual uncancelled echo. For practical purposes this can be treated as an error signal in a feedback ioop, which the filter constantly tries to reduce, by varying its coefficients. Flereafter this error will be regarded as equivalent to and referred to as the echo-cancelled near-end signal. To prevent adaptation of the filter coefficients during double-talk, the double-talk detector 240 feeds a control signal 265 to the adaptive filter to prevent adaptation. Embodiments of the invention as descnbed below can be used to implement the double-talk detector.</p>
<p>Figure 3, Prior art</p>
<p>Figure 3 shows a known arrangement for determining average correlation coefficients.</p>
<p>The input (usually in the form of digital samples) is fed to a first buffer 285, and to a second buffer 295, via a delay 275. There is a series of outputs of the each buffer, delayed by successively larger amounts. A first of these outputs from the first buffer is multiplied with a first of the outputs from the second buffer, by multiplier 305. Another multiplier multiplies the second outputs and so on. The results of all the multiplications are added together by adder 315. Over time, as the input samples are stepped through the buffers, the total output by the adder will change. An average value over a given time, can be determined by unit 325, and converted to a binary detection result if used to detect speech.</p>
<p>Figures 4, and 5 Prior art</p>
<p>Figures 4 and 5 show graphs of typical speech and noise signals varying with time.</p>
<p>This demonstrates how correlation and in particular, average correlation coefficients, can be used to distinguish between signal and noise. Below these signals are shown corresponding results of calculating correlation coefficients. The horizontal axis represents an amount of delay in terms of samples. Graph 3 of figure 4 and graph 3 of figure 5 show auto correlation results. Graph 2 of figure 4 shows cross correlation between noise and speech. Graph 4 of figure 4 shows cross correlation between two noise signals. Graph 2 of figure 5 shows cross correlation between two speech signals.</p>
<p>Note the graphs for the speech signal correlations show pronounced peaks, which can be exploited by taking an average of the absolute values. An average of absolute values of the correlation coefficients for the noise signals will be considerably lower. In the case of speech, the auto and cross correlation coefficients are asymmetric decreasing for large indexes, so it is possible to use the coefficient values and not their absolute values for the average estimation.</p>
<p>The embodiments of the invention described below are concerned with a general purpose average cross or auto correlation coefficients estimation with a reduced amount of calculation.</p>
<p>Figure 6 First embodiment of the invention Figure 6 shows in schematic form an embodiment of the invention of apparatus for determining average correlation coefficients, in this case, average auto-correlation coefficients. The apparatus includes an accumulator 355, and a dot product multiplier 335. (Dot meaning a vector or matrix multiplication, so the multiplication results for each component of the vector or matrix are summed.) The sum may be of absolute values or raw values, depending on the type of signals expected. The accumulator is arranged in a pre-addition configuration. This means the output of the accumulator is fed to one of the inputs of the dot product multiplier. The raw input is fed to the other input of the dot product multiplier, as well as being fed to the input of the accumulator. Having a dot product multiplier normally implies one or both inputs having multiple scalar components in the form of a vector or matrix. This can be achieved by having a buffer which stores a sequence of samples, operating in a serial in, parallel out fashion, as a shift register. There can be such a buffer on the raw input to the accumulator, or the output of the accumulator, or both.</p>
<p>The accumulator serves to pre-add differently delayed versions of the input signal together. One way of implementing this is shown (many alternatives can be conceived by those skilled in the art). An adder 365 adds the input signal to a signal fed back from the output of the adder via a delay line 375. The effect after a period of time greater than several times the delay value of the delay line, is that the output of the accumulator is a combination of components having delays of various multiples of the delay value. In practice, many accumulators may operate in parallel.</p>
<p>Figure 7 Another embodiment Figure 7 shows another embodiment which can be summarised as follows. The incoming signal is fed sequentially into a buffer 910 having a length equal to the number of auto/cross correlation coefficients. For each input sample the buffer acts as a shift register, so the contents are shifted one position, simulating the delay or shift of one position which is done for each multiplication when calculating the cross/auto correlation coefficients in the conventional way shown in figure 3. As will be explained in more detail below, the contents of the buffer before and after the shift are added together and stored as a running total in an"overlapped and added" buffer 915.</p>
<p>This is repeated for each successive shift, to implement the accumulator, and the outputs are multiplied with the original signal. After a given number of shifts, the oldest values.re subtracted from the running total. Figure 7 illustrates in schematic form the contents of these buffers at a series of different times, and the shift, addition and subtraction operations carried out to derive the contents. The arrangement of the adder 365, subtractor 820 is also shown in subsequent figures. The operation will now be explained in more detail.</p>
<p>TERMS DEFINITION</p>
<p>The definition of autocorrelation for a signal a(n) is: ac14(k)a(n)a(n+k) (1) fl=() The definition of cross correlation between 2 data sequences h(n) and a(n) can be written as: CCba (k) = b(n) . a(n + k) (2)</p>
<p>ALGORITHM EXPLANATION</p>
<p>The method or apparatus provides a fast estimation of the average coefficient amplitudes in a recursive way. The idea is to overlap and add the delayed versions of the vector a(t) before performing the correlation computations. In figure 7 a(t) is a vector which contains the signal a(n) values, for n = -N + 1 + t,..., t. Considering the algorithm starting point t = 0 initialization steps are carried out until t = N -1 when the analysis buffer is filled with the values of N incoming signal vectors.</p>
<p>The number N gives the length of the analysis buffer and its value is chosen to be equal with the number of correlation coefficients derived by the algorithm. That is because for a conventional correlation, the number of coefficients is given by the number of shifts performed upon one of input vectors. In the new algorithm, the shifts are performed before the coefficient estimations.</p>
<p>As shown in figure 7, for t = N, from the vector which contains the overlapped and added values it is preferable to subtract the oldest components a(t -N) vector.</p>
<p>This is the recursive part of the algorithm. This subtraction has the effect that the result includes only the last N -1 incoming buffer contents. Thus, for each sample period, two operations are carried out on the buffer containing the running total. The vector a(t -N) is subtracted and the actual incoming vector a(t) is added. In the following, the running total buffer is denoted as (t): asum (t) = a cum (1 -1) + a(t) -a(t -N) (3) Figure 8. cross correlation embodiment In the case of cross correlation as shown in figure 8, the 0 lag cross correlation coefficient between the buffer which contains the overlapped and added vector valuesaum (t) and the other input signal vector b(t) is calculated. b(t) is a vector which contains the values of b(n) for n = -N +1 + t,..., t. Below will be explained the calculation of the 0 lag cross correlation coefficient at the moment t = N -1. There isn't any loss of generality because for any values of t = N -1 the procedure is the same, having an index increment.</p>
<p>The expression of m(t) at the moment of time t = N -1 is: a,1(N -1) = a(k) = a(0)+a(l) +a(2) +...+a(N -1) (4) The above expression shows a (N -1) as a column vector sum. To calculate the value of the 0 lag cross correlation coefficient it's necessary to consider the row value of acum(N -1): a,um (n) = a(n + k) where n is the row number which has values between -N+1,...,0.</p>
<p>The expression of the 0 lag cross correlation coefficient is: CCb,asum (O)N1 = b(n) (n) = b(n) a(n + k) (5) N-iN-I N-i cc (O) = b(n) a(n + k) = CC (k) = avg (CCba (k)) -k=O n=O k=0 (6) In the above expression, avg(cc (k)) is the sum of the cross correlation coefficients which can be considered as an average of the cross correlation coefficients.</p>
<p>The values of the cross correlation coefficients give a similarity measurement between two signals, having large values when the signals are similar or correlated and small and/or random values when the signals are uncorrelated. Thus, the cross correlation coefficients average value is larger when the input signals are correlated and small when the input signals are uncorrelated. Companng this average value with a threshold one can determine if the signals are correlated or not.</p>
<p>Observing equations (4) and (6) the average of the cross correlation coefficients can be calculated as: avg(cc (k))Nl CC (O)N1 = b(n) (n) (7) The major advantage of this method is the reduced number of computations.</p>
<p>Thus, with N additions, N subtractions and N multiplications one can obtain an estimation of the average cross correlation coefficients.</p>
<p>Figures 9 and 10, auto correlation embodiments with relative delay of inputs For auto correlation the procedure is the same but with a small difference which occurs because the useful auto correlation coefficients are those starting with indexes greater or equal with M = 3 (The coefficients M = 0,1,2 contain the energy information) (figure 4, graph 3; figure 5, graph 3). Thus, it is preferable to delay by at least M = 3 one of the input signal vectors, as shown in figures 9 and 10. These two figures show similar arrangements to that of figure 6, and corresponding reference numerals have been used as appropriate. Notably an input buffer 910 is provided, and a subtractor 820 is provided, fed by a delay 830, to subtract the oldest component from the running total. An alternative embodiment (as illustrated in figure 7) involves changing the order of the adder and subtractor, so that the subtraction is carried out before the addition, which makes no difference to the result.</p>
<p>In figure 9, the relative delay is achieved by a delay line 920 in the path of the raw input a to the dot product multiplier. In figure 10, it is achieved by the delay line 920 being in the path of the input a to the adder 365. The overlap and accumulation buffers shown in figure 7 can be incorporated as an output stage of the subtractor 820, or the adder 365, and the delay 830 can be implemented by reading out from a selected one of the buffers which contain successively delayed values.</p>
<p>The wJues of the auto correlation coefficients give a similarity measurement between the signal and its delayed versions, having large values when the signal is periodic or quasi periodic and small value when the signal is random like a noise.</p>
<p>Thus, the auto correlation coefficients average value is larger for periodic or quasi periodic signals and small for noise. Comparing this average value with a threshold one can determine if a signal is periodic or quasi periodic or not.</p>
<p>The mathematical explanation is the same as for cross correlation, the final result being: avg(aca(k))1 cc--(O) = ad(n) . a,(n) (8) for the case when first signal a is delayed resulting ad.</p>
<p>For the case when the input of the sum buffer is delayed one can write: avg (aca (k))LN_l (O)N1 = a(n) asum (n) (9) In order to reduce further the computations the subtraction of the vector a(t -N) from the current processed buffer can be omitted. These oldest components are less likely to be correlated with the actual as the delay between these buffers increases. A possible problem if this is omitted is the overflow of the values stored in buffers if there is only addition, never any subtraction.</p>
<p>If the average coefficient value is not required to be updated for each sample or time step, the a, (t) and b(t) signals can be subsampled or subrated, by any desired factor. The addition and subtraction of the new incoming vector is normally carried out without subsampling, and only the final multiplication which provides the value of avg(ac(1) or avg(cc) is subsampled, to reduce the amount of calculation. It is possible to subsample the coefficient buffers also. A typical buffer size is 40 samples.</p>
<p>For many applications, including speech detection, each sample is typically 14-16 bits deep. Sample rates will vary widely according to the application. It may be 8 kHz for speech detection. Any of these embodiments may be applied to a speech detector or a double-talk detector as used in an echo canceller. More details of such applications will now be described.</p>
<p>Figures 1 IA and 1 lB. An Embodiment having a Double-Talk Detector with an EPC discriminator Figure 11 A shows in schematic form elements of an echo-canceller based on that shown in figure 2, but with a different double-talk detector. Corresponding reference numerals have been used where appropriate. The echo-cancelled near-end signal 245 is fed to a periodic signal detection unit 405. This contains an average correlation coefficent calculation unit 415. This can be implemented using the arrangements shown in figures 6-10 for example. The average coefficent value is fed to a thresholder 425, which outputs an enable signal indicating that a periodic signal has been detected, usually indicating double-talk or EPC.</p>
<p>This enable signal is fed to a discriminator 435 for discriminating between double-talk and EPC. The operation of this discriminator part is explained in more detail below with reference to figure 1 lB. The output of the discriminator is a freeze signal 265, which freezes the adaptation of the coefficients of the adaptive filter if double-talk, not EPC, is detected, thus addressing the problem set out in the background section above. This operation will be more successful the faster the onset of double-talk is detected. Hence the periodic signal detector should operate as fast as possible to enable the discriminator, without generating many "false positives". How rapid depends on the adaptation algorithm of the filter. Preferably the detector should do so without the great cost of specialised hardware, and, when using a general purpose processor, or DSP, without taking up too many MIPS (millions of instructions per second). The detector embodiments described above fit these needs, and hence can make a synergistic combination with the discriminator.</p>
<p>The operation will now be described. At step 400 of figure 1 IB, the onset of double-talk or B P C is detected by the detector. To distinguish between double-talk or E P C, two simultaneous correlations are carried out. At step 410 the model echo is correlated with the near-end signal. At step 420 the model echo is correlated with the echo-cancelled near-end signal. At step 413 the outputs of the two correlations are compared. At step 440 a control signal is output to freeze the adaptation of the adaptive filter, if the comparison of the correlations indicates a double-talk condition.</p>
<p>The discriminator for distinguishing between EPC and Double-talk works in the time domain and is based on the cross correlation between the error, e(n) referred to as the echo-cancelled near-end signal, and r(n), the model echo signal and the cross correlation between r(n) and s(n) (model echo signal and the incoming near-end signal.</p>
<p>The definition of cross correlation between 2 data sequences can be written as: CCab(k) = a(n).b(n+k) (10) Because the algorithm uses only the 0 tap cross correlation (k = 0) the index k will be further omitted as follows: CCflb =a(n).b(n) (11) Subsequent equations will use the following terms: r(n) -model echo estimate x(n) -Near End Talker Signal r(n) hybrid residual signal s(n) -Near End Signal which contains the hybrid residual signal and in the case of Double Talk the Near End talker signal e(n) -error signal hnew(fl) -new hybrid impulse response in the case of EPC y(n) -Far End signal The method calculates the cross correlation between r(n), s(n) and r(n), e(n) in the case when ERLE increases. The calculation can be carried out continuously, but it is normally more efficient to carry out the calculation only when triggered by a double-talk detector (represented by function 400 in Figure 4) This detector is intended to distinguish potential double talk from a temporary increase in noise level. This is particularly useful in a software implementation, where it is not desirable to waste calculation resources on computationally intensive correlation operations unless they are necessary. The output of the subtractor in the echo canceller of Figure 3 could be fed to the input of this detector. The purpose of the detector is to distinguish between the onset of increased noise or increased residual echo, and the onset of double-talk. It can be implemented in various ways following well known design principles, and so need not be described in more detail here. In order to have accurate results it is assumed that the adaptive filter converged before the EPC or Double-talk occurrences.</p>
<p>It is also assumed that the minimum value of ERLE is -5dB, which is useful to be able toapproximatethat r(n) r(n) For the Double-talk case, s(n) = r(n)+x(n) (12) e(n) = x(n) + r(n) -r(n) (13) As stated before, one can approximate r(n) r(n) resulting: e(n) x(n) (14) The cross correlation between one set of data and another gives a measure of similarity between them. Thus, in the case of Double-talk it can be seen that: CC ->CC (15) r(n)+x(n),r(n) r(n),x(n) Concluding, for the case of Double Talk: CCs(n),rfl) (16) In the case of Echo Path Change, because the adaptive filter has converged on the previous hybrid impulse response, it can be seen that: e(n) = hnew(fl) * y(n) -r(n) (17) S(fl)=hnew(fl)*Y(fl) (18) where h,,(n) is the new hybrid impulse response.</p>
<p>Because the convolution of h,,ew(fl) with y(n) produce a signal which is not correlated with the former echo estimate r(n), it follows that: cc <cc hnew(n)*y(n),r(n) r(n), h,iew(n)*y(n)_r(n) (1)) Concluding, in the case of EPC: cc -<cc s(n),r(n) r(n),e(n) (20) When the value of ERLE increases meaning that EPC or Double-talk occurred, comparing the cross correlation values as stated in equations 16 and 20 one can distinguish between the Double-talk and EPC cases with a simple comparator to determine which is greater. Other derivations to reach a decision from the correlation results are possible.</p>
<p>Of course other embodiments can be created from combinations of the embodiments.</p>
<p>For example, the two correlations to be compared could include one using the echo model, and one using the far-end signal as described in more detail in the co-pending applications referenced above.</p>
<p>Figure 12, Typical D S P Implementation Of Elements Of A Central Office Including Echo Cancellation.</p>
<p>Figure 12 shows in schematic form a typical D S P implementation including an echo cancellation module which may include the functions shown above. A switching fabric or data bus 1100 is used to multiplex or switch many individual voice channels. A number of channel interfaces 1110,1120,1130,1140 are shown. These may carry one or more voice channels. Many may be carried simultaneously if they are TDM (time division multiplexed), or multiplexed in other ways, such as by the use of ATM (Asynchronous Transfer Mode) cells, or any other data stream for carrying voice.</p>
<p>The D S P has a large number of selectable software modules 1150; some of the principal ones are shown. They can be stored in off- chip memory. Individual channels may choose which of the modules are needed for particular voice calls. The appropriate software module is called and executed in a priorilised order. They may all be implemented or executable by a single D S P device, or may be spread across any number of such devices, to increase the throughput of calls.</p>
<p>The modules are shown include the adaptive filter module 1160, suitable for carrying out echo cancellation, or other filtering tasks. An associated coefficient adaptation module 1170 is also shown. An echo cancellation module 1180 is provided for overall control of the echo cancellation process, making use of the adaptive filter module as appropriate. A noise reduction module 1190 may be provided, using similar techniques to those used for echo cancellation. A non-linear processing module 1200 may be provided for further processing of voice signals after echo cancellation. A DTMF processing module 1210 may be used to recognise the key pad inputs and take appropriate action. Switching fabric control modules 1220 and voice recognition modules 1230 may be provided. Many other modules (not illustrated) may be provided for carrying out other functions typically carried out within a D S P in a Central Office.</p>
<p>The echo cancellation module 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 soon.</p>
<p>Other Variations And Remarks Other variations and implementations within the scope of the claims will be apparent to those skilled in the art, and are not intended to be excluded. Degradations other than noise and echoes can be modelled and cancelled. The modeller can be other types of adaptive circuit other than an adaptive filter. References to subtractors are intended to encompass adders which add a negative signal to achieve the same function. Although only time domain correlation has been discussed, other correlations can be substituted such as frequency domain correlation, without departing from the invention. Because in the time domain the zero lag correlation is a multiplication of two signal buffers, in the frequency domain this is equivalent to a convolution of the frequency translated time domain signals.</p>
<p>As has been described above, to reduce the number of multiplication and addition steps, in determining an average correlation coefficient, an accumulator generates an accumulated output combining two or more differently delayed components derived from a first input, and a dot product multiplier makes a dot product of the accumulated output with a second input. By pre-adding the differently delayed versions, the number of multiplications and additions can be reduced. For multiplications the reduction is from NxN to N where N is the number of coefficients. This has applications in speech detection, echo cancellation, image processing and others where speed and efficiency of calculation is important.</p>

Claims (1)

  1. <p>Claims 1. Apparatus for determining an average correlation coefficient
    from first and second inputs, the apparatus having: an accumulator coupled to receive the first input and generate an accumulated output combining two or more differently delayed components derived from the first input, and a dot product multiplier coupled to make a dot product of the accumulated output with the second input.</p>
    <p>2. The apparatus of claim 1, the accumulator having an adder and a delay, an output of the adder being fed back to an input of the adder via the delay.</p>
    <p>3. The apparatus of claim 2, having a subtractor for subtracting a further delayed component derived from the first input.</p>
    <p>4. The apparatus of claim 3 having an input buffer for storing a series of samples of the first input, and outputting the series as a vector, the accumulator being arranged to operate on the vector.</p>
    <p>5. The apparatus of claim 1 having a comparator for comparing an output of the dot product multiplier to a threshold.</p>
    <p>6. The apparatus of claim 1 having a relative delay imposed on the first and second inputs.</p>
    <p>7. The apparatus of claim 1 having a subsampler between the accumulator and the dot product multiplier, for reducing a sample rate at the inputs to the dot product multiplier.</p>
    <p>8. The apparatus of claim 1 having both inputs coupled to a single input source, for use in determining average auto-correlation coefficients.</p>
    <p>9. The apparatus of claim 1, wherein both inputs are coupled to different input sources, for use in determining average cross-correlation coefficients between the different input sources.</p>
    <p>10. A speech detector having the apparatus of claim 8.</p>
    <p>11. An echo canceller having an adaptive filter for generating an echo model, and a subtractor for subtracting the echo model from an incoming signal, to create an echo-cancelled signal, and a detector for detecting periodic signal components in the echo-cancelled signal, the detector having the apparatus of claim 8, the echo cancelled signal being the single input source of the apparatus.</p>
    <p>12. The echo canceller of claim 11, the incoming signal being a near-end signal, the canceller having an incoming far-end signal, coupled as an input to the adaptive filter, the detector being arranged to detect periodic signal components from the incoming signal.</p>
    <p>13. The echo canceller of claim 12, the detector being a double-talk detector, and the adaptive filter being adaptable according to a detection of double-talk condition by the detector.</p>
    <p>14. The echo canceller of claim 13, further having a discriminator for discriminating between a double-talk condition and another change in condition.</p>
    <p>15. The echo canceller of claim 14, the discriminator having: a first correlator for correlating between the echo model or the far-end signal and the near-end signal, and a second correlator for correlating between the echo-cancelled near-end signal and the echo model or the far-end signal, the discriminator being arranged for discriminating between a double-talk condition and a non double-talk condition on the basis of outputs of the first and second correlators.</p>
    <p>16. A switching system for routing and processing voice calls, having the echo canceller of claim 11.</p>
    <p>17. A method of providing a telephone service to subscribers, the method having the steps of: making available a telephone circuit through a switching system as set out in claim 16, and allowing the echo canceller to operate under control of the controller to cancel echoes.</p>
    <p>18. A method of determining an average correlation coefficient from first and second inputs, having the steps of: generating an accumulated output combining differently delayed components derived from the first input, and vector multiplying the accumulated output with the second input.</p>
    <p>19. Software for carrying out the method of claim 18.</p>
    <p>20. A method of controlling an adaptive echo modeller in an echo canceller, the method having the steps of detecting a possible double talk condition using the average correlation coefficient determined according to the method of claim 18, and adapting the adaptive echo modeller, or preventing adaptation, according to the detection of double-talk.</p>
    <p>21. Software for carrying out the method of claim 20.</p>
    <p>22. Software for controlling when to alter adaptation of an adaptable filter, suitable for use in a system having the filter for deriving a model of a degradation to a signal, and a subtractor for subtracting the model from the signal to generate a cleaner signal, the software being arranged to carry out the steps of: determining an average auto-correlation coefficient from the cleaner signal, by: a) generating an accumulated output combining differently delayed components derived from the cleaner signal, and b) vector multiplying the accumulated output with the cleaner signal, the software further being arranged to carry out the steps of: correlating between the model degradation and the signal, and correlating between the cleaner signal and the model degradation, and discriminating when to alter the filter adaptation on the basis of the average auto correlation coefficient, and outputs of the first and second correlations.</p>
GB0511163A 2005-06-01 2005-06-01 Correlator for signal or noise classification Withdrawn GB2439989A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0511163A GB2439989A (en) 2005-06-01 2005-06-01 Correlator for signal or noise classification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0511163A GB2439989A (en) 2005-06-01 2005-06-01 Correlator for signal or noise classification

Publications (2)

Publication Number Publication Date
GB0511163D0 GB0511163D0 (en) 2005-07-06
GB2439989A true GB2439989A (en) 2008-01-16

Family

ID=34834963

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0511163A Withdrawn GB2439989A (en) 2005-06-01 2005-06-01 Correlator for signal or noise classification

Country Status (1)

Country Link
GB (1) GB2439989A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625776B2 (en) 2009-09-23 2014-01-07 Polycom, Inc. Detection and suppression of returned audio at near-end

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0440010A (en) * 1990-06-05 1992-02-10 Fujitsu Ltd Echo canceler
US5193112A (en) * 1990-01-24 1993-03-09 Nec Corporation Arrangement and method for rapidly detecting double talk in long distance telephone communications system
US5206854A (en) * 1991-09-24 1993-04-27 At&T Bell Laboratories Detecting loss of echo cancellation
US5506622A (en) * 1994-05-02 1996-04-09 Daewoo Electronics Co., Ltd. Block matching type motion vector determination using correlation between error signals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193112A (en) * 1990-01-24 1993-03-09 Nec Corporation Arrangement and method for rapidly detecting double talk in long distance telephone communications system
JPH0440010A (en) * 1990-06-05 1992-02-10 Fujitsu Ltd Echo canceler
US5206854A (en) * 1991-09-24 1993-04-27 At&T Bell Laboratories Detecting loss of echo cancellation
US5506622A (en) * 1994-05-02 1996-04-09 Daewoo Electronics Co., Ltd. Block matching type motion vector determination using correlation between error signals

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625776B2 (en) 2009-09-23 2014-01-07 Polycom, Inc. Detection and suppression of returned audio at near-end
US9025764B2 (en) 2009-09-23 2015-05-05 Polycom, Inc. Detection and suppression of returned audio at near-end

Also Published As

Publication number Publication date
GB0511163D0 (en) 2005-07-06

Similar Documents

Publication Publication Date Title
US8098812B2 (en) Method of controlling an adaptation of a filter
US6404886B1 (en) Method and apparatus for echo cancelling with multiple microphones
EP1183848B1 (en) System and method for near-end talker detection by spectrum analysis
JP2538176B2 (en) Eco-control device
JP2792252B2 (en) Method and apparatus for removing multi-channel echo
US6928160B2 (en) Estimating bulk delay in a telephone system
JPH09507120A (en) Method for determining echo position in echo canceller
US5247512A (en) Echo canceller
US20080205633A1 (en) Estimating delay of an echo path in a communication system
US6493448B1 (en) Process for echo suppression with adaptive fir filters
EP1962436B9 (en) Electricity echo elimination device and method
US5933797A (en) Adaptive dual filter echo cancellation
JP2011055494A (en) Echo canceller
US6574337B1 (en) Adaptive echo canceler undoing adaptations made during double-talk
JP3860305B2 (en) Echo canceller and control method of echo canceller
GB2439989A (en) Correlator for signal or noise classification
KR100561390B1 (en) Digital echo cancellation device
WO2006129060A2 (en) Echo delay detector
KR100324736B1 (en) Method and circuit for removing sound echo
GB2439991A (en) Discriminator for echo canceller using far-end signal
GB2439990A (en) Double talk and echo path change discriminator for echo canceller
GB2109209A (en) Improvements in or relating to interference controllers and detectors for use therein
JPH04230112A (en) Method and device for approximating unknown system by adaptive filter
JPS6251528B2 (en)
KR100479574B1 (en) Presumption method for long deley time using efficiency coefficient in line echo canceller

Legal Events

Date Code Title Description
AT Applications terminated before publication under section 16(1)
720A Reinstatement of application (patents act 1977, section 20(2)a)

Free format text: REQUEST FOR REINSTATEMENT ALLOWED

Free format text: REQUEST FOR REINSTATEMENT FILED

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)