This invention relates in general to echo cancellers and more specifically to techniques and apparatus for detecting reflections for echo cancellation in communication channels.
Echo cancellers are known and widely used for reducing audible echoes that may arise in communication channels, e.g. telephony channels. Echoes or reflections typically result from impedance mismatches, e.g., from one or more hybrids, somewhere in the channel and result, for example, in a portion of a received signal being added to a transmit signal or vice versa. When these reflections or echoes are at a low level, users of the channel can be annoyed while higher levels may be untenable for the users.
Echo cancellers are used to identify energy that is due to reflections and once identified to mitigate or reduce this energy and any undesired impact on users of the channel. Echo cancellers are complex and notorious for consuming or requiring large amounts of signal processing resources, e.g., memory and processor capacity in order to provide a robust echo canceller, i.e., an echo canceller that is effective over a broad range of variable and changing conditions. Practitioners have attempted to reduce the signal processing capacity or processing cost that is required to perform echo cancellation.
For example, if an echo or reflection can be detected and located in time, processing costs for reducing or mitigating the impact of the echo can be reduced. As a result many echo cancellers now have echo or reflection detectors that attempt to identify and temporally locate reflections. Unfortunately, echo or reflection detectors can still use significant processing capacity.
The accompanying figures where like reference numerals refer to identical or functionally similar elements throughout the separate views and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention.
In overview, the present disclosure concerns echo cancellers for communication channels, e.g., telephony channels or the like, and more specifically techniques and apparatus for detecting reflections or echoes in such channels. The techniques and apparatus are arranged and constructed for improving or reducing processing costs in terms of memory and processing capacity or calculations that is required for detecting the reflections. More particularly various inventive concepts and principles embodied in methods and apparatus, e.g., methods of and corresponding reflection detection systems, that advantageously use multi-rate filters will be discussed and disclosed.
The methods and apparatus of particular interest may vary widely but include approaches using multi-rate filters that purposely trade off less selectivity and corresponding increases in aliasing energy for reduced processing costs or requirements. In systems, equipment and devices that employ echo cancellers and corresponding echo or reflection detectors, the inventive apparatus and methods can be particularly advantageously utilized, provided they are practiced in accordance with the inventive concepts and principles as taught herein.
The instant disclosure is provided to further explain in an enabling fashion the best modes, at the time of the application, of making and using various embodiments in accordance with the present invention. The disclosure is further offered to enhance an understanding and appreciation for the inventive principles and advantages thereof, rather than to limit in any manner the invention. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.
It is further understood that the use of relational terms, if any, such as first and second, top and bottom, and the like are used solely to distinguish one from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions.
Much of the inventive functionality and many of the inventive principles are best implemented with or in integrated circuits (ICs) including possibly application specific ICs or ICs with integrated processing controlled by embedded software or firmware. It is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation. Therefore, in the interest of brevity and minimization of any risk of obscuring the principles and concepts according to the present invention, further discussion of such software and ICs, if any, will be limited to the essentials with respect to the principles and concepts of the various embodiments.
Referring to
Each of these can contribute to energy corresponding to Rout 107 that is reflected in Sin and possibly delayed versions of Sin being improperly imposed on Sin 107 and this energy is typically referred to as reflections or echoes. Sin is coupled to an echo canceller 117 which removes or reduces any echoes or reflections and provides Sout 119 for transmission to the far end or destination. Rin 121 is coupled to the echo canceller 117 and is typically used in the echo cancellation processes by the echo canceller and is coupled from the echo canceller 117 as Rout 109.
Referring to
Referring to
For the sake of simplicity and in. order to avoid confusing the present inventive concepts and principles, as will be evident to those of ordinary skill various functions ordinarily associated with echo cancellers and the like, e.g., level detection and normalization functions and so forth, are not specifically shown. Additionally analog to digital and digital to analog converters are not specifically shown. That notwithstanding, it is understood that most if not all of the functionality shown in
Generally the echo canceller 117 or echo canceller system detects reflections via the system for detecting reflections 301 and once the location (temporal) of one or more of these reflections has been determined, the full rate adaptive filter removes or mitigates the reflected energy within Sin near and around the location where the reflection has been detected. The controller 307 can be a general purpose micro controller or more specialized controller that provides basic control functions (enabling, disabling, initial conditions setting, sequencing, etc.) for the echo canceller, e.g., for the reflection detector 301, full rate adaptive filter 303, and NLP 309. These control functions are generally known or will be evident to those of ordinary skill and will not be further discussed other than as may be appropriate for the various embodiments. Much of the functionality of the echo canceller can advantageously be implemented in a digital signal processor (DSP) executing appropriate software and the controller 307 may also be implemented in the DSP.
The system for detecting reflections (alternatively referred to as an echo or reflection detector) 301 includes a multi-rate filtering system 311 or multi-rate filter and another multi-rate filtering system 313 or multi-rate filter. The multi-rate filters or filtering systems in one or more embodiments have a bandpass characteristic, i.e., include one or more bandpass filters. The multi-rate filtering systems 311, 313 each have an associated processing cost or require a certain amount of processing capacity in order to appropriately function. Typically these multi-rate filters will be similar with similar processing costs or capacity requirements although they need not be. The multi-rate filtering systems 311 is configured to filter and decimate a first signal at a first sample rate, e.g., Sin 107 (as high pass filtered) at 8 KS/s, and provide a corresponding first filtered signal at a first reduced sample rate, e.g., 1 KS/s. The multi-rate filtering systems 313 is configured to filter and decimate a second signal at a second sample rate, e.g., Rout 109 (as filtered by optional high pass filter 319) at 8 KS/s, and provide a corresponding second filtered signal at a second reduced sample rate, e.g., 1 KS/s. Typically the multi rate filter systems 311, 313 operate at the same sample rates and provide corresponding signals with the same reduced sample rate, although that need not be the situation.
In any event, at least one of the processing costs or processing capacities associated with one of the multi-rate filtering systems 311, 313 is reduced by increasing or allowing an increase in aliasing due to the multi-rate filtering. Typically as is known when a signal is sampled, copies of the signal will be created that are centered at multiples of or harmonics of the sampling frequency or rate. These copies of the signal result in aliasing energy that normally must be removed in order to faithfully recover the original signal. For a signal that is sampled at the Nyquist rate, i.e., twice the highest frequency in the signal, an ideal filter with a cutoff frequency equal to the highest frequency in the signal and a box like shape is required in order to remove the aliasing energy. Ideal filters are not possible to implement and practitioners realize that processing costs or capacity increases dramatically as an actual filter approaches the ideal box like response. In practice sample rates are increased thereby moving the desired and aliased versions of a signal further apart in the frequency domain, such that practical filters can be implemented that reduce aliasing energy to a level that is not significant in a particular application. For example, in some applications, reducing aliasing energy by 20 dB is sufficient while others may require 40 dB, however even at these levels the processing costs or processing capacity in terms of memory and processor cycles or calculations that needs to be devoted to filters is non trivial. It has been discovered that reducing aliasing energy by as little as 6 dB is often sufficient to realize a reflection detector that is reliable. Thus a multi-rate filter or filtering system for a reflection detector can be realized where processing costs are dramatically reduced by allowing aliasing to increase.
Outputs from the multi-rate filters 311, 313 are coupled to a sub rate adaptive filter 315 which is configured to process the filtered signals from each of the multi-rate filters to provide filter coefficients. Filter coefficients as determined by the sub rate adaptive filter 315 are coupled to a coefficient analyzer or analysis function 317 and this analyzer is configured to analyze and otherwise process the filter coefficients to provide a time delay corresponding to each of one or more reflections. Generally the sub rate adaptive filter 315 is known and operates to adapt to the filtered signals at the reduced sample rate as provided by the multi-rate filter systems 311, 313. The adapting process results in determining filter coefficients, where the filter coefficients correspond to various delays associated with the filtered signals. Similarly, the coefficient analyzer 317 is known and generally operates to determine whether any coefficient or set of coefficient(s) exceeds a threshold and if so determines a corresponding delay. These delays are passed to the full rate adaptive filter 303.
The full rate adaptive filter 303 is generally known and may optionally include a high pass filter 319 (similar to filter 305) to remove low frequency energy, e.g., DC component of Rin 121. Then a pure delay is added to Rin 121 by delay function 1321, delay function 2323, delay function 3325, etc., where these different delays are provided by the coefficient analyzer 317 with each delay corresponding to a temporal location for a different reflection or echo. After the corresponding delay is added to Rin, the resultant signal is coupled to a full rate adaptive filter (FRAD) section, e.g., FRAD section 1-FRAD section 3327, 329, 331. The FRAD sections each operate on Rin as well as an error signal to provide an echo or reflection replica that together with Sin 107 is coupled to a summer 333 where the corresponding replica is subtracted from Sin 107. The output from the summer 333 or resultant signal (designated “error”) is ideally only the signal that is desired to be sent from the near end, e.g. telephone 101. In practice some reflection energy or artifacts of echo cancellation will remain in the error signal. The error signal is coupled to and contributes to further operation of the various FRAD sections as shown as well as coupled to the NLP 309. As noted above the NLP removes remaining reflection or echo energy or covers them up with comfort noise. While three delay functions and FRAD sections are shown, in practice, this number can range from 1 or more, depending on the number of reflections that are detected.
Referring to
For the multi-rate filtering system 311, the plurality of series coupled decimation filters and decimators further comprises a first decimation filter 403 and a first decimator 405 for decimating a signal at the output of the first decimation filter to provide a first filtered and decimated signal, a second decimation filter 407 for filtering the first filtered and decimated signal and a second decimator 409 for decimating a signal at the output of the second decimation filter to provide a second filtered and decimated signal, and a third decimation filter 411 for filtering the second filtered and decimated signal and a third decimator 413 for decimating a signal at the output of the third decimation filter to provide the corresponding first filtered signal from the multi-rate filtering system 311.
Similarly, for the multi-rate filtering system 313, the plurality of series coupled decimation filters and decimators further comprises a first decimation filter 415 and a first decimator 417 for decimating a signal at the output of the first decimation filter to provide a first filtered and decimated signal, a second decimation filter 419 for filtering the first filtered and decimated signal and a second decimator 321 for decimating a signal at the output of the second decimation filter to provide a second filtered and decimated signal, and a third decimation filter 423 for filtering the second filtered and decimated signal and a third decimator 425 for decimating a signal at the output of the third decimation filter to provide the corresponding second filtered signal from the multi-rate filtering system 313. As noted above, the multi-rate filtering systems (311, 313) may vary from one another; however in practice they are typically similar if not identical or nearly identical. Furthermore, although three filters and three decimators are shown for each multi-rate filtering system, the concepts and principles discussed and disclosed are equally applicable, for example, to two or four or more filters and decimators.
Known approaches for implementing filters in an echo or reflection detector normally use one decimation filter followed by a single decimator where the filter has a response that substantially reduces any aliasing energy. For example, one approach uses a filter followed by a decimator that has a decimation rate of 8, i.e., the decimator essentially selects one out of every 8 samples. In this instance in a telephone channel, the effective sampling rate is reduced from 8 KS/s to 1 KS/s and thus signals with frequencies in a bandwidth of 500 Hz can be reproduced provided aliasing energy repeated at multiples of 1 KHz is sufficiently reduced, e.g., 30-40 dB reduction.
By using the distributed filtering and decimating approach depicted in
Other characteristics of the filters, e.g., bandwidth and center frequency, may also be determined or at least constrained by the various decimation rates. For example, a decimation filter normally limits the bandwidth of an output signal to a maximum of one half of the output sample rate of a decimator that follows the filter in accordance with Nyquist criteria. Thus the maximum bandwidth of the first filter would be limited to 2 KHz, the second filter maximum bandwidth to 1 KHz and the final or third filter to 500 Hz when the decimators factors are each 2. Of course these bandwidths can and often do have bandwidths that are narrower than the maximum. The center frequency of the filters is selected such that they will in all likelihood pass energy that is due to reflections or echoes as well as traffic or voice signal energy and test signal energy, e.g., in accordance with one or more echo path models, composite source signal spectra and channel bandwidths as will be further discussed below
Furthermore, if the processing steps for implementing a filter can be reduced, e.g., using efficient filters or by reducing the selectivity of the filter albeit with a corresponding increase in aliasing, processing costs or capacity can be further reduced thus resulting in additional savings. For example, where at least one of the first multi-rate filtering system 311 and the second multi-rate filtering system 313 further comprises a plurality of series coupled filters with each filter having a Goertzel or modified Goertzel structure, additional processing or computational costs or capacity savings can be realized. In this instance the overall response of 3 filters H(z) can be selected by:
Selecting a reference filter Href(z)=G0/[A1(z)A2(z)A3(z)]
where Ai(z)=1−2ri cos(θi)z−1+ri2z−2, i=1, 2, 3.
Set H(z)=H(z)=G/[A1′(z)A2′(z)A3′(z)],
where Ai′(z)=1−2vi cos(αi)z−1+vi2z−2, i=1, 2, 3,
with variables defined as: vi=rin
where ri and θi are selected for an appropriate response and G is given as the magnitude: G=∥A1′(ejω)A2′(ejω)A3′(ejω)∥∞−1, which is the inverse of the L∞ norm of the denominator of H(z) on the unit circle z=ejω, j=√{square root over (−1)}, such that its largest magnitude (in the frequency domain) is one.
If aliasing minimization, given this form of filter, is desired one can adjust the filter parameters ri, i=1, 2, 3, such that the L2 norm |∥Href (ejω)−H(ejω)∥2 is minimized.
Given the above equations, in order to provide a distributed filter equivalent to Href, replace Href followed by decimation by Deff=8 with, collectively 1/A1′ (z), decimation by D=2, 1/A2′ (z), decimation by D=2, 1/A3′ (z), decimation by D=2, followed by a gain G. Using the above approach provides filtered signals corresponding to Rin and Sin to the subrate adaptive filter, which can perform adaptation for the purpose of obtaining the adaptive filter coefficients. This, in turn, serves the purpose of estimating reflection location or positions or parameters in a communication system.
Referring to
Referring to
Note that another approach to implementing resonant filters is using series coupled infinite impulse response filters with each filter having a second order response. Yet another approach is using the Goertzel filter structure discussed above together with an additional finite impulse response filter such that Hnew(z)=HFIR(z) H(z) with HFIR(Z) having a form, such as (1−z−2)3
Referring to
In the polyphase structure the number of delay stages typically will be one less than the effective decimation rate Deff while the number of parallel members, thus decimators and filters will be equal to Deff. Thus for Deff=8, there will be 7 delay stages, 8 decimators and 8 filters (H0(z)−HDeff−1(z)). Each of the decimators will decimate by Deff and thus, where Deff=8, each decimator will select 1 out of each 8 samples. Given that all decimators select a sample at the same time, each sample of the input signal will be utilized while each parallel member will filter 1 out of every 8 samples. Typical values for Deff here as well in the exemplary structures noted above are 4, 8, or 16.
In practice, the polyphase decomposition function can be implemented as follow. Initially select a reference filter Href(z)=B(z)/A(z) where this filter has an appropriate response for a multi-rate filter, e.g., multi-rate filter 311, 313. Then estimate an impulse response h(n) of Href(z) and truncate the number of coefficients of h(n) to N×D taps, where D=Deff. Next, define the polyphase coefficients of D FIR filters hk(n)=h(D·n+k), k=0, 1, . . . , D−1, n=0, 1, . . . , N−1. If a FIR approximation is desired, calculate αk and βk per
and define the coefficients of D 1st-order IIR filters Hki(z)=bk/(1−akz−1), where
bk=(αk2−βk2)/(αkhk(0)), ak=βk/αk.
These correspond to 1st order IIR approximations of the polyphase filters by determining their 1st-order FIR equalizers.
The final polyphase filter structure based on these approximations is then given by:
Href(z) followed by decimation by D is replaced with a bank of filters Hk(z) running at 1/D of the original sampling rate where the output is provided to a sub rate adaptive filter and this filter performs adaptation for the purpose of obtaining the sub rate adaptive filter coefficients, which are used for determining the location of reflections or determining echo or reflection parameters in a communication channel.
Referring to
Referring to
Other accepted standardized test signals include one or more composite source signals with known characteristics or spectra (not specifically depicted but available from the ITU-T Recommendation G.168). Of course the echo canceller has to operate in a real world environment with a particular channel characteristic, such as a telephony channel with a bandwidth of 0-4000 Hz with voice traffic largely limited to 300-3400 Hz (Note: the telephone range is often quoted as 300-3400 Hz or 300-3300 Hz). Another factor in choosing a center frequency has to do with the available bandwidth of the signal that will be presented to the sub rate adaptive filter by the multi-rate filters 311, 313 and various embodiments thereof. The bandwidth of the signal presented to the sub rate adaptive filter will be around or less than 4000 Hz divided by Deff. With Deff=8 this bandwidth can be approximately 500 Hz, with Deff=4 the bandwidth can be up to 1000 Hz, and with Deff=16 the bandwidth can be up to 250 Hz.
In view of these issues, the practitioner thus selects a bandwidth for each of the multi-rate filtering systems and in accordance with one or more of an echo path model, a composite source signal spectra, and a channel bandwidth, e.g., a telephony channel bandwidth, given that the multi-rate filtering system should have a filter pass band corresponding to 4 KHz divided by an effective decimation rate associated with the multi-rate filtering system. Thus by way of example with Deff=8, a practitioner can choose a 500 Hz band that extends from 900+ to 1400+ Hz and be reasonably certain that energy from any of the echo path models (m1-m8) will be available. This band is also within the generally known band for voice traffic on a telephone channel and will include significant components of the composite source signals, i.e., two significant components, according to ITU G.168. Note that it may be appropriate to choose a bandwidth that is narrower than the maximum supported by a particular sample rate. For example, where Deff=4 and a bandwidth of 1000 Hz could be used, it may be appropriate to select a bandwidth around 700-800 Hz that starts near 800 Hz and ends near 1500 Hz given the G.168 echo models.
Given the multi-rate filters 1205 shows filtering a first signal using a first multi-rate filtering system to provide a first filtered signal, e.g., at a first processing cost and filtering a second signal using a second multi-rate filtering system to provide a second filtered signal, e.g., at a second processing cost where the filtering uses one of serial coupled or parallel coupled filters. In particular it is expected that the first processing cost and the second processing cost will be reduced by increasing aliasing, e.g., possibly decreasing selectivity, due to multi-rate filtering. Various approaches are contemplated for the filtering. In one embodiment, at least one of the filtering the first signal and filtering the second signal further comprises filtering and decimating one of the first signal and the second signal through a plurality of filters and decimators to provide a corresponding one of the first filtered signal and the second filtered signal. This can comprise filtering and decimating the first signal and the second signal through a plurality of series coupled decimation filters and decimators or alternatively decimating and filtering the first signal and the second signal through a plurality of parallel coupled decimation and filtering functions.
When series coupled filters and decimators are used, one embodiment further comprises filtering each of the first signal and the second signal using a first decimation filter and decimating a signal at the output of the first decimation filter to provide a first filtered and decimated signal, filtering the first filtered and decimated signal using a second decimation filter and decimating a signal at the output of the second decimation filter to provide a second filtered and decimated signal, and filtering the second filtered and decimated signal using a third decimation filter and decimating a signal at the output of the third decimation filter to provide the corresponding one of the first filtered signal and the second filtered signal. Various filter structures are contemplated including Goertzel filters, 2nd order IIR filters, or other resonant filters.
When parallel coupled arrangement is used, the decimating and filtering the first signal and the second signal through a plurality of parallel coupled decimation and filtering functions can comprises a polyphase decomposition of the one of the first signal and the second signal using a plurality of parallel coupled processing members, where each member includes a decimator series coupled to a filter, with the outputs of all of the members combined to provide the corresponding one of the first filtered signal and the second filtered signal.
After the filtering processes, 1207 shows adaptively filtering the first filtered signal and the second filtered signal to provide filter coefficients and then analyzing 1209 the filter coefficients to provide a time delay corresponding to each of one or more reflections. The method(s) 1200 end 1211 but may be repeated as needed and in fact would normally repeat from 1205.
It will be appreciated that the above described functions and structures may be implemented in one or more integrated circuits. For example, many or all of the functions can be implemented in the signal processing circuitry that is suggested by
This disclosure is intended to explain how to fashion and use various embodiments in accordance with the invention rather than to limit the true, intended, and fair scope and spirit thereof. The foregoing description is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications or variations are possible in light of the above teachings. The embodiment(s) was chosen and described to provide the best illustration of the principles of the invention and its practical application, and to enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the invention as determined by the appended claims, as may be amended during the pendency of this application for patent, and all equivalents thereof, when interpreted in accordance with the breadth to which they are fairly, legally, and equitably entitled.