Apparatus and method for echo cancellation
By segmenting the echo response and using a peak search algorithm to target only dominant echo peaks, the method addresses the inefficiencies of full window length echo tap coverage, achieving reduced power consumption and silicon area with equivalent performance.
Patent Information
- Application Number
- PCT/EP2023/072026
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-09
- Publication Date
- 2025-02-13
AI Technical Summary
Existing echo cancellation methods in communication channels require significant power, complexity, and silicon area to cover full window length echo taps, which is inefficient and resource-intensive.
The proposed solution divides the echo response into segments and uses a peak search algorithm based on tap step hopping to identify and cancel only the dominant echo peaks, reducing the number of echo taps required and optimizing hardware resource usage.
This approach significantly reduces power consumption and silicon area while maintaining equivalent performance to full echo response compensation, enabling efficient echo cancellation in communication channels.
Smart Images

Figure EP2023072026_13022025_PF_FP_ABST
Abstract
Description
[0001] APPARATUS AND METHOD FOR ECHO CANCELLATION
[0002] TECHNICAL FIELD
[0003] The present disclosure relates to an apparatus and a method for echo cancellation in a communication channel, e.g., for usage in automotive, industrial and consumer electronics. The disclosure also relates to segmentation-based echo cancellation using time steps hopping for low power.
[0004] BACKGROUND
[0005] Wired based high speed serial communication PHYs (physical interfaces) 110, 120 exchange data over cable 130 with a maximum length as defined by standards, e.g., IEEE 802.3cy, as illustrated in Figure 1. The length of the cable 130 can vary from a fraction of a meter up to 100m and higher. The cable 130 is usually divided into different segments and connected via inline connectors 131 as shown in Figure 1. As the impedance changes at the connection point 131, 132 between cable and connector, the transmitted signal 112 is reflected back as echo signal 123. In full duplex communication systems, the reflected echo signal 123 is superimposed on top of the received signal 122. The reflected echo signal 123 needs to be cancelled out at the receiver. The echo signal 123 can be significant and cancelling the echo signal 123 can take quite some effort in terms of complexity and power consumption. A clever solution of this problem can make a difference in terms of product quality.
[0006] SUMMARY
[0007] The disclosure provides a solution for a significant reduction of the echo signal in a communication channel, e.g., a wired based high speed serial communication channel as shown in Figure 1, in order to overcome the above-described problems.
[0008] Accordingly, the need of covering full window length echo taps for echo cancellation in order to reduce the power, complexity and silicon area is reduced. The foregoing and other objects are achieved by the features of the independent claims. Further implementation forms are apparent from the dependent claims, the description and the figures.
[0009] The focus of this disclosure lies on a technique reducing the need of covering full window length echo taps for echo cancellation in order to reduce the power, complexity, and silicon area. The whole echo response is divided into a number of segments and an echo cancellation block is designed that covers the first segment and other segments that are less dominant. The position of echo peaks is identified in a given time such that window length and position can be adjusted at the right set of peaks so that those echo peaks can be cancelled using limited hardware resources. Further, the echo positions which are outside of the peaks are considered to be residual echo and there is no need for the cancellation. Echo peak position is searched through an algorithm during real time which ultimately decides length and position of window to cancel the echo. The echo cancellation method uses FIR filter with number of taps and filter coefficients for corresponding taps. In this disclosure, the number of taps means the window length. At the beginning of communication, the method starts estimating the echo and cancelling it for the segment where the peaks are present. Once the coefficients reach their steady state values, then the method freezes the coefficients and moves to other segments to detect if there are any significant echo to be cancelled. The coefficients are updated based on adaptive algorithm, e.g., least mean square algorithm.
[0010] Such technique significantly reduces the number of echo taps compared to a required number of echo taps when covering the full echo response. Compared to the full echo response compensation the same performance can be maintained for this novel technique.
[0011] The solution presented in this disclosure uses a peak search algorithm that is based on tap step hopping (time step hopping). The method uses limited hardware resources to cancel the echo compared to previous arts in a given time constraint. The echo peaks with high power are cancelled and those with low power are left without cancellation as shown in Figure 3. The algorithm searches and detects those peaks in real time. Thus, the disclosure provides a solution to the problem of connecting segment with echo peaks to a set of taps in a given time in order to cancel the echo using limited hardware resources as shown in Figure 4. This enables saving silicon area and power consumption. The peak search algorithm presented in this disclosure is based on tap step hopping, which detects a set of echo peaks in a given time. This quickly identifies the window length and position needed for the echo cancellation. The algorithm has the capability to detect and cancel echo without using full length of echo tap at signal processing block. A technique is presented that reuses the limited number of echo taps to detect and cancel the echoes that are spread over the echo response. A technique is presented that decides whether the detected echo needs to be cancelled or can be left as un-cancelled echo. A method is presented that shifts the window of the FIR filter from segment to segment once the coefficients reach its steady state value.
[0012] The solution described in this disclosure can be applied in automotive applications using wiredbased data communication links, e.g., Ethernet cables such as defined by 1000BASE-T1, 10GBASE-T1, and future 25GBASE-T1. As there is a need of more and more bandwidth for the future autonomous vehicle to reliably transmit sensors data to the central processing unit, techniques according to the disclosure can be advantageously applied to improve efficiency of data transmission.
[0013] Apart from automotive, the technology described herein can also be applied in industrial and automation applications as well as consumer electronics.
[0014] In order to describe the disclosure in detail, the following terms, abbreviations and notations will be used:
[0015] PHY physical layer device or physical interface
[0016] DAC Digital to Analog Converter
[0017] LMS Least Mean Squares (algorithm)
[0018] FIR Finite Impulse Response (filter)
[0019] OEM Original Equipment Manufacturer
[0020] AFE Analog Front End
[0021] ADC Analog to Digital Converter
[0022] According to a first aspect, the disclosure relates to an apparatus for echo cancellation in a communication channel having an impulse response which extends over N time intervals, the apparatus comprising: a finite impulse response, FIR, filter having a set of M+l filter coefficients, the FIR filter being configured to filter a reference signal using the M+l filter coefficients to obtain a first filtered reference signal; an interval selector for selecting values of the reference signal associated with a k-th time interval of the N time intervals; M delay elements for successively delaying the selected values of the reference signal; M+l error estimators coupled to respective outputs of the interval selector and the M delay elements, wherein the M+l error estimators are configured to determine the M+l filter coefficients based on minimizing a deviation measure between the first filtered reference signal and a received signal which is a version of the reference signal transmitted over the communication channel; and a controller configured to determine one or more signal echoes originating from the communication channel and to adjust the interval selector based on the one or more signal echoes, in order to reduce influence of the signal echoes on communications over the communication channel.
[0023] M can be any integer number. A time interval may comprise a plurality of sample values, for example corresponding to the number of filter coefficients M+l. The number N of time intervals can be any integer number, for example greater than 1. The k-th time interval can be any of the N time intervals, e.g., selected by a controller.
[0024] Such an apparatus reduces echo cancellation complexity due to the interval selection by the interval selector as controlled by the controller and thus results in low power and less silicon area.
[0025] The apparatus significantly reduces the number of echo taps compared to a required number of echo taps when covering the full echo response. Compared to the full echo response compensation the same performance can be maintained when using the disclosed apparatus.
[0026] The apparatus can be advantageously applied in wired full duplex chip to chip communication, for example.
[0027] In an exemplary implementation, the apparatus comprises: one or more peak scanners configured to scan the impulse response for the one or more signal echoes. By such peak scanners, the position of echo peaks (or signal echoes) can be identified in a given time such that a window length and position can be adjusted at the right set of peaks so that those echo peaks can be cancelled by using limited hardware resources. Further, the echo positions which are outside of the peaks, can be considered as residual echo and there is no need for cancellation of such residual echo.
[0028] In an exemplary implementation of the apparatus, each peak scanner is configured to determine a respective one of the signal echoes based on energy values of the impulse response crossing a threshold. This ensures that only significant echo peaks are determined while other echoes which are below the threshold are considered as not relevant residual echoes.
[0029] In an exemplary implementation of the apparatus, each peak scanner is configured to scan the impulse response in time steps corresponding to multiple samples of the impulse response. This ensures that fast detection of relevant echoes, e.g., the dominant echo peaks can be achieved and fast echo cancellation can be performed.
[0030] In an exemplary implementation of the apparatus, a time step of a respective peak scanner is less than a width of the signal echoes scanned by the respective peak scanner. This achieves that stepping through the impulse response, no echo peak will be overseen.
[0031] In an exemplary implementation of the apparatus, each peak scanner is configured to scan the impulse response within a respective peak scanner boundary time interval. By such scan procedure, multiple peak scanners can be used in parallel, each one scanning within its respective peak scanner boundary time interval.
[0032] In an exemplary implementation of the apparatus, the peak scanner boundary time intervals are equally divided among the peak scanners; or the peak scanner boundary time intervals are divided among the peak scanners based on an optimization criterion with respect to resources utilization. When equally dividing the peak scanner boundary time intervals, the whole impulse response can be quickly scanned. When dividing with respect to an optimization criterion, resources can be utilized for dominant echo peaks.
[0033] In an exemplary implementation of the apparatus, the controller is configured to allocate the set of M+l filter coefficients of the FIR filter based on the respective widths of the one or more signal echoes. This ensures optimal usage of available resources.
[0034] In an exemplary implementation of the apparatus, the M+l error estimators are mean squares error estimators, least mean squares error estimators or minimum mean square estimators. When using such error estimators, the well-known iteration procedures can be applied to update the filter coefficients. Such iteration procedures are easily available in software libraries. These procedures can guarantee fast convergence of the filter coefficients even in time variant environments.
[0035] In an exemplary implementation of the apparatus, the deviation measure between the first filtered reference signal and the received signal is a mean square deviation between values of the first filtered reference signal and the received signal. By such deviation measure the error signal is minimized. The filter represents a precise model of the communication channel.
[0036] In an exemplary implementation of the apparatus, the apparatus comprises: a memory for storing the M+l filter coefficients for the values of the reference signal selected by the interval selector. When using such a memory the actual filter coefficients processed for the respective time interval of the impulse response can be stored in the memory for later usage. Thus, a successive determination of all filter coefficients of the full impulse response of the communication channel can be performed without increasing computation complexity.
[0037] In an exemplary implementation of the apparatus, the memory is configured to store the M+l filter coefficients for each time interval of the N time intervals applied by the interval selector. By storing the filter coefficients for each time interval, all filter coefficients of the full impulse response of the communication channel can be stored in the memory and a compensation accuracy is increased when filtering with the whole set of filter coefficients. However, chip size can be designed for processing only one or two time intervals of the full impulse response at a time.
[0038] In an exemplary implementation of the apparatus, the memory is configured to store the M+l filter coefficients together with a value of the k-th time interval applied by the interval selector. This ensures that each set of M+l filter coefficients is stored in the correct sequence. This simplifies a later access to the filter coefficients by a full impulse response compensation filter.
[0039] In an exemplary implementation of the apparatus, the apparatus comprises: a plurality of spare resources for increasing the number of filter coefficients of the finite impulse response filter. When using such spare resources the accuracy of the FIR filter can be flexibly adapted. For example, if a high precision of echo compensation is required, the number of filter coefficients can be increased by additionally using the spare resources. If a low precision is required, even less filter coefficients than the above-mentioned M+l filter coefficients can be used by assigning some of the M+l filter coefficients as spare resources.
[0040] In an exemplary implementation of the apparatus, the spare resources comprise at least one additional filter coefficient; and the finite impulse response filter is configured to filter the values of the reference signal using the M+l filter coefficients and the at least one additional filter coefficient to obtain the first filtered reference signal. By using more than the M+l filter coefficients for the filtering a higher accuracy of the filtering process can be obtained.
[0041] According to a second aspect, the disclosure relates to a method for echo cancellation in a communication channel having an impulse response which extends over N time intervals, the method comprising: filtering a reference signal, by using a finite impulse response filter having a set of M+l filter coefficients to obtain a first filtered reference signal; selecting values of the reference signal associated with a k-th time interval of the N time intervals by an interval selector; successively delaying the selected values of the reference signal by M delay elements; determining, by M+l error estimators, the M+l filter coefficients in order to minimize a deviation measure between the first filtered reference signal and a received signal which is a version of the reference signal transmitted over the communication channel; and determining one or more signal echoes originating from the communication channel and to adjust the interval selector based on the one or more signal echoes, in order to reduce influence of the signal echoes on communications over the communication channel.
[0042] Such a method provides the same advantages as the apparatus described above with respect to the first aspect. For example, the method can advantageously reduce echo cancellation complexity due to the interval selection by the interval selector. The method significantly reduces the number of echo taps compared to a required number of echo taps when covering the full echo response. Compared to the full echo response compensation the same performance can be maintained when using the disclosed method.
[0043] According to a third aspect, the disclosure relates to a computer program product including computer executable code or computer executable instructions that, when executed, causes at least one computer to execute the method according to the second aspect. Such a computer program product may include a non-transient readable storage medium storing program code thereon for use by a processor, the program code comprising instructions for performing the method or the computing blocks as described hereinafter.
[0044] The computer program product may run on a computer, e.g., a processor or a controller of a communication system using the wired-base data communication link 130 shown in Figure 1.
[0045] Using such a computer program product improves efficiency of echo compensation due to reduction of number of echo taps.
[0046] BRIEF DESCRIPTION OF THE DRAWINGS
[0047] Further embodiments of the disclosure will be described with respect to the following figures, in which:
[0048] Fig. 1 shows a schematic diagram illustrating a source of an echo signal 123 in a wired communication system 100;
[0049] Fig. 2 shows an exemplary impulse response 200 having an unforeseen echo 221, 222 due to lifetime of cable and connector;
[0050] Fig. 3 shows an exemplary impulse response 200b illustrating echo peaks identification in terms to be cancelled and to leave without cancellation;
[0051] Fig. 4 shows an apparatus 300 for echo cancellation with a controller 350 for connecting segments to a set of taps and controlling echo cancellation;
[0052] Fig. 5a shows a block diagram illustrating an apparatus 300 for echo cancellation according to the disclosure with short length of echo taps;
[0053] Fig. 5b shows a flow chart of an exemplary tap step hopping algorithm; Fig. 6 shows a block diagram illustrating an apparatus 400 for echo cancellation according to the disclosure with a segment shifting technique to cover all segments of echo response;
[0054] Fig. 7 shows a schematic diagram illustrating a segment shifting technique according to the disclosure to cover all segments of echo response;
[0055] Fig. 8 shows a schematic diagram illustrating peak scanner boundaries according to the disclosure for echo peak searching algorithm;
[0056] Fig. 9 shows a schematic diagram illustrating a method 900 for echo cancellation according to the disclosure.
[0057] DETAILED DESCRIPTION OF EMBODIMENTS
[0058] In the following detailed description, reference is made to the accompanying drawings, which form a part thereof, and in which is shown by way of illustration specific aspects in which the disclosure may be practiced. It is understood that other aspects may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.
[0059] It is understood that comments made in connection with a described method may also hold true for a corresponding device or system configured to perform the method and vice versa. For example, if a specific method step is described, a corresponding device may include a unit to perform the described method step, even if such unit is not explicitly described or illustrated in the figures. Further, it is understood that the features of the various exemplary aspects described herein may be combined with each other, unless specifically noted otherwise.
[0060] The devices and methods described herein may be configured to transmit and / or receive data over wired-based serial data communication link, for example according to IEEE 802.3, in particular IEEE 802.3cy for wired Ethernet. The original Ethernet uses coaxial cable as a shared medium, while the newer Ethernet variants use twisted pair and fiber optics links in conjunction with switches. The Ethernet standards comprise several wiring and signaling variants of the OSI physical layer (PHY) in use with Ethernet.
[0061] Fig. 1 shows a schematic diagram illustrating the source of an echo signal 123 in a wired communication system 100.
[0062] Two wired based high-speed serial communication PHYs 110, 120 exchange data over a wiredbased data communication link 130. Each PHY 110, 120 may transmit and / or receive data. The length of the cable 130 may vary from a fraction of a meter up to a maximum length as defined by standards, e.g., IEEE 802.3, in particular IEEE 802.3cy. The length of the cable 130 varies from a fraction of a meter up to 100m and higher. The cable 130 is usually divided into different segments and connected via inline connectors 131, 132. As the impedance changes at the connection point 131, 132 between cable and connector, the transmitted signal 112 is reflected back as echo signal 123. In full duplex communication systems, the reflected echo signal 123 is superimposed on the top of the received signal 122. The reflected echo signal 123 needs to be cancelled out at the receiver. The echo signal 123 can be significant and it can take quite some effort in terms of complexity and power consumption.
[0063] A line impedance 135 at the left-hand side of the cable 130, e.g., for PHY 110 may be 100 Ohms, for example. A line impedance 136 at the right-hand side of the cable 130, e.g., for PHY 120 may be 100 Ohms, for example. In one example, the wired data communication link 130 may comprise a shielded twisted pair cable.
[0064] Fig. 2 shows an exemplary impulse response 200 having an unforeseen echo 221, 222 due to lifetime of cable 130 and connectors 131, 132 shown in Figure 1.
[0065] Beyond lOGbit / s Ethernet PHYs, it is expected that the cable return loss quality increases and this is visible in IEEE 802.3cy standard. As the quality of the cable and the connector that are used in 25Gbit / s technology is expected to be better, it may not be required to use a full length echo cancellation in terms of number of echo taps at the receiver. Instead, only a relevant window length 210 of echo needs to be cancelled and the rest can be left as noise as can be seen in Figure 2. However, in a real-life use case the cable or connector may degrade over time and may result in unforeseen echo 221, 222 as depicted in Figure 2. This results in SNR degradation and high chance of getting link instability with high bit-error-rate or the link may even drop. Further, cable length and the connector position are not fixed. These parameters change from OEM to OEM and vehicle to vehicle. This affects window size as well as window position, which needs to be correctly identified by an algorithm during the run time for an effective echo cancellation. If excessive hardware resources can be afforded, identifying window length and position can be quick. But then a price needs to be paid for silicon area and power. During the installation of cable in the car, the return loss specification can be passed but no one can give a guarantee over the life time of car usages. Thus, the high speed PHY needs to make sure that it functions correctly over the lifetime of vehicle with aging issue.
[0066] The disclosure presents novel echo cancellation with a reduced number of taps as described below with respect to Figures 4 to 8. This allows to compensate for echoes that may occur during the life time of the car and may be applied for example in wireline full duplex chip to chip communication. It understands that the solution described in this disclosure is not limited to automotive use cases. It can also be applied in other use cases, e.g., consumer electronics or automation, etc.
[0067] Fig. 3 shows an exemplary impulse response 200b illustrating echo peaks identification in terms to be cancelled and to leave without cancellation.
[0068] In the exemplary impulse response 200b, a dominant near end echo 210 is shown and a number of dominant echoes 221, 222, 223, 224, 225 is shown. By applying a threshold 230 to energies of the impulse response taps, echo peaks to be cancelled can be identified and non-dominant echoes left without cancellation can be determined.
[0069] The number of echo taps can thus be reduced significantly compared to a conventional echo canceller that covers full echo response. The technique presented in this disclosure still maintains the performance equivalent to the conventional echo canceller. The disclosed technique uses peak search algorithm as described below with respect to Figure 5a that is based on tap step hopping (also referred to as time step hopping). The disclosed method uses limited hardware resources to cancel the echo compared to conventional echo canceller in a given time constraint. The echo peaks with high power 221, 222, 223, 224, 225 as shown in Figure 3 will be cancelled and those with low power will be left without cancellation as shown in Figure 3. The algorithm can search and detect those peaks 221, 222, 223, 224, 225 in real time. Fig. 4 shows an apparatus 300 for echo cancellation with a controller 350 for connecting segments to a set of taps and controlling echo cancellation.
[0070] In Figure 4 a reference signal 301 is delayed by a set of delay elements 321d, 321a, 321b, 321c. Specific segments of the delayed reference signal are connected to error estimators 331a, 331b, 331c, 33 Id, e.g., implementing an LMS algorithm. A received signal 122, e.g., a version of the reference signal 301 transmittable over the communication channel is received by an analog front end 381 and transmitted by an ADC 382 into digital domain 302 where it is combined 330 with the filtered reference signal to provide an echo-free signal 303.
[0071] A controller 350 is applied to connect segments with echo peaks to the set of filter taps, e.g., the error estimators 331a, 331b, 331c, 33 Id in a given time in order to cancel the echo using limited hardware resources as shown in Figure 4. This enables saving silicon area and power consumption.
[0072] The functionality of the controller 350 is described in detail below with respect to Figure 5a.
[0073] Fig. 5a shows a block diagram illustrating an apparatus 300 for echo cancellation according to the disclosure with short length of echo taps.
[0074] The apparatus 300 is for echo cancellation in a communication channel 130, e.g., as shown in Figure 1. An impulse response 304 of the communication channel 130 extends over N time intervals 342a-d (also referred to as segments or time segments) as shown in the upper part of Figure 5 a.
[0075] The apparatus 300 comprises a finite impulse response filter 311a-c, 312a-d, 314a-c having a set of M+l filter coefficients 313a-d. The finite impulse response filter is configured to filter a reference signal 301 using the M+l filter coefficients 313a-d to obtain a first filtered reference signal 315.
[0076] The apparatus 300 comprises an interval selector 340 for selecting values of the reference signal 301 associated with a k-th time interval of the N time intervals 342a-d. The apparatus 300 comprises M delay elements 321a-c for successively delaying the selected values of the reference signal 301. The M delay elements 321a-c are arranged after the interval selector 340 as shown in Figure 5a.
[0077] The apparatus 300 comprises M+l error estimators 33 la-d coupled to respective outputs of the interval selector 340 and the M delay elements 321a-c. A first error estimator 331a is coupled to an output of the interval selector 340. Each of the remaining M error estimators 33 Ib-d is coupled to an output of a respective delay element 321a-c. The M+l error estimators 33 la-d are configured to determine the M+l filter coefficients 313a-d based on minimizing a deviation measure between the first filtered reference signal 315 and a received signal 122 which is a version of the reference signal 301 transmitted over the communication channel 130.
[0078] The apparatus 300 comprises a controller 350 configured to determine one or more signal echoes 221, 222 (such as dominant echo peaks) originating from the communication channel 130 and to adjust the interval selector 340 based on the one or more signal echoes 221, 222, in order to reduce influence of the signal echoes 221, 222 on communications over the communication channel 130.
[0079] M can be any integer number. A time interval may comprise a plurality of sample values, for example corresponding to the number of filter coefficients M+l. The number N of time intervals can be any integer number, for example greater than 1. The k-th time interval can be any of the N time intervals, e.g., selected by the controller.
[0080] One or more peak scanners 231, 232, 233, 234, e.g., as shown in Figure 8, may be configured to scan the impulse response 304 for the one or more signal echoes 221, 222. Those peak scanners 231, 232, 233, 234 may be part of the controller 350 or the control algorithm implemented by the controller 350.
[0081] Each peak scanner 231, 232, 233, 234 may be configured to determine a respective one of the signal echoes 221, 222 based on energy values of the impulse response 304 crossing a threshold 230, e.g., as shown in Figure 7.
[0082] Each peak scanner 231, 232, 233, 234 may be configured to scan the impulse response 304 in time steps corresponding to multiple samples of the impulse response 304. A time step of a respective peak scanner 231, 232, 233, 234 can be less than a width 227a, 227b of the signal echoes 221, 222 scanned by the respective peak scanner 231, 232, 233, 234, e.g., as shown in Figure 7.
[0083] Each peak scanner 231, 232, 233, 234 may be configured to scan the impulse response 304 within a respective peak scanner boundary time interval 240, e.g., as shown in Figure 8.
[0084] These peak scanner boundary time intervals 240 may be equally divided among the peak scanners 231, 232, 233, 234. Alternatively, the peak scanner boundary time intervals 240 may be divided among the peak scanners 231, 232, 233, 234 based on an optimization criterion with respect to resources utilization. For example, in areas of the impulse response which have dominant echo peaks, peak scanner boundaries may be small for a fast detection of such echo peaks while in areas having no dominant echo peaks, peak scanner boundaries may be large. Those areas having dominant echo peaks are having no such dominant echo peaks can be determined based on known information, e.g., measurements in the field for similar scenarios with similar impulse responses.
[0085] The controller 350 may be configured to allocate the set of M+l filter coefficients 313a-d of the FIR filter 311a-c, 312a-d, 314a-c based on the respective widths 227a, 227b of the one or more signal echoes 221, 222. For example, filter coefficients may be allocated to a respective signal echo (or echo peak) over the whole width of this signal echo (or echo peak) in order to enable sufficient cancellation of this signal echo (or echo peak).
[0086] The M+l error estimators 331a-d can be mean squares error estimators, for example least mean squares (LMS) error estimators or minimum mean square estimators.
[0087] The deviation measure between the first filtered reference signal 315 and the received signal 122 may be a mean square deviation between values of the first filtered reference signal 315 and the received signal 122.
[0088] The apparatus 300 may comprise a memory 370 for storing the M+l filter coefficients 313a-d for the values of the reference signal 301 selected by the interval selector 340. The memory 370 may be configured to store the M+l filter coefficients 313a-d for each time interval of the N time intervals 342a-d applied by the interval selector 340.
[0089] The memory 370 may be configured to store the M+l filter coefficients 313a-d together with the value of the k-th time interval applied by the interval selector 340.
[0090] The M+l error estimators 331a-d may be configured to determine the M+l filter coefficients 313a-d for which the deviation measure between the first filtered reference signal 315 and the received signal 122 is below a predefined threshold.
[0091] The apparatus 300 may comprise a subtractor 330 configured to determine the deviation measure based on a subtraction of the first filtered reference signal 315 from a digital representation 302 of the received signal 122.
[0092] The apparatus 300 may further comprise an echo compensation filter having a set of N times M+l filter coefficients (not shown in Figure 3). The echo compensation filter may be configured to filter values of a transmit signal transmittable over the communication channel 130 by using the M+l filter coefficients 313a-d for each time interval of the N time intervals 342a-d.
[0093] The controller 350 may be configured to send a select signal 351 to the interval selector 340 for selecting a value of the k-th time interval applied by the interval selector 340. By this controller 350, a respective time interval or time segment 342a, 342b, 342c, 342d of the channel impulse response 304 can be adjusted as described in this disclosure.
[0094] The apparatus 300 may comprise a plurality of spare resources 371, e.g., memory cells, for increasing the number of filter coefficients of the finite impulse response filter 31 la-c, 312a-d, 314a-c.
[0095] The spare resources 371 may comprise one or more additional filter coefficients 313e, 313f. The finite impulse response filter 31 la-c, 312a-d, 314a-c may be configured to filter the values of the reference signal 301 using the M+l filter coefficients 313a-d and the at least one additional filter coefficient 313e, 313f to obtain the first filtered reference signal 315. The apparatus 300 may further comprise a combination element 372 for combining the finite impulse response filter 311a-c, 312a-d, 314a-c with the plurality of spare resources 371. This combination element 372 can be a logic circuit for adding the spare resources to the FIR filter 31 la-c, 312a-d, 314a-c and / or to the delay elements 321a-c.
[0096] The controller 350 may be configured to send an enable signal 352 to the plurality of spare resources 371 and the combination element 372. The enable signal 352 may be configured to enable the plurality of spare resources 371 and the combination element 372.
[0097] The apparatus 300 may further comprises an analog front end 381 to receive the received signal 122; and an analog-to-digital converter 382 to convert the received signal 122 processed by the analog front end 381 into a digital representation 302.
[0098] The apparatus 300 can detect and cancel echo without using full length of echo tap at the signal processing blocks. The controller 350 can provide smart echo cancellation with on-board diagnostic capability by controlling the behavior of the echo cancellation. In particular, the controller 350 can control a reuse of the limited number of echo taps to detect and cancel the echo that are spread over the echo response. The controller 350 can decide which of the detected echo needs to be cancelled and which of the detected echo can be left as un-cancelled echo. Once the coefficients reach its steady state value, the controller 350 can shift the window of the FIR filter from segment to segment, e.g., as illustrated in Figure 6 in more detail.
[0099] In the following, an exemplary functionality of the apparatus 300 shown in Figure 5a is described.
[0100] An echo peak with a certain width is called a segment. Each segment can have samples more than one. Segment width depends on connector and impedance mismatches. For a given technology with a fixed data rate, maximum and minimum segment width can be determined through getting time domain response of a channel.
[0101] The apparatus 300 can perform the following:
[0102] Divide the complete impulse response 304 into several segments as shown in Figure 5a: Seg-1 (342a), Seg-2 (342b), Seg-3 (342c), . . . Seg-n (342d). Reduce the number of echo taps allocation and allocate M taps for each segment.
[0103] Upper M'hdelayer 311a, 311b, 311c is to compute the echo to be cancelled, while lower M'hdelayer 321a, 321b, 321c is used to compute the coefficients and those computed coefficients are stored in the memory 370 as shown in Figure 5 a.
[0104] Controller 350 (or Control block 350) controls in terms of checking the computed coefficients, selecting 351 the number of delayers to move the FIR filter to a particular segment. If additional resources are needed to compute the echo for the cancellation control blocks enable 352 the resources 371 that will be available as an accelerator.
[0105] C1is the current value of coefficient and C1+1is the new value of computed coefficient.
[0106] Let the algorithm 331a, 331b, 331c, 33 Id compute the coefficients for a segment until they reach to their saturation value, typical algorithm is least mean square (LMS) that is commonly used.
[0107] Coefficient saturation is detected based on sensitivity analysis, e.g., dC / dt = ~0.
[0108] Store the index and the value of each coefficient into the memory 370.
[0109] These stored values are used to cancel the echo continuously for each received symbol for the visited segment.
[0110] Terms Z'M, Z'2M, and Z'kMare set of delayers that help to move FIR filter from segment to segment as shown in Figure 6.
[0111] All delayers Z'M, Z'2M, and Z'kMmay be filled from the beginning.
[0112] The controller 350 may implement the following algorithm (or method), also referred to as algorithm for time step hopping:
[0113] - The algorithm uses tap (time) step hopping method to quickly jump through all the echo peaks and identify the peaks with high power, e.g., as shown in Figure 7. - Peaks are identified based on a defined threshold 230 “a thick horizontal line” as shown in Figure 7.
[0114] - Among the peaks a dominant set of peaks (e.g., peaks 221, 222) is defined with longest width which is due to near-end echo effect of the communication channel.
[0115] - Allocate a set of taps with length needed for the width of dominant peaks 221, 222.
[0116] - Determine the total length of echo impulse response including round trip delay in seconds.
[0117] - Determine segment width in seconds by counting the number of samples in one segment.
[0118] - Tap step hopping value is equal to number of samples in a segment with a minimum width - 1.
[0119] - Assign a fixed number of taps for the first dominant echo peaks.
[0120] - Remaining duration = Total round trip delay - duration of dominant echo peaks.
[0121] - Assign peak scanners over the remaining duration as shown in Figure 8 that has for example four peak scanners 231, 232, 233, 234 assigned to the remaining duration. The higher the number of peak scanners, the earlier the results of finding their positions. This can be determined by link start-up constraints. Tap step hopping value can be minimum segment width
[0122] - 1.
[0123] - Determine peak scanner boundary interval 240 in seconds, e.g., as shown in Figure 8. It is calculated by remaining duration per number of peak scanners. Once the boundary is defined, peak scanner will not scan further and stops there. For example, in Figure 8, peak scanner 233 has a boundary up to peak scanner 232 from its initial position. All peak scanners can move left while scanning and return back to their initial position.
[0124] - Further, scanner boundary interval 240 can be equally divided among the peak scanners 231, 232, 233, 234. However, in some implementation, with advance knowledge of channel behavior, the boundary interval 240 can be different for different scanners in order to effectively utilize the resources.
[0125] A flow chart of an exemplary algorithm tap step hopping algorithm 600 is shown in Figure 5b and described in the following:
[0126] - After the initialization, the peak scanner starts to scan echo from its starting position, 601.
[0127] - At each position it stays there for a while to check whether there is a peak, 602.
[0128] - It (the peak scanner) correlates the sampled data with the transmitted signal and updates the coefficients using for example the least mean square algorithm or another algorithm similar to this one, 603.
[0129] - After some time it checks the rate of change of coefficients value, 604.
[0130] - If the rate of change of value is zero and peak value is less than a defined threshold, 605, then it regards that position as residual echo with coefficients zero which means that the echo value is small enough to neglect, 606. Its position is remembered and stored in a memory, 607a. Further corresponding echo value is set to zero and stored in memory, 607b. Peak scanner position is incremented by the maximum tap step hopping value, 608.
[0131] Otherwise, if the rate of change of value is zero and peak value is greater than or equal to a threshold then: Position is stored in a memory; and corresponding echo value is also stored in a memory, 609.
[0132] - Peak scanner position is decremented by one step, 610.
[0133] - If the rate of change of coefficient is zero and the peak value is lower than a threshold, 611 then: Peak scanner position is incremented by 2 and calculate again the coefficient value, 612.
[0134] - Otherwise, if the rate of change of coefficient value is zero and the peak value is greater than a threshold, then: Decrement the peak scanner position by 1, 613; Check the position value has reached its boundary value, 614; If yes then stop, 615; If no, then calculate the coefficients value, 616.
[0135] Fig. 6 shows a block diagram illustrating an apparatus 400 for echo cancellation according to the disclosure with a segment shifting technique to cover all segments of echo response.
[0136] The apparatus 400 corresponds to the apparatus 300 shown in Figure 5 a, where the interval selector 340 and the memory 370 is represented in more detail to illustrate the segment shifting technique that covers all segments, e.g., time intervals 342a, 342b, 342c, 342d of the echo response 304.
[0137] The interval selector 340 can be controlled by the controller 350 using a switch 401 to switch a respective segment, e.g, time interval 342a, 342b, 342c, 342d of the echo response 304. Depending on the selected value k, the reference signal 301 is delayed by 0, M, 2M, ..., kM samples.
[0138] The FIR filter comprises the M delay elements 321a, 321b, 321c, 321d and the M+l multipliers 312a, 312b, 312c, 312d for applying the respective filter coefficients stored in the corresponding memory cells 373a, 373b, 373c, 373d for each of the time intervals 342a, 342b, 342c, 342d selected by the controller 350.
[0139] Note that in Figure 6, the FIR filter is exemplarily represented by a number of four blocks of delay elements Z'1and a corresponding number of filter coefficients while in Figure 5a, the FIR filter is exemplarily represented by a number of three blocks of delay elements Z'1and corresponding filter coefficients. In both Figures, the length of the FIR filter corresponds to M+l for covering a respective time segment 342a, 342b, 342c, 342d of the echo impulse response 304 as shown in Figures 5 a and 6.
[0140] When the next time interval is selected by the switch 401 that is controlled by the controller 350, the next set of memory cells 374a, 374b, 374c, 374d is selected for FIR filtering as shown in Figure 6.
[0141] The FIR filter provides the first filtered reference signal 315 that is subtracted from the digital representation of the received signal 122 including the echo signal 123 to obtain the echo free signal 303, also denoted hereinafter as the error signal, that is used by the adaptation algorithm for adjusting the filter coefficients. The received signal 122 passes the analog front end 381 and the ADC 382 to obtain the digital received signal 302.
[0142] When applying the LMS algorithm as an example for adjusting the filter coefficients, the steepest descent is determined to find the filter weights Ci, Ci+1 which minimize a cost function.
[0143] The LMS algorithm for an M-th order filter can be summarized as:
[0144] Parameters: M = filter order p = step size
[0145] Initialization: Co = zeros (M)
[0146] Computation: For n=0, 1, 2, ...
[0147] X(n) = [x(n), x(n-l),. . . ,x(n-M+l)]Te(n) = d(n)-CH(n)x(n)
[0148] Cn+i = Cn+ p e*(n) x(n).
[0149] In this representation, X(n) corresponds to the reference signal 301, e(n) corresponds to the error signal 303 (or echo-free signal), d(n) corresponds to the digital representation 302 of the received signal 122.
[0150] Instead of using the LMS algorithm, any other algorithm may be used, e.g., Normalized LMS, RLS, Fast transversal filtering algorithms, LFTF algorithm, etc.
[0151] Fig. 7 shows a schematic diagram illustrating a segment shifting technique according to the disclosure to cover all segments of echo response. The impulse response 700 shown in Figure 7 may correspond to the impulse response 304 shown in Figures 5a and 6.
[0152] An exemplary impulse response 700 is shown which has a dominant near-end echo 210 and two other dominant echoes 221, 222. A threshold 230 can be used to identify these dominant echoes 210 and 221, 222. When signal energy of a respective tap of the impulse response 700 is higher than the threshold 230, a dominant echo is identified for the corresponding tap of the impulse response 700. Otherwise, no dominant echo is identified. In this example, first 7 taps of the impulse response are determined as dominant near-end echo 210. In the further course of the impulse response 700, taps 19-23 are determined as dominant echo peak 221 and taps 31-35 are determined as a further dominant echo peak 222. A first segment 227a of impulse response 700 is assigned to dominant echo peak 221 while a second segment 227b of impulse response 700 is assigned to dominant echo peak 222. Resources can be allocated as described above with respect to Figure 5a.
[0153] Fig. 8 shows a schematic diagram illustrating peak scanner boundaries according to the disclosure for echo peak searching algorithm. The impulse response 800 shown in Figure 8 may correspond to the impulse response 700 shown in Figure 7 and the impulse response 304 shown in Figures 5 a and 6.
[0154] The peak scanner boundaries, also referred to as peak scanner boundary time intervals 240 can be assigned to the exemplary number of four peak scanners 231, 232, 233, 234 as shown in Figure 8.
[0155] The peak scanners 231, 232, 233, 234 are configured to scan the impulse response 800 for the one or more signal echoes, e.g., the signal echoes 221, 222 as determined according to Figure 7.
[0156] Each peak scanner 231, 232, 233, 234 can be configured to determine a respective one of the signal echoes 221, 222 based on energy values of the impulse response 700 crossing a threshold
[0157] 230, e.g., as shown in Figure 7.
[0158] Each peak scanner 231, 232, 233, 234 may be configured to scan the impulse response 700, 800 in time steps corresponding to multiple samples of the impulse response.
[0159] A time step of a respective peak scanner 231, 232, 233, 234 may be less than a width 227a, 227b (shown in Figure 7) of the signal echoes 221, 222 scanned by the respective peak scanner
[0160] 231, 232, 233, 234.
[0161] Each peak scanner 231, 232, 233, 234 may be configured to scan the impulse response 800 within a respective peak scanner boundary time interval 240 as shown in Figure 8. The peak scanner boundary time intervals 240 can be equally divided among the peak scanners 231, 232, 233, 234 or can be divided among the peak scanners 231, 232, 233, 234 based on an optimization criterion with respect to resources utilization.
[0162] The controller 350 shown in Figures 5a and 6 may be configured to allocate the set of M+l filter coefficients 313a-d of the FIR filter 31 la-c, 312a-d, 314a-c based on the respective widths 227a, 227b (shown in Figure 7) of the one or more signal echoes 221, 222.
[0163] Fig. 9 shows a schematic diagram illustrating a method 500 for echo cancellation according to the disclosure.
[0164] The method 500 is used for echo cancellation in a communication channel 130 having an impulse response 304 which extends over N time intervals 342a-d as shown in Figures 5a and 6.
[0165] The method 500 comprises: filtering 501 a reference signal 301, by using a finite impulse response filter 31 la-c, 312a-d, 314a-c having a set of M+l filter coefficients 313a-d to obtain a first filtered reference signal 315, e.g., as shown in Figures 5a and 6.
[0166] The method 500 comprises: selecting 502 values of the reference signal 301 associated with a k-th time interval of the N time intervals 342a-d by an interval selector 340, e.g., as shown in Figures 5 a and 6.
[0167] The method 500 comprises: successively delaying 503 the selected values of the reference signal 301 by M delay elements 321a-c, e.g., as shown in Figures 5a and 6.
[0168] The method 500 comprises: determining 504, by M+l error estimators 331a-d, the M+l filter coefficients 313a-d in order to minimize a deviation measure between the first filtered reference signal 315 and a received signal 122 which is a version of the reference signal 301 transmitted over the communication channel 130, e.g., as shown in Figures 5a and 6.
[0169] The method 500 comprises: determining 505 one or more signal echoes 221, 222 originating from the communication channel 130 and to adjust the interval selector 340 based on the one or more signal echoes 221, 222, in order to reduce influence of the signal echoes 221, 222 on communications over the communication channel 130, e.g., as shown in Figures 5a to 8.
[0170] The present disclosure also supports a computer program product including computer executable code or computer executable instructions that, when executed, causes at least one computer to execute the performing and computing steps described herein, in particular the methods and procedures described above. Such a computer program product may include a readable non-transitory storage medium storing program code thereon for use by a computer. The program code may perform the processing and computing steps described herein, in particular the methods and procedures described above.
[0171] While a particular feature or aspect of the disclosure may have been disclosed with respect to only one of several implementations, such feature or aspect may be combined with one or more other features or aspects of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms "include", "have", "with", or other variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term "comprise". Also, the terms "exemplary", "for example" and "e.g." are merely meant as an example, rather than the best or optimal. The terms “coupled” and “connected”, along with derivatives may have been used. It should be understood that these terms may have been used to indicate that two elements cooperate or interact with each other regardless whether they are in direct physical or electrical contact, or they are not in direct contact with each other.
[0172] Although specific aspects have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and / or equivalent implementations may be substituted for the specific aspects shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific aspects discussed herein.
[0173] Although the elements in the following claims are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence. Many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the above teachings. Of course, those skilled in the art readily recognize that there are numerous applications of the disclosure beyond those described herein. While the present disclosure has been described with reference to one or more particular embodiments, those skilled in the art recognize that many changes may be made thereto without departing from the scope of the present disclosure. It is therefore to be understood that within the scope of the appended claims and their equivalents, the disclosure may be practiced otherwise than as specifically described herein.
Claims
CLAIMS:
1. An apparatus (300) for echo cancellation in a communication channel (130) having an impulse response (304) which extends over N time intervals (342a-d), the apparatus (300) comprising: a finite impulse response, FIR, filter (31 la-c, 312a-d, 314a-c) having a set of M+l filter coefficients (313a-d), the FIR filter being configured to filter a reference signal (301) using the M+l filter coefficients (313a-d) to obtain a first filtered reference signal (315); an interval selector (340) for selecting values of the reference signal (301) associated with a k-th time interval of the N time intervals (342a-d);M delay elements (32 la-c) for successively delaying the selected values of the reference signal (301);M+l error estimators (331a-d) coupled to respective outputs of the interval selector (340) and the M delay elements (321a-c), wherein the M+l error estimators (331a-d) are configured to determine the M+l filter coefficients (313a-d) based on minimizing a deviation measure between the first filtered reference signal (315) and a received signal (122) which is a version of the reference signal (301) transmitted over the communication channel (130); and a controller (350) configured to determine one or more signal echoes (221, 222) originating from the communication channel (130) and to adjust the interval selector (340) based on the one or more signal echoes (221, 222), in order to reduce influence of the signal echoes (221, 222) on communications over the communication channel (130).
2. The apparatus (300) of claim 1, comprising: one or more peak scanners (231, 232, 233, 234) configured to scan the impulse response (304) for the one or more signal echoes (221, 222).
3. The apparatus (300) of claim 2,wherein each peak scanner (231, 232, 233, 234) is configured to determine a respective one of the signal echoes (221, 222) based on energy values of the impulse response (304) crossing a threshold (230).
4. The apparatus (300) of claim 3, wherein each peak scanner (231, 232, 233, 234) is configured to scan the impulse response (304) in time steps corresponding to multiple samples of the impulse response (304).
5. The apparatus (300) of claim 4, wherein a time step of a respective peak scanner (231, 232, 233, 234) is less than a width (227a, 227b) of the signal echoes (221, 222) scanned by the respective peak scanner (231, 232, 233, 234).
6. The apparatus (300) of any of claims 2 to 5, wherein each peak scanner (231, 232, 233, 234) is configured to scan the impulse response (304) within a respective peak scanner boundary time interval (240).
7. The apparatus (300) of claim 6, wherein the peak scanner boundary time intervals (240) are equally divided among the peak scanners (231, 232, 233, 234); or wherein the peak scanner boundary time intervals (240) are divided among the peak scanners (231, 232, 233, 234) based on an optimization criterion with respect to resources utilization.
8. The apparatus (300) of claim 5, wherein the controller (350) is configured to allocate the set of M+l filter coefficients (313a-d) of the FIR filter (31 la-c, 312a-d, 314a-c) based on the respective widths (227a, 227b) of the one or more signal echoes (221, 222).
9. The apparatus (300) of any of the preceding claims, wherein the M+l error estimators (331a-d) are mean squares error estimators, least mean squares error estimators or minimum mean square estimators.
10. The apparatus (300) of any of the preceding claims, wherein the deviation measure between the first filtered reference signal (315) and the received signal (122) is a mean square deviation between values of the first filtered reference signal (315) and the received signal (122).
11. The apparatus (300) of any of the preceding claims, comprising: a memory (370) for storing the M+l filter coefficients (313a-d) for the values of the reference signal (301) selected by the interval selector (340).
12. The apparatus (300) of claim 11, wherein the memory (370) is configured to store the M+l filter coefficients (313a-d) for each time interval of the N time intervals (342a-d) applied by the interval selector (340).
13. The apparatus (300) of claim 11 or 12, wherein the memory (370) is configured to store the M+l filter coefficients (313a-d) together with a value of the k-th time interval applied by the interval selector (340).
14. The apparatus (300) of any of the preceding claims, comprising: a plurality of spare resources (371) for increasing the number of filter coefficients of the finite impulse response filter (311a-c, 312a-d, 314a-c).
15. The apparatus (300) of claim 14, wherein the spare resources (371) comprise at least one additional filter coefficient (313e, 313f); and wherein the finite impulse response filter (31 la-c, 312a-d, 314a-c) is configured to filter the values of the reference signal (301) using the M+l filter coefficients (313a-d) and the at least one additional filter coefficient (313e, 313 f) to obtain the first filtered reference signal (315).
16. A method (500) for echo cancellation in a communication channel (130) having an impulse response (304) which extends over N time intervals (342a-d), the method (500) comprising:filtering (501) a reference signal (301), by using a finite impulse response filter (311a- c, 312a-d, 314a-c) having a set of M+l filter coefficients (313a-d) to obtain a first filtered reference signal (315); selecting (502) values of the reference signal (301) associated with a k-th time interval of the N time intervals (342a-d) by an interval selector (340); successively delaying (503) the selected values of the reference signal (301) by M delay elements (321a-c); determining (504), by M+l error estimators (331a-d), the M+l filter coefficients (313a-d) in order to minimize a deviation measure between the first filtered reference signal (315) and a received signal (122) which is a version of the reference signal (301) transmitted over the communication channel (130); and determining (505) one or more signal echoes (221, 222) originating from the communication channel (130) and to adjust the interval selector (340) based on the one or more signal echoes (221, 222), in order to reduce influence of the signal echoes (221, 222) on communications over the communication channel (130).
Citation Information
Patent Citations
Echo canceller
US20030016815A1
Subband echo location and double-talk detection in communciation systems
US20040037417A1
