Abstract:
The present invention provides an equalizer ( 200 ) and a method for computing equalizer filter coefficients in a communication receiver. The equalizer filter coefficients are computed on the basis of a real matrix T which is generated from channel estimation vector f, which is derived from the channel estimation inputs.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to equalizers in radio communication receivers. 
     BACKGROUND OF THE INVENTION 
     Most modern radio communication systems transmit data over time-varying, dispersive communication channels. Among the distortions introduced by the channel, inter-symbol interference (ISI) is significant because it severely degrades the performance of the receiver. To mitigate the effects of ISI, many receivers use equalizers. The general architecture of an equalizer comprises filters, adders for combining the output of the filters, and decision devices. The filters are linear finite-impulse-response (FIR) with complex coefficients. A decision device operates on complex inputs and outputs complex values that are representative of the signal constellation points of the modulation scheme. 
     In general, the equalizer filter coefficients are jointly optimized according to a criterion suitable for the communication system. Determining the optimal equalizer filter coefficients is a computationally intensive task because it requires the solution to a large set of linear equations. Two general approaches are commonly used today: the first approach is the adaptive approach, and the second is the direct matrix inversion approach. 
     In the adaptive approach, the equalizer filter coefficients are first set to some initial values. The output error signal, defined as the difference between the input and the output of the equalizer decision device, is then used to recursively adjust the equalizer filter coefficients toward the optimal settings. Depending on the coefficient adaptation algorithm employed, a training sequence may be required. A training sequence is a known set of symbols that the transmitter sends along with the data. In U.S. Pat. No. 5,068,873 issued to Murakami, the least mean square (LMS) or Kalman filter algorithm is used for adaptation. A training sequence is required for that approach. The LMS algorithm requires O(N) complex operations per iteration, where N is the total number of coefficients to optimize. Furthermore, a large number of iterations (&gt;&gt;N) is required for the equalizer filter coefficients to converge to the optimal values. While Kalman filter algorithm converges faster to the optimal solution, it requires O(N 2 ) operations per iteration. Similarly, U.S. Pat. No. 5,283,811 issued to Chennankeshu, et al. employs the fast Kalman algorithm for decision-feedback equalizer (DFE) coefficient adaptation. U.S. Pat. No. 3,974,449 issued to Falconer describes a DFE adaptation method that does not use training sequences. 
     In the direct matrix inversion approach, a response of the channel to the signaling pulse is first estimated. This estimate is the response, filtered by the receiver filter, of the channel to the transmitter spectral-shaping pulse. The equalizer coefficients are then obtained from the estimate of the response of the channel to the signaling pulse by solving a set of complex-valued linear equations. In general, the solution of these equations requires the inversion of an N×N square matrix, which requires O(N 3 ) complex multiplications. U.S. Pat. No. 5,436,929 issued to Kawas Kaleh utilizes positive-definite and Hermitian symmetric properties of the square matrix so that a Cholesky decomposition can be used. The Cholesky decomposition requires O(N 3 ) complex multiplications to factor a positive-definite, Hermitian symmetric matrix into the product of lower and upper triangular matrices. The upper triangular matrix is equal to the Hermitian transpose of the lower triangular matrix. The triangular matrices are easily invertible, requiring O(N 3 ) multiplications. U.S. Pat. No. 5,790,598 issued to Moreland, et al. describes a recursive method using the Cholesky decomposition. Both of these techniques still require O(N 3 ) complex multiplications. 
     In general, the optimization of the equalizer coefficients requires at least O(N 3 ) complex multiplies if direct matrix inversion is used. This complexity makes the method impractical to implement in many real life communication system. The complexity may be even greater for the adaptive approach if a large number of iterations are required. Moreover, the adaptive approach usually results in sub optimal solution compared to the direct matrix inversion method. 
     It should be noted that in the present specification, the mathematical notations used are such that uppercase notation, e.g. W, is used to denote a matrix, and lowercase notation, e.g. w, is used to denote a vector. 
       FIG. 1 , shows a generic equalizer device  10  used in a communication system. The equalizer  10  is designed to restore the transmitted signal distorted by dispersive channel (characterized by channel response matrix H) and noise (characterized by variance σ 2 ). In order to compute filter coefficients for the equalizer, a channel response matrix G is computed based on estimate of channel response matrix H. This step is commonly performed using pilot signaling. The signal processing is usually done in the equalizer  10  in block by block fashion. A first channel matrices estimation block  12  receives input signals (vector r) for use in estimating channel response matrices H and G. The filter coefficients vectors are then computed in a filter coefficients calculation block  14  where the computation involves the inversion of channel response matrix G. The computed filter vector w 0  is then used to equalize the received vector r by means of an FIR filter  16  to obtained the output data subsequently used in a communication receiver. 
     In order to understand the computational complexity of the inversion of channel response matrix G, a typical method for matrix inversion will now be described. 
     The vector of channel estimates h is used for computation of the vector f where, for example, for five multipaths and three timing positions per multipath, 
     
       
         
           
             
               
                 
                   h 
                   = 
                     
                   ⁢ 
                   
                     [ 
                     
                       
                         h 
                         
                           - 
                           0 
                         
                       
                       , 
                       
                         h 
                         0 
                       
                       , 
                       
                         h 
                         
                           + 
                           0 
                         
                       
                       , 
                       0 
                       , 
                       … 
                       ⁢ 
                       
                           
                       
                       , 
                       0 
                       , 
                       
                         h 
                         
                           - 
                           1 
                         
                       
                       , 
                       
                         h 
                         1 
                       
                       , 
                       
                         h 
                         
                           + 
                           1 
                         
                       
                       , 
                     
                   
                 
               
             
             
               
                 
                     
                   ⁢ 
                   
                     0 
                     , 
                     … 
                     ⁢ 
                     
                         
                     
                     , 
                     0 
                     , 
                     
                       h 
                       
                         - 
                         5 
                       
                     
                     , 
                     
                       h 
                       5 
                     
                     , 
                     
                       h 
                       
                         + 
                         5 
                       
                     
                     , 
                     0 
                     , 
                     … 
                     ⁢ 
                     
                         
                     
                     , 
                     0 
                   
                   ] 
                 
               
             
           
         
       
       
         
           
             f 
             = 
             
               [ 
               
                 
                   f 
                   ⁡ 
                   
                     ( 
                     0 
                     ) 
                   
                 
                 , 
                 
                   f 
                   ⁡ 
                   
                     ( 
                     1 
                     ) 
                   
                 
                 , 
                 … 
                 ⁢ 
                 
                     
                 
                 , 
                 
                   f 
                   ⁡ 
                   
                     ( 
                     
                       N 
                       - 
                       1 
                     
                     ) 
                   
                 
               
               ] 
             
           
         
       
       
         
           
             
               f 
               ⁡ 
               
                 ( 
                 i 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 
                   n 
                   = 
                   0 
                 
                 
                   n 
                   = 
                   
                     N 
                     - 
                     1 
                     - 
                     i 
                   
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   h 
                   ⁡ 
                   
                     [ 
                     n 
                     ] 
                   
                 
                 ⁢ 
                 
                   
                     h 
                     ⁡ 
                     
                       [ 
                       
                         n 
                         + 
                         i 
                       
                       ] 
                     
                   
                   * 
                 
               
             
           
         
       
     
     Construct matrix G as follows: 
     
       
         
           
             G 
             = 
             
               [ 
               
                 
                   
                     
                       
                         f 
                         ⁡ 
                         
                           ( 
                           0 
                           ) 
                         
                       
                       + 
                       β 
                     
                   
                   
                     
                       f 
                       ⁡ 
                       
                         ( 
                         1 
                         ) 
                       
                     
                   
                   
                     ⋯ 
                   
                   
                     
                       f 
                       ⁡ 
                       
                         ( 
                         
                           N 
                           - 
                           1 
                         
                         ) 
                       
                     
                   
                 
                 
                   
                     
                       f 
                       ⁡ 
                       
                         ( 
                         
                           - 
                           1 
                         
                         ) 
                       
                     
                   
                   
                     
                       
                         f 
                         ⁡ 
                         
                           ( 
                           0 
                           ) 
                         
                       
                       + 
                       β 
                     
                   
                   
                     
                         
                     
                   
                   
                     
                       f 
                       ⁡ 
                       
                         ( 
                         
                           N 
                           - 
                           2 
                         
                         ) 
                       
                     
                   
                 
                 
                   
                     ⋮ 
                   
                   
                     ⋮ 
                   
                   
                     ⋰ 
                   
                   
                     ⋮ 
                   
                 
                 
                   
                     
                       f 
                       ⁡ 
                       
                         ( 
                         
                           
                             - 
                             N 
                           
                           + 
                           1 
                         
                         ) 
                       
                     
                   
                   
                     
                       f 
                       ⁡ 
                       
                         ( 
                         
                           
                             - 
                             N 
                           
                           + 
                           2 
                         
                         ) 
                       
                     
                   
                   
                     ⋯ 
                   
                   
                     
                       
                         f 
                         ⁡ 
                         
                           ( 
                           0 
                           ) 
                         
                       
                       + 
                       β 
                     
                   
                 
               
               ] 
             
           
         
       
       
         
           
             
               f 
               ⁡ 
               
                 ( 
                 
                   - 
                   i 
                 
                 ) 
               
             
             = 
             
               
                 
                   
                     f 
                     ⁡ 
                     
                       ( 
                       i 
                       ) 
                     
                   
                   
                     * 
                     
                         
                     
                   
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 and 
                 ⁢ 
                 
                   
                       
                   
                   ⁢ 
                   
                       
                   
                 
                 ⁢ 
                 
                   f 
                   ⁡ 
                   
                     ( 
                     0 
                     ) 
                   
                 
               
               &gt; 
               0 
             
           
         
       
     
     Since the channel response matrix G is Hermitian and positive definite, there is unique lower (upper) triangular matrix L(U) such that G=LL H =U H U , when the superscript H indicates the Hermitian transpose of a matrix. In general, we have
 
 GG   −1   =I               L ( L   H   G   −1 )= I             LD=I   (1)
 
where the superscript −1 indicates the inverse of a matrix and I is the identity matrix. Moreover, we also have
 
 L   H   G   −1   =D   (2)

     To find the inverse channel response matrix G −1 , the following steps need to be carried out:
         Step 1: Perform a Cholesky decomposition of the channel response matrix to obtain the lower triangular matrix L—calculation complexity O(N 3 ).   Step 2: Solve equation (1) to get matrix D using Forward Substitution as the lower triangular matrix L.   Step 3: Solve equation (2) to get the inverse channel response matrix G −1  using Backward Substitution on the matrices D and L H .       

     Since the system of linear equations has N times N unknowns (D and G −1  are N×N matrices), Steps 2 and 3 in the above-described method has a calculation complexity of O(N 3 ). 
     Using a method, such as that described in co-pending Australian patent application no. 2005203278, in the name of NEC Australia Pty Ltd, filed on 26 Jul. 2005 and entitled “Method for calculating filter coefficients for an equalizer in a communication receiver,” the calculation complexity of steps 2 and 3 can be reduced to O(N 2 ). In this case the complexity of the decomposition step (Step 1) becomes the main contributor to the complexity, processing time and size in computing the equalizer filter coefficients in an equalizer. 
     Thus there is a need for an efficient method for computing the equalizer filter coefficients in an equalizer that can practically be implemented in a communication receiver. It would be desirable for the method for computing the equalizer filter coefficients to be computationally less complex than currently known methods. It would also be desirable to provide a method for computing the equalizer filter coefficients with fewer computations as this can lead to a reduction in the circuit area required and power consumed and/or faster processing times. It would also be desirable to provide a method for computing the equalizer filter coefficients in an equalizer that ameliorates or overcomes one or more problems of known coefficient computation methods. 
     SUMMARY OF THE INVENTION 
     In a first aspect the present invention provides a method for computing equalizer filter coefficients in a communication receiver on the basis of a real matrix T generated from channel estimation vector f, which is derived from the channel estimation inputs. This avoids the need to perform the inversion of a complex channel matrix G. 
     The method preferably includes directly forming T from vector f. 
     In an embodiment where f is a vector of dimension N, chosen to be odd, and defined as described above, and T is an N×N matrix, the matrix T can be generated by solving Gc 0 =i 0  for each of the real and imaginary terms in the inverse G matrix&#39;s middle column c 0  and the identity matrix&#39;s middle column i 0 . In this embodiment T can be generated as follows: 
     T((N+1)/2, (N+1)/2)=R[f(1)/2]; where rows and columns are numbered from 1 to N, and the notation T(x, y) denotes the entry in the matrix T in its x-th row and y-th column, and R[z] denotes the real part of z and I[z] denotes the imaginary part of z; 
     for row (N+1)/2, column numbers from 1 to (N−1)/2,
 
 T (( N+ 1)/2, ( N +1)/2−column number)= R[f (col+1)] and
 
 T (( N+ 1)/2, ( N+ 1)/2+column number)= I[f (col+1)]; and
 
     for row number 1 to (N−1)/2, and 
     for the middle column
 
 T (row number, ( N+ 1)/2)= R[f (( N+ 1)/2)];
 
 T ( N+ 1−row number, ( N+ 1)/2)= I[f (( N+ 1)/2)];
 
     for column numbers 1 to (N−1)/2
 
 T (row number, column number)= R[f (column number)]+ R[f ( N+ 1−column number)];
 
 T ( N+ 1−row number,  N+ 1−column number)= R[f (column number)]− R[f ( N+ 1−column number)];
 
     for column numbers from ((N+1)/2+1) to N
 
 T (row number, column number)= I[f (column number)]− I[f ( N+ 1−column number)]
 
 T ( N+ 1−row number,  N+ 1−column number)= I[f (column number)]+ I[f ( N+ 1−col)]
 
     for f vector column numbers from N down to 2
 
 f (col)= f (col−1)
 
 R[f (1)]= T (( N+ 1)/2, ( N+ 1)/2−row)
 
 I[f (1)=− T (( N+ 1)/2, ( N+ 1)/2+row))
 
     The method can also include the steps of:
         performing matrix inversion on T in order to determine the middle column of T −1 ;   forming a vector v from the middle column of T −1  and a constant;   determining c 0   H  on the basis of v; and   determining the filter coefficients w 0  using the relationship w 0 =c 0   H H H  where H H  is the Hermitian transpose of the channel response matrix H.       

     In an exemplary embodiment matrix inversion can include performing Cholesky decomposition on T to get a lower triangular matrix L, and then performing forward and backward substitution on L. 
     Preferably, where v and c 0   H  have elements 1 to N, and the notation v(x) denotes he x-th element in vector v; the step of determining c 0   H  on the basis of v includes:
         Setting c 0   H ((N+1)/2) to be equal to v((N+1)/2);   for elements 1 to (N−1)/2 of c 0   H , setting   c 0   H  (element no) to be equal to v(element number)−(0+i(v(N+1−element number))   and for elements (N+1)/2 to N of c 0   H , setting   c 0   H  (element no) to be equal to v(N+1−element number)+(0+i(v(element number)).       

     In a second aspect the present invention provides a method of processing a received signal in a communications receiver, the method including;
         computing one or more equalizer filter coefficients using a method of the first aspect of the invention; and   equalizing the received signal using the computed equalizer filter coefficients.       

     In a third aspect the present invention provides an equalizer configured to implement a method according to either of the abovementioned aspects of the invention. 
     In a fourth aspect the present invention provides an equalizer for use in a communication receiver, the equalizer including:
         a first input for receiving a input data for equalization;   a second input for receiving channel estimation data relating to the input data;   a signal processing path configured to perform a signal processing method of claim  8  on the input data to generate an equalized output data; and   at least output for outputting s equalized output data.       

     The equalizer can include one or more of the following signal processing blocks:
         a channel matrix calculation block configured to compute vectors h and f based on the basis of a received channel estimation;   a real matrix calculation block configured to form the matrix T;   a matrix decomposition block for performing matrix decomposition on T;   a forward and backward substitution block configured to compute values of elements in a middle column of T −1 ;   a middle column calculation block configured to determine element values in a middle column of G −1 (c 0 );   a filter coefficient generation block configured to compute filter coefficients w 0 =c 0   H H H ; and   a finite impulse response filter.       

     In a further aspect the present invention provides a communications receiver including an equalizer of according to the previous aspect of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       To facilitate an understanding of the invention, reference is made in the description to the accompanying drawings, in which an equalizer and method of computing filter coefficients for an equalizer are illustrated in a preferred embodiment. It is to be understood that the invention is not limited to the preferred embodiment as illustrated in the drawings. In the drawings: 
         FIG. 1  is a schematic diagram of a known equalizer used in a communication system; 
         FIG. 2  is a schematic diagram of an equalizer which equalizer computes filter coefficients according to an embodiment of the present invention; 
         FIG. 3  lists an exemplary matlab implementation of an algorithm which can be used to generate T from the vector f in accordance with an embodiment of the present invention; and 
         FIG. 4  lists an exemplary matlab implementation of an algorithm that can be used to compute c 0  in an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     Computation of the vector of filter coefficients aims to find the middle row w 0  of the matrix W=[H H H+σ 2 I] −1 H H =G −1 H H  where G and H are channel response matrices, I is the identity matrix, the superscript H indicates the Hermitian transpose of a matrix and the superscript −1 indicates the inverse or reciprocal of a matrix. 
     This means one would have to compute middle row vector r 0  of G −1  and then multiply with H H  to obtain vector w 0  since w 0 =r 0 H H . If the dimension of G is N then O(N 3 ) complex multiplications would be required to compute r 0 . 
     The current invention exploits the fact that G −1  and G are Hermitian. Therefore, instead of having to fully compute G −1  and then find its middle row r 0 , only the middle column (denoted as c 0 ) of G −1  is computed, which can then be used to obtain w 0 =c 0   H H H . 
     Further more, since the present inventor has observed that G −1  is also Toeplitz, and the middle element of c 0  is real, as a result of G −1  being Hermitian, it can be seen that c 0  is made up from only (N+1)/2 real terms and (N−1)/2 imaginary terms. These N real variables form the vector v. 
     From the definition GG −1 =I, if we consider just the complex middle column i 0 of the identity matrix I, we also have:
 
 Gc   0   =i   0 .
 
     Solving the above matrix equation for each of the real and imaginary terms in i 0  gives us N distinct real equations involving the N real variables of v. This can be written as Tv=i. 
     Where T is the new real N×N matrix made from the coefficients of v in the above N distinct real equations, and i is the vector made from the appropriate real and imaginary terms in i 0 . Therefore v=T −1 i. 
     Since all the elements of i are zero except for the middle element, v is just the middle column of T −1  times a constant. Once we know real vector v we also know c 0 . This result changes the original problem of performing the complex inversion of the G matrix into the real inversion of the T matrix which can be performed as will be shown below. 
     In order to aid understanding of the preferred embodiment, an example of how the matrix T can be of formed will now be given. In this example assume that N=3. We know that c 0 , which is the middle column of the inverse of the channel r matrix G, can be written as a column vector: 
               [             x   ⁢           ⁢   1     +     jy   ⁢           ⁢   1                 x   ⁢           ⁢   2                 x   ⁢           ⁢   1     -     jy   ⁢           ⁢   1             ]     ,         
which has 3 real terms: x1, x2 and y1.
 
     In this case, let 
     
       
         
           
             G 
             = 
             
               [ 
               
                 
                   
                     a 
                   
                   
                     
                       b 
                       + 
                       jc 
                     
                   
                   
                     
                       d 
                       + 
                       je 
                     
                   
                 
                 
                   
                     
                       b 
                       - 
                       jc 
                     
                   
                   
                     a 
                   
                   
                     
                       b 
                       + 
                       jc 
                     
                   
                 
                 
                   
                     
                       d 
                       - 
                       je 
                     
                   
                   
                     
                       b 
                       + 
                       jc 
                     
                   
                   
                     a 
                   
                 
               
               ] 
             
           
         
       
     
     Expanding Gc 0 =i (N+1)/2 , we obtain, for Row 1
 
 a *( x 1+ jy 1)+( b+jc )* x 2+( d+je )*( x − jy 1)=(0+ j 0)
 
     Separating the real and imaginary terms gives: 
     Real
 
( a+d )* x 1+ b*x 2+ e*y 1=0
 
Imaginary
 
 e*x 1+ c*x 2+( a−d )* y 1=0
 
     For Row 2 we obtain:
 
( b−jc )*( x 1+ jy 1)+ a*x 2+( b+jc )*( x − jy 1)=(1+ j 0)
 
     The real terms of which are
 
2* b*x 1+ a*x 2+2* c*y 1=1
 
     Dividing both sides of this expression by two gives: 
     Real:
 
 b*x 1+( a/ 2)* x 2+ c*y 1=0.5
 
     These three equations can then be used to form the basis of system of linear equation as follows: 
     
       
         
           
             
               Tv 
               = 
               
                 
                   
                     [ 
                     
                       
                         
                           
                             a 
                             + 
                             d 
                           
                         
                         
                           b 
                         
                         
                           e 
                         
                       
                       
                         
                           b 
                         
                         
                           
                             a 
                             / 
                             2 
                           
                         
                         
                           c 
                         
                       
                       
                         
                           e 
                         
                         
                           c 
                         
                         
                           
                             a 
                             - 
                             d 
                           
                         
                       
                     
                     ] 
                   
                   × 
                   
                     [ 
                     
                       
                         
                           
                             x 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             1 
                           
                         
                       
                       
                         
                           
                             x 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             2 
                           
                         
                       
                       
                         
                           
                             y 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             1 
                           
                         
                       
                     
                     ] 
                   
                 
                 = 
                 
                   [ 
                   
                     
                       
                         0 
                       
                     
                     
                       
                         0.5 
                       
                     
                     
                       
                         0 
                       
                     
                   
                   ] 
                 
               
             
             ⁢ 
             
                 
             
           
         
       
     
     In a preferred embodiment an equalizer device is proposed with functional diagram as outlined in  FIG. 2 . An equalizer device of this type can significantly reduce (by a factor of 4) computational requirements for generating filter coefficients and thus become suitable for use in practical a communication system. 
     The equalizer  200  contains 7 main blocks, as follows: 
     Channel matrix calculation block  202 : This block performs computation of vectors h and f based on the channel estimation input as described above. 
     Real Matrix calculation block  204 : This block uses the vector f to directly form the matrix T instead of the G matrix described above. 
     An exemplary matlab algorithm which can be used to generate T from the vector f in accordance with the methodology described above is given in  FIG. 3 . 
     Matrix decomposition block  206 : This functional block performs standard matrix decomposition (for example Cholesky decomposition) on T. 
     Forward and Backward substitution block  208 : This block performs standard forward and backward substitution to get the middle column of T −1 . 
     Middle Column of G −1 (c 0 ) Calculation block  210 : This block forms v as just the middle column of T −1  times a constant (0.5). Once we know real vector v we also know c 0 , and therefore c 0   H . The exemplary matlab algorithm of  FIG. 4  can be used to compute c 0  and hence c 0   H . 
     Filter coefficient generation block  212 : This block performs a computation to get the filter coefficients w 0 =c 0   H H H . 
     FIR filter  214 : The FIR filter filters the input data with updated filter coefficients w 0  from time to time. 
     As will be appreciated by those skilled in the art because the illustrative embodiment operates on a real matrix T instead of the complex matrix G the computational complexity, size and processing time are significantly reduced which results in an equalizer made in accordance with this embodiment to be implemented in practical communication devices. 
     It will be understood that the invention disclosed and defined in this specification extends to all alternative combinations of two or more of the individual features mentioned or evident from the text or drawings. All of these different combinations constitute various alternative aspects of the invention. 
     It will also be understood that the term “comprises” (or its grammatical variants) as used in this specification is equivalent to the term “includes” and should not be taken as excluding the presence of other elements or features.