US5933797A - Adaptive dual filter echo cancellation - Google Patents

Adaptive dual filter echo cancellation Download PDF

Info

Publication number
US5933797A
US5933797A US08/810,601 US81060197A US5933797A US 5933797 A US5933797 A US 5933797A US 81060197 A US81060197 A US 81060197A US 5933797 A US5933797 A US 5933797A
Authority
US
United States
Prior art keywords
filter
temporary storage
echo canceller
adaptive
multipliers
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.)
Expired - Lifetime
Application number
US08/810,601
Inventor
Stefan Håakansson
Claes Hammar
Tonu Trump
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to US08/810,601 priority Critical patent/US5933797A/en
Assigned to TELEFONAKTIEBOLAGET LM ERICSSON (PUBL) reassignment TELEFONAKTIEBOLAGET LM ERICSSON (PUBL) ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TRUMP, TONU, HAKANSSON, STEFAN, HAMMAR, CLAES
Priority to MYPI98000717A priority patent/MY122103A/en
Priority to DE19882141T priority patent/DE19882141B4/en
Priority to CN98802943A priority patent/CN1126049C/en
Priority to PCT/SE1998/000349 priority patent/WO1998038582A1/en
Priority to GB9920266A priority patent/GB2341067B/en
Priority to JP53758298A priority patent/JP4445041B2/en
Priority to CA002282567A priority patent/CA2282567C/en
Priority to AU66424/98A priority patent/AU6642498A/en
Publication of US5933797A publication Critical patent/US5933797A/en
Application granted granted Critical
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Definitions

  • the present invention relates in general to the telecommunications field and, in particular, to echo cancellation in telephony systems.
  • Echo is a phenomenon that can occur in a telephony system whenever a portion of transmitted speech signal energy is reflected back to a sender. These reflections are caused by impedance mismatches in analog portions of the telephony network.
  • There can be many different sources of echo such as, for example, a hybrid circuit that converts a 4-wire line to a 2-wire line in a Public Switched Telephone Network (PSTN) subscriber interface, or acoustical cross-talk in a mobile radiotelephone.
  • PSTN Public Switched Telephone Network
  • the presence of echo along with a substantial delay can severely degrade the quality of the speech signals being processed.
  • An echo canceller is a device that is commonly used in telephony systems to suppress or remove echos in long distance traffic.
  • PLMNs Public Land Mobile Networks
  • MSCs mobile services switching centers
  • Echo cancellers are also used in mobile radiotelephones and "handsfree" telephone equipment to compensate for acoustical echos.
  • a general description of an existing echo cancellation technique can be found in the paper entitled: "A Double Talk Detector Based on Coherence" by Gansler et al, Signal Processing Group, Dept. of Elec. Eng. and Comp. Science, Lund University, Sweden.
  • FIG. 1 is a simplified schematic block diagram of a conventional echo canceller (10).
  • the main component of such an echo canceller is an adaptive finite-impulse-response (FIR) filter 12.
  • FIR finite-impulse-response
  • filter 12 models the impulse response of the echo path.
  • filter 12 is adapted using a Least Mean Squares (LMS) algorithm.
  • LMS Least Mean Squares
  • NLP non-linear processor
  • the echo canceller (10) typically includes a double-talk detector (DTD) 16, which is used to control and inhibit the adaptation process when the echo signal to "near end" signal ratio is of such a value that no additional improvement in the echo path estimation can be obtained by further adaptation of filter 12.
  • DTD double-talk detector
  • the block denoted by 18 represents the echo source in the telephony system which generates the "desired” signal, y(t), as a function of the "far end” signal, x(t), and the “near end” signal, v(t).
  • a DSP 30 used for echo cancellation includes two data memory sections 32 and 34 and corresponding data busses 32a and 34a, an address arithmetic unit (AAU) 36, a multiplier section 38, an arithmetic logic unit (ALU) 40, and a shifter 42.
  • AAU address arithmetic unit
  • ALU arithmetic logic unit
  • a general purpose DSP used for echo cancellation (e.g., DSP 30 in FIG. 3) has only two data busses (e.g., 32a, 34a). Consequently, such a DSP is only capable of making a maximum of two memory accesses per clock cycle (e.g., one access to each of the memory sections 32 and 34). Consequently, there was a data transfer bottleneck that significantly lowered the DSP's computational efficiency.
  • the LMS update equation for an algorithm executed by such a DSP can be expressed as:
  • ⁇ (t) ⁇ e(t) if a basic LMS value is used, or ##EQU1## if a normalized LMS value is used.
  • ⁇ (t) is a constant multiplier during each sample interval.
  • x n (t) is the nth signal sample at time t
  • h n (t) is the nth adaptive filter coefficient at time t
  • e(t) is the error signal
  • is a small constant that represents the sample stepsize.
  • the multiplier, a(t) can be stored in a multiplier register and maintained there until all of the filter coefficients have been updated. Then, the LMS update equation (Equation 1) requires two read operations from the memory sections and one write operation to the coefficient memory section. These operations cannot be accomplished over the two data busses during a single clock cycle, and consequently, two clock cycles are required to run an update for each value of N.
  • N is determined by the length of the impulse response of the echo path involved. A value of 512 for N is quite commonly used for typical echo cancellation applications. However, N can be as high as several thousand for acoustical echo cancellation applications.
  • Coefficients of the two FIR filters are copied from one to the other according to decisions made by a signal dependent control algorithm. If it is desirable to perform FIR filtering with a single clock cycle per value of N, as assumed above, then the coefficients for both filters should be located in one memory section, and the signal samples, x(t), should be located in the other memory section. This arrangement implies that the coefficient copy operation would require two cycles per value of N, because copying one filter coefficient would require two accesses to the same memory section.
  • the peak complexity of the complete filtering portion of the dual filter approach described above is measured as 6*N for a general purpose DSP.
  • the general purpose DSP would take 6*N cycles to complete the filter computations.
  • this level of complexity is relatively high for the large values of N that are required in echo canceller applications, which leaves only a relatively small (if any) processing capacity for the control portion of the algorithm and other necessary echo canceller functions.
  • It another object of the present invention to minimize data transfer bottlenecks in a digital signal processor used for echo cancellation
  • a digital signal processor that is used for echo cancellation computations, which includes parallel multiplier/adders, an input signal sample memory, and a plurality of accumulators for temporarily storing the results of the computations performed. Consequently, not all of the computational results have to be saved in an external data memory, which minimizes data transfer bottlenecks and significantly increases the computational efficiency of the digital signal processor.
  • the adaptive filter coefficient updates can thereby be computed much faster, and the adaptive filter coefficients can be copied much faster from one filter to the other.
  • the computational complexity of the digital signal processor is significantly less than that of prior digital signal processors.
  • FIG. 1 is a simplified schematic block diagram of a conventional echo canceller
  • FIG. 2 is a simplified schematic block diagram of an existing dual filter echo canceller
  • FIG. 3 is a block diagram of a generic, general purpose digital signal processor architecture that has been used for echo cancellation.
  • FIG. 4 is a block diagram of a dual filter digital signal processor for use in echo cancellation, which is structured to function in accordance with a preferred embodiment of the present invention.
  • FIGS. 1-4 of the drawings like numerals being used for like and corresponding parts of the various drawings.
  • FIG. 4 is a block diagram of a dual filter DSP for use in echo cancellation, which is structured to function in accordance with a preferred embodiment of the present invention.
  • dual filter DSP 100 includes three basic computational units: a pair of multiplier/adder units (102/104 and 106/108); and a B-bit ALU/barrel shifter 110.
  • the respective physical and electrical characteristics of the pair of multiplier/adder units are the same (within expected tolerances). All of these computational units are coupled together for processing and temporary storage of computational results, by a set of four B-bit accumulators 112, 114, 116 and 118.
  • accumulators Preferably, four accumulators are used for this embodiment, but any appropriate number of accumulators more than two may be used.
  • sample memory 120 with N word memory locations for storing input signal samples.
  • the input samples are represented by the expression, x(t), as shown in the LMS update equation (Equation 3) described above.
  • the processing architecture shown in FIG. 4 is preferably implemented with a DSP, the invention is not intended to be so limited.
  • the architecture shown in FIG. 4 can be implemented in any appropriate processing apparatus that can adequately perform the functions described with respect to FIG. 4.
  • the sample memory 120 is connected to the inputs of multipliers 102 and 106 via a register 122.
  • a pair of alignment units 124 and 126 are connected to the respective outputs of multipliers 102 and 106, so that either of the respective multiplication results can be shifted one bit to the left for alignment purposes, if desired.
  • a respective pair of memory registers (128, 130 and 132, 134) is connected to each multiplier 102 and 106 via respective pairs of input/output registers (129, 131 and 133, 135).
  • the memory registers (128, 130, 132 and 134) are connected to the data memories (136 and 138) by means of data busses, for the transfer of data therebetween. Although the two data memories 136 and 138 are located outside the DSP core in the embodiment illustrated by FIG. 4, it is within the scope of the invention to locate the data memories inside the DSP core.
  • a register msr0 (140) is connected to the B-bit ALU 110, which is used to indicate how many bit positions the ALU should shift,
  • the input signal samples to be processed are stored in sample memory 120. All other data variables are stored in the data memories 136 and 138. During each sampling interval, the oldest input signal sample in the sample memory 120 is replaced by the most current sample taken.
  • a circular post-increment addressing mode is used for accessing the sample memory.
  • All bits in the memory registers (128, 130, 132, 134) can be loaded from or stored to both of the data memories 136 and 138.
  • the data busses connecting the memory registers and data memories are b bits wide, where b is the number of bits needed to adequately represent the signal samples and filter coefficients.
  • the coefficients of both filters are divided equally between the two data memories 136 and 138.
  • the adaptive filter's odd indexed coefficients can be stored in the first data memory (136), and the adaptive filter's even indexed coefficients can be stored in the second data memory (138), or vice versa.
  • the fixed filter's even indexed coefficients would be stored in the first data memory (136), and the fixed filter's odd indexed coefficients would be stored in the second data memory (138).
  • the input signal samples, x n are stored in the sample memory 120.
  • the constant multiplier, ⁇ (t) can be retrieved from one data memory (e.g., 136) and stored, for example, in the mx0 register 128.
  • the first coefficient, h o (t) can be retrieved from that data memory and stored in one of the accumulators (e.g., ma0 or 112).
  • the second coefficient can be read from the second data memory (e.g., 138) and stored in another accumulator (e.g., ma1 or 114).
  • multiplier 102 multiplies the first data sample from sample memory 120 by the constant, ⁇ (t), from the mx0 register 128.
  • the B-bit adder 104 adds the product of the multiplication to the first coefficient from the accumulator ma0 (112) and stores the result in that same accumulator.
  • the third coefficient is read from the first data memory (136) and stored in an accumulator (e.g., ma2 or 116). Also, during the same cycle, the multiplier 102 multiplies the second data sample from sample memory 120 by the constant, ⁇ (t), from register mx0. The B-bit adder 104 adds the product of the multiplication to the second coefficient from the accumulator ma1 (114) and stores the result in that same accumulator.
  • an accumulator e.g., ma2 or 116.
  • the multiplier 102 multiplies the second data sample from sample memory 120 by the constant, ⁇ (t), from register mx0.
  • the B-bit adder 104 adds the product of the multiplication to the second coefficient from the accumulator ma1 (114) and stores the result in that same accumulator.
  • the fourth coefficient is read from the second data memory (138) and stored in an accumulator (e.g., ma3 or 118).
  • the multiplier 102 multiplies the third data sample from sample memory 120 by the constant, ⁇ (t), from register mx0.
  • the B-bit adder 104 adds the product of the multiplication to the third coefficient from the accumulator ma2 (116) and stores the result in that same accumulator.
  • the first updated coefficient from accumulator ma0 (112) is stored at the first coefficient's original location in the first data memory (136). The above-described operations are then repeated until all of the filter coefficients in the data memories have been updated.
  • one fixed filter coefficient and the corresponding adaptive filter coefficient are read from their respective data memory locations and stored, for example, in the mx0 and mx1 registers.
  • the previously stored fixed and adaptive filter coefficients are read from the mx0 and mx1 registers and multiplied by the respective multipliers 102 and 106 with the corresponding signal sample from the sample memory 120.
  • the respective results are stored and accumulated in two of the accumulators (e.g., ma0 and ma1).
  • the pair of multiplier/adder combinations as shown in FIG. 4 also provides a platform for more efficiently computing the power and correlation estimates used to control the dual filter operations and perform the required comparisons.
  • the B-bit ALU 110 can be used for processing other echo canceller functions, such as, for example, the NLP and DTD functions shown in FIG. 1.
  • the use of multiple (e.g., four) accumulators provides a substantial degree of computational flexibility in storing the intermediate results of computational operations, which significantly decreases the number of accesses made to the data memories.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Complex Calculations (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Abstract

A digital signal processor that is used for echo cancellation computations is disclosed, which includes parallel multiplier/adders, an input signal sample memory, and a plurality of accumulators for temporarily storing the results of the computations performed. Consequently, not all of the computational results have to be saved in an external data memory, which minimizes data transfer bottlenecks and significantly increases the computational efficiency of the digital signal processor. The adaptive filter coefficient updates can thereby be computed much faster, and the adaptive filter coefficients can be copied much faster from one filter to the other. The computational complexity of the digital signal processor is significantly less than that of prior digital signal processors.

Description

BACKGROUND OF THE INVENTION
1. Technical Field of the Invention
The present invention relates in general to the telecommunications field and, in particular, to echo cancellation in telephony systems.
2. Description of Related Art
"Echo" is a phenomenon that can occur in a telephony system whenever a portion of transmitted speech signal energy is reflected back to a sender. These reflections are caused by impedance mismatches in analog portions of the telephony network. There can be many different sources of echo, such as, for example, a hybrid circuit that converts a 4-wire line to a 2-wire line in a Public Switched Telephone Network (PSTN) subscriber interface, or acoustical cross-talk in a mobile radiotelephone. The presence of echo along with a substantial delay (e.g., physical distance or processing delay) can severely degrade the quality of the speech signals being processed.
An echo canceller is a device that is commonly used in telephony systems to suppress or remove echos in long distance traffic. For example, in cellular Public Land Mobile Networks (PLMNs), echo cancellers are used in mobile services switching centers (MSCs) to suppress or remove echos in speech traffic. Echo cancellers are also used in mobile radiotelephones and "handsfree" telephone equipment to compensate for acoustical echos. A general description of an existing echo cancellation technique can be found in the paper entitled: "A Double Talk Detector Based on Coherence" by Gansler et al, Signal Processing Group, Dept. of Elec. Eng. and Comp. Science, Lund University, Sweden.
FIG. 1 is a simplified schematic block diagram of a conventional echo canceller (10). The main component of such an echo canceller is an adaptive finite-impulse-response (FIR) filter 12. Under the control of an adaptation algorithm (e.g., executed in software), filter 12 models the impulse response of the echo path. Typically, filter 12 is adapted using a Least Mean Squares (LMS) algorithm. A non-linear processor (NLP) 14 is used to remove residual echo that may remain after linear processing of the input signal.
The signals involved in a telephone call are nonstationary in nature. Consequently, the echo canceller (10) typically includes a double-talk detector (DTD) 16, which is used to control and inhibit the adaptation process when the echo signal to "near end" signal ratio is of such a value that no additional improvement in the echo path estimation can be obtained by further adaptation of filter 12. However, in order to be able to track variations in the echo path, it is not possible to inhibit the adaptation too often, and under those conditions some degradation of the echo path estimate will occur if the echo signal-to-noise ratio worsens. The block denoted by 18 represents the echo source in the telephony system which generates the "desired" signal, y(t), as a function of the "far end" signal, x(t), and the "near end" signal, v(t).
A dual filter structure that has been proposed to cope with this degradation problem was described in the article entitled: "Echo Canceller with Two Echo Path Models," by Kazuo Ochiai et al, IEEE Transactions on Communications, Vol. COM-25, No. 6, June 1977. As shown generally in FIG. 2, the technique described in this article uses a fixed filter (20) for echo cancellation and an adaptive filter (22) for echo path estimation. If a good enough echo path estimate can be obtained by the adaptive filter (22), the coefficients of the adaptive filter are copied into the fixed filter (20). Consequently, these better coefficients can be used for the cancellation if the echo path estimate worsens.
An improvement to the control strategy for the dual filter structure described directly above has been disclosed in a commonly-assigned Swedish Patent No. 9503640-6, entitled "An Adaptive Dual Filter Echo Cancellation Method" to Johnny Karlsen et al. According to the method described therein, both filters are used for echo cancellation, and the filters' coefficients can be transferred in both directions. This patent describes certain conditions used to decide which of the two filter outputs, ea or ef, are to be used as the output for the echo canceller, as well as when the coefficients are to be transferred from one filter to the other. These decisions are based on comparisons of power and correlation estimates for the signals involved, and, therefore, make the algorithms being used highly data dependent.
Most existing echo cancellers utilize a general purpose digital signal processor (DSP) as a central computational element. A generic, general purpose DSP architecture that has been used for echo cancellation is shown in FIG. 3. For example, referring to FIG. 3, a DSP 30 used for echo cancellation includes two data memory sections 32 and 34 and corresponding data busses 32a and 34a, an address arithmetic unit (AAU) 36, a multiplier section 38, an arithmetic logic unit (ALU) 40, and a shifter 42.
Also, it has been possible to assemble an echo canceller from computational blocks that correspond to the functional blocks in the adaptive algorithm described above in the Ochiai et al article (FIG. 2). However, since the filter adaptation technique described therein relies on use of the current error signal, e(t), which is available for the first time only after the filtering process has been performed, the operations that correspond to the functional blocks in the Ochiai algorithm would have to be executed in series anyway, and no significant efficiencies would be derived. Moreover, the substantial amount of hardware needed to accomplish such functions would not significantly improve the overall performance of an echo canceller.
A problem arises if "long" filters (e.g., N=512 or more) are utilized for adaptive echo cancellation, since a relatively large number of computations have to be performed. In that case, it is very important to optimize the processor's architecture to match the functions of the algorithm being used. At the same time, it is also important to keep the amount of hardware resources being used within reasonable limits.
A general purpose DSP used for echo cancellation (e.g., DSP 30 in FIG. 3) has only two data busses (e.g., 32a, 34a). Consequently, such a DSP is only capable of making a maximum of two memory accesses per clock cycle (e.g., one access to each of the memory sections 32 and 34). Consequently, there was a data transfer bottleneck that significantly lowered the DSP's computational efficiency.
For example, the LMS update equation for an algorithm executed by such a DSP can be expressed as:
h.sub.n (t+1)=h.sub.n (t)+α(t)x.sub.n (t),           (1)
where α(t)=μe(t) if a basic LMS value is used, or ##EQU1## if a normalized LMS value is used. In any event, α(t) is a constant multiplier during each sample interval. In Equation 1 above, xn (t) is the nth signal sample at time t, hn (t) is the nth adaptive filter coefficient at time t, e(t) is the error signal, and μ is a small constant that represents the sample stepsize.
In most signal processors, the multiplier, a(t), can be stored in a multiplier register and maintained there until all of the filter coefficients have been updated. Then, the LMS update equation (Equation 1) requires two read operations from the memory sections and one write operation to the coefficient memory section. These operations cannot be accomplished over the two data busses during a single clock cycle, and consequently, two clock cycles are required to run an update for each value of N. Generally, N is determined by the length of the impulse response of the echo path involved. A value of 512 for N is quite commonly used for typical echo cancellation applications. However, N can be as high as several thousand for acoustical echo cancellation applications.
The process of filtering the input signal with a FIR filter can be expressed as follows: ##EQU2## which obviously requires one clock cycle per value of N to compute an output sample, y(t). Since the dual filter technique described earlier utilizes two FIR filters, it follows that two clock cycles per value of N would be needed to compute the corresponding two output samples.
Coefficients of the two FIR filters are copied from one to the other according to decisions made by a signal dependent control algorithm. If it is desirable to perform FIR filtering with a single clock cycle per value of N, as assumed above, then the coefficients for both filters should be located in one memory section, and the signal samples, x(t), should be located in the other memory section. This arrangement implies that the coefficient copy operation would require two cycles per value of N, because copying one filter coefficient would require two accesses to the same memory section.
Consequently, the peak complexity of the complete filtering portion of the dual filter approach described above is measured as 6*N for a general purpose DSP. In other words, the general purpose DSP would take 6*N cycles to complete the filter computations. However, this level of complexity is relatively high for the large values of N that are required in echo canceller applications, which leaves only a relatively small (if any) processing capacity for the control portion of the algorithm and other necessary echo canceller functions.
SUMMARY OF THE INVENTION
It is, therefore, an object of the present invention to minimize the computation time of a digital signal processor used for echo cancellation.
It another object of the present invention to minimize data transfer bottlenecks in a digital signal processor used for echo cancellation
It is yet another object of the present invention to maximize the speed of the least mean square update, filtering, and coefficient copying computations of a digital signal processor used for echo cancellation.
It is still another object of the present invention to implement an efficient adaptive dual filter echo canceller.
In accordance with the present invention, the foregoing and other objects are achieved by a digital signal processor that is used for echo cancellation computations, which includes parallel multiplier/adders, an input signal sample memory, and a plurality of accumulators for temporarily storing the results of the computations performed. Consequently, not all of the computational results have to be saved in an external data memory, which minimizes data transfer bottlenecks and significantly increases the computational efficiency of the digital signal processor. The adaptive filter coefficient updates can thereby be computed much faster, and the adaptive filter coefficients can be copied much faster from one filter to the other. The computational complexity of the digital signal processor is significantly less than that of prior digital signal processors.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the method and apparatus of the present invention may be had by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
FIG. 1 is a simplified schematic block diagram of a conventional echo canceller;
FIG. 2 is a simplified schematic block diagram of an existing dual filter echo canceller;
FIG. 3 is a block diagram of a generic, general purpose digital signal processor architecture that has been used for echo cancellation; and
FIG. 4 is a block diagram of a dual filter digital signal processor for use in echo cancellation, which is structured to function in accordance with a preferred embodiment of the present invention.
DETAILED DESCRIPTION OF THE DRAWINGS
The preferred embodiment of the present invention and its advantages are best understood by referring to FIGS. 1-4 of the drawings, like numerals being used for like and corresponding parts of the various drawings.
FIG. 4 is a block diagram of a dual filter DSP for use in echo cancellation, which is structured to function in accordance with a preferred embodiment of the present invention. For this embodiment, which can be implemented, for example, in an Application Specific Integrated Circuit (ASIC), dual filter DSP 100 includes three basic computational units: a pair of multiplier/adder units (102/104 and 106/108); and a B-bit ALU/barrel shifter 110. Preferably, the respective physical and electrical characteristics of the pair of multiplier/adder units are the same (within expected tolerances). All of these computational units are coupled together for processing and temporary storage of computational results, by a set of four B- bit accumulators 112, 114, 116 and 118. Preferably, four accumulators are used for this embodiment, but any appropriate number of accumulators more than two may be used. Also included is a sample memory 120 with N word memory locations for storing input signal samples. The input samples are represented by the expression, x(t), as shown in the LMS update equation (Equation 3) described above. Notably, although the processing architecture shown in FIG. 4 is preferably implemented with a DSP, the invention is not intended to be so limited. For example, the architecture shown in FIG. 4 can be implemented in any appropriate processing apparatus that can adequately perform the functions described with respect to FIG. 4.
The sample memory 120 is connected to the inputs of multipliers 102 and 106 via a register 122. A pair of alignment units 124 and 126 are connected to the respective outputs of multipliers 102 and 106, so that either of the respective multiplication results can be shifted one bit to the left for alignment purposes, if desired. A respective pair of memory registers (128, 130 and 132, 134) is connected to each multiplier 102 and 106 via respective pairs of input/output registers (129, 131 and 133, 135). The memory registers (128, 130, 132 and 134) are connected to the data memories (136 and 138) by means of data busses, for the transfer of data therebetween. Although the two data memories 136 and 138 are located outside the DSP core in the embodiment illustrated by FIG. 4, it is within the scope of the invention to locate the data memories inside the DSP core. A register msr0 (140) is connected to the B-bit ALU 110, which is used to indicate how many bit positions the ALU should shift, if specified.
In operation, the input signal samples to be processed (e.g., N words) are stored in sample memory 120. All other data variables are stored in the data memories 136 and 138. During each sampling interval, the oldest input signal sample in the sample memory 120 is replaced by the most current sample taken. Preferably, a circular post-increment addressing mode is used for accessing the sample memory.
All bits in the memory registers (128, 130, 132, 134) can be loaded from or stored to both of the data memories 136 and 138. The data busses connecting the memory registers and data memories are b bits wide, where b is the number of bits needed to adequately represent the signal samples and filter coefficients. In this embodiment, the accumulators (112, 114, 116, 118) and ALU 110 are designed to allow a B≧2b+log2 N bit representation of the variables involved. This choice for B bits assumes that the processor being used is operating with fixed point arithmetic. If floating point computational units are to be used, a natural choice would be to use b=B. However, for this illustrative embodiment (FIG. 4), which is preferably a fixed point implementation, the values b=16 and B=40 can be used.
For this embodiment, basically there are three operations that are implemented by the dual filter echo canceller DSP shown in FIG. 4: (1) coefficient updating; (2) filtering; and (3) coefficient copying. Preferably, the coefficients of both filters are divided equally between the two data memories 136 and 138. For example, the adaptive filter's odd indexed coefficients can be stored in the first data memory (136), and the adaptive filter's even indexed coefficients can be stored in the second data memory (138), or vice versa. For this example, the fixed filter's even indexed coefficients would be stored in the first data memory (136), and the fixed filter's odd indexed coefficients would be stored in the second data memory (138). The input signal samples, xn, are stored in the sample memory 120.
In order for the DSP to perform the coefficient updating operations, before initiating the updating loop, the constant multiplier, α(t), can be retrieved from one data memory (e.g., 136) and stored, for example, in the mx0 register 128. Also, the first coefficient, ho (t), can be retrieved from that data memory and stored in one of the accumulators (e.g., ma0 or 112). Then, during the first cycle of the coefficient updating loop, the second coefficient can be read from the second data memory (e.g., 138) and stored in another accumulator (e.g., ma1 or 114). During the same cycle, multiplier 102 multiplies the first data sample from sample memory 120 by the constant, α(t), from the mx0 register 128. The B-bit adder 104 adds the product of the multiplication to the first coefficient from the accumulator ma0 (112) and stores the result in that same accumulator.
During the second cycle of the coefficient updating loop, the third coefficient is read from the first data memory (136) and stored in an accumulator (e.g., ma2 or 116). Also, during the same cycle, the multiplier 102 multiplies the second data sample from sample memory 120 by the constant, α(t), from register mx0. The B-bit adder 104 adds the product of the multiplication to the second coefficient from the accumulator ma1 (114) and stores the result in that same accumulator.
During the third cycle of the coefficient updating loop, the fourth coefficient is read from the second data memory (138) and stored in an accumulator (e.g., ma3 or 118). Also, during the same cycle, the multiplier 102 multiplies the third data sample from sample memory 120 by the constant, α(t), from register mx0. The B-bit adder 104 adds the product of the multiplication to the third coefficient from the accumulator ma2 (116) and stores the result in that same accumulator. Additionally, during this cycle, the first updated coefficient from accumulator ma0 (112) is stored at the first coefficient's original location in the first data memory (136). The above-described operations are then repeated until all of the filter coefficients in the data memories have been updated.
In order for the DSP to perform the filtering operation, during each clock cycle, one fixed filter coefficient and the corresponding adaptive filter coefficient are read from their respective data memory locations and stored, for example, in the mx0 and mx1 registers. At the same time, the previously stored fixed and adaptive filter coefficients are read from the mx0 and mx1 registers and multiplied by the respective multipliers 102 and 106 with the corresponding signal sample from the sample memory 120. The respective results are stored and accumulated in two of the accumulators (e.g., ma0 and ma1).
Consequently, in accordance with the present invention, since the corresponding coefficients of the fixed and adaptive filters can be stored in the different data memories, these coefficients can be copied one at a time, without incurring any additional delays. Furthermore, all of the basic operations for an adaptive dual filter echo cancellation algorithm (i.e., LMS coefficient updating, computing an output signal from the two filters, and coefficient copying) can be accomplished within one clock cycle per sample using the DSP architecture shown in FIG. 4. As such, the computational complexity of the DSP architecture shown in FIG. 4 is only 3*N, as opposed to the computational complexity of 6*N for existing general purpose echo cancellation DSPs.
Notably, using the pair of multiplier/adder combinations as shown in FIG. 4 also provides a platform for more efficiently computing the power and correlation estimates used to control the dual filter operations and perform the required comparisons. Also, from an efficiency standpoint, the B-bit ALU 110 can be used for processing other echo canceller functions, such as, for example, the NLP and DTD functions shown in FIG. 1. Furthermore, the use of multiple (e.g., four) accumulators provides a substantial degree of computational flexibility in storing the intermediate results of computational operations, which significantly decreases the number of accesses made to the data memories.
Although a preferred embodiment of the method and apparatus of the present invention has been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiment disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth and defined by the following claims.

Claims (18)

What is claimed is:
1. A dual filter echo canceller for cancelling echos in a telephony system, said dual filter echo canceller comprising:
an adaptive filter;
a fixed filter coupled to said adaptive filter; and
a digital signal processor configured to implement the adaptive filter and the fixed filter so as to process during one clock cycle an input signal sample within an adaptive dual filter echo cancellation algorithm including coefficient updating, filtering and coefficient copying between the adaptive filter and fixed filter, said digital signal processor further includes:
a sample memory for storing the input signal sample;
a plurality of multipliers, at least one input of each of said plurality of multipliers coupled to an output of said sample memory;
a plurality of adders, an output of each of said plurality of multipliers coupled to at least one of said plurality of adders; and
a plurality of temporary storage devices, an input and output of each of said plurality of temporary storage devices selectively coupled to at least one of said plurality of multipliers and said plurality of adders.
2. The dual filter echo canceller of claim 1, further comprising a plurality of data memory devices located in a core of said digital signal processor and used to store coefficients of the adaptive filter and the fixed filter.
3. The dual filter echo canceller of claim 1, further comprising a plurality of data memory devices located outside of a core of said digital signal processor and used to store coefficients of the adaptive filter and the fixed filter.
4. The dual filter echo canceller of claim 1, wherein said digital signal processor further includes a plurality of data memory devices, each of said plurality of data memory devices coupled to an input of at least one of said plurality of multipliers.
5. The dual filter echo canceller of claim 4, wherein each of said plurality of data memory devices is coupled to at least one of said plurality of temporary memory storage devices.
6. The dual filter echo canceller of claim 1, wherein said digital signal processor further includes an arithmetic logic unit, an input and output of said arithmetic logic unit selectively coupled to at least one of said plurality of temporary memory storage devices, said plurality of multipliers, and said plurality of adders.
7. The dual filter echo canceller of claim 6, wherein said digital signal processor further includes a barrel shifter and an arithmetic logic unit for performing calculations required by a control part of the adaptive dual filter echo cancellation algorithm, said barrel shifter and said arithmetic logic unit each connected to at least one of said plurality of temporary storage devices.
8. The dual filter echo canceller of claim 1, wherein each of said temporary memory storage devices comprises an accumulator.
9. The dual filter echo canceller of claim 1, wherein said plurality of multipliers further includes two multipliers.
10. The dual filter echo canceller of claim 1, wherein said plurality of adders further includes two adders.
11. The dual filter echo canceller of claim 1, wherein said plurality of temporary memory storage devices further includes four accumulators.
12. The dual filter echo canceller of claim 1, wherein said input signal sample further includes a speech signal of a far end talker.
13. The dual filter echo canceller of claim 1, wherein said telephony system further includes a selected one of a mobile services switching center and a mobile telephone.
14. A method for cancelling echos using an echo canceller including an adaptive filter and a fixed filter each implemented in a digital signal processor capable of processing during one clock cycle an adaptive dual filter echo cancellation algorithm for an input signal sample, said digital signal processor includes:
a sample memory for storing the input signal sample;
a plurality of multipliers, at least one input of each of said plurality of multipliers coupled to an output of said sample memory;
a plurality of adders, an output of each of said plurality of multipliers coupled to at least one of said plurality of adders; and
a plurality of temporary storage devices, an input and output of each of said plurality of temporary storage devices selectively coupled to at least one of said plurality of multipliers and said plurality of adders, said method comprising the steps of:
computing a first output signal from the adaptive filter;
responsive to the first output signal, updating a coefficient of the adaptive filter; and
copying the updated coefficient of the adaptive filter to the fixed filter; or
copying a fixed coefficient of the fixed filter to the adaptive filter.
15. The method of claim 14, wherein said step of updating further includes the following steps:
storing a plurality of the input signal samples in the sample memory;
storing a constant multiplier value in a first storage location;
retrieving a first filter coefficient value from a first data memory location;
storing said first filter coefficient value in a first temporary storage location of the plurality of temporary storage devices;
retrieving a second filter coefficient value from a second data memory location;
storing said second filter coefficient value in a second temporary storage location of the plurality of temporary storage devices;
multiplying a first input signal sample of said plurality of input signal sample by said constant multiplier value; and
adding a product of said multiplying step to said first filter coefficient value, and storing a result of said adding step in said first temporary storage location.
16. The method of claim 15, further comprising the steps of:
retrieving a third filter coefficient value from a third data memory location;
storing said third filter coefficient value in a third temporary storage location of the plurality of temporary storage devices, and multiplying a second input signal sample of said plurality of input signal sample by said constant multiplier value; and
adding a product of said multiplying step to said second filter coefficient value, and storing a result of said adding step in said second temporary storage location.
17. The method of claim 16, further comprising the steps of:
retrieving a fourth filter coefficient value from a fourth data memory location;
storing said fourth filter coefficient value in a fourth temporary storage location of the plurality of temporary storage devices, and multiplying a third input signal sample of said plurality of input signal sample by said constant multiplier value;
adding a product of said multiplying step to said third filter coefficient value, and storing a result of said adding step in said third temporary storage location; and
storing said result from said first temporary storage location in said first data memory location.
18. The method of claim 17, wherein each of said first, second, third and fourth temporary storage locations further includes an accumulator.
US08/810,601 1997-02-28 1997-02-28 Adaptive dual filter echo cancellation Expired - Lifetime US5933797A (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
US08/810,601 US5933797A (en) 1997-02-28 1997-02-28 Adaptive dual filter echo cancellation
MYPI98000717A MY122103A (en) 1997-02-28 1998-02-19 Adaptive dual filter echo cancellation
PCT/SE1998/000349 WO1998038582A1 (en) 1997-02-28 1998-02-26 Adaptive dual filter echo cancellation
CN98802943A CN1126049C (en) 1997-02-28 1998-02-26 Adaptive dual filter echo cancellation
DE19882141T DE19882141B4 (en) 1997-02-28 1998-02-26 Adaptive double-filter echo cancellation
GB9920266A GB2341067B (en) 1997-02-28 1998-02-26 Adaptive dual filter echo cancellation
JP53758298A JP4445041B2 (en) 1997-02-28 1998-02-26 Echo cancellation with adaptive dual filter
CA002282567A CA2282567C (en) 1997-02-28 1998-02-26 Adaptive dual filter echo cancellation
AU66424/98A AU6642498A (en) 1997-02-28 1998-02-26 Adaptive dual filter echo cancellation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/810,601 US5933797A (en) 1997-02-28 1997-02-28 Adaptive dual filter echo cancellation

Publications (1)

Publication Number Publication Date
US5933797A true US5933797A (en) 1999-08-03

Family

ID=25204205

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/810,601 Expired - Lifetime US5933797A (en) 1997-02-28 1997-02-28 Adaptive dual filter echo cancellation

Country Status (8)

Country Link
US (1) US5933797A (en)
JP (1) JP4445041B2 (en)
CN (1) CN1126049C (en)
AU (1) AU6642498A (en)
DE (1) DE19882141B4 (en)
GB (1) GB2341067B (en)
MY (1) MY122103A (en)
WO (1) WO1998038582A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108413A (en) * 1997-01-21 2000-08-22 Matra Communication Echo cancellation method and echo canceller implementing such a process
US6279020B1 (en) * 1997-12-23 2001-08-21 U.S. Philips Corporation Programmable circuit for realizing a digital filter
WO2001063398A2 (en) * 2000-02-26 2001-08-30 Qualcomm Incorporated Digital signal processor with coupled multiply-accumulate units
WO2001075635A3 (en) * 2000-03-31 2003-12-31 Intel Corp Dsp execution unit for efficient alternate modes of operation
US6687373B1 (en) 1999-08-24 2004-02-03 Nortel Networks Limited Heusristics for optimum beta factor and filter order determination in echo canceler systems
US20040193668A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney Virtual double width accumulators for vector processing
US20040261118A1 (en) * 2003-06-18 2004-12-23 General Instrument Corporation Narrowband interference and identification and digital processing for cable television return path performance enhancement
US7068780B1 (en) * 2000-08-30 2006-06-27 Conexant, Inc. Hybrid echo canceller
US20060224652A1 (en) * 2005-04-05 2006-10-05 Nokia Corporation Instruction set processor enhancement for computing a fast fourier transform
GB2439988A (en) * 2005-06-01 2008-01-16 Tecteon Plc Subband coefficient adaptor for adaptive filter
US20110293104A1 (en) * 2010-05-25 2011-12-01 Infineon Technologies North America Corp. Audio communication device and method using fixed echo cancellation filter coefficients
US20150295734A1 (en) * 2012-11-09 2015-10-15 Robert Bosch Gmbh Device and method for improving the reception quality of messages in a can bus system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571268B1 (en) 1998-10-06 2003-05-27 Texas Instruments Incorporated Multiplier accumulator circuits
EP0992885B1 (en) * 1998-10-06 2005-12-28 Texas Instruments Incorporated Multiplier accumulator circuits
US6714956B1 (en) * 2000-07-24 2004-03-30 Via Technologies, Inc. Hardware accelerator for normal least-mean-square algorithm-based coefficient adaptation
US7346012B2 (en) 2002-12-13 2008-03-18 Tioga Technologies Ltd. Transceiver with accelerated echo canceller convergence
CA2624629A1 (en) * 2005-10-31 2007-05-10 Telefonaktiebolaget L M Ericsson (Publ) Reduction of digital filter delay
WO2023272631A1 (en) 2021-06-30 2023-01-05 深圳市汇顶科技股份有限公司 Noise cancellation method for audio signal, audio signal processing apparatus, and electronic device
CN113194378B (en) * 2021-06-30 2021-11-26 深圳市汇顶科技股份有限公司 Noise reduction method for audio signal, audio signal processing device and electronic equipment

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986002181A1 (en) * 1984-09-28 1986-04-10 Motorola, Inc. A digital signal processor for single cycle multiply/accumulation
US5001661A (en) * 1990-01-23 1991-03-19 Motorola, Inc. Data processor with combined adaptive LMS and general multiplication functions
JPH03159423A (en) * 1989-11-17 1991-07-09 Fujitsu Ltd Double talk detecting system in echo cancellor
EP0439139A2 (en) * 1990-01-24 1991-07-31 Nec Corporation Arrangement and method for rapidly detecting double talk in long distance telephone communications system
US5151937A (en) * 1989-07-12 1992-09-29 Fujitsu Limited Adaptive echo canceller
EP0505884A2 (en) * 1991-03-29 1992-09-30 Hitachi, Ltd. Arithmetic circuit, and adaptive filter and echo canceler using it
US5175702A (en) * 1990-07-18 1992-12-29 International Business Machines Corporation Digital signal processor architecture with plural multiply/accumulate devices
US5327459A (en) * 1990-05-11 1994-07-05 Hitachi, Ltd. Semiconductor integrated circuit containing an automatic equalizer including a circuit for periodically updating a plurality of tap coefficients at varying frequencies
US5371789A (en) * 1992-01-31 1994-12-06 Nec Corporation Multi-channel echo cancellation with adaptive filters having selectable coefficient vectors
US5381357A (en) * 1993-05-28 1995-01-10 Grumman Corporation Complex adaptive fir filter
US5388092A (en) * 1989-06-27 1995-02-07 Nec Corporation Echo canceller for two-wire full duplex digital data transmission
US5396517A (en) * 1993-03-04 1995-03-07 Adtran Transversal filter useable in echo canceler, decision feedback equalizer applications for minimizing non-linear distortion in signals conveyed over full duplex two-wire communication link
US5396299A (en) * 1991-05-28 1995-03-07 North American Philips Corporation System and circuit architecture for echo cancellation and a television receiver comprising same
JPH07288493A (en) * 1994-04-18 1995-10-31 Fujitsu Ltd Double talk detecting device
US5581494A (en) * 1989-05-19 1996-12-03 U.S. Philips Corporation Adaptive discrete-time transversal filter
US5631957A (en) * 1995-03-09 1997-05-20 National Semiconductor Corporation Band-energy near-end echo reducer for tonal signalling detectors
US5652903A (en) * 1994-11-01 1997-07-29 Motorola, Inc. DSP co-processor for use on an integrated circuit that performs multiple communication tasks
US5721782A (en) * 1996-03-25 1998-02-24 Motorola, Inc. Partitioned echo canceler utilizing decimation echo location
US5745396A (en) * 1995-04-28 1998-04-28 Lucent Technologies Inc. Pipelined adaptive IIR filter

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986002181A1 (en) * 1984-09-28 1986-04-10 Motorola, Inc. A digital signal processor for single cycle multiply/accumulation
US5581494A (en) * 1989-05-19 1996-12-03 U.S. Philips Corporation Adaptive discrete-time transversal filter
US5388092A (en) * 1989-06-27 1995-02-07 Nec Corporation Echo canceller for two-wire full duplex digital data transmission
US5151937A (en) * 1989-07-12 1992-09-29 Fujitsu Limited Adaptive echo canceller
JPH03159423A (en) * 1989-11-17 1991-07-09 Fujitsu Ltd Double talk detecting system in echo cancellor
US5001661A (en) * 1990-01-23 1991-03-19 Motorola, Inc. Data processor with combined adaptive LMS and general multiplication functions
EP0439139A2 (en) * 1990-01-24 1991-07-31 Nec Corporation Arrangement and method for rapidly detecting double talk in long distance telephone communications system
US5327459A (en) * 1990-05-11 1994-07-05 Hitachi, Ltd. Semiconductor integrated circuit containing an automatic equalizer including a circuit for periodically updating a plurality of tap coefficients at varying frequencies
US5175702A (en) * 1990-07-18 1992-12-29 International Business Machines Corporation Digital signal processor architecture with plural multiply/accumulate devices
US5297071A (en) * 1991-03-29 1994-03-22 Hitachi, Ltd. Arithmetic circuit, and adaptive filter and echo canceler using it
EP0505884A2 (en) * 1991-03-29 1992-09-30 Hitachi, Ltd. Arithmetic circuit, and adaptive filter and echo canceler using it
US5396299A (en) * 1991-05-28 1995-03-07 North American Philips Corporation System and circuit architecture for echo cancellation and a television receiver comprising same
US5371789A (en) * 1992-01-31 1994-12-06 Nec Corporation Multi-channel echo cancellation with adaptive filters having selectable coefficient vectors
US5526377A (en) * 1993-03-04 1996-06-11 Adtran Transversal filter useable in echo canceler, decision feedback equalizer applications for minimizing non-linear distortion in signals conveyed over full duplex two-wire communication link
US5396517A (en) * 1993-03-04 1995-03-07 Adtran Transversal filter useable in echo canceler, decision feedback equalizer applications for minimizing non-linear distortion in signals conveyed over full duplex two-wire communication link
US5381357A (en) * 1993-05-28 1995-01-10 Grumman Corporation Complex adaptive fir filter
JPH07288493A (en) * 1994-04-18 1995-10-31 Fujitsu Ltd Double talk detecting device
US5652903A (en) * 1994-11-01 1997-07-29 Motorola, Inc. DSP co-processor for use on an integrated circuit that performs multiple communication tasks
US5631957A (en) * 1995-03-09 1997-05-20 National Semiconductor Corporation Band-energy near-end echo reducer for tonal signalling detectors
US5745396A (en) * 1995-04-28 1998-04-28 Lucent Technologies Inc. Pipelined adaptive IIR filter
US5721782A (en) * 1996-03-25 1998-02-24 Motorola, Inc. Partitioned echo canceler utilizing decimation echo location

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A Double Talk Detector Based on Coherence by Tomas G a nsler, Maria Hansson and G o ran Salomonsson Signal Processing Group, Dept. of Elec. Eng. and Comp. Science Lund University, Box 118, S 221 00 Lund, Sweden pp. 332 336. *
A Double Talk Detector Based on Coherence by Tomas Gansler, Maria Hansson and Goran Salomonsson Signal Processing Group, Dept. of Elec. Eng. and Comp. Science Lund University, Box 118, S-221 00 Lund, Sweden pp. 332-336.
Echo Canceler with Two Echo Path Models by Kazuo Ochiai, Takashi Araseki and Takashi Ogihara IEEE Transaction on Communications, vol. Com 25, No. 6, Jun. 1977 pp. 589 595. *
Echo Canceler with Two Echo Path Models by Kazuo Ochiai, Takashi Araseki and Takashi Ogihara IEEE Transaction on Communications, vol. Com-25, No. 6, Jun. 1977 pp. 589-595.
Proceedings of IEEE, USA, Sep. 1987, DSP56200: An Algorithm Specific Digital Signal Processor Peripheral ; Garth D. Hillman.; XP000031791. *
Proceedings of IEEE, USA, Sep. 1987, DSP56200: An Algorithm-Specific Digital Signal Processor Peripheral; Garth D. Hillman.; XP000031791.

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108413A (en) * 1997-01-21 2000-08-22 Matra Communication Echo cancellation method and echo canceller implementing such a process
US6279020B1 (en) * 1997-12-23 2001-08-21 U.S. Philips Corporation Programmable circuit for realizing a digital filter
US6687373B1 (en) 1999-08-24 2004-02-03 Nortel Networks Limited Heusristics for optimum beta factor and filter order determination in echo canceler systems
WO2001063398A2 (en) * 2000-02-26 2001-08-30 Qualcomm Incorporated Digital signal processor with coupled multiply-accumulate units
WO2001063398A3 (en) * 2000-02-26 2002-02-21 Qualcomm Inc Digital signal processor with coupled multiply-accumulate units
US6557022B1 (en) 2000-02-26 2003-04-29 Qualcomm, Incorporated Digital signal processor with coupled multiply-accumulate units
US7047271B2 (en) 2000-03-31 2006-05-16 Intel Corporation DSP execution unit for efficient alternate modes for processing multiple data sizes
WO2001075635A3 (en) * 2000-03-31 2003-12-31 Intel Corp Dsp execution unit for efficient alternate modes of operation
US6725360B1 (en) 2000-03-31 2004-04-20 Intel Corporation Selectively processing different size data in multiplier and ALU paths in parallel
US20040199558A1 (en) * 2000-03-31 2004-10-07 Aldrich Bradley C. DSP execution unit for efficient alternate modes of operation
US7068780B1 (en) * 2000-08-30 2006-06-27 Conexant, Inc. Hybrid echo canceller
US20040193668A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney Virtual double width accumulators for vector processing
US20040261118A1 (en) * 2003-06-18 2004-12-23 General Instrument Corporation Narrowband interference and identification and digital processing for cable television return path performance enhancement
WO2004114645A3 (en) * 2003-06-18 2005-11-03 Gen Instrument Corp Narrowband interference and identification and digital processing for cable television return path performance enhancement
US7716712B2 (en) * 2003-06-18 2010-05-11 General Instrument Corporation Narrowband interference and identification and digital processing for cable television return path performance enhancement
US20060224652A1 (en) * 2005-04-05 2006-10-05 Nokia Corporation Instruction set processor enhancement for computing a fast fourier transform
GB2439988A (en) * 2005-06-01 2008-01-16 Tecteon Plc Subband coefficient adaptor for adaptive filter
US20110293104A1 (en) * 2010-05-25 2011-12-01 Infineon Technologies North America Corp. Audio communication device and method using fixed echo cancellation filter coefficients
US9185233B2 (en) * 2010-05-25 2015-11-10 Intel Deutschland Gmbh Audio communication device and method using fixed echo cancellation filter coefficients
US20150295734A1 (en) * 2012-11-09 2015-10-15 Robert Bosch Gmbh Device and method for improving the reception quality of messages in a can bus system
US10581641B2 (en) * 2012-11-09 2020-03-03 Robert Bosch Gmbh Device and method for improving the reception quality of messages in a CAN bus system

Also Published As

Publication number Publication date
GB2341067B (en) 2001-11-07
DE19882141T1 (en) 2000-01-13
GB2341067A (en) 2000-03-01
GB9920266D0 (en) 1999-10-27
CN1126049C (en) 2003-10-29
AU6642498A (en) 1998-09-18
MY122103A (en) 2006-03-31
CN1249829A (en) 2000-04-05
DE19882141B4 (en) 2009-01-02
WO1998038582A1 (en) 1998-09-03
JP2001513293A (en) 2001-08-28
JP4445041B2 (en) 2010-04-07

Similar Documents

Publication Publication Date Title
US5933797A (en) Adaptive dual filter echo cancellation
EP0561133B1 (en) Multi-channel echo cancellation with adaptive filters having selectable coefficient vectors
US4268727A (en) Adaptive digital echo cancellation circuit
US5590121A (en) Method and apparatus for adaptive filtering
JPH0618331B2 (en) Device for digitally erasing echo generated in wiring having aging characteristics
EP0880261A2 (en) Echo canceller and adapting method thereof
CA2020804C (en) Adaptive echo canceller
JP2000196507A (en) Method and system for eliminating echo for multiplex channel
US6088445A (en) Adaptive filter system having mixed fixed point or floating point and block scale floating point operators
US6687373B1 (en) Heusristics for optimum beta factor and filter order determination in echo canceler systems
US6574337B1 (en) Adaptive echo canceler undoing adaptations made during double-talk
CA2282567C (en) Adaptive dual filter echo cancellation
KR100240626B1 (en) Echo cancelling method and its device of the digital mobile communication system
KR100561390B1 (en) Digital echo cancellation device
Hillman DSP56200: An algorithm-specific digital signal processor peripheral
JP2888121B2 (en) Method and apparatus for identifying unknown system using adaptive filter
US7386120B2 (en) Echo canceller having a frequency domain active region location estimator
US8499020B2 (en) Method and system for estimating and applying a step size value for LMS echo cancellers
JPH04230112A (en) Method and device for approximating unknown system by adaptive filter
Rabaa et al. Acoustic echo cancellation based on a recurrent neural network and a fast affine projection algorithm
JPS6113416B2 (en)
Baghious et al. Realization of block adaptive filters using Fermat number transforms
Chen et al. A zero-delay FFT-based subband acoustic echo canceller for teleconferencing and hands-free telephone systems
Park et al. A Nsvel Implementation of Acoustic and Electrical Echo Cancellers for a Full-Duplex Teleconference P
Maouche et al. The fast subsampled-updating fast newton transversal filter (FSU FNTF) algorithm for adaptive filtering

Legal Events

Date Code Title Description
AS Assignment

Owner name: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL), SWEDEN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HAKANSSON, STEFAN;HAMMAR, CLAES;TRUMP, TONU;REEL/FRAME:008654/0985;SIGNING DATES FROM 19970618 TO 19970718

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12