Partitioned block frequency domain adaptive filter device comprising adaptation modules and correction modules
10454454 · 2019-10-22
Assignee
Inventors
- Maria LUIS VALERO (Nürnberg, DE)
- Emanuel Habets (Spardorf, DE)
- Edwin Mabande (Großenseebach, DE)
- Anthony Lombard (Erlangen, DE)
- Dirk MAHNE (Nürnberg, DE)
- Bernhard Birzer (Schwandorf, DE)
Cpc classification
H03H21/0067
ELECTRICITY
International classification
Abstract
A partitioned block frequency domain adaptive filter device includes a frequency domain adaptive filter configured for filtering a frequency domain representation of a time domain input signal depending on a set of filter coefficients consisting of a plurality of blocks of filter coefficients in order to produce a filtered signal; a plurality of parallel arranged filter update blocks; wherein each of the filter update blocks includes an adaptation module configured for executing an adaptation sequence including the steps of calculating an approximation of a constrained gradient update for the filter coefficients of the respective block of filter coefficients, and calculating a cumulative error introduced on the unconstrained gradient update; wherein each of the filter update blocks includes a correction module configured for executing a correction sequence including the steps of calculating a corrected constrained gradient update for the filter coefficients of the respective block of filter coefficients.
Claims
1. A partitioned block frequency domain adaptive filter device comprising: a frequency domain adaptive filter configured for filtering a frequency domain representation of a time domain input signal depending on a set of filter coefficients comprising a plurality of blocks of filter coefficients in order to produce a filtered signal; a plurality of parallel arranged filter update blocks, each of the filter update blocks being configured for updating one of the blocks of filter coefficients based on an update signal gathered by a circular correlation of a block of the frequency domain representation signal and a frequency domain control signal comprising a representation of the filtered signal; wherein each of the filter update blocks comprises an adaptation module configured for executing an adaptation sequence comprising: calculating an approximation of a constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying an approximated constraining matrix exhibiting a lesser complexity than a constraining matrix to an unconstrained gradient update for the filter coefficients of the respective block of filter coefficients, wherein the unconstrained gradient update is derived from the update signal, and calculating a cumulative error introduced on the unconstrained gradient update by applying the approximated constraining matrix to the unconstrained gradient update; wherein each of the filter update blocks comprises a correction module configured for executing a correction sequence comprising: calculating a corrected constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying the constraining matrix to a sum of the approximation of the constrained gradient update and the cumulative error.
2. The partitioned block frequency domain adaptive filter device according to claim 1, wherein the partitioned block frequency domain adaptive filter device comprises a correction sequence control module configured for deciding whether and at which of the filter update blocks the correction sequence is applied after executing the adaptation sequence.
3. The partitioned block frequency domain adaptive filter device according to claim 2, wherein the correction sequence control module is configured for deciding whether and at which of the filter update blocks the correction sequence is applied based on the cumulative errors of the filter update blocks.
4. The partitioned block frequency domain adaptive filter device according to claim 2, wherein the correction sequence control module comprises a correction scheme defining for each of the filter update blocks a number of adaptation sequences after which the correction sequence is applied at the respective filter partition.
5. The partitioned block frequency domain adaptive filter device according to claim 4, wherein for each of the filter update blocks the number of adaptation sequences after which the correction sequence is applied at the respective filter block is diminished in response to a change of the frequency domain control signal which exceeds a threshold.
6. The partitioned block frequency domain adaptive filter device according to claim 4, wherein for each of the filter update blocks the number of adaptation sequences after which the correction sequence is applied at the respective filter block is dynamically adapted based on a measure of the frequency domain control signal.
7. The partitioned block frequency domain adaptive filter device according to claim 1, wherein the partitioned block frequency domain adaptive filter device comprises an approximated constraining matrix update module configured for dynamically adapting the complexity of the approximated constraining matrix.
8. The partitioned block frequency domain adaptive filter device according to claim 7, wherein the approximated constraining matrix update module is configured for dynamically adapting the complexity of the approximated constraining matrix depending on a measure of the frequency domain control signal.
9. The partitioned block frequency domain adaptive filter device according to claim 7, wherein the approximated constraining matrix update module is configured for enlarging the complexity of the approximated constraining matrix in response to a change of the frequency domain control signal which exceeds a threshold.
10. A device for cancelling an echo signal of a time domain input signal, the device comprising a partitioned block frequency domain adaptive filter device, the partitioned block frequency domain adaptive filter device comprising: a frequency domain adaptive filter configured for filtering a frequency domain representation of the time domain input signal depending on a set of filter coefficients comprising a plurality of blocks of filter coefficients in order to produce a filtered signal; a frequency domain to time domain converter configured for converting the filtered signal into an estimated echo signal representing an estimation of the echo signal in time domain; a subtraction module for producing an output signal by subtracting the estimated echo signal from a signal-to-be-processed comprising the echo signal; a plurality of parallel arranged filter update blocks, each of the filter update blocks being configured for updating one of the blocks of filter coefficients based on an update signal gathered by a circular correlation of a block of the frequency domain representation signal and a frequency domain control signal comprising a representation of the filtered signal; wherein each of the filter update blocks comprises an adaptation module configured for executing an adaptation sequence comprising: calculating an approximation of a constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying an approximated constraining matrix exhibiting a lesser complexity than a constraining matrix to an unconstrained gradient update for the filter coefficients of the respective block of filter coefficients, wherein the unconstrained gradient update is derived from the update signal, and calculating a cumulative error introduced on the unconstrained gradient by applying the approximated constraining matrix to the unconstrained gradient update; wherein each of the filter update blocks comprises a correction module configured for executing a correction sequence comprising: calculating a corrected constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying the constraining matrix to a sum of the approximation of the constrained gradient update and the cumulative error.
11. An adaptive filtering method comprising: using a frequency domain adaptive filter for filtering a frequency domain representation of a time domain input signal depending on a set of filter coefficients comprising a plurality of blocks of filter coefficients in order to produce a filtered signal; using each filter update block of a plurality of parallel arranged filter update blocks for updating one of the blocks of filter coefficients based on an update signal gathered by a circular correlation of a block of the frequency domain representation signal and a frequency domain control signal comprising a representation of the filtered signal; executing an adaptation sequence for each of the filter update blocks by using an adaptation module of the respective filter update block, the adaptation sequence comprising: calculating an approximation of the constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying an approximated constraining matrix exhibiting a lesser complexity than a constraining matrix to an unconstrained gradient update for the filter coefficients of the respective block of filter coefficients, wherein the unconstrained gradient update is derived from the update signal, and calculating a cumulative error introduced on the unconstrained gradient by applying the approximated constraining matrix to the unconstrained gradient update; executing a correction sequence for each of the filter update blocks by using a correction module of the respective filter update block, the correction sequence comprising: calculating a corrected constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying the frequency domain constraining matrix to a sum of the approximation of the constrained gradient update and the cumulative error.
12. A non-transitory digital storage medium having a computer program stored thereon to perform the adaptive filtering method comprising: using a frequency domain adaptive filter for filtering a frequency domain representation of a time domain input signal depending on a set of filter coefficients comprising a plurality of blocks of filter coefficients in order to produce a filtered signal; using each filter update block of a plurality of parallel arranged filter update blocks for updating one of the blocks of filter coefficients based on an update signal gathered by a circular correlation of a block of the frequency domain representation signal and a frequency domain control signal comprising a representation of the filtered signal; executing an adaptation sequence for each of the filter update blocks by using an adaptation module of the respective filter update block, the adaptation sequence comprising: calculating an approximation of the constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying an approximated constraining matrix exhibiting a lesser complexity than a constraining matrix to an unconstrained gradient update for the filter coefficients of the respective block of filter coefficients, wherein the unconstrained gradient update is derived from the update signal, and calculating a cumulative error introduced on the unconstrained gradient by applying the approximated constraining matrix to the unconstrained gradient update; executing a correction sequence for each of the filter update blocks by using a correction module of the respective filter update block, the correction sequence comprising: calculating a corrected constrained gradient update for the filter coefficients of the respective block of filter coefficients by applying the frequency domain constraining matrix to a sum of the approximation of the constrained gradient update and the cumulative error, when said computer program is run by a computer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DETAILED DESCRIPTION OF THE INVENTION
(14) Prior to the description of the new features of the invention, first some insight in the problems presented by performing the convolutions in the discrete Fourier transform domain (DFT domain) and a description of the constraining operation will be given. This will be followed by a formulation of the problem of frequency domain adaptive filters and their partitioned block based implementation in the specific context of acoustic echo cancellation (AEC).
(15) Acoustic echo cancellation is used to cope with the electro acoustic coupling between loudspeakers and microphones in, for example, hands free communication scenarios. The electro acoustic coupling is the result of the loudspeaker, or far-end, signal being propagated through the room and acquired by the microphone. As a consequence, the microphone signal does not only contain the desired near-end speech and background noise, but also the acoustic echo signal. Acoustic echo cancelers use adaptive filter algorithms, see for example references [1] and [2], to identify the acoustic echo path which may be used for estimating the acoustic echo signal. The estimated echo is then subtracted from the microphone signal prior to transmission.
(16)
(17)
where m is the discrete frame index, {circle around (M)} denotes circular convolution of length M and the superscript ().sup.H denotes Hermitian transpose. In the remainder the following notation is used, bold letters are used for vectors and underlined bold letters for square matrices. Capital letters are used for denoting variables in the DFT domain. As in the following the focus is set on the correlations performed in the DFT domain, the constraining operation for a circular correlation will be described. The time domain circular correlation is defined by, see reference [3],
(18)
where n denotes the discrete time index and (()).sub.M denotes M modulo operation. If it is assumed that the length of a(m) is M and that b(m) is of length L<M, in reference [3] only the first ML+1 coefficients coincide with the linear correlation, while the last L1 taps are the result of the wrap-around. As described in reference [1], the outcome of the circular correlation can be linearized by selecting only the linear coefficients and setting the rest of the coefficients to zero. This procedure is denoted as constraining operation.
(19) The general structure of a FDAF algorithm using the overlap-save (OLS) method is depicted in
(20) In reference [1] it is stressed that the error signal, which drives the adaptive algorithm, should be calculated in the time-domain, i.e., e(n)=y(n){circumflex over (d)}(n) or be perfectly constrained if calculated in the DFT domain. Hereafter, throughout this document the terms constrained and unconstrained only refer to the gradient update, (m), which is the result of a correlation computed in the DFT domain. The adaptive filter is updated by
(21)
where m is the time frame index and g=diag{g} is a diagonal matrix with the elements of g, g is a time domain window which eliminates the undesired components in the unconstrained gradient update, .sub.uc(m), on its main diagonal. Following the OLS method definition in reference [1], the DFT domain input signal is X(m)=diag{DFT{x(m)}} and the error signal is denoted by E(m)=DFT{[0.sub.1L, e.sup.T(m)].sup.T}, with
x(m)=[x(mRM+1), . . . x(mR)]T and e(m)=[e(mRV+1), . . . e(mR)]T,
respectively; where R is the frame shift, the input signal has the same length as the DFT and V>R is the length of the error signal. In addition, the gradient update, (m), already includes the step-size matrix, (m), for compactness. In order to obtain L linear taps of the filter update, the length of the DFT has to be ML+V1. The OLS and OLA methods described in reference [1] are defined for V=L, and hence M=2L is chosen as an even length fast Fourier transform (FFT) can be more efficiently implemented as an odd one. Given the definition of X(m) and E(m), the resulting .sub.uc(m) will contain L+1 linear components and ML1=V1 wrap-around components. However, for consistency (m) is defined as,
(m)=DFT{[.sup.T(m),0.sub.1V].sup.T},(5)
where it can be observed that the estimated echo path vector,
(m)=[.sub.m(0), . . . ,.sub.m(L1)].sup.T,(6)
has to be zero-padded, and the length of the zero padding is V. The wrap-around components are usually eliminated in the time domain, as depicted in
(m)=DFT{g.Math.IDFT{.sub.uc(m)}}=FgF.sup.1.sub.uc(m)=G.sub.uc(m),(7)
where F is the MM DFT matrix and G=FgF.sup.1 is the frequency domain constraining matrix. In order to analyze the structure of G, first the constraining window in the time domain has to be defined
(22)
(23) Hereafter, following the analysis provided in J. Benesty and D. R. Morgan, Frequency-domain adaptive filtering revisited, generalization to the multichannel case, and application to acoustic echo cancellation, in Proc. IEEE ICASSP, vol. 2, pp. 289-292, 2000; hereinafter referred to as reference [4], the elements of the constraining matrix, G, are
(24)
with G(k, k)=L/M if k=k; where k and k are the discrete frequency indices and W.sub.M=e.sup.(j2/M) is the DFT basis function. The latter expression highlights the fact that the operation is equivalent to a frequency domain to frequency domain transform (similar to a decimation operation). It is possible to deduce from (9) that if the relation L/M is sufficiently large, the main diagonal of G will be dominant. In addition, if M is sufficiently large, the values on the off-diagonals will decay fast and towards negligible values, see reference [4].
(25)
.sup.b(m)=[.sub.m(bN), . . . ,.sub.m(bN+N1)].sup.T,(10)
where b denotes the block index. The DFT length can now also be reduced, thus, using the OLS method, to obtain N linear coefficients the input signal frames have to be of length MN+V1, where V is the length of the error signal and of the zero padding of h(m) (as already defined for the FDAF problem formulation). Hereafter, a block of input signal is defined as,
x.sup.b(m)=[x(mRbNM+1), . . . ,x(mRbN)].sup.T,(11)
and the error signal is obtained by subtracting from the microphone signal the estimated echo, which is obtained as the sum over all the contributions per block, {circumflex over (D)}.sup.b(m)=X.sup.b(m).sup.b(m), i.e.,
(26)
where {tilde over (g)} is the window needed to linearize a circular convolution, which, in the remainder, is assumed to be perfectly applied. Finally, the update of one block of the adaptive filter is described by
.sup.b(m+1)=.sup.b(m)+(m)GX.sup.bH(m)E(m)=.sup.b(m)+G.sub.uc.sup.b(m).(13)
(27) It is obvious that now the length of the FFT's is reduced, but 2B FFT's have to be performed per frame to correctly linearize the circular correlations. In some applications it is desirable or useful to further reduce the complexity of the partitioned block based adaptive algorithms, and the most straightforward possibility is to reduce the number of transforms per frame by omitting the constraining operation. Another possibility is to simplify the frequency domain constraining matrix, G. Yet, these simplifications usually come at the cost of a loss of performance of the PB-FDAF algorithm.
(28) On one hand, if the non-partitioned problem formulation is used only one IFFT and one FFT per frame are needed, whose length is usually sufficiently long to enable the omission of the constraining operation without noticeably impairing the performance. The omission of the constraining operation is usually denoted as unconstrained method. On the other hand, if a partitioned block based formulation is used, the length of the FFTs is reduced. Consequently, the error introduced by omitting the constraining operations becomes non-negligible, as this error increases with decreasing Mwhich is related to the decrease rate of the values on the off-diagonals of G.
(29) In the past, several methods were proposed to reduce the complexity of the PB-FDAF algorithms without impairing the performance. These methods will be shortly described in the following. However, first it may be mentioned that the constraining operation per block can be performed in two ways, i.e.
.sup.b(m+1)=.sup.b(m)+G.sup.b(m)(14)
.sup.b(m+1)=G(.sup.b(m)+.sup.b(m))(14)
where (14) can be interpreted as coping with the wrap-around errors before adaptation and (15) after adaptation. If the constraining matrix G is used without any simplification, both expressions are mathematically equal, but are the result of different implementations.
(30) Some of the previously proposed methods to reduce the algorithmic complexity of the PBFDAF algorithms are the unconstrained FDAF and PBFDAF, D. Mansour and A. J. Gray, Jr, Unconstrained frequency-domain adaptive filter, IEEE Trans. Acoust., Speech, Signal Process., vol. 30, no. 5, pp. 726-734, October 1982; hereinafter referred to reference [6] and J. S. Soo and K. K. Pang, Multidelay block frequency domain adaptive filter, IEEE Trans. Acoust., Speech, Signal Process., vol. 38, pp. 373-376, February 1990; hereinafter referred to as reference [7] the alternative unconstrained PBFDAF, reference [7] the alternated constraining method, M. Joho and G. S. Moschytz, Connecting partitioned frequency-domain filters in parallel or in cascade, IEEE Trans. Circuits Syst. II, vol. 47, no. 8, pp. 685-697, August 2000; hereinafter referred to as reference [8] the modified alternated constraining method, R. M. M. Derkx, G. P. M. Engelmeers, and P. C. W. Sommen, New constraining method for partitioned block frequency-domain adaptive filters, IEEE Trans. Signal Process., vol. 50, no. 3, pp. 2177-2186, 2002; hereinafter referred to as reference [9].
(31) The aim of all these methods, as well as of the invention, is to reduce the total number of FFTs per frame. The previously mentioned unconstrained method as proposed in references [6] and [7], directly omits the constraining operation, i.e.
.sup.b(m+1)=.sup.b(m)+.sup.b(m),b.(16)
(32) It can also be applied as proposed in reference [4],
.sup.b(m+1)=.sup.b(m)+G.sub.uc.sup.b(m),b.(17)
where,
(33)
is a scaled identity matrix, which is equivalent to considering only the main diagonal of G. The alternative unconstrained method proposed in reference [7], alternatively constrains one block per frame using (14). However, these three methods constantly accumulate the wrap-around errors in the updated filter coefficients, which reduce the convergence speed.
(34) The alternated constraining method uses (15) on top of the unconstrained algorithm, as proposed reference [8]. By doing this, the accumulated wrap-around errors between corrections are eliminated. This method allows for a further complexity reduction, which can be achieved if the frame interval between corrections P, is enlarged. The filter is then updated in two steps,
.sup.b(m+1)=.sup.b(m)+.sub.uc.sup.b(m);b=0:B1(18a)
.sup.b.sup.
where block b.sub.c will only be corrected if the result of ((m/P)).sub.BN.sup.0, i.e. is a non-negative natural number.
(35) In reference [9] the modified alternated constraining method is proposed which is based on the alternated constraining method and is also applied in two steps, adaptation and correction. The main novelty of the method described in references [9] and [10] is that it uses an approximation of the constraining window g to reduce the wrap-around components per block in the adaptation step. The proposed approximation of the constraining window in [9] is
(36)
for a 50% overlap. The resulting window in the time domain is an elevated sine window, which is able to reduce the wrap-around errors. However, the linear coefficients are also modified and have to be compensated for in the correction step, in which also the remaining wrap-around errors are eliminated.
(37) The modified alternated constraining method uses the wrap-around components of the previous and posterior blocks, in [10] denoted as adjacent blocks, to compensate the errors introduced on the linear coefficients of one block. Hence, it is useful to correct two blocks to be able to completely compensate the linear components of one block; as a consequence the first and final blocks are not completely compensated for.
(38)
(39) The partitioned block frequency domain adaptive filter device 1 comprises: a frequency domain adaptive filter 2 configured for filtering a frequency domain representation FDS of a time domain input signal IS depending on a set of filter coefficients consisting of a plurality of blocks FB.1, FB.2, FB.B of filter coefficients in order to produce a filtered signal FS; a plurality of parallel arranged filter update blocks 3.1, 3.2, 3.B, each of the filter update blocks 3.1, 3.2, 3.B being configured for updating one of the blocks FB.1, FB.2, FB.B of filter coefficients based on an update signal US.1, US.2, US.B gathered by a circular correlation of a block BFDS.1, BFDS.2, BFDS.B of the frequency domain representation signal FDS and a frequency domain control signal FCS comprising a representation RFS of the filtered signal FS; wherein each of the filter update blocks 3.1, 3.2, 3.B comprises an adaptation module 4.1, 4.2, 4.B configured for executing an adaptation sequence AS (see
(40) The partitioned block frequency domain adaptive filter device 1 functions as follows: the time domain input signal IS is converted into a frequency domain representation signal FDS by time domain to frequency domain converter 6. A block processor 7 extracts blocks BFDS.1, BFDS.2, BFDS.B of the frequency domain representation signal FDS, which are conjugated to obtain the conjugated blocks BFDS.1, BFDS.2. BFDS.B, which may be used for calculating a correlation in the DFT domain. The frequency domain representation signal FDS is converted by the frequency domain adaptive filter to into a filtered signal FS in frequency domain, wherein blocks FB.1, FB.2, FB.B of filter coefficients are used. The filtered signal FS is then transformed by frequency domain to time domain converter 8 into a time domain filtered signal FTS. Afterwards the time domain filtered signal FTS is subtracted from a signal-to-be-processed STP by subtraction module 9. The so produced output signal OS is converted back into a frequency domain by a time domain to frequency domain converter 10, which outputs a frequency domain control signal FCS which comprises the representation RFS of the filtered signal FS.
(41) The circular correlation module 11.1 executes a circular correlation by multiplying the frequency domain control signal FCS and the conjugated block BFDS.1 of the frequency domain representation signal FDS in order to produce the update signal US.1. In the same way the circular correlation module 11.2 executes a circular correlation by multiplying the frequency domain control signal FCS and the conjugated block BFDS.2 of the frequency domain representation signal FDS in order to produce the update signal US.2. Similarly the circular correlation module 11.B executes a circular correlation by multiplying the frequency domain control signal FCS and the conjugated block BFDS.B of the frequency domain representation signal FDS in order to produce the update signal US.B.
(42) Each of the update signals US.1, US.2 and US.B is fed to one of the adaptation modules 4.1, 4.2, 4.B. Each of the adaptation modules calculates an approximation of the constrained gradient update CU.1, CU.2, CU.B and a cumulative error CE.1, CE.2, CE.B. The cumulative errors CE.1, CE.2, CE.B are forwarded to the correction modules 5.1, 5.2, 5.B whereas the approximation of the constrained gradient updates CU.1, CU.2, CU.B may be forwarded alternatively to the correction modules 5.1, 5.2, 5.B or to the blocks FB.1, FB.2, FB.B of filter coefficients by switching the respective switch of the switches 12.1, 12.2, 12.B.
(43) According to an advantageous embodiment of the invention the partitioned block frequency domain adaptive filter device 1 comprises a correction sequence control module 13 configured for deciding whether and at which of the filter update blocks 3.1, 3.2, 3.B the correction sequence CS is applied after executing the adaptation sequence AS.
(44) In a further aspect the invention provides an adaptive filtering method comprising the steps of: using a frequency domain adaptive filter 2 for filtering a frequency domain representation FDS of a time domain input signal depending on a set of filter coefficients consisting of a plurality of blocks FB.1, FB.2, FB.B of filter coefficients in order to produce a filtered signal FS; using each filter update block 3.1, 3.2, 3.B of a plurality of parallel arranged filter update blocks 3.1, 3.2, 3.B for updating one of the blocks FB.1, FB.2, FB.B of filter coefficients based on an update signal US.1, US.2, US.B gathered by a circular correlation of a block BFDS.1, BFDS.2, BFDS.B of the frequency domain representation signal FDS and a frequency domain control signal FCS comprising a representation RFS of the filtered signal FS; executing an adaptation sequence AS for each of the filter update blocks 3.1, 3.2, 3.B by using an adaptation module 4.1, 4.2, 4.B of the respective filter update block 3.1, 3.2, 3.B, the adaptation sequence AS comprising the steps of calculating an approximation of a constrained gradient update CU.1, CU.2, CU.B for the filter coefficients of the respective block FB.1, FB.2, FB.B of filter coefficients by applying an approximated constraining matrix ACM having a lesser complexity than a constraining matrix FCM to an unconstrained gradient update for the filter coefficients of the respective block of filter coefficients, wherein the unconstrained gradient update is derived from the update signal US.1, US.2, US.B, and calculating a cumulative error CE.1, CE.2, CE.B introduced on the unconstrained gradient by applying the approximated constraining matrix ACM to the unconstrained gradient update; executing a correction sequence CS for each of the filter update blocks 3.1, 3.2, 3.B by using a correction module 5.1, 5.2, 5.B of the respective filter update block 3.1, 3.2, 3.B, the correction sequence CS comprising the steps of calculating a corrected constrained gradient update CCU.1, CCU.2, CCU.B for the filter coefficients of the respective block FB.1, FB.2, FB.B of filter coefficients by applying the constraining matrix FCM to a sum of the approximation of the constrained gradient update CU.1, CU.2, CU.B and the cumulative error CE.1, CE.2, CE.B.
(45) In another aspect the invention provides a computer program for adaptive filtering, when running on a processor, executing the method according to the invention.
(46)
(47) In the following, the invention is described. The proposed method is applied in two steps, as the alternated constraining method, and uses an arbitrary simplification of the constraining matrix, in the following denoted as arbitrary constraining window G.sub.arb, to reduce the wrap-around components during adaptation. Moreover, it is flexible in terms of the overlap between frames and the design of the constraining window approximationit is valid for any constraining window approximation. In addition, the frame interval between corrections, P, can be selected differently for each block, which will be denoted as P.sub.b, as the correction step depends only on the past states of the corrected block and not on the adjacent blocks. To start with (18b) can be reformulated as
(48)
which highlights the fact that between corrections the gradient updates are accumulated. Hereafter, if an arbitrary approximation of the constraining matrix, G.sub.arb, is applied during adaptation, the corrected filter update is defined by,
(49)
(50) By doing this an error is introduced per frame and block on the linear correlation components, which has to be compensated before the correction step, i.e.
(51)
(52) Hence, by equating (20) and (21), the compensation factor .sub.arb.sup.b.sup.
(53)
(54) Thus, .sub.arb.sup.b.sup.
(55) The procedure is as follows. First, an arbitrary approximation of the constraining window in the frequency domain is used, to enhance the adaptation process, and the cumulative difference .sub.arb.sup.b.sup.
(56) TABLE-US-00001 TABLE 2 Enhanced alternated constraining method for b = 0 : B 1: .sup.b(m + 1) = .sup.b(m) + G.sub.arb.sub.uc.sup.b(m) .sub.arb.sup.b = .sub.arb.sup.b + .sub.uc.sup.b(m) G.sub.arb.sub.uc.sup.b(m) if ((m/P.sub.b)).sub.B = b.sub.c: .sup.b.sup.
(57)
(58) The proposed method is schematically depicted for one block in
(59) The design of the constraining window approximation can be done flexibly. For example, a limited number T of pairs of off-diagonals of G can be taken into account. By doing this, the time domain counterpart could become negative. This can be avoided, if desired, by adding an offset to the time domain window, and modifying G.sub.arb accordingly. Another possibility is to design a window in the time domain, and use its frequency domain counterpart.
(60)
(61)
(62)
(63) The complexity introduced by the application of these windows is proportional to the number of pairs of off-diagonals T, used for the design of G.sub.arb. Moreover, the lowest complexity is obtained if the values on the off-diagonals are real or purely imaginary. Finally, the proposed method is not only flexible with respect to the approximation of the windows and the overlap between frames, but in addition, for a fixed overlap, G.sub.arb can be modified on-line. This can be desirable if a certain performance is reached, if there is a sudden need to further reduce the complexityfor example if the device used enters an energy saving modeor if the adaptive filtering process has to be reinitialized, for example due to the detection of an echo path change.
(64)
(65) It should be mentioned that the order and the frequency in which the blocks are corrected can be designed flexibly, and can be modified on-line. Consequently, one embodiment of the present invention is proposed with the gradient update procedure AS and correction procedure CS as described in Table 3 and depicted in
(66) TABLE-US-00002 TABLE 3 Controlled implementation of the EAC method for b = 0 : B 1: .sup.b(m + 1) = .sup.b(m) + G.sub.arb.sub.uc.sup.b(m) .sub.arb.sup.b = .sub.arb.sup.b + .sub.uc.sup.b(m) G.sub.arb.sub.uc.sup.b(m) if ((S.sub.b + f(m)/P.sub.b)).sub.B = b.sub.c: .sup.b.sup.
(67) Hereafter the decision on whether a block and which block has to be corrected is given by ((S.sub.b+f(m)/P.sub.b)).sub.B=b.sub.c, with b.sub.c=(0, 1, . . . , B1); where S.sub.b is an offset factor which determines the order in which the corrections start, and f(m) is a counter function. The counter function can be controlled or reset by, for instance, the output of an echo path change (EPC) detector, see for example M. A. Iqbal and S. L. Grant, A novel normalized cross-correlation based echo-path change detector, in 2007 IEEE Region 5 Conference, Fayetteville, Ark., pp. 249-251, April 2007; hereinafter referred to as reference [11], as depicted in
(68)
(69) According to an advantageous embodiment of the invention the correction sequence control module 13 is configured for deciding whether and at which of the filter update blocks 3.1, 3.2, 3.B the correction sequence CS is applied based on the cumulative errors of the filter update blocks 3.1, 3.2, 3.B.
(70) According to an advantageous embodiment of the invention the correction sequence control module 13 comprises a correction scheme CSC defining for each of the filter update blocks 3.1, 3.2, 3.B a number of adaptation sequences AS after which the correction sequence CS is applied at the respective filter partition 3.1, 3.2, 3.B.
(71) According to an advantageous embodiment of the invention for each of the filter update blocks 3.1, 3.2, 3.B the number of adaptation sequences AS after which the correction sequence CS is applied at the respective filter partition 3.1, 3.2, 3.B is diminished in response to a change of the frequency domain control signal FCS which exceeds a threshold.
(72) According to an advantageous embodiment of the invention for each of the filter update blocks 3.1, 3.2, 3.B the number of adaptation sequences AS after which the correction sequence CS is applied at the respective filter partition 3.1, 3.2, 3.B is dynamically adapted based on a measure of the frequency domain control signal FCS.
(73) The order in which the blocks are corrected can be designed flexibly, for example based on the energy of the cumulative difference of each block, i.e., .sub.arb.sup.b. It may be noted that the higher the energy of the cumulative difference of one block, the bigger the error introduced on the linear components. Hereafter, a gain in the performance can be obtained by correcting first the blocks FB.1, FB.2, FB.B with the highest cumulative differences.
(74)
(75) According to an advantageous embodiment of the invention the partitioned block frequency domain adaptive filter device 1 comprises an approximated constraining matrix update module 14 configured for dynamically adapting the complexity of the arbitrary constraining matrix.
(76) According to an advantageous embodiment of the invention the approximated constraining matrix update module 14 is configured for dynamically adapting the complexity of the approximated constraining matrix ACM depending on a measure of the frequency domain control signal FCS.
(77) According to an advantageous embodiment of the invention the approximated constraining matrix update module 14 is configured for enlarging the complexity of the approximated constraining matrix ACM in response to a change of the frequency domain control signal FCS which exceeds a threshold.
(78) It may be stressed that for the proposed method neither the approximation of the constraining window nor the frame overlap are specified, as they can be arbitrarily designed. Moreover, it is even possible to use different approximations of the constraining matrices and frame intervals between correction sequences CS for each block FB.1, FB.2, FB.B (number of adaptation sequences AS after which the correction sequence CS is applied at the respective filter block). These parameters can be modified on-line depending, for example, on an echo path change detector 16 (EPC detector) or on a measure of the frequency domain control signal FCS, as for example the normalized mean squared error (NMSE), as depicted in
(79) The inventive provides flexibility in terms of nearly all the design parameters, i.e., the approximated constraining matrix ACM, frame overlap, order of the corrections and different interval between corrections for each block. Moreover, for a fixed frame overlap, all the other design parameters can be modified on-line without having to reinitialize the adaptive algorithm. This enables to control the trade-off between the algorithmic complexity and the convergence speed of the PBFDAF device. However, the algorithmic complexity will highly depend on both the design of the approximated constraining matrix ACM and the correction scheme for each block.
(80)
(81)
(82) The partitioned block frequency domain adaptive filter device 1 of
(83) With respect to the devices and the methods of the described embodiments the following shall be mentioned:
(84) Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.
(85) Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed.
(86) Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system such that one of the methods described herein is performed.
(87) Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.
(88) Other embodiments comprise the computer program for performing one of the methods described herein, which is stored on a machine readable carrier or a non-transitory storage medium.
(89) In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
(90) A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein.
(91) A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may be configured, for example, to be transferred via a data communication connection, for example via the Internet.
(92) A further embodiment comprises a processing means, for example a computer, or a programmable logic device, in particular a processor comprising hardware, configured or adapted to perform one of the methods described herein.
(93) A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
(94) In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are advantageously performed by any hardware apparatus.
(95) While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations and equivalents as fall within the true spirit and scope of the present invention.