Aspects of the present disclosure relate generally to improving signal reception in communication circuits, and more specifically to improving echo cancelation in communication circuits.
In control theory, modes of a system are described as observable if, for every possible evolution of state and control vectors, a current state may be estimated using only the information from outputs of the system. Modes which are not observable may be described as unobservable modes.
Many modern circuits transmit and receive one or more analog signals for processing, filtering, amplification, and the like. Such circuits may often operate in full duplex, with signals being transmitted and received over a common medium, such as a wired or wireless medium. One problem which may arise in full duplex communication circuits is the undesirable influence of echoes, for example the undesirable influence of echoes of a transmitted signal on received signals.
This Summary is provided to introduce in a simplified form a selection of concepts that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Moreover, the systems, methods, and devices of this disclosure each have several innovative aspects, no single one of which is solely responsible for the desirable attributes disclosed herein.
Systems and methods for reducing mode conversion in differential signals are disclosed. One innovative aspect of the subject matter described in this disclosure can be implemented as a mode cancelation circuit coupled to a first communication device. The mode cancelation circuit may include a first terminal to receive data for transmission, a second terminal to receive a signal from a second communication device, a first signal path to receive the data for transmission and generate a transmission signal, a second signal path to receive the data for transmission and generate an echo cancelation signal based at least in part on the data for transmission and the received signal, and an adaptation gating circuit to selectively remove a contribution of the received signal to the echo cancelation signal.
In some aspects, the adaptation gating circuit is configured to remove the contribution of the received signal in response to detecting a notch in a transfer function associated with the second signal path. In some aspects, the notch is detected at a Nyquist frequency of the transfer function. In some aspects, detecting the notch at the Nyquist frequency includes comparing a first value of the transfer function at the Nyquist frequency to a second value of the transfer function at a direct current (DC) frequency. In some aspects, detecting the notch corresponds to determining that the first value divided by the second value is less than a threshold ε. In some aspects, detecting the notch includes determining that the second value is greater than the product of the first value and a predetermined scaling factor.
In some aspects, the adaptation gating circuit includes a multiplexer configured provide either zero or a signal based on the received signal to the second signal path in response to detecting the notch or not detecting the notch, respectively.
In some aspects, the adaptation gating circuit includes a path matching filter configured to align the data for transmission with an echo signal corresponding to the transmission signal. In some aspects, the path matching filter delays the data for transmission to align it with the echo signal.
In some aspects, the echo cancelation signal is configured to remove an echo of the transmission signal from the received signal. In some aspects, the contribution of the received signal is based at least in part on the transmission signal summed with the received signal, minus the echo of the transmission signal.
Another innovative aspect of the subject matter described in this disclosure can be implemented as a method for echo cancelation in a first communication device. In some implementations, the method includes generating data for transmission from the first communication device, generating a transmission signal based on the data for transmission, generating an echo cancelation signal based at least in part on the data for transmission and a received signal from a second communication device, and selectively removing a contribution of the received signal to the echo cancelation signal.
In some aspects, selectively removing the contribution of the received signal to the echo cancelation signal is performed in response to detecting a notch in a transfer function associated with the echo cancelation signal. In some aspects, the notch is detected at a Nyquist frequency of the transfer function. In some aspects, detecting the notch at the Nyquist frequency includes comparing a first value of the transfer function at the Nyquist frequency to a second value of the transfer function at a direct current (DC) frequency. In some aspects, detecting the notch corresponds to determining that the first value divided by the second value is less than a threshold ε. In some aspects, detecting the notch includes determining that the second value is greater than the product of the first value and a predetermined scaling factor.
In some aspects, selectively removing the contribution of the received signal to the echo cancelation signal includes selectively providing either zero or a signal based on the received signal as the contribution of the received signal to the echo cancelation signal.
In some aspects, the echo cancelation signal is configured to remove an echo of the transmission signal from the received signal.
Another innovative aspect of the subject matter described in this disclosure can be implemented as an echo cancelation circuit coupled to a first communication device. An example echo cancelation circuit includes means for generating data for transmission from the first communication device, means for generating a transmission signal based on the data for transmission, means for generating an echo cancelation signal based at least in part on the data for transmission and a received signal from a second communication device, and means for selectively removing a contribution of the received signal to the echo cancelation signal.
The example implementations described herein are illustrated by way of example and are not intended to be limited by the figures of the accompanying drawings. Like numbers reference like elements throughout the drawings and specification. Note that the relative dimensions of the following figures may not be drawn to scale.
Aspects of the present disclosure may be used to improve cancelation of unobservable modes in electronic circuits by selectively gating adaptation of the mode cancelation circuit in response to detection of one or more notches in a transfer function of an observation path associated with the mode cancelation circuit. In some implementations, the unobservable mode may be associated with an echo of a transmission signal which may be removed from a signal received using a common medium with the transmission signal. More particularly, gating the adaptation for such an echo cancelation circuit may include removing a contribution of the received signal to an echo cancelation signal in response to detecting the notch in the transfer function. These and more details of the present disclosure are described in more detail below.
In the following description, numerous specific details are set forth such as examples of specific components, circuits, and processes to provide a thorough understanding of the present disclosure. The term “coupled” as used herein means coupled directly to or coupled through one or more intervening components or circuits. Also, in the following description and for purposes of explanation, specific nomenclature and/or details are set forth to provide a thorough understanding of the example implementations. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the example implementations. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring the present disclosure. Any of the signals provided over various buses described herein may be time-multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit elements or software blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be buses, and a single line or bus might represent any one or more of a myriad of physical or logical mechanisms for communication between components. The example implementations are not to be construed as limited to specific examples described herein but rather to include within their scope all implementations defined by the appended claims.
The echo cancelation system 200 operates to remove echoes of the TX signal 204 from the RX signal 206. More particularly, the hybrid cancelation network 220 is configured to separate the RX signal 206 from the TX signal 204 by subtracting the output of the hybrid DAC 240 from the TX signal 204.
In some aspects, the observation path h(z) may have a transfer function which is not simply an impulse response. Represented mathematically, the purpose of the echo cancelation systems depicted in
Represented another way, the convolution of h(z) and w(z) may be represented as a convolution matrix H. The adaptation problem corresponding to the echo cancelation may therefore be described as minimizing the mean squared residual error expressed as |e|2=|Hw−b|2. The solution to this problem may be determined, for example using an adaptive loop, and may be expressed as w*=(HTH)−1HTb.
The example implementations detect a presence of such a notch in h(z) and counter the influence of this unobservable mode by gating adaptation of the echo cancelation system. More particularly, Applicants have found that such notches typically appear at a Nyquist frequency, for example at a Nyquist frequency for a reasonable low-pass filtered response to h(z).
The hybrid cancelation network 420 has a similar structure to the hybrid cancelation network 220 and the hybrid cancelation network 310. Coefficients of the observation path transfer function h(z) of the hybrid cancelation network 420 may be provided to a notch detection module 450, which may detect a notch in h(z) corresponding to an unobservable mode at a Nyquist frequency, as discussed in more detail below. In response to detecting, or not detecting, a notch in h(z), a control signal may be sent to a multiplexer 480, selecting either the output of multiplier 460, or a predetermined value, such as zero, for feedback into the digital filter 430.
Let h[n] represent the filter coefficients for the observation path. Then, H(z)=Σnh[n]z−n. At an angular frequency Ω, H(z) may be represented as H(ejΩ). Thus, the gain at the Nyquist frequency may be given as H(ejπ)=Σn=evenh[n]−Σn=oddh[n], and the DC gain may be given as H(ej0)=Σn=evenh[n]+Σn=oddh[n]. One method for detecting a notch may be to select a threshold ratio between the Nyquist gain and the DC gain. In other words, selecting some ε such that
However, computing a ratio between the Nyquist gain and the DC gain may be computationally costly, and thus it may be more advantageous to detect the notch differently. One more hardware-friendly method may be to detect the notch in response to
In some aspects, 1/ε may have a predetermined value stored in one or more registers or other memories coupled to the notch detection module. In some other aspects, this predetermined value may be computed based on one or more coefficients stored in the one or more registers or other memories coupled to the notch detection module.
In some implementations, the echo canceler 500 may include a data interface 510, a processing system 520, and a memory 530. The data interface 510 is configured to transmit and receive signals.
The memory 530 may include a non-transitory computer-readable medium (including one or more nonvolatile memory elements, such as EPROM, EEPROM, Flash memory, a hard drive, and the like) that may store at least the following software (SW) modules:
An echo cancelation SW module 531 to cancel undesired echoes of a transmission signal in signals received by the echo canceler 500;
Each software module includes instructions that, when executed by the processing system 520, causes the echo canceler 500 to perform the corresponding functions.
The processing system 520 may include any suitable one or more processors capable of executing scripts or instructions of one or more software programs stored in the echo canceler 500 (such as in memory 530). For example, the processing system 520 may execute the echo cancelation SW module 531 to cancel undesired echoes of a transmission signal in signals received by the echo canceler 500. The processing system 520 also may execute the notch detection SW module 532 to detect a presence of notches in a transfer function h(z) of an observation path of the echo canceler 500. Further, the processing system 520 may execute the imbalance compensation SW module 533 to selectively gate a contribution of signals received at the echo canceler 500 to echo cancelation operations performed at the echo canceler 500. Further, the processing system 520 may execute the TX/RX SW module 534 to generate data and signals for transmission and process data and signals for reception by the echo canceler 500
The operation 600 may begin with generating data for transmission from a first communication device (602). In some implementations, a means for generating the data for transmission may include the processing system 520 executing the TX/RX SW module 534 of
The operation 600 may proceed with generating a transmission signal based on the data for transmission (604). In some implementations, a means for generating the transmission signal may include the TX DAC 410 and the hybrid cancelation network 420 of
The operation 600 may proceed with generating an echo cancelation signal based at least in part on the data for transmission and on a received signal from a second communication device (606). In some implementation, a means for generating the echo cancelation signal may include the hybrid cancelation network 420, the digital filter 430, the hybrid DAC 440, the path match filter 450, the multiplier 460, and the ADC 470 of
In some aspects, selectively removing the contribution of the received signal to the echo cancelation signal in block 608 is performed in response to detecting a notch in a transfer function associated with the echo cancelation signal. In some aspects, the notch is detected at a Nyquist frequency of the transfer function. In some aspects, detecting the notch at the Nyquist frequency includes comparing a first value of the transfer function at the Nyquist frequency to a second value of the transfer function at a direct current (DC) frequency. In some aspects, detecting the notch corresponds to determining that the first value divided by the second value is less than a threshold ε. In some aspects, detecting the notch includes determining that the second value is greater than the product of the first value and a predetermined scaling factor.
In some aspects, selectively removing the contribution of the received signal to the echo cancelation signal in block 608 includes selectively providing either zero or a signal based on the received signal as the contribution of the received signal to the echo cancelation signal.
In some aspects, the echo cancelation signal is configured to remove an echo of the transmission signal from the received signal.
Those of skill in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Further, those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosure.
The methods, sequences or algorithms described in connection with the aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM latch, flash latch, ROM latch, EPROM latch, EEPROM latch, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An example storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
In the foregoing specification, the example implementations have been described with reference to specific example implementations thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader scope of the disclosure as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.