Patent Publication Number: US-8984038-B2

Title: Method and system for unconstrained frequency domain adaptive filtering

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE 
     This application is a continuation of U.S. patent application Ser. No. 12/489,735 filed on Jun. 23, 2009, which makes reference to, claims priority to, and claims the benefit of U.S. Provisional Application Ser. No. 61/156,924 filed Mar. 3, 2009, all of which are hereby incorporated herein by reference in their entirety. 
    
    
     FIELD OF THE INVENTION 
     Certain embodiments of the invention relate to digital signal processing. More specifically, certain embodiments of the invention relate to a method and system for unconstrained frequency domain adaptive filtering. 
     BACKGROUND OF THE INVENTION 
     Adaptive filters adjust filter coefficients based on an error signal. The error signal (ε) is determined based on an output signal (y) from the adaptive filter and a reference (or desired response) signal (d). The output signal is generated based on the error signal and an input signal. The input signal may be represented as a frequency domain vector, X. The error signal may be represented as a vector, wherein each vector entry is a sample value taken at a distinct time instant. The length of the vector error signal may be extended by the addition of a plurality of entries, each of which has a value of 0. The zero-filled error signal vector, which may be represented in the time domain, is converted to a frequency domain error signal (E) by utilizing a fast Fourier transform (FFT). A complex conjugate transpose (X H ) of the input signal X is also generated. The complex conjugate transpose X H  and frequency domain error signal E may be convolved to generate a convolution result, for example, by performing a circular convolution operation. 
     The convolution result may be subjected to a gradient constraint operation. For example, the convolution result may be converted to a time domain representation by utilizing an inverse fast Fourier transform (IFFT). The time domain convolution result, which may be represented as a vector, may be zero filled as described above. The zero-filled time domain convolution result may be converted to a frequency domain representation by utilizing a FFT to generate a constrained convolution result. 
     The constrained convolution result may be multiplied by a step size parameter (μ) to generate an adjustment vector. The adjustment vector may comprise a plurality of adjustment values. The adjustment vector may be added to a current filter coefficient vector (H(n), where n represents a time instant index. After a time delay of one time unit, the adjusted coefficient vector becomes the new current filter coefficient vector (H(n+1)). 
     A new frequency domain representation of the output signal, Y, may be generated by performing a convolution operation on X and H(n+1). The frequency domain Y may be converted to generate a new time domain output signal y. The new output signal y may be utilized to generate a new error signal (ε) as described above. 
     In instances in which the input signal X corresponds to time domain signal (x) that has a long time duration impulse response, a partitioned adaptive filter approach may be utilized. 
     Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings. 
     BRIEF SUMMARY OF THE INVENTION 
     A method and system for unconstrained frequency domain adaptive filtering, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims. 
     These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings. 
    
    
     
       BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1  is block diagram of an exemplary partitioned equalizer system, in accordance with an embodiment of the invention. 
         FIG. 2  is a block diagram of an exemplary adaptive filter for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. 
         FIG. 3  is a block diagram of an exemplary adaptive filter for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. 
         FIG. 4  is a diagram that illustrates exemplary partitioning of input data samples, which may be utilized in connection with an embodiment of the invention. 
         FIG. 5  is a diagram of an exemplary communication device, which may utilize unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. 
         FIG. 6  is a flowchart that illustrates exemplary steps for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Certain embodiments of the invention may be found in a method and system for unconstrained frequency domain adaptive filtering. In various embodiments of the invention, one or more time domain coefficients in a current filter partition may be selected and frequency domain version of the input signals may be generated. A value for each of the selected one or more time domain coefficients may be computed based on a corresponding plurality of frequency domain coefficients. The corresponding plurality of frequency domain coefficients may be adjusted based on the computed values. A subsequent plurality of frequency domain coefficients in a subsequent filter partition may be adjusted based on the computed values. The input signals may be processed in the current filter partition based on the adjusted corresponding plurality of frequency domain coefficients. A time-adjusted version of the input signals may be processed in a subsequent filter partition based on the adjusted subsequent plurality of frequency domain coefficients. An output signal from the current filter partition may be generated by convolving the adjusted corresponding plurality of frequency domain coefficients and the frequency domain version of the input signals. 
     The one or more time domain coefficients may be selected based on a number of points in a fast Fourier transform algorithm. The selected one or more time domain coefficients may be computed by adding a value for a first of the corresponding plurality of frequency domain coefficients, a last of the corresponding plurality of frequency domain coefficients, and each of even-numbered ones of the corresponding plurality of frequency domain coefficients. The selected one or more time domain coefficients may be computed by subtracting a value for each of odd-numbered ones of the corresponding plurality of frequency domain coefficients. A frequency domain correction vector may be computed by multiplying the computed selected one or more time domain coefficients and a vector, wherein odd-numbered coefficients in the vector are equal to 1 and even-numbered coefficients are equal to −1. The adjusted the corresponding plurality of frequency domain coefficients may be computed based on the frequency domain correction vector. A frequency domain correction vector may be computed by multiplying the computed the selected one or more time domain coefficients and a vector, wherein each coefficient in the vector is equal to 1. The adjusted subsequent plurality of frequency domain coefficients may be computed based on the frequency domain correction vector. 
       FIG. 1  is block diagram of an exemplary partitioned equalizer system, in accordance with an embodiment of the invention. Referring to  FIG. 1 , there is shown a partitioned equalizer  100 . In an exemplary embodiment of the invention, the partitioned equalizer  100  may comprise 2 partitions. The partitioned equalizer  100  may comprise a time shift block  102 , FFT blocks  104 ,  114 , and  126 , a first partition adaptive filter block  106 , a second partition adaptive filter block  116 , IFFT filter blocks  108  and  118 , zero-fill block  124  and take-second blocks  110  and  120 , and summation blocks  112  and  122 . 
     In an exemplary embodiment of the invention the time shift block  102  may comprise suitable logic, circuitry and/or code that are operable to receive a time domain signal, x(n), and generate a time shifted signal x(n−L), where n represents a sample time index and L represents the time shift inserted by the time shift block  102 . In an exemplary embodiment of the invention, L=128 samples. 
     The FFT block  104  may comprise suitable logic, circuitry and/or code that are operable to receive a time domain signal x(n) and generate a frequency domain representation X(k), where k represents a block time index. In an exemplary embodiment of the invention, the frequency domain representation may be generated by utilizing a 256-point FFT algorithm. The FFT blocks  114  and  126  are substantially similar to FFT block  104 . 
     The IFFT block  108  may comprise suitable logic, circuitry and/or code that are operable to receive a frequency domain signal and generate a time domain representation of the signal. In an exemplary embodiment of the invention, the time domain signal may be generated by utilizing a 256-point IFFT algorithm. The IFFT block  118  is substantially similar to IFFT block  108 . 
     The take-2nd block  110  may comprise suitable logic, circuitry and/or code that are operable to receive a time domain input signal and generate a time-windowed version of the input signal. The time-windowed version of the input signal may choose the second block of IFFT output samples. In an exemplary embodiment of the invention, the take-2nd block  110  may be represented by a 128×128 block zero matrix (0) and a 128×128 identity matrix (I). Each of the entries in the block zero matrix may be equal to 0. The take-2nd block  110  may generate a vector representation of the time domain input signal, which comprises 128 samples. The take-2nd block  110  may generate a time-windowed output signal, y(n), which comprises the second  128  block samples from the output of IFFT block  108  time domain 256 samples. The take-2nd block  120  is substantially similar to take-2nd block  110 . 
     The summation block  112  may comprise suitable logic, circuitry and/or code that are operable to receive input signals and generate an output signal that represents the sum of values of the input signals. The summation block  112  may generate a time domain output signal, which comprises a plurality of samples. The value of each of the generated plurality of samples in the output signal may be generated by computing a sum among corresponding samples from each of the input signals. Summation block  122  is substantially similar to summation block  112 . 
     The first partition adaptive filter block  106  may comprise suitable logic, circuitry and/or code that are operable to receive a frequency domain input signal X(k) and a frequency domain error signal E(k), and generate an adaptive filter output signal Y(k) by performing unconstrained adaptive filtering in the frequency domain, in accordance with an embodiment of the invention. The first partition adaptive filter block  106  is shown in more detail in  FIG. 2 . The second partition adaptive filter block  116  is substantially similar to the first partition adaptive filter block  106 . 
     In operation, the partitioned equalizer  100  may receive a time domain input signal x(n). The time domain input signal x(n) may comprise 256 samples. The FFT block  104  may perform a 256-point FFT algorithm to generate a frequency domain representation of the time domain input signal, X 1 (k). The first partition adaptive filter  106  may receive the frequency domain input signal X 1 (k) and a frequency domain representation of an error signal E(k) and generate a filtered frequency domain output signal Y 1 (k). The first partition adaptive filter  106  may generate the output signal Y 1 (k) by utilizing an unconstrained adaptive filtering algorithm in the frequency domain, in accordance with an embodiment of the invention. The IFFT block  108  may receive the frequency domain signal Y 1 (k) and generate a time domain representation of Y 1 (k). The take-2nd block  110  may receive the time domain representation of Y 1 (k) and generate a time-windowed output signal y 1 (n). 
     The time shift block  102  may generate a time delayed version of the input signal x(n), which is identified in  FIG. 1  as the signal x(n−L). In an exemplary embodiment of the invention, L=128, which represents a 128 sample time shift. The FFT block  114  may perform a 256-point FFT algorithm on the signal x(n−L) to generate a frequency domain signal, X 2 (k). The second partition adaptive filter  116  may receive the frequency domain input signal X 2 (k) and the error signal E(k) and generate a filtered frequency domain output signal Y 2 (k). The second partition adaptive filter  116  may generate the output signal Y 2 (k) by utilizing an unconstrained adaptive filtering algorithm in the frequency domain, in accordance with an embodiment of the invention. The IFFT block  118  may receive the frequency domain signal Y 2 (k) and generate a time domain representation of Y 2 (k). The take-2nd block  120  may receive the time domain representation of Y 2 (k) and generate a time-windowed output signal y 2 (n). 
     The summation block  112  may receive the time domain signals y 1 (n) and y 2 (n) and generate an output signal y(n). The summation block  122  may receive the output signal y(n) and the desired response signal d(n) and generate an error signal c(n). The zero-fill block  124  may generate a time-extended version of the error signal c(n). The FFT block  126  may receive the time-extended error signal from the zero-fill block  124  and generate a frequency domain representation E(k). The frequency domain error signal E(k) may be input to the first partition adaptive filter  106  and the second partition adaptive filter  116 . 
       FIG. 2  is a block diagram of an exemplary adaptive filter for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. Referring to  FIG. 2 , there is shown an adaptive filter  200 . The adaptive filter  200  may comprise an exemplary embodiment of the first partition adaptive filter  106  and the second partition adaptive filter  116 . The adaptive filter  200  may comprise a complex conjugate transpose block  202 , zero-fill blocks  204 , a take-2 nd  block  222 , a FFT block  206 , an IFFT block  220 , a unit time delay block  214 , a coefficient clean-up block  216 , summation blocks  212 ,  224  and  226 , convolution blocks  208  and  218  and element-wise multiplication block  210 . In various embodiments of the invention, the adaptive filter  200  may comprise an m th  partition among a plurality of partitions in a partitioned frequency domain adaptive filter. The summation blocks  212 ,  224  and  226  are substantially similar to the summation block  112 . In an exemplary embodiment of the invention, the partitioned frequency domain adaptive filter may comprise 2 partitions, as shown in  FIG. 1 . 
     The complex conjugate transpose block  202  may comprise suitable logic, circuitry and/or code that are operable to receive a frequency domain input signal, X m (k), and generate a complex conjugate (or Hermitian) transpose version of the input signal, X m   H (k). 
     The convolution block  208  may comprise suitable logic, circuitry and/or code that are operable to receive input signals and perform a convolution operation on those input signals. In an exemplary embodiment of the invention, the convolution block  208  may perform a circular convolution. 
     The element-wise multiplication block  210  may comprise suitable logic, circuitry and/or code that are operable to receive a step size input vector μ and a gradient input vector. The element-wise multiplication block  210  may multiply each entry in the input gradient vector and each entry in the input step size vector μ. 
     The unit time delay block  214  may comprise suitable logic, circuitry and/or code that are operable to receive an input signal at a given time instant and generate a delayed output of the received input signal at a subsequent time instant. In an exemplary embodiment of the invention, the unit time delay block  214  may be operable to generate a delayed output of the received input signal, which comprises one block time unit delay. 
     The coefficient clean-up block  216  may comprise suitable logic, circuitry and/or code that are operable to receive an input coefficient vector. The coefficient clean-up block  216  may modify one or more coefficient values in the input coefficient vector to enable unconstrained frequency domain adaptive filtering. 
     In a partitioned adaptive filter, samples from the output from an m th  partition may be time-coincident with samples from the output of a j th  partition. Some conventional adaptive filtering designs utilize a gradient constraint to adjust the outputs from the different partitions to compensate for overlap. In various embodiments of the invention, the coefficient clean-up block  216  may enable an m th  partition in an adaptive filter to compensate for overlap without utilizing a constraint, such as a gradient constraint. 
     In operation, the adaptive filter  200  may be operable to receive a frequency domain input X m (k), which is represented as a vector. The complex conjugate transpose block  202  may receive the input vector X m (k) and generate a complex conjugate transpose output vector X m   H (k). The summation block  226  may receive a time domain input signal, d(n), which is represented as a vector. The summation block  226  may also receive a time domain output signal, y(n), which is generated by the adaptive filter  200 . The output signal y(n) is represented as a time series. The summation block  226  may generate an error signal, ε(n), based on the input signals d(n) and y(n), as shown in the following equation:
 
ε( n )= y ( n )− d ( n )   [1]
 
where ε(n) is a time domain signal, which is represented as a time series, and n is a time index value. Values for n may be integers, which may be indicative that the time domain signals ε(n), y(n) and d(n) comprise a sequence of samples. ε(n) will be buffered by zero-fill block  204  to generate a vector for block processing.
 
     The zero-fill block  204  may generate a suitable time-extended version of the error signal ε(n) based on the number of samples in ε(n) and the number of points in the FFT block  206 . The FFT block  206  may receive the output from the zero-fill block  204  and generate a frequency domain error signal E(k), where k is a block time index value. The convolution block  208  may receive the frequency domain inputs E(k) and X m   H (k) and generate a convolution result, X m   H (k){circle around (×)}E(k), which is represented as a vector and will be referred to as gradient vector later. The element-wise multiplication block  210  may receive the convolution result and a vector step size value, μ(k). The vector step size value may determine how quickly the adaptive filter coefficient values, H(k), may change in value across a range of time instants. The element-wise multiplication block  210  may multiply each entry in the convolution result gradient vector, X m   H (k){circle around (×)}E(k), by the vector step size value μ(k) to generate an update vector μ·(X m   H (k){circle around (×)}E(k)). The summation block  212  may receive the update vector, μ·(X m   H (k){circle around (×)}E(k)), a coefficient vector at a current block time instant, H m (k), and generate an updated coefficient vector, H m (k+1), as shown in the following equation:
 
 H   m ( k+ 1)= H   m ( k )+μ·( X   m   H ( k ){circle around (×)} E ( k ))   [2]
 
The unit time delay block  214  may receive the updated coefficient vector H m (k+1) at a current block time instant, and output the updated coefficient vector as the new current coefficient vector H m (k) at a subsequent block time instant.
 
     The coefficient clean-up block  216  may receive the current coefficient vector H m (k) and generate an overlap adjusted coefficient vector H′ m (k). The convolution module  218  may receive the frequency domain input vector X m   H (k) and the overlap adjusted coefficient vector H′ m (k) and generate a frequency domain convolution result, Y m (k) as shown in the following equation:
 
 Y   m ( k )= X   m ( k ){circle around (×)} H′   m ( k )   [3]
 
     The IFFT block  220  may receive the frequency domain Y m (k) and generate a time domain signal, {tilde over (y)} m (n). The take-2nd block  222  may generate a suitable time-windowed version, which is the output from the m th  partition in the adaptive filter, y m (n). The summation block  224  may add the output y m (n) with one or more outputs from other partitions y j (n) to generate a new output y(n). The new output y(n) may be input to the summation block  226  to enable generation of a new error vector ε(n), and subsequent adaptive modification of the coefficient vector H m (k). 
       FIG. 3  is a block diagram of an exemplary adaptive filter for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. Referring to  FIG. 3 , there is shown an adaptive filter  300 . The adaptive filter  300  differs from the adaptive filter  200  in the aspect that in the adaptive filter  300 , the coefficient clean-up block  216  performs the overlap compensation on the output of the convolution block  208 . Thus, the coefficient clean-up block  216  receives the convolution result, X m   H (k){circle around (×)}E(k), and generates an overlap compensated version convolution result, (X m   H (k){circle around (×)}E(k))′. 
     The overlap of samples between partitions and the effect on adaptive filtering may be further illustrated with reference to  FIG. 4 . Referring to  FIG. 4 , there is shown a plurality of data samples  402  from a data source. An exemplary data source is a processor within a communication device. The data samples are identified as a sequence s 0 , s 1 , . . . , s 127 , s 128 , s 129 , . . . , s 255 , s 256 , . . . and s 383 . Also shown in  FIG. 4  is an input signal, x(n),  404  for which n is an index whose value ranges from 0 to 255 and a time shifted version, x(n−L),  406  where L=128. The signal x(n)  404  may comprise the most recent 256 samples from the data source  402 . Thus, x(n)  404  comprises data samples s 128 , s 129 , . . . , s 255 , s 256 , . . . and s 383 . The time shifted version signal x(n−L)  406  comprises data samples s 0 , s 1 , . . . , s 127 , s 128 , s 129 , . . . , s 255 . The overlapping data samples, which are present in both x(n)  404  and x(n−L)  406 , are data samples s 128 , s 129 , . . . and s 255 . 
     In various embodiments of the invention, compensation for overlap between adaptive filter partitions may comprise removal of overlapping samples from a current partition. The samples removed from the current partition may be utilized in a subsequent partition. As samples are moved from the current partition, for example an m th  partition, to the subsequent partition, for example a j th  partition, the values of corresponding coefficient vectors, H m (k) and H j (k), may be adjusted. In various embodiments of the invention, the coefficient clean-up block  216  may compute the adjusted coefficient vectors in the frequency domain for the current and subsequent partitions, respectively. In an exemplary embodiment of the invention, each partition may comprise a separate coefficient clean-up block  216 , such that the respective coefficient clean-up block  216  work cooperatively to compute the adjusted coefficient vectors for the current and subsequent partitions. In another exemplary embodiment of the invention, a separate coefficient clean-up block  216  may compute the adjusted coefficient vectors for the current and subsequent partitions. In various embodiments of the invention, the coefficient clean-up block  216  may be implemented in a processor, memory and/or other suitable computational and/or processing circuitry. 
     In an exemplary embodiment of the invention, time domain impulse response, which corresponds to the overlapping sample s 128  may be the focus of overlap compensation while the time domain impulse response, which corresponds to the remaining overlapping samples s 129 , . . . and s 255  may be ignored. In this instance, given frequency domain impulse response vectors for the first and second partitions H 0 (k) and H 1 (k), which may be represented as follows:
 
 H   0 ( k )=[ H   0   0    H   0   1    . . . H   0   255 ]  [4a]
 
 H   1 ( k )=[ H   1   0    H   1   1    . . . H   1   255 ]  [4b]
 
adjusted coefficient vectors may be computed by representing the corresponding time domain impulse response vectors as follows:
 
 h   0 ( n )=[0  . . . k   128  0 . . . 0]  [5a]
 
 h   1 ( n )=[ h   0  0 . . . 0 . . . 0]  [5b]
 
where h 0 (n) and h 1 (n) represent the time domain impulse response vectors for the first and second partitions in a partitioned adaptive filter, respectively; H m   n  represents the n th  frequency domain coefficient in the m th  partition; and h 128  represents a 129 th  coefficient value in coefficient vector h 0 (n) while h 0  represents a 1 st  coefficient value in coefficient vector h 1 (n).
 
     In an exemplary embodiment of the invention in which an overlapping sample is removed from the 1 st  partition, the clean-up block  216  may compute a value for coefficient h 128  based on vector H 0 (k). Adjusted coefficient vectors H′ 0 (k) and H′ 1 (k) may be computed based on the computed coefficient value h 128 . In another exemplary embodiment of the invention in which an overlapping sample is removed from the 2 nd  partition, the clean-up block  216  may compute a value for coefficient h 0  based on vector H 1 (k). Adjusted coefficient vectors H′ 0 (k) and H′ 1 (k) may be computed based on the computed coefficient value h 0 . 
     In an exemplary embodiment of the invention, h 128  may be computed as shown below: 
                     h   128     =         H   0   0     -     H   0   1     +     H   0   2     -     H   0   3     +   …   -     H   0   255       256             [     6   ⁢   a     ]               
h 0  may be computed as shown below:
 
                     h   0     =         H   0   0     -     H   0   1     +     H   0   2     -     H   0   3     +   …   -     H   0   255       256             [     6   ⁢   b     ]               
The computations shown in equations [6] may be generalized as shown in the following equations:
 
                     h   m     C   /   2       =         H   m   0     +     H   m     C   /   2       +     2   ×       ∑     i   =   1         C   2     -   1       ⁢           ⁢         (     -   1     )     i     ×     H   m   i             C             [     7   ⁢   a     ]                 h     m   +   1     0     =         H     m   +   1     0     +     H     m   +   1       C   /   2       +     2   ×       ∑     i   =   1         C   2     -   1       ⁢           ⁢     H     m   +   1     i           C             [     7   ⁢   b     ]               
where h j   i  represents the i th  time domain coefficient in the j th  partition and C corresponds to the number of points in an FFT algorithm.
 
Based on the computed value h 128  corresponding frequency domain correction vectors for the first and second partitions may be computed as follows:
 
 {tilde over (H)}   0 ( k )= h   128 ·[1 −1 1 −1 . . . 1 −1]  [8a]
 
 {tilde over (H)}   1 ( k )= h   128 ·[1 1 1 1 . . . 1 1]  [8b]
 
     In an exemplary embodiment of the invention in which an overlapping sample is removed from the 1 st  partition and add adjustment to 2 nd  partition, the clean-up block  216  may compute adjusted coefficient vectors H′ 0 (k) and H′ 1 (k) as follows:
 
 H′   0 ( k )= H   0 ( k )− {tilde over (H)}   0 ( k )   [9a]
 
 H′   1 ( k )= H   1 ( k )+ {tilde over (H)}   1 ( k )   [9b]
 
     Various embodiments of the invention are not limited to a 2 partition adaptive filter. The procedure described above may be practiced in adaptive filters that comprise a variety of partitions by computing adjusted coefficient vectors between an m th  partition and an (m+1) th  partition. For example, in an adaptive filter, which comprises 4 partitions, adjusted coefficient vectors may be computed between partition 0 and partition 1, partition 1 and partition 2, and partition 2 and partition 3, respectively. 
     In various embodiments of the invention, the coefficient clean-up block may perform operations on a plurality of partitions wherein the first partition is not adjusted whereas the remaining partitions may be adjusted as described below: 
     For every partition ‘i’ except the first, do the following:
 
 h   0 =( H   i   0   +H   i   1   + . . . +H   i   255 )/256   [10a]
 
 {tilde over (H)}   i ( k )= h   0 ·[1 1 . . . 1]  [10b]
 
 H′   i ( k )= H   i ( k )− {tilde over (H)}   i ( k )   [10c]
 
     In various other embodiments of the invention, the coefficient clean-up block may perform operations on a plurality of partitions wherein the last partition is not adjusted whereas the remaining partitions may be adjusted as described below: 
     For every partition ‘i’ except the last, do the following:
 
 h   128 =( H   i   0   −H   i   1   + . . . −H   i   255 )/256   [11a]
 
 {tilde over (H)}   i ( k )= h   128 ·[1 −1 1 − . . . −1]  [11b]
 
 H′   i ( k )= H   i ( k )− {tilde over (H)}   i ( k )   [11c]
 
       FIG. 5  is a diagram of an exemplary communication device, which may utilize unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. Referring to  FIG. 5 , there is shown a transceiver system  500 , a receiving antenna  522  and a transmitting antenna  532 . The transceiver system  500  may comprise at least a receiver  502 , a transmitter  504 , a processor  506 , an adaptive filter  510  and a memory  508 . Although a separate receiver  502  and transmitter  504  is shown in  FIG. 5 , the invention is not limited. In this regard, the transmit function and receive function may be integrated into a single transceiver. The transceiver system  500  may also comprise a plurality of transmitting antennas and/or a plurality of receiving antennas. Various embodiments of the invention may comprise a single antenna, which is coupled to the transmitter  504  and receiver  502  via a transmit and receive (T/R) switch. 
     The receiver  502  may comprise suitable logic, circuitry, interfaces and/or code that may be operable to perform receive functions that may comprise PHY layer function for the reception or signals. These PHY layer functions may comprise, but are not limited to, the amplification of received RF signals, generation of frequency carrier signals corresponding to selected RF channels, for example uplink or downlink channels, the down-conversion of the amplified RF signals by the generated frequency carrier signals, demodulation of data contained in data symbols based on application of a selected demodulation type, and detection of data contained in the demodulated signals. The RF signals may be received via the receiving antenna  522 . The data may be communicated to the processor  506 . 
     The transmitter  504  may comprise suitable logic, circuitry, interfaces and/or code that may be operable to perform transmit functions that may comprise PHY layer function for the transmission or signals. These PHY layer functions may comprise, but are not limited to, modulation of received data to generate data symbols based on application of a selected modulation type, generation of frequency carrier signals corresponding to selected RF channels, for example uplink or downlink channels, the up-conversion of the data symbols by the generated frequency carrier signals, and the generation and amplification of RF signals. The data may be received from the processor  506 . The RF signals may be transmitted via the transmitting antenna  532 . 
     The processor  506  may comprise suitable logic circuitry, interfaces and/or code that may be operable to control operation of the receiver  502  and/or the transmitter  504 . 
     The memory  508  may comprise suitable logic, circuitry, interfaces and/or code that may enable storage and/or retrieval of data and/or code. The memory  508  may utilize any of a plurality of storage medium technologies, such as volatile memory, for example random access memory (RAM), and/or non-volatile memory, for example electrically erasable programmable read only memory (EEPROM). In the context of the present application, the memory  508  may enable storage of coefficients, for example. 
     The adaptive filter  510  may comprise suitable logic, circuitry and/or code that may be operable to provide, for example, acoustic echo cancellation in the communication device. The adaptive filter  510  may comprise a partitioned adaptive filter for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. The adaptive filter  510  may comprise a plurality of adaptive filter partitions  200 . The processor  506  may comprise at least a portion of the adaptive filter  510 , the memory  508  may comprise at least a portion of the information that may be utilized to implement the adaptive filter  510  and/or the receiver  502  may comprise at least a portion of the adaptive filter  510 . 
     In operation, the processor  506  may be operable to compute coefficients in a partitioned adaptive filter for unconstrained frequency domain adaptive filtering. The processor  506  may utilize data and/or code that are stored in the memory  508 . In an exemplary embodiment of the invention, the memory  508  may comprise a computer readable medium, having stored thereon, a computer program having at least one code section executable by the processor  506  and/or a computer, thereby causing the processor  506  and/or computer to perform the steps as described herein for unconstrained frequency domain adaptive filtering. The processor  506  may execute a computer program and/or utilize data stored in the memory  508  while performing steps as described herein for unconstrained frequency domain adaptive filtering. While performing the steps as described herein for unconstrained frequency domain adaptive filtering, the processor  506  may configure the receiver  502  for unconstrained frequency domain adaptive filtering. For example, the processor  506  may compute coefficient vectors and configure the receiver  502  based on the coefficient vectors. In an exemplary embodiment of the invention, the computed coefficient vectors may comprise a plurality of frequency domain coefficients. 
     In an exemplary embodiment of the invention, one or more circuits comprising a receiver  502 , a transmitter  504 , a processor  506 , memory  508  and/or adaptive filter  510  may be operable to select one or more time domain coefficients in a filter partition. The selected time domain coefficients may be selected based on a number of tap in an FFT  104 . At least a portion of the one or more circuits may be operable to compute a value for each of the selected one or more time domain coefficients in a current filter partition  200 . A value may be computed for each of the selected time domain coefficient(s) based on a corresponding plurality of frequency domain coefficients. Based on the computed time domain coefficient value(s), the corresponding plurality of frequency domain coefficient values may be adjusted. A subsequent plurality of frequency domain coefficients in a subsequent filter partition  200  may be adjusted based on the computed time domain value(s). 
     A processor  506  may be operable to compute the selected one or more time domain coefficients as shown in equations [6]. The processor  506  may compute a frequency domain correction vector as shown in equations [8]. The processor  506  may compute the adjusted corresponding plurality of frequency domain coefficients and the adjusted subsequent plurality of frequency domain coefficients as shown in equations [9]. 
     The one or more circuits may be operable to process input signals in the current filter partition based on the adjusted corresponding plurality of frequency domain coefficients and to process a time-adjusted version of the input signals in the subsequent filter partition based on the adjusted subsequent plurality of frequency domain coefficients. 
     An FFT  104  may be utilized to generate a frequency domain version of the input signals. A convolution module  218  may generate an output signal from the current partition  200  by convolving the adjusted corresponding plurality of frequency domain coefficients and the frequency domain version of the input signals. 
       FIG. 6  is a flowchart that illustrates exemplary steps for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. Referring to  FIG. 6 , in step  600 , a processor  506  may select an FFT point size (C), determine the number of partitions in the filter (M), and initialize the partition counter (m=0). In step  602 , the processor  506  may select an n th  time domain coefficient in an m th  partition in an adaptive filter  200 , h m   n . In an exemplary embodiment of the invention, which utilizes a C-point FFT algorithm, n=0 and/or n=½C. In step  604 , the processor  506  may compute a value for h m   n . The value for h m   n  may be computed based on current values in a corresponding frequency domain coefficient vector H m (k). In step  606 , a frequency domain correction vectors, {tilde over (H)} m (k) and {tilde over (H)} m+1 (k), may be computed based on the computed value h m   n . In step  608 , adjusted coefficient vectors, H′ m (k) and H′ m+1 (k), may be computed based on the corresponding frequency domain coefficient vectors and the corresponding computed correction vectors. The adjusted coefficient vectors may be utilized for unconstrained frequency domain adaptive filtering, in accordance with an embodiment of the invention. Step  610  may determine whether there are additional remaining partitions. In instances in which there are remaining partitions, in step  612 , the partition counter value may be incremented. Step  604  may follow step  612 . 
     Another embodiment of the invention may provide a machine and/or computer readable medium, having stored thereon, a computer program having at least one code section executable by a machine and/or computer, thereby causing the machine and/or computer to perform the steps as described herein for unconstrained frequency domain adaptive filtering. 
     Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. 
     The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form. 
     While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.