Abstract:
Methods and systems for filtering include accessing first and second signals produced from an input signal and producing first and second filtered outputs, which correspond to the first and second signals, based on a filtering characteristic. The filtering characteristic can include a first filtering coefficient weighting the first and second signals. The filtering characteristic can include a second filtering coefficient weighting third and fourth signals, the third and fourth signals being produced prior to the first and second signals. The first and second filtering coefficients can include matrices which have non-symmetrical terms.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This patent application is a continuation of and claims priority to U.S. application Ser. No. 10/975,594, filed on Oct. 27, 2004, and entitled “DIGITAL TECHNIQUE OF COMPENSATING MISMATCHES BETWEEN IN PHASE AND QUADRATURE CHANNELS”, which claims the benefit of the priority of U.S. Provisional Application Ser. No. 60/592,292, filed Jul. 28, 2004 and entitled “IQ Imbalance Compensation”. 
    
    
     BACKGROUND 
     Many different kinds of communication systems, including, but not limited to, direct conversion products such as wireless system receivers, and GSM systems, transmit data using so-called Quadrature Amplitude Modulation, or QAM, over two different out-of-phase channels. These channels are conventionally referred to as the in-phase channel or “I” channel, and the quadrature phase channel or “Q” channel. In such a system, both the in-phase signal, and the 90° out of phase quadrature signal, are used to completely restore a desired signal. Any errors between the matching of the channels can affect the received signal, and hence can cause errors in the received signal. 
     In receivers of this type, there will always be mismatches between the components used in the I and Q channels. A filter or compensation can be used in an attempt to compensate for the mismatches. 
     SUMMARY 
     The present disclosure provides a special filter for correcting for errors caused by mismatches between I and Q channels in such a system. 
     An aspect defines a filter with a matching coefficient which does not have symmetrical terms. 
     Another aspect compensates for frequency-dependent errors in the channels. 
     One aspect defines a filter, that has first and second inputs adapted to receive first and second, substantially out of phase signals, which are mismatched relative to one another, and to produce first and second filtered outputs based on a filtering characteristic, wherein said filtering characteristic is of a form which includes a first filtering coefficient weighting said first and second signals, and a second filtering coefficient, weighting third and fourth signals which were produced at a different time then said first and second signals, and where said first and second filtering coefficients define matrices which have non-symmetrical terms. 
     The mismatch can be between said I and Q channels as a function of frequency, and the filter corrects for said frequency mismatch. 
     The filter can include a first local oscillator, generating cos(WcT) for one of said I and Q channels, and a second local oscillator generating sin(WCT) for the other of said I and Q channels. 
     The filter also includes at least one additional filtering coefficients weighting other, previously-produced signals, wherein there are a total of L different filtering coefficients, each filtering coefficient weighting a previously-produced signal. 
     The number L of different filtering coefficients is based on a flatness of a frequency response, with a flatter frequency response having a lower L. 
     The filter can be an adaptive filter that uses least mean squares operation. 
     According to another aspect, a method, defines receiving a signal which represents first and second out of phase components of a transmission to be received; and filtering the signal to compensate for mismatches between all of: 1) amplitude and phase differences between local oscillators in phase and quadrature components of the channel, and 2) transmission mismatches of the in phase and quadrature components of the channel as a function of frequency. 
     The filtering can comprise adaptively filtering the signal. 
     The filtering can comprises filtering the signal using a coefficient that can be expressed as a matrix with non symmetrical terms. 
     The receiving a signal comprises receiving a reception signal, first processing said reception signal using a first local oscillator to produce a first component, and second processing said reception signal using a second local oscillator to produce a second component which is substantially out of phase with said first component. 
     The first processing comprises multiplying the reception signal by cosine W c T, and said second processing comprises multiplying the reception signal by sine W c T. 
     Wherein said filter includes a plurality of filtering coefficients, each weighting a signal value, with at least a plurality of the filtering coefficients weighting previously produced signals, and where there are a total of L different filtering coefficients. A value of L can be selected, wherein said value of L is selected such that a flatter frequency response has a lower L. 
     Wherein said filtering comprises filtering according to a filtering characteristic of the form: 
     
       
         
           
             
               [ 
               
                 
                   
                     
                       
                         I 
                         ~ 
                       
                       ⁡ 
                       
                         ( 
                         kT 
                         ) 
                       
                     
                   
                 
                 
                   
                     
                       
                         Q 
                         ~ 
                       
                       ⁡ 
                       
                         ( 
                         kT 
                         ) 
                       
                     
                   
                 
               
               ] 
             
             = 
             
               
                 
                   H 
                   0 
                 
                 ⁡ 
                 
                   [ 
                   
                     
                       
                         
                           C 
                           k 
                         
                       
                     
                     
                       
                         
                           D 
                           k 
                         
                       
                     
                   
                   ] 
                 
               
               + 
               
                 
                   H 
                   1 
                 
                 ⁡ 
                 
                   [ 
                   
                     
                       
                         
                           C 
                           
                             k 
                             - 
                             1 
                           
                         
                       
                     
                     
                       
                         
                           D 
                           
                             k 
                             - 
                             1 
                           
                         
                       
                     
                   
                   ] 
                 
               
               + 
               
                 … 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     H 
                     L 
                   
                   ⁡ 
                   
                     [ 
                     
                       
                         
                           
                             C 
                             
                               k 
                               - 
                               L 
                             
                           
                         
                       
                       
                         
                           
                             D 
                             
                               k 
                               - 
                               L 
                             
                           
                         
                       
                     
                     ] 
                   
                 
               
             
           
         
       
     
     where the H 0 , H 1 , H L  are of a form with non symmetrical terms. 
     Wherein H i  is of the form H(k+1)=H(k)−μ·E(k)·Y(k)′, where μ is a constant, E(k) is the error signal, Y(k) is an input signal, and Y(k)′ is a transpose of Y(k). 
     Wherein said adaptive filter is of the form H(k+1)=H(k)−μ·E(k)·Y(k)′, where μ is a constant, E(k) is the error signal, Y(k) is an input signal, and Y(k)′ is a transpose of Y(k). 
     Wherein the error signal E(k) is of the form 
     
       
         
           
             
               E 
               ⁡ 
               
                 ( 
                 k 
                 ) 
               
             
             = 
             
               [ 
               
                 
                   
                     
                       
                         
                           I 
                           ~ 
                         
                         ⁡ 
                         
                           ( 
                           kT 
                           ) 
                         
                       
                       - 
                       
                         I 
                         ⁡ 
                         
                           ( 
                           kT 
                           ) 
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           Q 
                           ~ 
                         
                         ⁡ 
                         
                           ( 
                           kT 
                           ) 
                         
                       
                       - 
                       
                         Q 
                         ⁡ 
                         
                           ( 
                           kT 
                           ) 
                         
                       
                     
                   
                 
               
               ] 
             
           
         
       
     
     where Ĩ(kT) is the calculated I output, I(kt) is the actual I output, {tilde over (Q)}(kT) is the calculated Q output, and Q(kT) is the actual Q output. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       These and other aspects will now be described in detail with reference to the accompanying drawings, wherein: 
         FIG. 1  shows a block diagram of an example receiver which processes I and Q signals for an ideal case that does not have mismatch between I and Q channels; 
         FIG. 2  shows correction of mismatch in a QAM system which takes into account phase and amplitude differences between the local oscillators; 
         FIG. 3  shows a more general QAM mismatch system which takes into account frequency handling characteristics at various frequencies; and 
         FIG. 4  shows a general adaptive filter. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  shows a block diagram of a receiver which processes I and Q signals. These I and Q signals can, more generally, be any two signals which are out of phase with one another. The receiver, more generally, can receive a first reception signal, which represents the actual signal received over the channel. This reception signal shown as  100 , can be represented as:
 
I(t)cos(w c t+θ)+Q(t)sin(w c t+θ)  (1)
 
     A node  102  divides into two branches, a so-called in-phase or I branch  110  and a so-called out-of-phase or Q branch  120 . The in-phase branch  110  is demodulated, by multiplying by cos(w c t), produced by a first local oscillator  111 , to represent the cosine portion of the signal  100 . In this case, the local oscillator  111  has a frequency equal to the carrier. Analogously, the quadrature branch  120  is formed by multiplying the signal by sin(w c t) produced by a second local oscillator  122 . Each of the signals are then low pass filtered by low pass filters  115 ,  125 , and then A/D converted by A/D converters  118 ,  128 . 
     The output from the in-phase branch  110  can therefore be represented as
 
 C   k   =I ( kT )cos(θ)+ Q ( kT )sin(θ)  (2)
 
     While the output from the out-of-phase branch  120  can be represented as
 
 D   k   =−I ( kT )sin(θ)+ Q ( kT )cos(θ)  (3)
 
     Note that each of the signals from each of these branches includes a portion that should really be attributable to the other branch. That portion is typically filtered by a rotator filter  130 . The rotator filter  130  uses the transfer function 
                     [             I   ~     ⁡     (   kT   )                   Q   ~     ⁡     (   kT   )             ]     =     R   ·     [           C   k               D   k           ]               (   4   )               
to produce outputs Ĩ(kT) and {tilde over (Q)}(kT) from the outputs C k  and D k  (where the ˜ represents the filtered version). The transfer function may take the form
 
                   R   =     [           cos   ⁡     (   θ   )             -     sin   ⁡     (   θ   )                   sin   ⁡     (   θ   )             cos   ⁡     (   θ   )             ]             (   5   )               
or more generally of the form, e jθ . Note that the matrix in equation (5) has symmetric terms, e.g, cos(θ) is cross-symmetric with cos(θ), and non-symmetric terms, e.g., −sin(θ) is non-symmetric with sin(θ).
 
       FIG. 2  shows a more practical case which takes into account mismatches.  FIG. 2  compensates for the filtering characteristics of the channel, and also for amplitude and phase mismatches between the generators  211 ,  222 . In the  FIG. 2  embodiment, the generator  211  generates cos(w c t). However, the generator  222  is not precisely matched to the generator  211 , and its output takes the form
 
α sin(w c t−φ).
 
     Where α represents the amplitude mismatch and φ represents a phase mismatch relative to generator  211 . 
     The output signals in this more practical case, therefore include
 
 C   k   =I ( kT )cos(θ)+ Q ( kT )sin(θ)  (6)
 
     for the in phase channel, and
 
 D   k   =−α·I ( kT )sin(θ+φ)+α· Q ( kT )cos(θ+φ)  (7)
 
     for the quadrature channel. 
     The signals are applied to a filter  230  which has the matching function 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             
                               I 
                               ~ 
                             
                             ⁡ 
                             
                               ( 
                               kT 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               Q 
                               ~ 
                             
                             ⁡ 
                             
                               ( 
                               kT 
                               ) 
                             
                           
                         
                       
                     
                     ] 
                   
                   = 
                   
                     H 
                     · 
                     
                       [ 
                       
                         
                           
                             
                               C 
                               k 
                             
                           
                         
                         
                           
                             
                               D 
                               k 
                             
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     where the filtering function H has the form 
     
       
         
           
             
               
                 
                   H 
                   = 
                   
                     [ 
                     
                       
                         
                           
                             
                               cos 
                               ⁡ 
                               
                                 ( 
                                 
                                   θ 
                                   + 
                                   ϕ 
                                 
                                 ) 
                               
                             
                             / 
                             
                               cos 
                               ⁡ 
                               
                                 ( 
                                 θ 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               - 
                               
                                 sin 
                                 ⁡ 
                                 
                                   ( 
                                   θ 
                                   ) 
                                 
                               
                             
                             / 
                             
                               ( 
                               
                                 α 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   cos 
                                   ⁡ 
                                   
                                     ( 
                                     θ 
                                     ) 
                                   
                                 
                               
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               sin 
                               ⁡ 
                               
                                 [ 
                                 
                                   θ 
                                   + 
                                   ϕ 
                                 
                                 ] 
                               
                             
                             / 
                             
                               cos 
                               ⁡ 
                               
                                 ( 
                                 θ 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               cos 
                               ⁡ 
                               
                                 ( 
                                 θ 
                                 ) 
                               
                             
                             / 
                             
                               ( 
                               
                                 α 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   cos 
                                   ⁡ 
                                   
                                     ( 
                                     θ 
                                     ) 
                                   
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     This filtering function H does not have symmetric cross terms and hence can compensate for more general errors. 
     In an embodiment, H can be an adaptive filter as shown in  FIG. 4 . The filter mathematically has the form
 
 H ( k+ 1)= H ( k )−μ· E ( k )·[ C   k   D   k ], where
 
     
       
         
           
             
               
                 
                   
                     E 
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                   = 
                   
                     [ 
                     
                       
                         
                           
                             
                               
                                 I 
                                 ~ 
                               
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                             - 
                             
                               I 
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                           
                         
                       
                       
                         
                           
                             
                               
                                 Q 
                                 ~ 
                               
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                             - 
                             
                               Q 
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                           
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     Where μ is a constant. Error signal E(k) represents the error between the current signal Y(n) and a reference signal Ref. An adaptive algorithm  400  uses equation (10) to adapt filter coefficients H to minimize the power of the error signal E(k). Different types of adaptive filters are well-known, using, for example, a least mean squares algorithm, and other known techniques. 
       FIG. 3  shows an even more general matching system that compensates for mismatches not only in the channel itself, and in the generators, but also in the frequency handling characteristics between the channels. This may include, for example, the low pass filters  115 ,  125  in  FIG. 1  as well as the characteristics of the channel at different frequencies. The mismatches between the channels are shown generically in  FIG. 3  as  300 ,  305 , where the in-phase channel has the frequency characteristic F 1 , and the out of phase channel has the frequency characteristic F 2 . 
     A special adaptive compensation filter  310  is used. The compensation filter has the transfer function 
     
       
         
           
             
               [ 
               
                 
                   
                     
                       
                         I 
                         ~ 
                       
                       ⁡ 
                       
                         ( 
                         kT 
                         ) 
                       
                     
                   
                 
                 
                   
                     
                       
                         Q 
                         ~ 
                       
                       ⁡ 
                       
                         ( 
                         kT 
                         ) 
                       
                     
                   
                 
               
               ] 
             
             = 
             
               
                 
                   H 
                   0 
                 
                 ⁡ 
                 
                   [ 
                   
                     
                       
                         
                           C 
                           k 
                         
                       
                     
                     
                       
                         
                           D 
                           k 
                         
                       
                     
                   
                   ] 
                 
               
               + 
               
                 
                   H 
                   1 
                 
                 ⁡ 
                 
                   [ 
                   
                     
                       
                         
                           C 
                           
                             k 
                             - 
                             1 
                           
                         
                       
                     
                     
                       
                         
                           D 
                           
                             k 
                             - 
                             1 
                           
                         
                       
                     
                   
                   ] 
                 
               
               + 
               
                 … 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     H 
                     L 
                   
                   ⁡ 
                   
                     [ 
                     
                       
                         
                           
                             C 
                             
                               k 
                               - 
                               L 
                             
                           
                         
                       
                       
                         
                           
                             D 
                             
                               k 
                               - 
                               L 
                             
                           
                         
                       
                     
                     ] 
                   
                 
               
             
           
         
       
     
     in order to correct for these values. In this adaptive mismatch compensation, the H i  function is a 2×2 matrix. A classic adaptive filter uses previous values and errors to form coefficients to correct the current values. This improved matching uses an adaptive system which uses multiple different previous values, here L of those values extending back in time by L time periods. L may be selected based on the flatness of the frequency for the bandwidth of interest, where a flatter frequency may have a smaller L. An exemplary value of L, for example, may be 20. 
     The correction value H is actually formed of an array, therefore
 
H=[H 0 H 1  . . . H L ]  (13)
 
     Here, where the array is of dimension
 
H:2×(2·(L+1))  (14)
 
     the input value used by the array is of the form
 
Y=[C k ,D k ,C k-1 ,D k-1 , . . . C k-L ,D k-L ]′, where Y:(2·(L+1))×1  (15)
 
     This adaptive filter, therefore follows the equation
 
 H ( k+ 1)= H ( k )−μ· E ( k )· Y ( k )′  (16)
 
     Where μ is a constant, E(k) is the error signal, and Y(k)′ is the transpose of Y(k). The error signal for the adaptive filter is calculated as 
     
       
         
           
             
               
                 
                   
                     E 
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                   = 
                   
                     [ 
                     
                       
                         
                           
                             
                               
                                 I 
                                 ~ 
                               
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                             - 
                             
                               I 
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                           
                         
                       
                       
                         
                           
                             
                               
                                 Q 
                                 ~ 
                               
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                             - 
                             
                               Q 
                               ⁡ 
                               
                                 ( 
                                 kT 
                                 ) 
                               
                             
                           
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   17 
                   ) 
                 
               
             
           
         
       
     
     An important feature of this system, is that the correction factor is not a complex number of the form h i =a i +jb i , which would have the form 
     
       
         
           
             
               h 
               i 
             
             = 
             
               [ 
               
                 
                   
                     
                       a 
                       i 
                     
                   
                   
                     
                       - 
                       
                         b 
                         i 
                       
                     
                   
                 
                 
                   
                     
                       b 
                       i 
                     
                   
                   
                     
                       a 
                       i 
                     
                   
                 
               
               ] 
             
           
         
       
     
     Rather, here, the matching value does not have symmetric terms in its matrix. This more powerful correction allows the filter to correct for combinations of different mismatches within the system. 
     For example, the filter of this type may correct for multiple ones of phase and amplitude differences between the local oscillators, as well as frequency mismatches of channel characteristics. 
     The above system describes a filter which may be used in any kind of communication product. The filter can be effected in software, that is executed on a programmable processor of any type, such as a general-purpose processor, or a digital signal processor which is also carrying out some other function. The software can also be executed on a simulation system, such as MATLAB™. The filter can alternatively be effected in hardware, such as using dedicated circuitry defined using hardware definition language, or by a suitably programmed field programmable gate array or in an application specific integrated circuit. 
     This circuit may be used as part of any type of communication equipment, such as a cellular telephone, a network communication part such as a modem or wireless network device, or any other device that communicates data or other information, either digitally or in analog form. Most specifically, however, this may find application in an “direct conversion” type receiver that operates without a local oscillator. For example, this may be used in a CDMA, GSM or other telephone, or the like. 
     Although only a few embodiments have been disclosed in detail above, other modifications are possible. All such modifications are intended to be encompassed within the following claims, in which: