US5933797A - Adaptive dual filter echo cancellation - Google Patents
Adaptive dual filter echo cancellation Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B3/00—Line transmission systems
- H04B3/02—Details
- H04B3/20—Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other
- H04B3/23—Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other using a replica of transmitted signal in the time domain, e.g. echo cancellers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum 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
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.
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.
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.
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)
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.
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)
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)
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)
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 |
-
1997
- 1997-02-28 US US08/810,601 patent/US5933797A/en not_active Expired - Lifetime
-
1998
- 1998-02-19 MY MYPI98000717A patent/MY122103A/en unknown
- 1998-02-26 GB GB9920266A patent/GB2341067B/en not_active Expired - Fee Related
- 1998-02-26 DE DE19882141T patent/DE19882141B4/en not_active Expired - Fee Related
- 1998-02-26 AU AU66424/98A patent/AU6642498A/en not_active Abandoned
- 1998-02-26 WO PCT/SE1998/000349 patent/WO1998038582A1/en active Application Filing
- 1998-02-26 CN CN98802943A patent/CN1126049C/en not_active Expired - Lifetime
- 1998-02-26 JP JP53758298A patent/JP4445041B2/en not_active Expired - Lifetime
Patent Citations (21)
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)
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)
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 |