# Patent

## Title
Equalizer for AM in-band on-channel radio receivers

## Abstract

A method is provided for equalizing OFDM symbol vectors received on AM in-band on-channel radio signal including a main carrier and first and second BPSK modulated subcarriers. The method comprises the steps of: computing a BPSK magnitude signal; filtering the BPSK magnitude signal; filtering complex samples received on the main carrier; using the filtered BPSK magnitude signal and the filtered complex samples received on the main carrier to compute a plurality of flat fade equalization coefficients; and multiplying the OFDM symbol vectors by the flat fade equalization coefficients. A receiver that includes an equalizer, which operates in accordance with the method is also provided.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application is a divisional application of U.S. patent application Ser. No. 11/272,978, filed Nov. 14, 2005, which is hereby incorporated by reference.


FIELD OF THE INVENTION
This invention relates to radio broadcasting and, more particularly to methods of, and apparatus for, equalizing a signal in a receiver for use in an in-band on-channel digital broadcasting system.
BACKGROUND OF THE INVENTION
An AM compatible in-band on-channel (IBOC) digital broadcasting system simultaneously broadcasts analog and digital signals in a standard AM broadcasting channel. One AM IBOC system is described in U.S. Pat. No. 5,588,022. The broadcast signal includes an amplitude modulated radio frequency signal having a first frequency spectrum. The amplitude modulated radio frequency signal includes a first carrier modulated by an analog program signal. The signal also includes a plurality of digitally modulated carrier signals within a bandwidth, which encompasses the first frequency spectrum. Each of the digitally modulated carrier signals is modulated by a digital signal. A first group of the digitally modulated carrier signals lies within the first frequency spectrum and is modulated in quadrature with the first carrier signal. Second and third groups of the digitally modulated carrier signals lie outside of the first frequency spectrum and are modulated both in-phase and in quadrature with the first carrier signal. The subcarriers are divided into primary, secondary and tertiary partitions. Some of the subcarriers are complementary subcarriers.
The received multi-carrier signal requires equalization in the presence of dynamic channel response variations. Without such equalization, a distorted signal would be detected and the digital broadcasting signal information would be unrecoverable. An equalizer enhances the recoverability of the digital audio broadcasting signal information. Equalizers for use in receivers that receive AM in-band on-channel signals are disclosed in U.S. Pat. Nos. 5,559,830; 6,292,511; 6,295,317; and 6,480,536.
The use of complementary subcarriers for hybrid secondary and tertiary partitions in the AM compatible digital audio broadcasting signal creates an orthogonal relationship with the analog host signal. Prior equalization implementations for secondary partitions required knowledge of whether the analog host bandwidth was limited to ±5 kHz. If the analog was limited to ±5 kHz, then the secondary partitions were equalized independently to better accommodate adjacent channel interference. Otherwise the secondary partitions were first complementary combined to cancel the analog signal in this region.
There is a need for an equalization technique that does not require analog bandwidth information.
SUMMARY OF THE INVENTION
This invention provides a method for equalizing OFDM symbol vectors received on AM in-band on-channel radio signal including a main carrier and first and second BPSK modulated subcarriers. The method comprises the steps of: computing a BPSK magnitude signal; filtering the BPSK magnitude signal; filtering complex samples received on the main carrier; using the filtered BPSK magnitude signal and the filtered complex samples received on the main carrier to compute a plurality of flat fade equalization coefficients; and multiplying the OFDM symbol vectors by the flat fade equalization coefficients.
In another aspect, the invention provides a method of equalizing OFDM symbol vectors received on an AM in-band on-channel radio signal, the method comprising the steps of: arranging a plurality of training symbols in a training symbol vector; median filtering the training symbol vector to produce a median value estimate of the training symbol vector; smoothing the median value estimate of the training symbol vector over time and frequency; using the smoothed median value to compute a plurality of equalization coefficients; and multiplying the OFDM symbol vectors by the equalization coefficients.
In yet another aspect, the invention provides a method of estimating the variances of training symbol information received on an AM in-band on-channel radio, the method comprising the steps of: arranging a plurality of training symbols in a training symbol vector; computing a log of local estimated variances across the training symbol vector; smoothing the log of the variances of the training symbol vector over time and frequency; using the smoothed estimate of the log of the variances to compute a plurality of channel state information values.
The invention also encompasses a method of equalizing OFDM symbol vectors received on an AM in-band on-channel radio signal, the method comprising the steps of: complementary combining secondary and/or tertiary partitions in the AM in-band on-channel radio; computing a plurality of flat fade equalization coefficients, and multiplying the OFDM symbol vectors by the flat fade equalization coefficients to produce flat fade equalized OFDM symbol vectors; and computing a plurality of partition equalization coefficients, and multiplying the flat fade equalized OFDM symbol vectors by the partition equalization coefficients to produce output OFDM symbol vectors.
Receivers that include equalizers, which operate in accordance with the above methods, are also provided.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a spectral diagram of the AM hybrid IBOC signal.
FIG. 2 is a spectral diagram of the AM all-digital IBOC signal.
FIG. 3 is a functional block diagram of an AM IBOC receiver.
FIG. 4 is a block diagram of a modem for an AM IBOC receiver.
FIG. 5 is a block diagram of a flat fade equalizer constructed in accordance with the invention.
FIG. 6 is a block diagram of a partition equalizer constructed in accordance with the invention.



DETAILED DESCRIPTION OF THE INVENTION
Referring to the drawings, FIG. 1 is a spectral diagram of an AM hybrid IBOC signal. The AM hybrid IBOC waveform 10 includes the conventional AM analog signal 12 (bandlimited to about ±5 kHz) along with a nearly 30 kHz wide digital audio broadcasting (DAB) signal 14 transmitted beneath the AM signal. The spectrum is contained within a channel 16 having a bandwidth of about 30 kHz. The channel is divided into a central frequency band 18, and upper 20 and lower 22 frequency bands. The central frequency band is about 10 kHz wide and encompasses frequencies lying within about ±5 kHz of the center frequency fo of the channel. The upper sideband extends from about +5 kHz from the center frequency to about +15 kHz from the center frequency. The lower sideband extends from about −5 kHz from the center frequency to about −15 kHz from the center frequency.
AM hybrid IBOC DAB signal format in one embodiment of the invention comprises the analog modulated carrier signal 24 plus 162 OFDM subcarrier locations spaced at approximately 181.7 Hz, spanning the central frequency band and the upper and lower sidebands. Coded digital information, representative of the audio or data signals (program material), is transmitted on the subcarriers. The symbol rate is less than the subcarrier spacing due to a guard time between symbols.
As shown in FIG. 1, the upper sideband is divided into a primary partition 26 and a secondary partition 28, and the lower sideband is divided into a primary partition 30 and a secondary partition 32. The digital signals are transmitted in the primary and secondary partitions on either side of the host analog signal, as well as underneath the host analog signal in a tertiary partition 34. The tertiary partition 34 can be considered to include a plurality of groups of subcarriers labeled 36, 38, 40 and 42 in FIG. 1. Subcarriers within the tertiary partition that are positioned near the center of the channel are referred to as inner subcarriers and subcarriers within the tertiary partition that are positioned farther from the center of the channel are referred to as outer subcarriers. In this example, the power level of the inner subcarriers in groups 38 and 40 is shown to decrease linearly with frequency spacing from the center frequency. The remaining groups of subcarriers 36 and 42 in the tertiary sideband have substantially constant power levels.
FIG. 1 also shows two reference subcarriers 44 and 46, for system control, that are positioned at the first subcarrier positions immediately adjacent to the analog modulated carrier and have power levels which are fixed at a value that is different from the other sidebands.
The center carrier 24, at frequency fo, is not QAM modulated, but carries the main analog amplitude modulated carrier. The synchronization and control subcarriers 44 and 46 are modulated in quadrature to the carrier. The remaining subcarriers of the tertiary partition, positioned at locations designated as 2 through 26 and −2 through −26 on either side of the AM carrier, are modulated with QPSK. Representative subcarrier locations are identified by the subcarrier index shown in FIG. 1. Subcarriers at locations 2 through 26 and −2 through −26 on either side of the central frequency, are referred to as tertiary subcarriers and are transmitted in complementary pairs such that the modulated resultant DAB signal is in quadrature to the analog modulated AM signal. The use of complementary subcarrier pairs in an AM IBOC DAB system is shown in U.S. Pat. No. 5,859,876. The synchronization and control subcarriers 44 and 46 are also modulated as a complementary pair.
The double sideband (DSB) analog AM signal occupies the bandwidth in the ±5 kHz region. The lower and upper tertiary partitions occupy sub-bands from about 0 to about −5 kHz and from about 0 to about +5 kHz regions, respectively. These tertiary partitions are negative complex conjugates of each other and are characterized as complementary. This complementary property maintains an orthogonal relationship between the analog and digital tertiary signals such that they can be separated in a receiver, while existing conventional receivers can still receive the analog AM signal. The tertiary partitions must be complementary combined to extract the digital signal while canceling the analog crosstalk. The secondary partitions also have the complementary property, so they can be processed at the receiver either independently, or after complementary combining, depending on interference conditions and audio bandwidth. The primary partitions are transmitted independently.
FIG. 2 is a spectral diagram of an all-digital IBOC signal 50. The power of the central frequency band 52 subcarriers is increased, relative to the hybrid format of FIG. 1. Again, the two subcarriers 54 and 56 located at locations −1 and +1 use binary phase shift keying to transmit timing information. A core upper sideband 58 is comprised of carriers at locations 2 through 26, and a core lower sideband 60 is comprised of subcarriers at locations −2 through −26. Sidebands 58 and 60 form primary partitions. Two groups 62 and 64 of additional enhancement subcarriers occupy locations 27 through 54 and −54 through −27 respectively. Group 62 forms a secondary partition and group 64 forms a tertiary partition. The all-digital format of FIG. 2 is very similar to the hybrid format except that the AM signal is replaced with a delayed and digitally encoded tuning and backup version of the program material. The central frequency band occupies approximately the same spectral location in both the hybrid and all-digital formats. In the all-digital format, there are two options for transmitting the main version of the program material in combination with the tuning and backup version. The all-digital system has been designed to be constrained within ±10 kHz of the channel central frequency, fo, where the main audio information is transmitted within ±5 kHz of fo, and the less important audio information is transmitted in the wings of the channel mask out to ±10 kHz at a lower power level. This format allows for graceful degradation of the signal while increasing coverage area. The all-digital system carries a digital time diversity tuning and backup channel within the ±5 kHz protected region (assuming the digital audio compression is capable of delivering both the main and audio backup signal within the protected ±5 kHz). The modulation characteristics of the all-digital system are based upon the AM IBOC hybrid system.
The all-digital IBOC signal includes a pair of primary partitions in the ±5 kHz region, a secondary partition in the −5 kHz to −10 kHz region, and a tertiary partition in the +5 kHz to +10 kHz region. The all-digital signal has no analog component, and all partitions are transmitted independently (that is, the partitions are not complementary).
FIG. 3 is a functional block diagram of an IBOC receiver 84 constructed in accordance with this invention. The IBOC signal is received on antenna 86. A bandpass preselect filter 88 passes the frequency band of interest, including the desired signal at frequency fc, but rejects the image signal at fc−2fif (for a low side lobe injection local oscillator). Low noise amplifier 90 amplifies the signal. The amplified signal is mixed in mixer 92 with a local oscillator signal flo supplied on line 94 by a tunable local oscillator 96. This creates sum (fc+flo) and difference (fc−flo) signals on line 98. Intermediate frequency filter 100 passes the intermediate frequency signal fif and attenuates frequencies outside of the bandwidth of the modulated signal of interest. An analog-to-digital converter 102 operates using a clock signal fs to produce digital samples on line 104 at a rate fs. Digital down converter 106 frequency shifts, filters and decimates the signal to produce lower sample rate in-phase and quadrature signals on lines 108 and 110. A digital signal processor based demodulator 112 then provides additional signal processing to produce an output signal on line 114 for output device 116.
The receiver in FIG. 3 includes a modem constructed in accordance with this invention. FIG. 4 is a functional block diagram of an AM HD RadioTM modem 130 showing the functional location of the carrier tracking of this invention. An input signal on line 132 from the digital down converter is subject to carrier tracking and automatic gain control as shown in block 134. The resulting signal on line 136 is subjected to a symbol tracking algorithm 138 that produces the BPSK signal on lines 140 and 142, symbol vectors (in the time domain) on line 144, and the analog modulated carrier on line 146. BPSK processing, as shown in block 148 produces block/frame sync and mode control information 150 that is used by functions illustrated in other blocks. An OFDM demodulator 152 demodulates the time domain symbol vectors to produce frequency domain symbol vectors on line 154.
The equalizer 156 processes the frequency domain symbol vectors in combination with the BPSK and carrier signals to produce equalized signals on line 158 and channel state information on line 160. These signals are processed to produce branch metrics 162, deinterleaved in a deinterleaver 164, and mapped in a deframer 166 to produce soft decision bits on line 168. A Viterbi decoder 170 processes the soft decision bits to produce decoded program data units on line 172.
For clarity, we differentiate the OFDM vectors as time domain and frequency domain vectors, each representing the same information. The modem processes these OFDM vectors in the following order (referring to FIG. 4): Carrier Tracking, Symbol Tracking, OFDM Demodulation & BPSK processing, and then Equalization. The input to the modem comprises time domain vectors, or just a sequence of time samples; the Carrier Tracking operates in the time domain. The Symbol Tracking operates on the time domain samples and outputs (symbol synchronized) time domain OFDM vectors, and also computes the middle 3 FFT bins (0,±1) representing the main carrier and BPSK subcarriers in the frequency domain. The main carrier and the BPSK subcarriers are used for the equalization and are conveniently received from the symbol tracking, although they could also be received from the OFDM demodulation function (windowed FFT) having the same redundant 3 middle FFT bins. The Equalizer always operates on the sequence of frequency domain OFDM vectors.
This invention relates to a method and apparatus for equalizing either the hybrid or all-digital AM IBOC signals. The equalizer is comprised of two cascaded components, a flat fade equalizer followed by a partition equalizer with noise variance estimates used subsequently in the generation of channel state information (CSI). Flat fade compensation is applied in a similar manner to both the hybrid and all-digital signals. The partition equalizer operates on each of the partitions of the received signal. In one example, each partition consists of a set of 25 OFDM subcarriers, spanning approximately 5 kHz per partition. The partitions of the all-digital IBOC signal comprise a pair of primary partitions, a secondary partition and a tertiary partition, and are equalized independently. However the secondary and tertiary partitions of the hybrid signal involve additional processing and combining techniques described below. Several other single subcarriers are also transmitted between the partitions and use a simpler equalization technique than described here.
The flat fade compensation (equalizer) is described next. The flat fade compensation involves phase compensation using the main carrier phase, and magnitude equalization using the imaginary components of the BPSK signal. This flat fade compensation should be applied to all OFDM subcarriers.
Consider a single digital QAM (complex) symbol (Q(n,1)=x+j·y), and an analog signal component (a(n,1)=u+j·v) of an AM IBOC signal. This symbol is one of a group of QAM symbols transmitted in the nth OFDM symbol at subcarrier frequency fc. The QAM symbol is transmitted using a complementary subcarrier pair to avoid AM crosstalk.

s(t)=[a(n,1)+Q(n,1)]·w(t)·ej·2·π·fc·t+[a(n,−1)+Q(n,−1)]·w(t)·e−j·2·π·fc·t 

where Q(n,−1)=−Q*(n,1) and a(n,−1)=a*(n,1).
The receiver demodulates the signal, which has been added to the analog modulation component and is further corrupted by noise and phase error, to produce the following estimates of the symbols for the pair of subcarriers:



  
    
      D
      ⁡
      
        (
        
          n
          ,
          1
        
        )
      
    
    =
    
      
        ∫
        
          
            (
            
              
                s
                ⁡
                
                  (
                  t
                  )
                
              
              +
              
                n
                ⁡
                
                  (
                  t
                  )
                
              
            
            )
          
          ·
          
            w
            ⁡
            
              (
              t
              )
            
          
          ·
          
            e
            
              
                
                  -
                  j
                
                ·
                2
                ·
                π
                ·
                
                  f
                  c
                
                ·
                t
              
              +
              
                j
                ·
                φ
              
            
          
          ·
          
            d
            t
          
        
      
      =
      
        
          
            Q
            ⁡
            
              (
              
                n
                ,
                1
              
              )
            
          
          ·
          
            e
            
              j
              ·
              φ
            
          
        
        +
        
          
            a
            ⁡
            
              (
              
                n
                ,
                1
              
              )
            
          
          ·
          
            e
            
              j
              ·
              φ
            
          
        
        +
        
          n
          1
        
      
    
  




  
    
      D
      ⁡
      
        (
        
          n
          ,
          
            -
            1
          
        
        )
      
    
    =
    
      
        ∫
        
          
            (
            
              
                s
                ⁡
                
                  (
                  t
                  )
                
              
              +
              
                n
                ⁡
                
                  (
                  t
                  )
                
              
            
            )
          
          ·
          
            w
            ⁡
            
              (
              t
              )
            
          
          ·
          
            e
            
              
                j
                ·
                2
                ·
                π
                ·
                
                  f
                  c
                
                ·
                t
              
              +
              
                j
                ·
                φ
              
            
          
          ·
          
            d
            t
          
        
      
      =
      
        
          
            Q
            ⁡
            
              (
              
                n
                ,
                
                  -
                  1
                
              
              )
            
          
          ·
          
            e
            
              j
              ·
              φ
            
          
        
        +
        
          
            a
            ⁡
            
              (
              
                n
                ,
                
                  -
                  1
                
              
              )
            
          
          ·
          
            e
            
              j
              ·
              φ
            
          
        
        +
        
          
            n
            
              -
              1
            
          
          .
        
      
    
  



To show the effect of the complementary combining, the analog component can be extracted by summing the two components. The analog signal can be reproduced using the real part of the result, or, more commonly, computing its magnitude.




  
    
      
        
          
            
              D
              ⁡
              
                (
                
                  n
                  ,
                  1
                
                )
              
            
            +
            
              
                D
                *
              
              ⁡
              
                (
                
                  n
                  ,
                  
                    -
                    1
                  
                
                )
              
            
          
          2
        
        =
        
        ⁢
        
          
            
              
                
                  
                    
                      Q
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        j
                        ·
                        φ
                      
                    
                  
                  +
                  
                    
                      a
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        j
                        ·
                        φ
                      
                    
                  
                  +
                  
                    n
                    1
                  
                  -
                
              
            
            
              
                
                  
                    
                      Q
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        
                          -
                          j
                        
                        ·
                        φ
                      
                    
                  
                  +
                  
                    
                      a
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        
                          -
                          j
                        
                        ·
                        φ
                      
                    
                  
                  +
                  
                    n
                    
                      -
                      1
                    
                    *
                  
                
              
            
          
          2
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            
              -
              j
            
            ·
            
              Q
              ⁡
              
                (
                
                  n
                  ,
                  1
                
                )
              
            
            ·
            
              sin
              ⁡
              
                (
                φ
                )
              
            
          
          +
          
            
              a
              ⁡
              
                (
                
                  n
                  ,
                  1
                
                )
              
            
            ·
          
        
      
    
  
  
    
      
        
        ⁢
        
          
            cos
            ⁡
            
              (
              φ
              )
            
          
          +
          
            n
            c
          
          +
          
            j
            ·
            
              n
              s
            
          
        
      
    
  
  
    
      
        
          ≅
          
          ⁢
          
            a
            ⁡
            
              (
              
                n
                ,
                1
              
              )
            
          
        
        ;
        
          when
          ⁢
          
            
          
          ⁢
          φ
          ⁢
          
            
          
          ⁢
          and
          ⁢
          
            
          
          ⁢
          noise
          ⁢
          
            
          
          ⁢
          are
          ⁢
          
            
          
          ⁢
          sufficiently
        
      
    
  
  
    
      
        
        ⁢
        
          small
          .
        
      
    
  




The digital symbol is extracted as




  
    
      
        
          
            
              D
              ⁡
              
                (
                
                  n
                  ,
                  1
                
                )
              
            
            -
            
              
                D
                *
              
              ⁡
              
                (
                
                  n
                  ,
                  
                    -
                    1
                  
                
                )
              
            
          
          2
        
        =
        
        ⁢
        
          
            
              
                
                  
                    
                      Q
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        j
                        ·
                        φ
                      
                    
                  
                  +
                  
                    
                      a
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        j
                        ·
                        φ
                      
                    
                  
                  +
                  
                    n
                    1
                  
                  +
                
              
            
            
              
                
                  
                    
                      Q
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        
                          -
                          j
                        
                        ·
                        φ
                      
                    
                  
                  -
                  
                    
                      a
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    ·
                    
                      e
                      
                        
                          -
                          j
                        
                        ·
                        φ
                      
                    
                  
                  -
                  
                    n
                    
                      -
                      1
                    
                    *
                  
                
              
            
          
          2
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            
              Q
              ⁡
              
                (
                
                  n
                  ,
                  1
                
                )
              
            
            ·
            
              cos
              ⁡
              
                (
                φ
                )
              
            
          
          -
          
            j
            ·
            
              a
              ⁡
              
                (
                
                  n
                  ,
                  1
                
                )
              
            
            ·
          
        
      
    
  
  
    
      
        
        ⁢
        
          
            sin
            ⁡
            
              (
              φ
              )
            
          
          +
          
            n
            c
          
          +
          
            j
            ·
            
              n
              s
            
          
        
      
    
  
  
    
      
        
          ≅
          
          ⁢
          
            Q
            ⁡
            
              (
              
                n
                ,
                1
              
              )
            
          
        
        ;
        
          when
          ⁢
          
            
          
          ⁢
          φ
          ⁢
          
            
          
          ⁢
          and
          ⁢
          
            
          
          ⁢
          noise
          ⁢
          
            
          
          ⁢
          are
          ⁢
          
            
          
          ⁢
          sufficiently
        
      
    
  
  
    
      
        
        ⁢
        
          small
          .
        
      
    
  




The BPSK sequence is transmitted on the first pair of OFDM subcarriers on either side of the main carrier. These BPSK subcarriers are transmitted at a gain of GBPSK, relative to the main carrier at a level of 1. So each BPSK symbol can be recovered and scaled with the following expression:




  
    
      
        
          B
          ⁡
          
            (
            n
            )
          
        
        =
        
        ⁢
        
          
            
              
                D
                ⁡
                
                  (
                  
                    n
                    ,
                    1
                  
                  )
                
              
              -
              
                
                  D
                  *
                
                ⁡
                
                  (
                  
                    n
                    ,
                    
                      -
                      1
                    
                  
                  )
                
              
            
            
              2
              ·
              
                G
                BPSK
              
            
          
          =
          
            
              
                
                  
                    
                      
                        (
                        
                          x
                          +
                          
                            j
                            ·
                            y
                          
                        
                        )
                      
                      ·
                      
                        cos
                        ⁡
                        
                          (
                          φ
                          )
                        
                      
                    
                    -
                    
                      
                        j
                        ·
                        a
                      
                      ⁢
                      
                        
                          (
                          
                            n
                            ,
                            1
                          
                          )
                        
                        ·
                      
                    
                  
                
              
              
                
                  
                    
                      sin
                      ⁢
                      
                        (
                        φ
                        )
                      
                    
                    +
                    
                      n
                      c
                    
                    +
                    
                      j
                      ·
                      
                        n
                        s
                      
                    
                  
                
              
            
            
              G
              BPSK
            
          
        
      
    
  
  
    
      
        
          ≅
          
          ⁢
          
            
              x
              +
              
                j
                ·
                y
              
            
            
              G
              BPSK
            
          
        
        ;
        
          when
          ⁢
          
            
          
          ⁢
          φ
          ⁢
          
            
          
          ⁢
          and
          ⁢
          
            
          
          ⁢
          noise
          ⁢
          
            
          
          ⁢
          are
          ⁢
          
            
          
          ⁢
          sufficiently
          ⁢
          
            
          
          ⁢
          
            small
            .
          
        
      
    
  




However, we are interested in an estimate of the absolute value of the BPSK bit (real scalar) for subsequent scaling of the signal. For this particular BPSK symbol, where Q(n,1)=x+j·y, we arbitrarily choose x=0, and the information bit is imposed in the imaginary dimension. To extract the scalar information R(n) from B(n), either its magnitude can be computed, or the absolute value of the imaginary component y can be extracted from B(n).

R(n)=|B(n)|,or R(n)=abs[Im{B(n)}].

The magnitude estimate is generally less accurate than the absolute value of the imaginary computation when the phase error is small. The magnitude is also more computationally complex, so we choose to avoid the magnitude computation in favor of the imaginary component computation. The estimate of the channel magnitude R(n) can be computed from B(n), or more directly from D(n,1) and D*(n,−1).




  
    R
    ⁡
    
      (
      n
      )
    
  
  =
  
    
      abs
      ⁡
      
        [
        
          Im
          ⁢
          
            {
            
              B
              ⁡
              
                (
                n
                )
              
            
            }
          
        
        ]
      
    
    =
    
      
        
          abs
          ⁡
          
            [
            
              
                Im
                ⁢
                
                  {
                  
                    D
                    ⁡
                    
                      (
                      
                        n
                        ,
                        1
                      
                      )
                    
                  
                  }
                
              
              -
              
                Im
                ⁢
                
                  {
                  
                    
                      D
                      *
                    
                    ⁡
                    
                      (
                      
                        n
                        ,
                        
                          -
                          1
                        
                      
                      )
                    
                  
                  }
                
              
            
            ]
          
        
        
          2
          ·
          
            G
            BPSK
          
        
      
      =
      
        
          
            abs
            ⁡
            
              [
              
                
                  Im
                  ⁢
                  
                    {
                    
                      D
                      ⁡
                      
                        (
                        
                          n
                          ,
                          1
                        
                        )
                      
                    
                    }
                  
                
                +
                
                  Im
                  ⁢
                  
                    {
                    
                      
                        D
                        *
                      
                      ⁡
                      
                        (
                        
                          n
                          ,
                          
                            -
                            1
                          
                        
                        )
                      
                    
                    }
                  
                
              
              ]
            
          
          
            2
            ·
            
              G
              BPSK
            
          
        
        .
      
    
  




Notice that R(n) is a real-valued scalar.

A functional block diagram of the flat fade equalizer 180 is presented in FIG. 5. An input D(n) from the OFDM demodulator is supplied on line 182. In this embodiment, the input is a 256-sample vector for each symbol n. R(n) is computed as shown in block 184 and passed to a median filter 186 to produce a first filtered signal on line 188. The first filtered signal is further filtered by a finite impulse response filter 190 to produce a second filtered signal on line 192.
In this embodiment, the filtering for the BPSK magnitude signal R(n) includes a 7-tap median filter cascaded with a 7-tap FIR filter. This median filter can be implemented by placing the samples of R(n) in a 7-element circular buffer, then computing the median of the 7 samples. The median filter has a delay of 3 samples. The 7-tap FIR filter has a delay of 3 samples and can be implemented using the following 7 coefficients:




  
    h
    ⁡
    
      (
      k
      )
    
  
  =
  
    
      (
      
        
          1
          16
        
        ⁢
        
          
        
        ⁢
        
          2
          16
        
        ⁢
        
          
        
        ⁢
        
          3
          16
        
        ⁢
        
          
        
        ⁢
        
          4
          16
        
        ⁢
        
          
        
        ⁢
        
          3
          16
        
        ⁢
        
          
        
        ⁢
        
          2
          16
        
        ⁢
        
          
        
        ⁢
        
          1
          16
        
      
      ⁢
      
        
      
      )
    
    .
  




The total delay of the median and FIR filters is 6 samples. The filtered channel magnitude can be expressed as




  
    
      
        R
        ~
      
      ⁡
      
        (
        
          n
          -
          6
        
        )
      
    
    =
    
      
        ∑
        
          k
          =
          0
        
        6
      
      ⁢
      
        
      
      ⁢
      
        
          h
          ⁡
          
            (
            k
            )
          
        
        ·
        
          {
          
            median
            ⁡
            
              [
              
                R
                ⁡
                
                  (
                  
                    n
                    -
                    k
                  
                  )
                
              
              ]
            
          
          }
        
      
    
  
  ;




where the median is computed over 7 samples.

The main carrier phase is also corrected as a flat fade component. However, this phase should be filtered independently of the previous BPSK magnitude. This is due to the increased phase noise on carrier samples near pinchoff at the negative analog modulation peaks. The same FIR filtering 194 defined for the BPSK magnitude can be used for the main carrier phase, although the median filtering should not be used, but replaced with an equivalent delay 196 to match the delay of the magnitude component. The main carrier samples C(n) can be computed independently over each OFDM symbol, or the value computed in the OFDM demodulation can be used. The filtering of the main carrier component is as follows:




  
    
      C
      ~
    
    ⁡
    
      (
      
        n
        -
        3
      
      )
    
  
  =
  
    
      ∑
      
        k
        =
        0
      
      6
    
    ⁢
    
      
    
    ⁢
    
      
        h
        ⁡
        
          (
          k
          )
        
      
      ·
      
        
          C
          ⁡
          
            (
            
              n
              -
              k
            
            )
          
        
        .
      
    
  




The flat fade equalizer weight is the reciprocal of the filtered channel magnitude (with divide by zero protection, ε), while applying the conjugate of the main carrier phase, after an appropriate delay,




  
    W
    ff
  
  =
  
    
      
        
          C
          ~
        
        *
      
      ⁡
      
        (
        
          n
          -
          6
        
        )
      
    
    
      
        max
        ⁡
        
          [
          
            
              
                R
                ~
              
              ⁡
              
                (
                
                  n
                  -
                  6
                
                )
              
            
            ,
            ɛ
          
          ]
        
      
      ·
      
        
        
          
            C
            ~
          
          ⁡
          
            (
            
              n
              -
              6
            
            )
          
        
        
      
    
  




as shown in block 198.

The original input is delayed as shown in block 200 and multiplied by Wff as shown in multiplier 202 to produce an output 256-sample vector for each new symbol n−6 after flat fade equalization on line 204.
The algorithm for computing the flat fade equalization coefficient Wff for each new OFDM symbol is summarized next:
“Flat Fade Equalization Algorithm”



  
    
      
        R
        ⁡
        
          (
          n
          )
        
      
      =
      
        
          abs
          ⁡
          
            [
            
              Im
              ⁢
              
                {
                
                  B
                  ⁡
                  
                    (
                    n
                    )
                  
                
                }
              
            
            ]
          
        
        =
        
          
            abs
            [
            
              
                Im
                ⁢
                
                  {
                  
                    D
                    (
                    
                      n
                      ,
                      1
                    
                    )
                  
                  }
                
              
              +
              
                Im
                ⁢
                
                  {
                  
                    D
                    (
                    
                      n
                      ,
                      
                        -
                        1
                      
                    
                    )
                  
                  }
                
              
            
            ]
          
          
            2
            ·
            
              G
              BPSK
            
          
        
      
    
    ;
  




  
    
      compute
      ⁢
      
        
      
      ⁢
      BPSK
      ⁢
      
        
      
      ⁢
      signal
      ⁢
      
        
      
      ⁢
      amplitude
      ⁢
      
        
      
      ⁢
      nominal
      ⁢
      
        
      
      ⁢
      
        R
        ⁡
        
          (
          n
          )
        
      
    
    =
    1
  




  
    
      
        R
        ~
      
      ⁡
      
        (
        
          n
          -
          6
        
        )
      
    
    =
    
      
        ∑
        
          k
          =
          0
        
        6
      
      ⁢
      
        
      
      ⁢
      
        
          h
          ⁡
          
            (
            k
            )
          
        
        ·
        
          {
          
            
              
                median
                [
                
                  R
                  ⁡
                  
                    [
                    
                      (
                      
                        n
                        -
                        k
                      
                      )
                    
                    ]
                  
                
                }
              
              ;
              
                

              
              ⁢
              
                f
                ⁢
                iltered
                ⁢
                
                  
                
                ⁢
                7
                ⁢
                
                  -
                
                ⁢
                sample
                ⁢
                
                  
                
                ⁢
                median
              
            
            ,
            
              
            
            ⁢
            
              
                delay
                =
                
                  
                    6
                    ⁢
                    
                      
                    
                    ⁢
                    symbols
                    ⁢
                    
                      

                    
                    ⁢
                    
                      
                        C
                        ~
                      
                      ⁡
                      
                        (
                        
                          n
                          -
                          3
                        
                        )
                      
                    
                  
                  =
                  
                    
                      ∑
                      
                        k
                        =
                        0
                      
                      6
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        h
                        ⁡
                        
                          (
                          k
                          )
                        
                      
                      ·
                      
                        C
                        ⁡
                        
                          (
                          
                            n
                            -
                            k
                          
                          )
                        
                      
                    
                  
                
              
              ;
              
                

              
              ⁢
              
                filter
                ⁢
                
                  
                
                ⁢
                the
                ⁢
                
                  
                
                ⁢
                main
                ⁢
                
                  
                
                ⁢
                carrier
                ⁢
                
                  
                
                ⁢
                samples
                ⁢
                
                  
                
                ⁢
                
                  (
                  complex
                  )
                
              
            
            ,
            
              

            
            ⁢
            
              
                delay
                =
                
                  
                    3
                    ⁢
                    
                      
                    
                    ⁢
                    symbols
                    ⁢
                    
                      

                    
                    ⁢
                    
                      W
                      ff
                    
                  
                  =
                  
                    
                      
                        
                          C
                          ~
                        
                        *
                      
                      ⁡
                      
                        (
                        
                          n
                          -
                          6
                        
                        )
                      
                    
                    
                      
                        max
                        ⁡
                        
                          [
                          
                            
                              
                                R
                                ~
                              
                              ⁡
                              
                                (
                                
                                  n
                                  -
                                  6
                                
                                )
                              
                            
                            ,
                            ɛ
                          
                          ]
                        
                      
                      ·
                      
                        
                        
                          
                            C
                            ~
                          
                          ⁡
                          
                            (
                            
                              n
                              -
                              6
                            
                            )
                          
                        
                        
                      
                    
                  
                
              
              ;
              
                

              
              ⁢
              
                compute
                ⁢
                
                  
                
                ⁢
                flat
                ⁢
                
                  
                
                ⁢
                fade
                ⁢
                
                  
                
                ⁢
                coefficient
                ⁢
                
                  
                
                ⁢
                for
                ⁢
                
                  
                
                ⁢
                multiplication
                ⁢
                
                  
                
                ⁢
                with
                ⁢
                
                  
                
                ⁢
                
                  

                
                ⁢
                OFDM
                ⁢
                
                  
                
                ⁢
                symbol
                ⁢
                
                  
                
                ⁢
                subcarriers
              
            
            ,
            
              
            
            ⁢
            
              delay
              ⁢
              
                
              
              =
              
                6
                ⁢
                
                  
                
                ⁢
                
                  symbols
                  .
                
              
            
          
        
      
    
  



Filtering for the BPSK magnitude signal R(n) includes a 7-tap median filter cascaded with a 7-tap FIR filter.
The flat fade equalization described above is followed by the Partition equalization. Table 1 shows the locations of interleaved symbols (indices), including training symbols “T” within each partition block. Each column represents a partition.







TABLE 1




















Next, an algorithm is used to compute the equalizer coefficients and associated noise variances estimated for each of the 25 elements (columns for subcarriers) of each OFDM symbol within a partition (for example, the upper primary partition). The equalizer begins processing OFDM symbols as they are received. All partitions of the all-digital modes and the primary partitions of the hybrid mode are processed independently for each OFDM symbol containing 25 columns (per partition). The hybrid secondary partitions are processed independently, and after complementary combining, allowing selection of the maximum metric, depending upon whether the analog audio bandwidth is limited to 5 kHz. The hybrid tertiary partitions are processed only after complementary combining.
Each column of a partition contains either 1 or 2 training symbols (complex), depending upon which of the 16 rows is processed. The training symbol locations repeat every 16 OFDM symbols (rows). The locations of the training symbols are conveniently computed as a function of the particular row (modulo 16) of the OFDM symbol. The recent training symbols are next collected in a 25-column vector TS, simply updating the column(s) of TS(col) corresponding to the recent column(s) of the OFDM symbol containing the training symbol. The medians and variances of adjacent groups of symbols are computed after the adjacent group is updated with recent training symbols. Next the variances and medians are filtered using a two-dimensional recursive filter technique. The equalizer coefficients are computed from the filtered medians and equalization is applied to all the corresponding columns for the previous OFDM symbol, along with the updated noise variances (and reciprocals) for subsequent symbol processing. The details of this process are described next and presented in FIG. 6.
FIG. 6 is a functional block diagram of an equalizer that can be used for each 25-column partition. The OFDM symbol OFDM(r,col) is input on line 210. Training symbols are collected as shown in block 212. The medians and variances are computed as shown in block 214 to produce median and variance signals on line 216. These signals are filtered and equalized in block 218 to produce an equalized variance signal on line 220 (for use in subsequent channel state information (CSI) estimates) and equalization coefficients on line 222. After a delay as shown in block 224, the equalization coefficients are applied to the input signal as shown in block 226 to produce an output signal on line 228.
To compute the medians and variances from the training symbols (TS), first, create two, 1-row by 25-column matrices labeled TS and MED to be used to store the training symbols and median computations, respectively. The column indices (col=0 to 24) equal the corresponding columns of the training symbols as they are received for each OFDM symbol. Next, initialize the elements to zero.
Then, receive the next OFDM symbol row r (modulo 16) corresponding to a particular row (r) of an interleaver block. Identify the training symbol location(s), or column(s), for this row r, and place the training symbol(s) into corresponding TS(col). The training symbol in a row r can be updated using the following algorithm.
The partition equalizer performs several steps.
Step 1: Gather, collapse and update the Training Symbols into a convenient vector TS (representing the timely training symbol information) used in subsequent equalization processing.
“Algorithm to Update TS for Row r”

col=mod(3·r+1,16);“identify which column has new TS”

TS(col)=OFDM(r,col)

if col<9 then TS(col+16)=OFDM (r,col+16); “if second TS in this row”.
Step 2: Create two, 25-column vectors labeled MED and logVAR to be used to store the computed median and log of the variance values for equalization and CSI. Median filtering of the local (time & freq) TS samples is used to produce a median value estimate of the TS. The outputs Med & logVAR are local estimates (not yet time or frequency (across subcarriers) smoothed) of these parameters.
The column indices equal the corresponding columns of the training symbols as they are received for each OFDM symbol. Then initialize the elements to zero.
Compute median and variance for the TS(col) 6 rows after that particular TS(col) was updated. This delay ensures that its adjacent training symbols are also updated for use in the following computation. Either 1 or 2 TS(col) values are updated for each new row r. A 9-sample median and variance are computed for columns 4 through 20 using ±4 values on either side of this training symbol. For example, the median computation for column 4 uses training symbols TS(0) through TS(8). Columns 0 through 3, and 21 through 24 are special cases since fewer than 9 samples are available at the ends to compute the median and variance values. The extreme missing values are replaced with duplicate values by folding near the ends, when necessary. For example in computing the median for column 3, TS(0) through TS(7) are used, and the missing TS(−1) column is replaced with TS(0) to provide 9 values for the median computation. The computed median and variance values are placed in MED(col) and logVAR(col). The following method (pseudocode) can be used to identify the appropriate columns to update at this row r, and gather the appropriate TS samples for the 9-sample median and log variance computations:












′′Algorithm to update MED and logVAR vectors,  delay = 6 symbols′′


col = mod(3 · r + 15, 16) ; ′′identify first TS col for r − 6′′


FOR m = 0 to 8 ; ′′gather 9 adjacent TS to place in buffer for MED & logVAR computation′′












  
    colm
    =
    
      col
      +
      m
      -
      4
    
  




  
    TScolindx
    =
    
      {
      
        
          
            
              
                
                  -
                  1
                
                -
                colm
              
              ;
              
                
              
              ⁢
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  colm
                
                <
                0
              
            
          
        
        
          
            
              colm
              ;
              
                
              
              ⁢
              otherwise
            
          
        
      
    
  





 



TSmedbuff(m) = TS(TScolindx)







MED(col) = median(TSmedbuff) ; ′′complex median, separate real & imaginary′′









′′compute log base2 of VAR samples (vector)′′











  
    logVAR
    ⁡
    
      (
      col
      )
    
  
  =
  
    log
    ⁢
    
      
    
    ⁢
    2
    ⁢
    
      (
      
        max
        [
        
          
            1
            256
          
          ,
          
            min
            [
            
              256
              ,
              
                
                  1
                  8
                
                ·
                
                  
                    ∑
                    
                      m
                      =
                      0
                    
                    8
                  
                  ⁢
                  
                    
                      
                      
                        
                          MED
                          ⁡
                          
                            (
                            col
                            )
                          
                        
                        -
                        
                          TSmedbuff
                          ⁢
                          
                            
                          
                          ⁢
                          
                            (
                            m
                            )
                          
                        
                      
                      
                    
                    2
                  
                
              
            
            ]
          
        
        ]
      
      )
    
  






 


if col < 9 then   ; ′′update second TS in this row if exists - - - - - - - - - - - - - - -′′









col2 = col + 16



FOR m = 0 to 8









colm = col2 + m − 4


 







  TScolindx
  =
  
    {
    
      
        
          
            
              49
              -
              colm
            
            ;
            
              
            
            ⁢
            
              
                if
                ⁢
                
                  
                
                ⁢
                colm
              
              >
              24
            
          
        
      
      
        
          
            colm
            ;
            
              
            
            ⁢
            otherwise
          
        
      
    
  






 



TSmedbuff(m) = TS(TScolindx)









MED(col2) = median(TSmedbuff) ; ′′complex median, separate real & imaginary′′


 







  
    logVAR
    ⁡
    
      (
      col2
      )
    
  
  =
  
    log
    ⁢
    
      
    
    ⁢
    2
    ⁢
    
      (
      
        max
        [
        
          
            1
            256
          
          ,
          
            min
            [
            
              256
              ,
              
                
                  1
                  8
                
                ·
                
                  
                    ∑
                    
                      m
                      =
                      0
                    
                    8
                  
                  ⁢
                  
                    
                      
                      
                        
                          MED
                          ⁡
                          
                            (
                            col2
                            )
                          
                        
                        -
                        
                          TSmedbuff
                          ⁢
                          
                            
                          
                          ⁢
                          
                            (
                            m
                            )
                          
                        
                      
                      
                    
                    2
                  
                
              
            
            ]
          
        
        ]
      
      )
    
  






 







end if.









To compute the equalizer coefficients and channel state information (CSI), the next step is to smooth (filter) the median and variance values over time and frequency (columns). The log of the variance is used for smoothing the squared noise samples having a potentially large dynamic range over the subcarriers.
Create two, 25-column vectors labeled MED1 and logVAR1 to be used to store the recursive time-filtered median and log variance values, respectively. The column indices equal the corresponding columns of the training symbols as they are received for each OFDM symbol. Then initialize the elements to zero.
Create two, 25-column vectors labeled MED2 and logVAR2 to be used to store the column or frequency-filtered median and log variance values, respectively. The column indices equal the corresponding columns of the training symbols as they are received for each OFDM symbol. Then initialize the elements to zero.
The equalizer values EQ are computed from MED2. The EQ values are generally the complex reciprocal of MED2 values, but with divide protection. The variance values logVAR2 are used to compute VAREQ for subsequent CSI and branch metrics after adjustment for equalizer gains.
Step 3: Next smooth the MED and logVAR values over time and frequency (subcarriers). The time smoothing with the IIR filter results in MED1 & logVAR1. The frequency smoothing using one of the quadratic fit functions results in MED2 & logVAR2. See first part of algorithm described below.
Step 4: The equalizer values EQ are computed from MED2. The EQ values are generally the complex reciprocal of MED2 values, but with divide protection. The variance values logVAR2 are used to compute VAREQ for subsequent CSI and branch metrics after adjustment for equalizer gains. Note that the last line of the algorithm above computes VAREQ(col) in a manner that accommodates special conditions. It is not simply the antilog computation to convert logVAR (log of the variance estimate) to VAR. It accounts for the fact that the variance is computed on not-yet-equalized values, so an adjustment is made to be compatible with the equalized symbol values of the output. Further adjustment is made to avoid variance estimate errors when very high interference is present. Both of these adjustments are included in the factor max[Eqmagsq(col,max(Eqmagsq)/2] after the antilog.












′′Algorithm to compute EQ & VAREQ from MED & logVAR, filter delay = 16 symbols′′


′′IIR filter MED and logVAR each col to get MED1 and logVAR1, q = 1/8 IIR coef′′


MED1 = (1 − q) · MED1 + q · MED   ;


logVAR1 = (1 − q) · logVAR1 + q · logVAR  ;


′′Smooth MED1 and logVAR1 across cols using quadratic-fit interpolator′′


′′MED2 & logVAR2 are the freq-smoothed median and variance estimates′′


MED2 = QF(MED1)    ; ′′compute quadratic fit using QF algorithm′′


logVAR2 = QF(logVAR1)  ; ′′compute quadratic fit using QF algorithm′′


′′Compute equalizer coefficients EQ from MED2′′


 





  
    
      
        medsq
        ⁡
        
          (
          col
          )
        
      
      =
      
        
          
          
            MED2
            ⁡
            
              (
              col
              )
            
          
          
        
        2
      
    
    ⁢
    
      
    
    ;
    
      col
      =
      
        0
        ⁢
        
          
            ...24
            ⁢
            
              
            
          
          
            
              
            
            ⁢
            ``
          
        
        ⁢
        save
        ⁢
        
          
        
        ⁢
        squared
        ⁢
        
          
        
        ⁢
        
          magnitudes
          ′′
        
      
    
  




  
    
      
        EQ
        ⁡
        
          (
          col
          )
        
      
      =
      
        
          
            
              MED2
              *
            
            ⁡
            
              (
              col
              )
            
          
          ·
          T
        
        
          max
          ⁡
          
            [
            
              
                medsq
                ⁡
                
                  (
                  col
                  )
                
              
              ⁢
              
                ,
              
              ⁢
              
                10
                
                  -
                  6
                
              
            
            ]
          
        
      
    
    ⁢
    
      
    
    ;
    
      
        
          
            col
            =
            
              0
              ⁢
              ...24
            
          
        
      
      
        
          
            
              
                
              
              ``
            
            ⁢
            
              
                equalizer
                ⁢
                
                  
                
                ⁢
                coeffs
              
              ,
              
                T
                =
                
                  Training
                  ⁢
                  
                    
                  
                  ⁢
                  
                    sym
                    ⁢
                    
                      .
                      ′′
                    
                  
                
              
            
          
        
      
    
  





 


′′Compute antilog and equalize logVAR2 to produce VAREQ′′


EQmagsq(col) = |EQ(col)|2  ; col = 0 . . . 24


VAREQ(col) = 2logVAR2(col) · max[EQmagsq(col), max(EQmagsq)/2]; col = 0 . . . 24.









The EQ(col) values are then applied to the corresponding data-bearing symbols to produce OFDMEQ(col) values for each column of the OFDM symbol (delayed by 22 OFDM symbols to account for the EQ processing delay). The VAREQ(col) values are used for subsequent CSI processing.

OFDMEQ(col)=OFDM(col)·EQ(col);col=0 . . . 24“equalize delayed OFDM symbol.

The algorithm described above uses a function called QF, which is a quadratic fit of the MED1 or logVAR1 matrices used to smooth the values across the columns (subcarriers) of these matrices. The smoothing of these values reduces the estimation and correction errors due to noise since the variation needing equalization is assumed to be smooth. The variation of these values across the columns can be a result of several factors. One factor is due to a residual symbol tracking timing error causing a linear phase shift across the subcarriers. Since the filtering is done in the I and Q complex domain, and not phase and magnitude, the I and Q components resulting from this linear phase shift cannot be corrected exactly with a linear fit, but rather a quadratic fit for I and Q complex components provides sufficient accuracy. Another variation can be due to the phase and amplitude perturbations due to frequency selective fading over the subcarriers, which can also be corrected by the quadratic fit. Phase and amplitude ripple from analog filtering prior to OFDM demodulation can be corrected if the ripple is small. Interference also tends to have a shape for logVAR that can be accommodated with a quadratic fit.
If the analog filter ripple is severe and deviates from a quadratic shape, then a different QF function is needed. Therefore two algorithm options are presented: the first QF function is best for correcting the variations due to residual symbol timing error, selective channel fading, and mild filter ripple; the second algorithm is designed to correct all these variations plus a more severe filter ripple.
The first QF function estimates three points over the subcarriers to which a quadratic shape is fitted to perform the smoothing correction. These points are estimated using FIR filters at the middle and two extreme endpoints of the subcarrier span. The middle point is properly estimated using a symmetric FIR filter over the middle subcarrier. The FIR filters at the endpoints have a centroid that is several bins from the ends. Although the quadratic fit could be normally designed to use the proper centroids near the endpoints and extrapolate the remaining subcarriers at the extreme ends, the performance tends to be better if the centroids are assumed to be located at the extreme subcarrier locations. The reason is that the extrapolation tends to accentuate the curvature of the quadratic fit in the presence of noise. However the algorithm can be modified to place the centroids at the location that yields the best overall performance.
Step 4a: The first quadratic fit function is intended to smooth the estimates with a partition shape (assumed quadratic) that provides near-optimum smoothing given likely channel conditions such as time-offset and selective fading properties. This is accomplished using the following algorithm.
“QF(x), Quadratic Fit function, input vector x, output vector y. (25-element vectors)



  
    
      
        wf
        ⁡
        
          (
          k
          )
        
      
      =
      
        
          
            cos
            ⁡
            
              (
              
                
                  π
                  ·
                  k
                
                12
              
              )
            
          
          +
          1
        
        13
      
    
    ;
    
      
        for
        ⁢
        
          
        
        ⁢
        k
      
      =
      
        0
        ⁢
        
          
        
        ⁢
        ...
        ⁢
        
          
        
        ⁢
        11
      
    
    ;
  




  
    stored
    ⁢
    
      
    
    ⁢
    coeffs
    ⁢
    
      
    
    ⁢
    for
    ⁢
    
      
    
    ⁢
    filter
    ⁢
    
      
    
    ⁢
    points
  




  
    
      ylow
      =
      
        
          ∑
          
            k
            =
            0
          
          11
        
        ⁢
        
          
            wf
            ⁡
            
              (
              k
              )
            
          
          ·
          
            x
            ⁡
            
              (
              k
              )
            
          
        
      
    
    ;
  




  
    “
    
      output
      ⁢
      
        
      
      ⁢
      value
      ⁢
      
        
      
      ⁢
      at
      ⁢
      
        
      
      ⁢
      col
      ⁢
      
        
      
      ⁢
      0
    
    ”
  




  
    
      yhigh
      =
      
        
          ∑
          
            k
            =
            0
          
          11
        
        ⁢
        
          
            wf
            ⁡
            
              (
              k
              )
            
          
          ·
          
            x
            ⁡
            
              (
              
                24
                -
                k
              
              )
            
          
        
      
    
    ;
  




  
    “
    
      output
      ⁢
      
        
      
      ⁢
      value
      ⁢
      
        
      
      ⁢
      at
      ⁢
      
        
      
      ⁢
      col
      ⁢
      
        
      
      ⁢
      24
    
    ”
  




  
    
      
        y
        ⁢
        
          
        
        ⁢
        mid
      
      =
      
        
          
            1
            12
          
          ·
          
            
              ∑
              
                k
                =
                0
              
              24
            
            ⁢
            
              x
              ⁡
              
                (
                k
                )
              
            
          
        
        -
        
          
            13
            24
          
          ·
          
            (
            
              ylow
              +
              yhigh
            
            )
          
        
      
    
    ;
  




  
    “
    
      midpoint
      ⁢
      
        
      
      ⁢
      value
      ⁢
      
        
      
      ⁢
      at
      ⁢
      
        
      
      ⁢
      col
      ⁢
      
        
      
      ⁢
      12
    
    ”
  




  
    
      a
      =
      
        
          ylow
          +
          yhigh
          -
          
            2
            ·
            ymid
          
        
        288
      
    
    ;
  




  
    “
    
      quadratic
      ⁢
      
        
      
      ⁢
      coef
      ⁢
      
        
      
      ⁢
      a
    
    ”
  




  
    
      b
      =
      
        
          
            4
            ·
            ymid
          
          -
          
            3
            ·
            ylow
          
          -
          yhigh
        
        24
      
    
    ;
  




  
    “
    
      quadratic
      ⁢
      
        
      
      ⁢
      coef
      ⁢
      
        
      
      ⁢
      b
    
    ”
  




  
    
      
        y
        ⁡
        
          (
          col
          )
        
      
      =
      
        
          a
          ·
          
            col
            2
          
        
        +
        
          b
          ·
          col
        
        +
        ylow
      
    
    ;
  




  
    
      (
      
        
          col
          =
          
            0
            ⁢
            
              
            
            ⁢
            ...
            ⁢
            
              
            
            ⁢
            24
          
        
        ;
      
      )
    
    ⁢
    
      
        “
        
          output
          ⁢
          
            
          
          ⁢
          vector
          ⁢
          
            
          
          ⁢
          y
        
        ”
      
      .
    
  



An alternate quadratic fit function QF is provided to accommodate IF filters with excessive ripple and group delay or gain variations. This function is different from the first since a different quadratic curve is used at each subcarrier location to form the FIR filter coefficients. These quadratic curves are pre-computed and stored in a 25 by 25 matrix W to be used as a multiplier for the row of 25 values from the subcarriers to be filtered. So instead of computing the quadratic fit across the 25 subcarriers for each new OFDM symbol as in the first algorithm, the second algorithm simply multiplies the vector of 25 subcarrier values by the matrix W for each OFDM symbol time.
This alternate QF function is applied in a similar manner as a method known as the Savitsky-Golay (SG) procedure; however, the alternate QF function generates the coefficients in a different manner resulting in improved filtering gain against noise while solving the endpoint dilemma. The SG procedure computes a least-squares fit centered on each point to smooth the data for that point. The result is a set of FIR filter coefficients about each subcarrier location to be smoothed. Two factors motivate the use of least squares smoothing. One is the variability of the values over the subcarriers, and the other is the endpoint dilemma where the subcarriers near the endpoints cannot be fitted with a symmetric set of FIR filter coefficients since there are no subcarriers to use in the filtering beyond the endpoints. The SG procedure exploits the properties of manipulated Vandermonde matrices to generate the FIR coefficients, generating a unique set of FIR filter coefficients for each subcarrier location to be smoothed. Although the SG procedure produces FIR filter coefficients that result in an unbiased estimate of each smoothed subcarrier value, the actual set of FIR coefficients do not have the best noise reduction filtering properties due to the excessive use of negative coefficient values. However, the alternate QF function uses the best possible quadratic fit FIR coefficients for noise reduction filtering or smoothing, while preserving the zero bias property of the SG procedure. Furthermore, the alternate QF function has more flexibility in establishing the span of FIR filter smoothing about the subcarrier locations.
One example of the alternate QF function is described as follows. The span of the nonzero FIR filter coefficients for each subcarrier location is set to 15 nonzero coefficients to accommodate the anticipated variability of values across the 25 subcarriers in the partition, although this can be adjusted. The unique FIR filter coefficients for each of the subcarrier locations m=0 . . . 24 are computed. The shape of the FIR coefficients is a quadratic function with four additional constraints defined as follows:
Constraint 1: The number of nonzero FIR filter coefficients is 15, with 10 zero coefficients remaining. The center nonzero coefficient is normally located on the subcarrier to be smoothed resulting in a symmetric FIR filter property, except that the 7 subcarriers on either end are constrained by using the 15 subcarrier locations on that end for the nonzero coefficients. Then the first nonzero coefficient location p for estimating (filtering) the subcarrier in can be identified by

p=max(0,min(17,m−7));“p is the first nonzero coefficient location”.

Constraint 2: Each set of the 25 sets of 25 FIR coefficients, having 15 nonzero coefficients and 10 zero coefficients, must sum to unity so that each FIR filter has a dc gain of one for each subcarrier location.




  
    
      
        ∑
        
          k
          =
          0
        
        24
      
      ⁢
      
        
      
      ⁢
      
        FIR
        ⁡
        
          (
          
            m
            ,
            k
          
          )
        
      
    
    =
    1
  
  ;




for the kth coefficient estimating the mth subcarrier

Constraint 3: The centroid of the FIR filter for subcarrier m must also be m to ensure an unbiased estimate when the slope of the subcarrier data is assumed to be piecewise linear.




  
    
      ∑
      
        k
        =
        0
      
      24
    
    ⁢
    
      
    
    ⁢
    
      k
      ·
      
        FIR
        ⁡
        
          (
          
            m
            ,
            k
          
          )
        
      
    
  
  =
  
    m
    .
  




Constraint 4: Although the best noise reduction can be achieved by minimizing the sums of the squares of the coefficients, this does not provide the best local estimate for each subcarrier location, and would result in 15 linear coefficients for each FIR filter. A better constraint is to ensure that the quadratic function crosses zero at the unused coefficient locations just outside the 15 nonzero coefficients. This is possible for the 11 subcarrier locations 7 through 17, but this constraint cannot be met for the other subcarrier locations affected by the endpoint dilemma. Then the outer subcarrier locations have the zero crossing constraint only toward the inner point beyond the FIR coefficient span.

ym(k)=am·k2+bm·k+cm;“quadratic for the kth coef for the mth subcarrier”

ym(p−1)=0;“constraint for m=7 . . . 24”

ym(p+15)=0;“constraint for m=0 . . . 17”.

Constraint 1 simply establishes the range of the 15 nonzero coefficients for each of the 25 FIR filters having a quadratic characteristic over that range. Constraints 2, 3 and 4 constitute the three equations necessary to determine the quadratic coefficients am, bm, and cm for each FIR filter. Although Constraint 4 may seem to overdetermine the middle sets of filter coefficients for m=7 . . . 17, having zero endpoints at both ends, this double constraint for these subcarriers is redundant, and all sets of coefficients are properly determined. An algorithm for generating the alternate QF1(x) FIR filter coefficient matrix W is defined next, and the resulting coefficient values for W are presented as shown below.
Step 4b: An alternate quadratic fit function QF is provided to accommodate IF filters with excessive ripple and group delay or gain variations. This function is different from the first since a different quadratic curve is used at each subcarrier location to form the FIR filter coefficients. These quadratic curves are pre-computed and stored in a 25 by 25 matrix W to be used as a multiplier for the row of 25 values from the subcarriers to be filtered. So instead of computing the quadratic fit across the 25 subcarriers for each new OFDM symbol as in the first algorithm, the second algorithm simply multiplies the vector of 25 subcarrier values by the matrix W for each OFDM symbol time. These are subjected to constraints 1-4, which result in the following algorithm.












“QF1 (x), Alternate Quadratic Fit Matrix function, input row vector x,


output vector y.”


“first compute prestored coefficient matrix W (25 by 25)”


FOR m = 0 to 7


 


 



   
  ⁢
  
    
      a
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        14
        -
        
          3
          ·
          m
        
      
      4760
    
  






 


 



   
  ⁢
  
    
      b
      ⁡
      
        (
        m
        )
      
    
    =
    
      -
      
        
          1
          +
          
            2360
            ·
            
              a
              ⁡
              
                (
                m
                )
              
            
          
        
        120
      
    
  






 


 c(m) = −225 • a(m) − 15 • b(m)


 FOR k = 0 to 14


  W (k, m) = a(m) • k2 + b(m) • k + c(m)


  W(24 − k,24 − m) = W (k , m)


FOR m = 8 to 16


 FOR k = 0 to 14


  W (k + m − 7,m) = W(k ,7)


“This is the end of the prestored computation for filter matrix W”


“compute filtered output vector y for each new OFDM symbol”


y = x •W; “matrix multiply yields output vector y”.









Step 4c: A third alternative quadratic fit is described below.
Another alternate filter QF2(x) can be designed using all 25 possible nonzero coefficients for each FIR filter. This filter has a characteristic more similar to the first QF(x) filter, but is constructed in the matrix form W of the alternate filter.
“QF2(x), Alternate Quadratic Fit Matrix function, input row vector x, output vector y.”
“first compute prestored coefficient matrix W (25 by 25)”
FOR m=0 to 13



  
    
      a
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        2
        2925
      
      -
      
        m
        11700
      
    
  




  
    
      b
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        
          -
          1
        
        39
      
      +
      
        
          11
          ·
          m
        
        3900
      
    
  




  
    
      c
      ⁡
      
        (
        m
        )
      
    
    =
    
      
        25
        117
      
      -
      
        
          2
          ·
          m
        
        117
      
    
  



    
    
        FOR k=0 to 24

W(k,m)=a(m)·k2+b(m)·k+c(m)

W(24−k,24−m)=W(k,m)

    
    


“This is the end of the prestored computation for filter matrix W”
“compute filtered output vector y for each new OFDM symbol”

y=x·W;“matrix multiply yields output row vector y”. 

In another aspect, the invention involves the adaptive complementary combining of the secondary partitions before equalization. The two independent secondary partitions are equalized independently, along with the associated VAREQ estimates. The branch metrics are computed independently and redundantly for all secondary soft code bits in the partition. The corresponding branch metrics are then added to produce one set of branch metrics. The equalization is also performed on the complementary combined secondary partitions to produce another set of branch metrics for the same set of secondary soft code bits. Then for each secondary soft code bit, the higher branch metric is selected as output for the corresponding secondary soft code bits.
The use of complementary subcarriers for hybrid secondary and tertiary partitions creates an orthogonal relationship with its analog host. A prior implementation of the secondary equalization required knowledge of whether the analog host bandwidth was limited to ±5 kHz. If the analog was limited to ±5 kHz, then the secondary partitions were equalized independently to better accommodate adjacent channel interference. Otherwise the secondary partitions were first complementary combined to cancel the analog signal in this region.
The input symbols to be equalized are delayed, to match the delay in the estimation of the equalizer parameters to provide timely application of the equalizer information. The EQ(col) values are then applied to the corresponding data-bearing symbols to produce OFDMEQ(col) values for each column of the OFDM symbol (delayed by 22 OFDM symbols to account for the EQ processing delay). The VAREQ(col) values are used for subsequent CSI processing.
The method of this invention does not make use of the analog bandwidth information; instead both independent and combined equalizations are performed, and later the maximum branch metric is selected. This yields more robust performance, especially when the analog bandwidth somewhat exceeds 5 kHz.
The tertiary subcarriers are always complementary combined prior to equalization. Tertiary equalization is then performed as described. The two secondary partitions are processed both independently and complementary combined, yielding three sets of equalized branch metrics for the single set of secondary soft code bits. The method of combining these three sets of branch metrics is described next.
The two independent secondary partitions are equalized independently, along with the associated VAREQ estimates. The branch metrics are computed independently and redundantly for all secondary soft code bits in the partition. The corresponding branch metrics are then added to produce one set of branch metrics. The equalization is also performed on the complementary combined secondary partitions to produce another set of branch metrics for the same set of secondary soft code bits. Then for each secondary soft code bit, the higher branch metric is selected as output for the corresponding secondary soft code bits.
As described above, the equalizer includes two parts: a flat fade compensation (equalizer) followed by a partition equalizer. The flat fade equalizer helps in fast fading cases and uses the main carrier (FFT bin 0) and BPSK subcarriers (bins ±1). The partition equalizer is slower and operates on sparser training symbols in the partition, but is more accurate in the partition. The partition equalizer benefits from the flat fade equalizer to keep the training values in a relative smaller range.
The functions shown in the drawings can be implemented using known circuit components, including but not limited to, one or more processors or application specific integrated circuits.
While the invention has been described in terms of several examples, it will be apparent to those skilled in the art that various changes can be made to the described examples without departing from the scope of the invention as set forth in the following claims.

## Claims

1. A method of estimating the variances of training symbol information received on an AM in-band on-channel radio signal, the method comprising the steps of:
using a processor to arrange a plurality of training symbols in a training symbol vector;
to compute a log of local estimated variances across the training symbol vector;
to smooth the log of the variances of the training symbol vector over time and frequency; and
to use the smoothed estimate of the log of the variances to compute a plurality of channel state information values.

2. The method of claim 1, wherein the processor uses the channel state information values to generate branch metrics for forward error correction decoding.

3. The method of claim 1, wherein the log of the variance of the training symbol vector is smoothed using a quadratic fit algorithm.

4. The method of claim 3, wherein the quadratic fit algorithm smoothes the estimates within a partition shape.

5. The method of claim 3, wherein a different quadratic curve is used for each subcarrier location in the radio signal.

6. The method of claim 1,
wherein the processor complementary combines tertiary partitions in the AM in-band on-channel radio signal prior to equalization.

7. The method of claim 1, wherein the processor adaptively complementary combines secondary partitions in the AM in-band on-channel radio signal prior to equalization.

8. The method of claim 1, wherein the training symbols are included in a plurality of OFDM symbols.

9. The method of claim 8, wherein the OFDM symbols are received on a plurality of subcarriers in partitions of the AM in-band on-channel radio signal.

10. A receiver for receiving OFDM symbol vectors on AM in-band on-channel radio signal, the receiver comprising:
an input for receiving the AM in-band on-channel radio signal;
an equalizer for arranging a plurality of training symbols in a training symbol vector, for computing a log of the variance of the training symbol vector, for smoothing the log of the variance of the training symbol vector over time and frequency, for using the smoothed log of the variance to compute a plurality of equalization coefficients, and for multiplying the OFDM symbol vectors by the equalization coefficients; and
an output device for producing an output in response to the AM in-band on-channel radio signal.

11. The receiver of claim 10, wherein the training symbols are included in a plurality of OFDM symbols.

12. The receiver of claim 11, wherein the OFDM symbols are received on a plurality of subcarriers in partitions of the AM in-band on-channel radio signal.

13. The receiver of claim 10, wherein the equalizer uses the channel state information values to generate branch metrics for forward error correction decoding.

14. The receiver of claim 10, wherein the log of the variance of the training symbol vector is smoothed using a quadratic fit algorithm.

15. The receiver of claim 14, wherein the quadratic fit algorithm smoothes the estimates within a partition shape.

16. The receiver of claim 14, wherein a different quadratic curve is used for each subcarrier location.

17. The receiver of claim 10, wherein the equalizer complementary combines tertiary partitions in the AM in-band on-channel radio signal prior to equalization.

18. The receiver of claim 10, wherein the equalizer adaptively complementary combines secondary partitions in the AM in-band on-channel radio signal prior to equalization.