<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="id5983137">
  <name>Application of Viterbi Equalizer in GSM System</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2007/11/17 02:34:45 US/Central</md:created>
  <md:revised>2007/12/11 14:53:54.841 US/Central</md:revised>
  <md:authorlist>
      <md:author id="NguyenLeHongSinh">
      <md:firstname>Sinh</md:firstname>
      <md:othername>Hong</md:othername>
      <md:surname>Nguyen-Le</md:surname>
      <md:email>nguyenlesinh@yahoo.com</md:email>
    </md:author>
      <md:author id="tuandohong">
      <md:firstname>Tuan</md:firstname>
      
      <md:surname>Do-Hong</md:surname>
      <md:email>do-hong@hcmut.edu.vn</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="NguyenLeHongSinh">
      <md:firstname>Sinh</md:firstname>
      <md:othername>Hong</md:othername>
      <md:surname>Nguyen-Le</md:surname>
      <md:email>nguyenlesinh@yahoo.com</md:email>
    </md:maintainer>
    <md:maintainer id="tuandohong">
      <md:firstname>Tuan</md:firstname>
      
      <md:surname>Do-Hong</md:surname>
      <md:email>do-hong@hcmut.edu.vn</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  

  <md:abstract/>
</metadata>
  <content>
    <para id="id8363871">The <emphasis>GSM time-division multiple access (TDMA)</emphasis> frame in <term>Figure 1</term> has duration of 4.615 ms and comprising 8 slots, one assigned to each active mobile user. A normal transmission burst occupying one time slot contains 57 message bits on each side of a 26-bit <emphasis>midamble</emphasis>, called a <emphasis>training</emphasis> or <emphasis>sounding sequence</emphasis>. The slot-time duration is 0.577 ms (or the slot rate is 1733 slots/s). The purpose of the midamble is to assist the receiver in estimating the impulse response of the channel adaptively (during the time duration of each 0.577 ms slot). For the technique to be effective, the fading characteristics of the channel must not change appreciably during the time interval of one slot. </para>
    <figure id="id5924862">
      <media type="image/png" src="F 15.png">
        <param name="height" value="252"/>
        <param name="width" value="386"/>
      </media>
    </figure>
    <para id="id8563383">Consider a GSM receiver used aboard a high-speed train, traveling at a constant velocity of 200 km/hr (55.56 m/s). Assume the carrier frequency to be 900 MHz (the wavelength is λ = 0.33 m). The distance corresponding to a half-wavelength is traversed in 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mrow><m:msub><m:mi>T</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">≈</m:mo><m:mfrac><m:mrow><m:mi>λ</m:mi><m:mo stretchy="false">/</m:mo><m:mn>2</m:mn></m:mrow><m:mi>V</m:mi></m:mfrac></m:mrow><m:mo stretchy="false">≈</m:mo><m:mn>3</m:mn></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{T rSub { size 8{0} }  approx  {  { {λ} slash {2} }  over  {V} }  approx 3} {}</m:annotation></m:semantics></m:math> corresponds approximately to the coherence time. Therefore, the channel coherence time is more than five times greater than the slot time of 0.577 ms. The time needed for a significant change in channel fading characteristics is relatively long compared to the time duration of one slot.</para>
    <para id="id7751749">The GSM symbol rate (or bit rate, since the modulation is binary) is 271 kilosymbols/s; the bandwidth, W, is 200 kHz. Since the typical rms delay spread 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>σ</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>τ</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{σ rSub { size 8{τ} } } {}</m:annotation></m:semantics></m:math> in an urban environment is on the order of 2μs, then the resulting coherence bandwidth:</para>
    <para id="id5947832">
      <m:math>
        <m:semantics>
          <m:mrow>
            <m:mstyle fontsize="12pt">
              <m:mrow>
                <m:mrow>
                  <m:mrow>
                    <m:mrow>
                      <m:msub>
                        <m:mi>f</m:mi>
                        <m:mstyle fontsize="8pt">
                          <m:mrow>
                            <m:mn>0</m:mn>
                          </m:mrow>
                        </m:mstyle>
                      </m:msub>
                      <m:mo stretchy="false">≈</m:mo>
                      <m:mfrac>
                        <m:mn>1</m:mn>
                        <m:msub>
                          <m:mn>5σ</m:mn>
                          <m:mstyle fontsize="8pt">
                            <m:mrow>
                              <m:mi>τ</m:mi>
                            </m:mrow>
                          </m:mstyle>
                        </m:msub>
                      </m:mfrac>
                    </m:mrow>
                    <m:mo stretchy="false">≈</m:mo>
                    <m:mtext>100</m:mtext>
                  </m:mrow>
                  <m:mtext> kHz</m:mtext>
                </m:mrow>
              </m:mrow>
            </m:mstyle>
            <m:mrow/>
          </m:mrow>
          <m:annotation encoding="StarMath 5.0"> size 12{f rSub { size 8{0} }  approx  {  {1}  over  {5σ rSub { size 8{τ} } } }  approx "100"" kHz"} {}</m:annotation>
        </m:semantics>
      </m:math>
    </para>
    <para id="id6346618">Since 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>f</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">&lt;</m:mo><m:mi>W</m:mi></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{f rSub { size 8{0} } &lt;W} {}</m:annotation></m:semantics></m:math> , the GSM receiver must utilize some form of mitigation to combat frequency-selective distortion. To accomplish this goal, the <term>Viterbi equalizer</term> is typically implemented.</para>
    
    <para id="id6578256"><term>Figure 2</term> shows the basic functional blocks used in a GSM receiver for estimating the channel impulse response.</para>
    <figure id="id7166821"><media type="image/png" src="graphics1.png">
        <param name="height" value="368"/>
        <param name="width" value="675"/>
      </media>
    </figure>
    <para id="id6255872">This estimate is used to provide the detector with channel-corrected reference waveforms as explained below: (the <emphasis>Viterbi algorithm</emphasis> is used in the final step to compute the <emphasis>MLSE</emphasis> of the message bits)</para>
    <para id="id6279192">Let 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>s</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>tr</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{s rSub { size 8{ ital "tr"} }  \( t \) } {}</m:annotation></m:semantics></m:math> be the transmitted midamble training sequence, and 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>r</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>tr</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{r rSub { size 8{ ital "tr"} }  \( t \) } {}</m:annotation></m:semantics></m:math> be the corresponding received midamble training sequence. We have:</para>
    <para id="id6071960">
      <m:math>
        <m:semantics>
          <m:mrow>
            <m:mstyle fontsize="12pt">
              <m:mrow>
                <m:mrow>
                  <m:msub>
                    <m:mi>r</m:mi>
                    <m:mstyle fontsize="8pt">
                      <m:mrow>
                        <m:mstyle fontstyle="italic">
                          <m:mrow>
                            <m:mtext>tr</m:mtext>
                          </m:mrow>
                        </m:mstyle>
                      </m:mrow>
                    </m:mstyle>
                  </m:msub>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">=</m:mo>
                    <m:msub>
                      <m:mi>s</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mstyle fontstyle="italic">
                            <m:mrow>
                              <m:mtext>tr</m:mtext>
                            </m:mrow>
                          </m:mstyle>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">∗</m:mo>
                    <m:msub>
                      <m:mi>h</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mi>c</m:mi>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mo stretchy="false">)</m:mo>
                </m:mrow>
              </m:mrow>
            </m:mstyle>
            <m:mrow/>
          </m:mrow>
          <m:annotation encoding="StarMath 5.0"> size 12{r rSub { size 8{ ital "tr"} }  \( t \) =s rSub { size 8{ ital "tr"} }  \( t \)  * h rSub { size 8{c} }  \( t \) } {}</m:annotation>
        </m:semantics>
      </m:math>
    </para>
    <para id="id6036344">At the receiver, since 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>r</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>tr</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{r rSub { size 8{ ital "tr"} }  \( t \) } {}</m:annotation></m:semantics></m:math> is part of the received normal burst, it is extracted and sent to a filter having impulse response 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>mf</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{ ital "mf"} }  \( t \) } {}</m:annotation></m:semantics></m:math> , that is matched to 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>s</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>tr</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{s rSub { size 8{ ital "tr"} }  \( t \) } {}</m:annotation></m:semantics></m:math>. This matched filter yields at its output an estimate of 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>c</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{c} }  \( t \) } {}</m:annotation></m:semantics></m:math>, denoted 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>e</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{e} }  \( t \) } {}</m:annotation></m:semantics></m:math>:</para>
    <para id="id2862512">
      <m:math>
        <m:semantics>
          <m:mrow>
            <m:mstyle fontsize="12pt">
              <m:mrow>
                <m:mrow>
                  <m:msub>
                    <m:mi>h</m:mi>
                    <m:mstyle fontsize="8pt">
                      <m:mrow>
                        <m:mi>e</m:mi>
                      </m:mrow>
                    </m:mstyle>
                  </m:msub>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">=</m:mo>
                    <m:msub>
                      <m:mi>r</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mstyle fontstyle="italic">
                            <m:mrow>
                              <m:mtext>tr</m:mtext>
                            </m:mrow>
                          </m:mstyle>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">∗</m:mo>
                    <m:msub>
                      <m:mi>h</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mstyle fontstyle="italic">
                            <m:mrow>
                              <m:mtext>mf</m:mtext>
                            </m:mrow>
                          </m:mstyle>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mo stretchy="false">)</m:mo>
                </m:mrow>
              </m:mrow>
            </m:mstyle>
            <m:mrow/>
          </m:mrow>
          <m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{e} }  \( t \) =r rSub { size 8{ ital "tr"} }  \( t \)  * h rSub { size 8{ ital "mf"} }  \( t \) } {}</m:annotation>
        </m:semantics>
      </m:math>
    </para>
    <para id="id7589703">
      <m:math>
        <m:semantics>
          <m:mrow>
            <m:mstyle fontsize="12pt">
              <m:mrow>
                <m:mrow>
                  <m:mrow>
                    <m:mrow/>
                    <m:mo stretchy="false">=</m:mo>
                    <m:msub>
                      <m:mi>s</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mstyle fontstyle="italic">
                            <m:mrow>
                              <m:mtext>tr</m:mtext>
                            </m:mrow>
                          </m:mstyle>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">∗</m:mo>
                    <m:msub>
                      <m:mi>h</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mi>c</m:mi>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">∗</m:mo>
                    <m:msub>
                      <m:mi>h</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mstyle fontstyle="italic">
                            <m:mrow>
                              <m:mtext>mf</m:mtext>
                            </m:mrow>
                          </m:mstyle>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>t</m:mi>
                  <m:mo stretchy="false">)</m:mo>
                </m:mrow>
              </m:mrow>
            </m:mstyle>
            <m:mrow/>
          </m:mrow>
          <m:annotation encoding="StarMath 5.0"> size 12{ {}=s rSub { size 8{ ital "tr"} }  \( t \)  * h rSub { size 8{c} }  \( t \)  * h rSub { size 8{ ital "mf"} }  \( t \) } {}</m:annotation>
        </m:semantics>
      </m:math>
    </para>
    
    <para id="id6074535">where 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>R</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>s</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">=</m:mo><m:msub><m:mi>s</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>tr</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub></m:mrow><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">∗</m:mo><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>mf</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub></m:mrow><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{R rSub { size 8{s} }  \( t \) =s rSub { size 8{ ital "tr"} }  \( t \)  * h rSub { size 8{ ital "mf"} }  \( t \) } {}</m:annotation></m:semantics></m:math> is the <emphasis>autocorrelation function</emphasis> of 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>s</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>tr</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{s rSub { size 8{ ital "tr"} }  \( t \) } {}</m:annotation></m:semantics></m:math>. If 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>s</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>tr</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{s rSub { size 8{ ital "tr"} }  \( t \) } {}</m:annotation></m:semantics></m:math> is designed to have a highly-peaked (impulse-like) autocorrelation function 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>R</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>s</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{R rSub { size 8{s} }  \( t \) } {}</m:annotation></m:semantics></m:math>, then 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>e</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">≈</m:mo><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>c</m:mi></m:mrow></m:mstyle></m:msub></m:mrow><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{e} }  \( t \)  approx h rSub { size 8{c} }  \( t \) } {}</m:annotation></m:semantics></m:math>. </para>
    <para id="id8473476">Next, we use a windowing function, 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>w</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{w \( t \) } {}</m:annotation></m:semantics></m:math>, to truncate 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>e</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{e} }  \( t \) } {}</m:annotation></m:semantics></m:math> to form a computationally affordable function, 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>w</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{w} }  \( t \) } {}</m:annotation></m:semantics></m:math>. The time duration of 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>w</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{w \( t \) } {}</m:annotation></m:semantics></m:math>, denoted 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{0} } } {}</m:annotation></m:semantics></m:math>, must be large enough to compensate for the effect of typical channel-induced ISI. The term 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{0} } } {}</m:annotation></m:semantics></m:math> consists of the sum of two contributions, namely 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mstyle fontstyle="italic"><m:mrow><m:mtext>CISI</m:mtext></m:mrow></m:mstyle></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{ ital "CISI"} } } {}</m:annotation></m:semantics></m:math>, corresponding to the controlled ISI caused by Gaussian filtering of the baseband waveform (which then modulates the carrier using MSK), and 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>C</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{C} } } {}</m:annotation></m:semantics></m:math>, corresponding to the channel-induced ISI caused by multipath propagation. Thus,</para>
    <para id="id6096035">
      <m:math>
        <m:semantics>
          <m:mrow>
            <m:mstyle fontsize="12pt">
              <m:mrow>
                <m:mrow>
                  <m:msub>
                    <m:mi>L</m:mi>
                    <m:mstyle fontsize="8pt">
                      <m:mrow>
                        <m:mn>0</m:mn>
                      </m:mrow>
                    </m:mstyle>
                  </m:msub>
                  <m:mo stretchy="false">=</m:mo>
                  <m:mrow>
                    <m:msub>
                      <m:mi>L</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mstyle fontstyle="italic">
                            <m:mrow>
                              <m:mtext>CISI</m:mtext>
                            </m:mrow>
                          </m:mstyle>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                    <m:mo stretchy="false">+</m:mo>
                    <m:msub>
                      <m:mi>L</m:mi>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mi>C</m:mi>
                        </m:mrow>
                      </m:mstyle>
                    </m:msub>
                  </m:mrow>
                </m:mrow>
              </m:mrow>
            </m:mstyle>
            <m:mrow/>
          </m:mrow>
          <m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{0} } =L rSub { size 8{ ital "CISI"} } +L rSub { size 8{C} } } {}</m:annotation>
        </m:semantics>
      </m:math>
    </para>
    <para id="id7770764">The GSM system is required to provide distortion mitigation caused by signal dispersion having delay spreads of approximately 15–20 μs. Since in GSM the bit duration is 3.69 μs, we can express 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{0} } } {}</m:annotation></m:semantics></m:math> in units of bit intervals. Thus, the <emphasis>Viterbi equalizer</emphasis> used in GSM has a memory of 4–6 bit intervals. For each 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{0} } } {}</m:annotation></m:semantics></m:math>-bit interval in the message, the function of the Viterbi equalizer is to find the most likely 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{0} } } {}</m:annotation></m:semantics></m:math>-bit sequence out of the 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msup><m:mn>2</m:mn><m:mstyle fontsize="8pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="6pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle></m:msup></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{2 rSup { size 8{L rSub { size 6{0} } } } } {}</m:annotation></m:semantics></m:math> possible sequences that might have been transmitted.</para>
    <para id="id8445577">Determining the most likely transmitted 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{L rSub { size 8{0} } } {}</m:annotation></m:semantics></m:math>-bit sequence requires that 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msup><m:mn>2</m:mn><m:mstyle fontsize="8pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="6pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle></m:msup></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{2 rSup { size 8{L rSub { size 6{0} } } } } {}</m:annotation></m:semantics></m:math> meaningful reference waveforms be created by disturbing) the 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msup><m:mn>2</m:mn><m:mstyle fontsize="8pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="6pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle></m:msup></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{2 rSup { size 8{L rSub { size 6{0} } } } } {}</m:annotation></m:semantics></m:math> ideal waveforms (generated at the receiver) in the same way that the channel has disturbed the transmitted slot. Therefore, the 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msup><m:mn>2</m:mn><m:mstyle fontsize="8pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="6pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle></m:msup></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{2 rSup { size 8{L rSub { size 6{0} } } } } {}</m:annotation></m:semantics></m:math> reference waveforms are convolved with the windowed estimate of the channel impulse response, 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>w</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{h rSub { size 8{w} }  \( t \) } {}</m:annotation></m:semantics></m:math> in order to generate the disturbed or so-called channel-corrected reference waveforms. </para>
    <para id="id9335743">Next, the channel-corrected reference waveforms are compared against the received data waveforms to yield metric calculations. However, before the comparison takes place, the received data waveforms are convolved with the known windowed autocorrelation function 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>w</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo><m:msub><m:mi>R</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>s</m:mi></m:mrow></m:mstyle></m:msub><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{w \( t \) R rSub { size 8{s} }  \( t \) } {}</m:annotation></m:semantics></m:math>, transforming them in a manner comparable to the transformation applied to the reference waveforms. This filtered message signal is compared to all possible 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msup><m:mn>2</m:mn><m:mstyle fontsize="8pt"><m:mrow><m:msub><m:mi>L</m:mi><m:mstyle fontsize="6pt"><m:mrow><m:mn>0</m:mn></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle></m:msup></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{2 rSup { size 8{L rSub { size 6{0} } } } } {}</m:annotation></m:semantics></m:math> channel-corrected reference signals, and metrics are computed in a manner similar to that used in the <emphasis>Viterbi decoding algorithm</emphasis>. It yields the <emphasis>maximum likelihood estimate</emphasis> of the transmitted data sequence.</para>
  </content>
</document>
