<?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="id4055078">
  <name>DIGITAL FILTERS</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2007/11/07 02:47:42 US/Central</md:created>
  <md:revised>2008/07/03 02:25:20.094 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="PhuongNguyen">
      <md:firstname>Phuong</md:firstname>
      <md:othername>Huu</md:othername>
      <md:surname>Nguyen</md:surname>
      <md:email>nhphuong@hcmuns.edu.vn</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="PhuongNguyen">
      <md:firstname>Phuong</md:firstname>
      <md:othername>Huu</md:othername>
      <md:surname>Nguyen</md:surname>
      <md:email>nhphuong@hcmuns.edu.vn</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  

  <md:abstract/>
</metadata>
  <content>
    <para id="id5901626">Digital filters are the most typical and popular DSP (or DTSP) systems. We treat and apply them in successive chapters. The objective of this section is to introduce briefly types of filters with associative difference equations. As for analog filters, digital filters act upon input signals to produce output signals which differ in amplitude, frequency and phase from those of the input signals. For the classification of frequency characteristic, digital filters, like analog counterparts, consists of 4 types: Lowpass, highpass, bandpass, and bandstop (or bandsuppress)(<cnxn document="m11280" target="element-738"> Figure </cnxn>). The frequency aspect of filters will be discussed in next chapters when the Fourier analysis has been introduced. In this section, we will classify digital filters on basis of their impulse responses and their structures.</para>
    <section id="id-42413888142">
      <name>Nonrecursive filters and FIR filters</name>
      <para id="id5901652">In a nonrecursive filter the present output signal depends only on the input signal at all time. Mathematically, nonrecursive filters are described by the signal difference equation</para>
      <para id="id5901662"><equation id="id00218">

<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</m:mi><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">=</m:mo><m:mrow><m:munderover><m:mo stretchy="false">∑</m:mo><m:mstyle fontsize="8pt"><m:mrow><m:mrow><m:mi>k</m:mi><m:mo stretchy="false">=</m:mo><m:mrow><m:mo stretchy="false">−</m:mo><m:mi>M</m:mi></m:mrow></m:mrow></m:mrow></m:mstyle><m:mstyle fontsize="8pt"><m:mrow><m:mi>M</m:mi></m:mrow></m:mstyle></m:munderover><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mrow></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{y \( n \) = Sum cSub { size 8{k= - M} }  cSup { size 8{M} }  {b rSub { size 8{k} } x \( n - k \) } } {}</m:annotation></m:semantics></m:math>


</equation>
</para>
      <para id="id6931229">where 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{b rSub { size 8{k} } } {}</m:annotation></m:semantics></m:math> are filter <term> coefficients which may be real or complex </term>(usually assumed real). The limits are written as -M and M, but may be anything else, including 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mo stretchy="false">−</m:mo><m:mo stretchy="false">∞</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{ -  infinity } {}</m:annotation></m:semantics></m:math> and 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mo stretchy="false">∞</m:mo></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{ infinity } {}</m:annotation></m:semantics></m:math>. For causal filters, the lower limit is o. Structurally, a nonrecursive filter consists of three types of operators: Delay, multiplier and adder (summer). <cnxn target="element-954" strength="9"/> shows the direct implementation of a causal nonrecursive filter having 4 coefficients</para>
      <para id="id5140322"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mrow>
                        <m:munderover>
                          <m:mo stretchy="false">∑</m:mo>
                          <m:mstyle fontsize="8pt">
                            <m:mrow>
                              <m:mrow>
                                <m:mi>k</m:mi>
                                <m:mo stretchy="false">=</m:mo>
                                <m:mn>0</m:mn>
                              </m:mrow>
                            </m:mrow>
                          </m:mstyle>
                          <m:mstyle fontsize="8pt">
                            <m:mrow>
                              <m:mn>3</m:mn>
                            </m:mrow>
                          </m:mstyle>
                        </m:munderover>
                        <m:mrow>
                          <m:msub>
                            <m:mi>b</m:mi>
                            <m:mstyle fontsize="8pt">
                              <m:mrow>
                                <m:mi>k</m:mi>
                              </m:mrow>
                            </m:mstyle>
                          </m:msub>
                          <m:mo stretchy="false">(</m:mo>
                          <m:mrow>
                            <m:mi>n</m:mi>
                            <m:mo stretchy="false">−</m:mo>
                            <m:mi>k</m:mi>
                          </m:mrow>
                          <m:mo stretchy="false">)</m:mo>
                        </m:mrow>
                      </m:mrow>
                    </m:mrow>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \) = Sum cSub { size 8{k=0} }  cSup { size 8{3} }  {b rSub { size 8{k} }  \( n - k \) } } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6771681">In the figure 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msup><m:mi>z</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mrow><m:mo stretchy="false">−</m:mo><m:mn>1</m:mn></m:mrow></m:mrow></m:mstyle></m:msup></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{z rSup { size 8{ - 1} } } {}</m:annotation></m:semantics></m:math> is the unit delay (delay of one time index), 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msup><m:mi>z</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mrow><m:mo stretchy="false">−</m:mo><m:mn>2</m:mn></m:mrow></m:mrow></m:mstyle></m:msup></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{z rSup { size 8{ - 2} } } {}</m:annotation></m:semantics></m:math> is delay of two time indices, etc...</para>
      <figure id="element-954"><media type="image/jpeg" src="hv12.jpg">
    <param name="height" value="220"/>
    <param name="width" value="550"/>
  </media>
<caption> Structure (or implementation) of nonrecursive filter  </caption></figure><para id="id6614199">The impulse response 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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 \( n \) } {}</m:annotation></m:semantics></m:math> is obtained by replacing 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{x \( n - k \) } {}</m:annotation></m:semantics></m:math> by 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>δ</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{δ \( n - k \) } {}</m:annotation></m:semantics></m:math>:</para>
      <para id="id6616691"><equation id="id00219">

<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mstyle fontsize="10pt"><m:mrow><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</m:mi><m:mrow><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">=</m:mo><m:mrow><m:munderover><m:mo stretchy="false">∑</m:mo><m:mrow><m:mi>k</m:mi><m:mo stretchy="false">=</m:mo><m:mrow><m:mo stretchy="false">−</m:mo><m:mi>M</m:mi></m:mrow></m:mrow><m:mi>M</m:mi></m:munderover><m:mrow><m:msub><m:mi>b</m:mi><m:mi>k</m:mi></m:msub><m:mi>δ</m:mi><m:mo stretchy="false">(</m:mo><m:mtext>n-k</m:mtext><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mrow><m:mo stretchy="false">=</m:mo><m:msub><m:mi>b</m:mi><m:mi>n</m:mi></m:msub></m:mrow></m:mrow></m:mrow></m:mstyle></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{ size 10{h \( n \) = Sum cSub {k= - M}  cSup {M}  {b rSub {k} δ \( "n-k" \) } =b rSub {n} }} {}</m:annotation></m:semantics></m:math>

</equation>

</para>
      <para id="id5947835">This result leads to two important conclusions: First the <term> coefficient </term>
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>n</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{b rSub { size 8{n} } } {}</m:annotation></m:semantics></m:math> <term> is just the filter impulse response </term>
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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 \( n \) } {}</m:annotation></m:semantics></m:math> <term> at the same index n </term>, second the nonrecursive filter defined by <cnxn target="id00218" strength="7"/> is also a <term> Finite Inpulse Response (FIR) filter </term>. Of course when one or both limits is/are 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mo stretchy="false">∞</m:mo></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{ infinity } {}</m:annotation></m:semantics></m:math>, we have no more a FIR filter but an IIR filter. However for most of the realistic cases the limits are finite, so nonrecursive filters and FIR filters are the same.</para>
      <para id="id5679526">When replacing 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{b rSub { size 8{k} } } {}</m:annotation></m:semantics></m:math>by 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mi>k</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 \( k \) } {}</m:annotation></m:semantics></m:math> we have another form of nonrecursive (FIR) filters </para>
      <para id="id6931583"><equation id="id00220a">
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</m:mi><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">=</m:mo><m:mrow><m:munderover><m:mo stretchy="false">∑</m:mo><m:mstyle fontsize="8pt"><m:mrow><m:mrow><m:mi>k</m:mi><m:mo stretchy="false">=</m:mo><m:mrow><m:mo stretchy="false">−</m:mo><m:mi>M</m:mi></m:mrow></m:mrow></m:mrow></m:mstyle><m:mstyle fontsize="8pt"><m:mrow><m:mi>M</m:mi></m:mrow></m:mstyle></m:munderover><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mi>k</m:mi><m:mo stretchy="false">)</m:mo><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mrow></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{y \( n \) = Sum cSub { size 8{k= - M} }  cSup { size 8{M} }  {h \( k \) x \( n - k \) } } {}</m:annotation></m:semantics></m:math>

</equation>
</para>
      <para id="id6584137">and for causal filters</para>
      <para id="id6584141"><equation id="id00220b">
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</m:mi><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">=</m:mo><m:mrow><m:munderover><m:mo stretchy="false">∑</m:mo><m:mstyle fontsize="8pt"><m:mrow><m:mrow><m:mi>k</m:mi><m:mo stretchy="false">=</m:mo><m:mn>0</m:mn></m:mrow></m:mrow></m:mstyle><m:mstyle fontsize="8pt"><m:mrow><m:mi>M</m:mi></m:mrow></m:mstyle></m:munderover><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mi>k</m:mi><m:mo stretchy="false">)</m:mo><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mrow></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{y \( n \) = Sum cSub { size 8{k=0} }  cSup { size 8{M} }  {h \( k \) x \( n - k \) } } {}</m:annotation></m:semantics></m:math> 

</equation>
</para>
      <para id="id6614521">Notice that nonrecursive filters implement directly the convolution summation.</para>
      <example id="element-344"><para id="element-244">Consider a moving average filter of five terms 
<m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mfrac>
                        <m:mn>1</m:mn>
                        <m:mn>5</m:mn>
                      </m:mfrac>
                    </m:mrow>
                    <m:mo stretchy="false">[</m:mo>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>2</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>2</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">]</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \) = {  {1}  over  {5} }  \[ x \( n - 2 \) +x \( n - 1 \) +x \( n \) +x \( n+1 \) +x \( n+2 \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      which is a noncausal nonrecursive (or noncausal FIR) filter. When the time increases the averaging moves on, so is the name.

The input signal is periodic with a period of 4 samples:
<m:math display="block">
          <m:semantics>
            <m:mtable>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow/>
              </m:mtr>
              <m:mtr>
                <m:mrow>
                  <m:mi>x</m:mi>
                  <m:mo stretchy="false">(</m:mo>
                  <m:mi>n</m:mi>
                  <m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">=</m:mo>
                    <m:mo stretchy="false">[</m:mo>
                  </m:mrow>
                  <m:mtext>.</m:mtext>
                  <m:mtext>.</m:mtext>
                  <m:mtext>.</m:mtext>
                  <m:mn>1,</m:mn>
                  <m:mtable>
                    <m:mtr>
                      <m:mtd>
                        <m:mrow>
                          <m:mrow/>
                          <m:mn>2,</m:mn>
                          <m:mtable>
                            <m:mtr>
                              <m:mtd>
                                <m:mrow>
                                  <m:mrow/>
                                  <m:mn>3,</m:mn>
                                  <m:mtable>
                                    <m:mtr>
                                      <m:mtd>
                                        <m:mrow>
                                          <m:mrow/>
                                          <m:mn>2,</m:mn>
                                          <m:mtable>
                                            <m:mtr>
                                              <m:mtd>
                                                <m:mrow>
                                                  <m:mrow/>
                                                  <m:mn>1,</m:mn>
                                                  <m:mtable>
                                                    <m:mtr>
                                                      <m:mtd>
                                                        <m:mrow>
                                                          <m:mrow/>
                                                          <m:mn>2,</m:mn>
                                                          <m:mtable>
                                                            <m:mtr>
                                                            <m:mtd>
                                                            <m:mrow>
                                                            <m:mrow/>
                                                            <m:mn>3,</m:mn>
                                                            <m:mtable>
                                                            <m:mtr>
                                                            <m:mtd>
                                                            <m:mrow>
                                                            <m:mrow/>
                                                            <m:mn>2,</m:mn>
                                                            <m:mtable>
                                                            <m:mtr>
                                                            <m:mtd>
                                                            <m:mrow>
                                                            <m:mrow/>
                                                            <m:mn>1,</m:mn>
                                                            <m:mtable>
                                                            <m:mtr>
                                                            <m:mtd>
                                                            <m:mrow>
                                                            <m:mrow/>
                                                            <m:mn>2,</m:mn>
                                                            <m:mtable>
                                                            <m:mtr>
                                                            <m:mtd>
                                                            <m:mrow>
                                                            <m:mrow/>
                                                            <m:mn>3</m:mn>
                                                            <m:mtext>.</m:mtext>
                                                            <m:mtext>.</m:mtext>
                                                            <m:mtext>.</m:mtext>
                                                            <m:mo stretchy="false">]</m:mo>
                                                            </m:mrow>
                                                            </m:mtd>
                                                            </m:mtr>
                                                            </m:mtable>
                                                            <m:mrow/>
                                                            </m:mrow>
                                                            </m:mtd>
                                                            </m:mtr>
                                                            </m:mtable>
                                                            </m:mrow>
                                                            </m:mtd>
                                                            </m:mtr>
                                                            </m:mtable>
                                                            </m:mrow>
                                                            </m:mtd>
                                                            </m:mtr>
                                                            </m:mtable>
                                                            </m:mrow>
                                                            </m:mtd>
                                                            </m:mtr>
                                                          </m:mtable>
                                                        </m:mrow>
                                                      </m:mtd>
                                                    </m:mtr>
                                                  </m:mtable>
                                                </m:mrow>
                                              </m:mtd>
                                            </m:mtr>
                                          </m:mtable>
                                        </m:mrow>
                                      </m:mtd>
                                    </m:mtr>
                                  </m:mtable>
                                </m:mrow>
                              </m:mtd>
                            </m:mtr>
                          </m:mtable>
                        </m:mrow>
                      </m:mtd>
                    </m:mtr>
                  </m:mtable>
                </m:mrow>
              </m:mtr>
              <m:mtr>
                <m:mstyle fontsize="12pt">
                  <m:mrow>
                    <m:mrow/>
                  </m:mrow>
                </m:mstyle>
              </m:mtr>
            </m:mtable>
            <m:annotation encoding="StarMath 5.0"> size 12{x \( n \) = \[  "."  "."  "." 1, matrix {

} 2, matrix {

} 3, matrix {

} 2, matrix {

} 1, matrix {

} 2, matrix {

} 3, matrix {

} 2, matrix {

} 1, matrix {

} 2, matrix {

} 3 "."  "."  "."  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      Plot the input and output signals.</para>
</example>
      
      
      
      
      
      
      
      <para id="id6344994"><term> Solution </term></para>
      <para id="id6344998">The evaluation of the output signal proceeds as follows:</para>
      <para id="id5848610"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mrow>
                <m:mtable>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mi>x</m:mi>
                            <m:mrow>
                              <m:mo stretchy="false">(</m:mo>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mn>2</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">(</m:mo>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mrow>
                              <m:mrow>
                                <m:mrow>
                                  <m:mrow>
                                    <m:mn>1</m:mn>
                                    <m:mo stretchy="false">+</m:mo>
                                    <m:mn>2</m:mn>
                                  </m:mrow>
                                  <m:mo stretchy="false">+</m:mo>
                                  <m:mn>3</m:mn>
                                </m:mrow>
                                <m:mo stretchy="false">+</m:mo>
                                <m:mn>2</m:mn>
                              </m:mrow>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>8</m:mn>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mi>x</m:mi>
                            <m:mrow>
                              <m:mo stretchy="false">(</m:mo>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>3</m:mn>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mrow>
                              <m:mrow>
                                <m:mrow>
                                  <m:mrow>
                                    <m:mn>2</m:mn>
                                    <m:mo stretchy="false">+</m:mo>
                                    <m:mn>3</m:mn>
                                  </m:mrow>
                                  <m:mo stretchy="false">+</m:mo>
                                  <m:mn>2</m:mn>
                                </m:mrow>
                                <m:mo stretchy="false">+</m:mo>
                                <m:mn>1</m:mn>
                              </m:mrow>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>2</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>2</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>0</m:mn>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mi>x</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>3</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>4</m:mn>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mrow>
                              <m:mrow>
                                <m:mrow>
                                  <m:mrow>
                                    <m:mn>3</m:mn>
                                    <m:mo stretchy="false">+</m:mo>
                                    <m:mn>2</m:mn>
                                  </m:mrow>
                                  <m:mo stretchy="false">+</m:mo>
                                  <m:mn>4</m:mn>
                                </m:mrow>
                                <m:mo stretchy="false">+</m:mo>
                                <m:mn>2</m:mn>
                              </m:mrow>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>3</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>2</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>3</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mi>x</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>3</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>4</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>5</m:mn>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>2</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mrow>
                              <m:mrow>
                                <m:mrow>
                                  <m:mrow>
                                    <m:mn>2</m:mn>
                                    <m:mo stretchy="false">+</m:mo>
                                    <m:mn>1</m:mn>
                                  </m:mrow>
                                  <m:mo stretchy="false">+</m:mo>
                                  <m:mn>2</m:mn>
                                </m:mrow>
                                <m:mo stretchy="false">+</m:mo>
                                <m:mn>3</m:mn>
                              </m:mrow>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>2</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">]</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>2</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>0</m:mn>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mtext>.</m:mtext>
                            <m:mtext>.</m:mtext>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                </m:mtable>
                <m:mrow/>
              </m:mrow>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0">alignl { stack {
 size 12{y \( 0 \) =0 "." 2 \[ x \(  - 2 \) +x \(  - 1 \) +x \( 0 \) +x \( 1 \) +x \( 2 \)  \] =0 "." 2 \[ 1+2+3+2+1 \] =1 "." 8}  {} # 
 size 12{y \( 1 \) =0 "." 2 \[ x \(  - 1 \) +x \( 0 \) +x \( 1 \) +x \( 2 \) +x \( 3 \)  \] =0 "." 2 \[ 2+3+2+1+2 \] =2 "." 0}  {} # 
 size 12{y \( 2 \) =0 "." 2 \[ x \( 0 \) +x \( 1 \) +x \( 2 \) +x \( 3 \) +x \( 4 \)  \] =0 "." 2 \[ 3+2+4+2+3 \] =2 "." 2}  {} # 
 size 12{y \( 3 \) =0 "." 2 \[ x \( 1 \) +x \( 2 \) +x \( 3 \) +x \( 4 \) +x \( 5 \)  \] =0 "." 2 \[ 2+1+2+3+2 \] =2 "." 0}  {} # 
 size 12{ "."  "."  "." }  {} 
} } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6245526">The input and output and signals are shown in <cnxn target="element-343" strength="9"/>.</para>
      <figure id="element-343"><media type="image/jpeg" src="vh13.jpg">
    <param name="height" value="400"/>
    <param name="width" value="500"/>
  </media>
<caption> <cnxn document="m10794" target="element-577"> Example </cnxn> (a) x(n), (b) y(n)  </caption></figure><para id="id6245532">Notice that the moving average filter is a lowpass filter because it tends to reduce the variation in amplitude of the input signal. Of course, not all nonrecursive (or FIR) filters are lowpass. When the more samples are averaged the more the output signal is smooth, but also the more is the processing time.</para>
      <para id="id6245541">The moving average filtering bears a fundamental meaning of DSP (or DTSP), i.e. the computation on the samples is just the digital signal processing.</para>
      <para id="id6245548">Notice that the given filter is noncausal because the present value of 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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{y \( n \) } {}</m:annotation></m:semantics></m:math> depends on the two future values 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">=</m:mo><m:mn>1</m:mn></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{x \( n=1 \) } {}</m:annotation></m:semantics></m:math> and 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">=</m:mo><m:mn>2</m:mn></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{x \( n=2 \) } {}</m:annotation></m:semantics></m:math> of input signal. This cause no problem if we process the stored data. <term> In real-time processing (RTP) </term> signals must be causal. The given filter can be made causal by making all samples, except the present, become the past : </para>
      <para id="id5679254"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mfrac>
                        <m:mn>1</m:mn>
                        <m:mn>5</m:mn>
                      </m:mfrac>
                    </m:mrow>
                    <m:mo stretchy="false">[</m:mo>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>2</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>3</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>5</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">]</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \) = {  {1}  over  {5} }  \[ x \( n \) +x \( n - 1 \) +x \( n - 2 \) +x \( n - 3 \) +x \( n - 5 \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6873002">Now the output signal 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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{y \( n \) } {}</m:annotation></m:semantics></m:math> is the average value around the central sample 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mn>2</m:mn></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{x \( n - 2 \) } {}</m:annotation></m:semantics></m:math> insteal around 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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{x \( n \) } {}</m:annotation></m:semantics></m:math>as previously.</para>
      <example id="element-13"><para id="element-93">The signal 
<m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mtext>sin</m:mtext>
                    </m:mrow>
                    <m:mrow>
                      <m:mfrac>
                        <m:mn>2πn</m:mn>
                        <m:mtext>60</m:mtext>
                      </m:mfrac>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mtext>sin</m:mtext>
                    </m:mrow>
                    <m:mfrac>
                      <m:mn>2πn</m:mn>
                      <m:mtext>10</m:mtext>
                    </m:mfrac>
                    <m:mtable>
                      <m:mtr>
                        <m:mtd>
                          <m:mrow/>
                        </m:mtd>
                        <m:mtd>
                          <m:mrow/>
                        </m:mtd>
                        <m:mtd>
                          <m:mrow/>
                        </m:mtd>
                      </m:mtr>
                    </m:mtable>
                    <m:mrow>
                      <m:mrow>
                        <m:mtext>60</m:mtext>
                        <m:mo stretchy="false">≤</m:mo>
                        <m:mi>n</m:mi>
                      </m:mrow>
                      <m:mo stretchy="false">≤</m:mo>
                      <m:mtext>320</m:mtext>
                    </m:mrow>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{x \( n \) ="sin" {  {2πn}  over  {"60"} } +"sin" {  {2πn}  over  {"10"} }  matrix {
 {} #  {} # {}
} "60" &lt;= n &lt;= "320"} {}</m:annotation>
          </m:semantics>
        </m:math>
      is applied to a nonrecursive (FIR) filter having impulse response
<m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mrow>
                <m:mtable>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>h</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mi>n</m:mi>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>1</m:mn>
                            <m:mtable>
                              <m:mtr>
                                <m:mtd>
                                  <m:mrow/>
                                </m:mtd>
                                <m:mtd>
                                  <m:mrow/>
                                </m:mtd>
                              </m:mtr>
                            </m:mtable>
                            <m:mrow>
                              <m:mrow>
                                <m:mn>0</m:mn>
                                <m:mo stretchy="false">≤</m:mo>
                                <m:mi>n</m:mi>
                              </m:mrow>
                              <m:mo stretchy="false">≤</m:mo>
                              <m:mn>9</m:mn>
                            </m:mrow>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mrow>
                              <m:mtable>
                                <m:mtr>
                                  <m:mtd>
                                    <m:mrow/>
                                  </m:mtd>
                                  <m:mtd>
                                    <m:mrow/>
                                  </m:mtd>
                                  <m:mtd>
                                    <m:mrow/>
                                  </m:mtd>
                                </m:mtr>
                              </m:mtable>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0,</m:mn>
                            </m:mrow>
                            <m:mtable>
                              <m:mtr>
                                <m:mtd>
                                  <m:mrow/>
                                </m:mtd>
                                <m:mtd>
                                  <m:mrow/>
                                </m:mtd>
                              </m:mtr>
                            </m:mtable>
                            <m:mstyle fontstyle="italic">
                              <m:mrow>
                                <m:mtext>otherwise</m:mtext>
                              </m:mrow>
                            </m:mstyle>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                </m:mtable>
                <m:mrow/>
              </m:mrow>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0">alignl { stack {
 size 12{h \( n \) =0 "." 1 matrix {
 {} # {}
} 0 &lt;= n &lt;= 9}  {} # 
 size 12{ matrix {
 {} #  {} # {}
} =0, matrix {
 {} # {}
}  ital "otherwise"}  {} 
} } {}</m:annotation>
          </m:semantics>
        </m:math>
      Plot the input signal 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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{x \( n \) } {}</m:annotation></m:semantics></m:math>and the output signal 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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{y \( n \) } {}</m:annotation></m:semantics></m:math>.</para>
</example>
      
      
      <note>This Example is adapted from Introductory Digital Signal Processing with Computer Applications, Revised Edition, Paul A. Lynn and Wolfgang Fuerst, John. Wiley &amp; Sons, 1994.</note>
      
      
      
      <para id="id5947607"><term> Solution </term></para>
      <para id="id5947611">The given input signal consists of a low frequency component having 60 samples in its 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mn>2π</m:mn></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{2π} {}</m:annotation></m:semantics></m:math>period, and a high frequency component having 10 samples in its 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mn>2π</m:mn></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{2π} {}</m:annotation></m:semantics></m:math>period. <cnxn target="element-444" strength="9"/>a depicts the signal. The given impulse response means the filter is a moving average filter of 10 samples of equal amplitude of 0.1. The equation of the filter is </para>
      
      <para id="id5947728"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mrow>
                <m:mtable>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mi>n</m:mi>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mrow>
                                <m:munderover>
                                  <m:mo stretchy="false">∑</m:mo>
                                  <m:mstyle fontsize="8pt">
                                    <m:mrow>
                                      <m:mrow>
                                        <m:mi>k</m:mi>
                                        <m:mo stretchy="false">=</m:mo>
                                        <m:mn>0</m:mn>
                                      </m:mrow>
                                    </m:mrow>
                                  </m:mstyle>
                                  <m:mstyle fontsize="8pt">
                                    <m:mrow>
                                      <m:mn>9</m:mn>
                                    </m:mrow>
                                  </m:mstyle>
                                </m:munderover>
                                <m:mrow>
                                  <m:mi>h</m:mi>
                                  <m:mo stretchy="false">(</m:mo>
                                  <m:mi>k</m:mi>
                                  <m:mo stretchy="false">)</m:mo>
                                  <m:mi>x</m:mi>
                                  <m:mo stretchy="false">(</m:mo>
                                  <m:mrow>
                                    <m:mi>n</m:mi>
                                    <m:mo stretchy="false">−</m:mo>
                                    <m:mi>k</m:mi>
                                  </m:mrow>
                                  <m:mo stretchy="false">)</m:mo>
                                </m:mrow>
                              </m:mrow>
                            </m:mrow>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mrow>
                        <m:mtable>
                          <m:mtr>
                            <m:mtd>
                              <m:mrow/>
                            </m:mtd>
                            <m:mtd>
                              <m:mrow/>
                            </m:mtd>
                            <m:mtd>
                              <m:mrow/>
                            </m:mtd>
                          </m:mtr>
                        </m:mtable>
                        <m:mo stretchy="false">=</m:mo>
                        <m:mi>h</m:mi>
                      </m:mrow>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mn>0</m:mn>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mi>x</m:mi>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mi>n</m:mi>
                      <m:mrow>
                        <m:mo stretchy="false">)</m:mo>
                        <m:mo stretchy="false">+</m:mo>
                        <m:mi>h</m:mi>
                      </m:mrow>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mn>1</m:mn>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mi>x</m:mi>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mrow>
                        <m:mi>n</m:mi>
                        <m:mo stretchy="false">−</m:mo>
                        <m:mn>1</m:mn>
                      </m:mrow>
                      <m:mrow>
                        <m:mo stretchy="false">)</m:mo>
                        <m:mo stretchy="false">+</m:mo>
                        <m:mtext>.</m:mtext>
                      </m:mrow>
                      <m:mtext>.</m:mtext>
                      <m:mrow>
                        <m:mtext>.</m:mtext>
                        <m:mo stretchy="false">+</m:mo>
                        <m:mi>h</m:mi>
                      </m:mrow>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mn>9</m:mn>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mi>x</m:mi>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mrow>
                        <m:mi>n</m:mi>
                        <m:mo stretchy="false">−</m:mo>
                        <m:mn>9</m:mn>
                      </m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mrow>
                        <m:mtable>
                          <m:mtr>
                            <m:mtd>
                              <m:mrow/>
                            </m:mtd>
                            <m:mtd>
                              <m:mrow/>
                            </m:mtd>
                            <m:mtd>
                              <m:mrow/>
                            </m:mtd>
                          </m:mtr>
                        </m:mtable>
                        <m:mo stretchy="false">=</m:mo>
                        <m:mn>0</m:mn>
                      </m:mrow>
                      <m:mtext>.</m:mtext>
                      <m:mn>1</m:mn>
                      <m:mo stretchy="false">[</m:mo>
                      <m:mi>x</m:mi>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mi>n</m:mi>
                      <m:mrow>
                        <m:mo stretchy="false">)</m:mo>
                        <m:mo stretchy="false">+</m:mo>
                        <m:mi>x</m:mi>
                      </m:mrow>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mrow>
                        <m:mi>n</m:mi>
                        <m:mo stretchy="false">−</m:mo>
                        <m:mn>1</m:mn>
                      </m:mrow>
                      <m:mrow>
                        <m:mo stretchy="false">)</m:mo>
                        <m:mo stretchy="false">+</m:mo>
                        <m:mtext>.</m:mtext>
                      </m:mrow>
                      <m:mtext>.</m:mtext>
                      <m:mrow>
                        <m:mtext>.</m:mtext>
                        <m:mo stretchy="false">+</m:mo>
                        <m:mi>x</m:mi>
                      </m:mrow>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mrow>
                        <m:mi>n</m:mi>
                        <m:mo stretchy="false">−</m:mo>
                        <m:mn>9</m:mn>
                      </m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">]</m:mo>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                </m:mtable>
                <m:mrow/>
              </m:mrow>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0">alignl { stack {
 size 12{y \( n \) = Sum cSub { size 8{k=0} }  cSup { size 8{9} }  {h \( k \) x \( n - k \) } }  {} # 
 matrix {
 {} #  {} # {}
} =h \( 0 \) x \( n \) +h \( 1 \) x \( n - 1 \) + "."  "."  "." +h \( 9 \) x \( n - 9 \)  {} # 
 matrix {
 {} #  {} # {}
} =0 "." 1 \[ x \( n \) +x \( n - 1 \) + "."  "."  "." +x \( n - 9 \)  \]  {} 
} } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6423058">Thus output samples from 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">=</m:mo><m:mtext>60</m:mtext></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{n="60"} {}</m:annotation></m:semantics></m:math> towards future are</para>
      <para id="id5935603"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mrow>
                <m:mtable>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>60</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>1</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mi>x</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>60</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>59</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mtext>.</m:mtext>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mrow>
                              <m:mtext>.</m:mtext>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>51</m:mtext>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mo stretchy="false">]</m:mo>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>61</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>1</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mi>x</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>61</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>60</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mtext>.</m:mtext>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mrow>
                              <m:mtext>.</m:mtext>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>52</m:mtext>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mo stretchy="false">]</m:mo>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>y</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>62</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>1</m:mn>
                            <m:mo stretchy="false">[</m:mo>
                            <m:mi>x</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>62</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>61</m:mtext>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mtext>.</m:mtext>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mrow>
                              <m:mtext>.</m:mtext>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>x</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mtext>53</m:mtext>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mo stretchy="false">]</m:mo>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                </m:mtable>
                <m:mrow/>
              </m:mrow>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0">alignl { stack {
 size 12{y \( "60" \) =0 "." 1 \[ x \( "60" \) +x \( "59" \) + "."  "."  "." +x \( "51" \)  \] }  {} # 
 size 12{y \( "61" \) =0 "." 1 \[ x \( "61" \) +x \( "60" \) + "."  "."  "." +x \( "52" \)  \] }  {} # 
 size 12{y \( "62" \) =0 "." 1 \[ x \( "62" \) +x \( "61" \) + "."  "."  "." +x \( "53" \)  \] }  {} 
} } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      
      <para id="id6444594"><cnxn target="element-444" strength="9"/>b shows the output signal. The high frequency component is almost completely eliminaled whereas the low frequent component is left almost intact. Notice the transient response at the start: At the begining only 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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{x \( n \) } {}</m:annotation></m:semantics></m:math>participates in the averaging, next 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mn>1</m:mn></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{x \( n - 1 \) } {}</m:annotation></m:semantics></m:math> is added ... only after 10 averaging times we have enough 10 samples at each averaging and the output becomes stable (steady-state value).</para><figure id="element-444"><media type="image/jpeg" src="hv14.jpg">
    <param name="height" value="250"/>
    <param name="width" value="500"/>
  </media>
<caption> <cnxn target="element-577" document="m10794"> Example </cnxn> (a) input signal, (b) output signal  </caption></figure>
    </section>
    <section id="id-355591500069">
      <name>Recursive filters and IIR filters</name>
      <para id="id5679205">At a recursive filter the output signal depends the input signal at all time and also on the <term> previous output signal</term>. The defining difference equation is</para>
      <para id="id5679215"><equation id="id00222">
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</m:mi><m:mrow><m:mo stretchy="false">)</m:mo><m:mo stretchy="false">=</m:mo><m:mrow><m:munderover><m:mo stretchy="false">∑</m:mo><m:mstyle fontsize="8pt"><m:mrow><m:mrow><m:mi>k</m:mi><m:mo stretchy="false">=</m:mo><m:mn>1</m:mn></m:mrow></m:mrow></m:mstyle><m:mstyle fontsize="8pt"><m:mrow><m:mi>N</m:mi></m:mrow></m:mstyle></m:munderover><m:mrow><m:msub><m:mi>a</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub><m:mi>y</m:mi><m:mrow><m:mfenced open="(" close=")"><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow></m:mfenced><m:mo stretchy="false">+</m:mo><m:mrow/></m:mrow></m:mrow></m:mrow></m:mrow><m:mrow><m:munderover><m:mo stretchy="false">∑</m:mo><m:mstyle fontsize="8pt"><m:mrow><m:mrow><m:mi>k</m:mi><m:mo stretchy="false">=</m:mo><m:mrow><m:mo stretchy="false">−</m:mo><m:mi>M</m:mi></m:mrow></m:mrow></m:mrow></m:mstyle><m:mstyle fontsize="8pt"><m:mrow><m:mi>M</m:mi></m:mrow></m:mstyle></m:munderover><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub><m:mi>x</m:mi><m:mfenced open="(" close=")"><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow></m:mfenced></m:mrow></m:mrow></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{y \( n \) = Sum cSub { size 8{k=1} }  cSup { size 8{N} }  {a rSub { size 8{k} } y left (n - k right )+{}}  Sum cSub { size 8{k= - M} }  cSup { size 8{M} }  {b rSub { size 8{k} } x left (n - k right )} } {}</m:annotation></m:semantics></m:math>
</equation>
</para>
      <para id="id5863896">where 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>a</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{a rSub { size 8{k} } } {}</m:annotation></m:semantics></m:math>are coefficients for the recursive (feedback) part, and 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{b rSub { size 8{k} } } {}</m:annotation></m:semantics></m:math>are coefficients for the nonrecursive (forward) part. In theory, the limits M, N can be up to 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mo stretchy="false">∞</m:mo></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{ infinity } {}</m:annotation></m:semantics></m:math> but in reality they are finite. The limit N is the order of the filter. When all the coefficients 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>a</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{a rSub { size 8{k} } } {}</m:annotation></m:semantics></m:math> are zero we have a nonrecursive filter as before.</para>
      <para id="id5848843">Some authors write the difference equation in the form different from above, for example</para>
      <para id="id5848852"><equation id="id00222a">
<m:math>
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:munderover>
                      <m:mo stretchy="false">∑</m:mo>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>k</m:mi>
                            <m:mo stretchy="false">=</m:mo>
                            <m:mn>0</m:mn>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mstyle fontsize="8pt">
                        <m:mrow>
                          <m:mi>N</m:mi>
                        </m:mrow>
                      </m:mstyle>
                    </m:munderover>
                    <m:mrow>
                      <m:msub>
                        <m:mi>a</m:mi>
                        <m:mstyle fontsize="8pt">
                          <m:mrow>
                            <m:mi>k</m:mi>
                          </m:mrow>
                        </m:mstyle>
                      </m:msub>
                      <m:mi>y</m:mi>
                      <m:mo stretchy="false">(</m:mo>
                      <m:mrow>
                        <m:mi>n</m:mi>
                        <m:mo stretchy="false">−</m:mo>
                        <m:mi>k</m:mi>
                      </m:mrow>
                      <m:mrow>
                        <m:mo stretchy="false">)</m:mo>
                        <m:mo stretchy="false">=</m:mo>
                        <m:mrow>
                          <m:munderover>
                            <m:mo stretchy="false">∑</m:mo>
                            <m:mstyle fontsize="8pt">
                              <m:mrow>
                                <m:mrow>
                                  <m:mi>k</m:mi>
                                  <m:mo stretchy="false">=</m:mo>
                                  <m:mrow>
                                    <m:mo stretchy="false">−</m:mo>
                                    <m:mi>M</m:mi>
                                  </m:mrow>
                                </m:mrow>
                              </m:mrow>
                            </m:mstyle>
                            <m:mstyle fontsize="8pt">
                              <m:mrow>
                                <m:mi>M</m:mi>
                              </m:mrow>
                            </m:mstyle>
                          </m:munderover>
                          <m:mrow>
                            <m:msub>
                              <m:mi>b</m:mi>
                              <m:mstyle fontsize="8pt">
                                <m:mrow>
                                  <m:mi>k</m:mi>
                                </m:mrow>
                              </m:mstyle>
                            </m:msub>
                            <m:mi>x</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mrow>
                              <m:mi>n</m:mi>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mi>k</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">)</m:mo>
                          </m:mrow>
                        </m:mrow>
                      </m:mrow>
                    </m:mrow>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{ Sum cSub { size 8{k=0} }  cSup { size 8{N} }  {a rSub { size 8{k} } y \( n - k \) = Sum cSub { size 8{k= - M} }  cSup { size 8{M} }  {b rSub { size 8{k} } x \( n - k \) } } } {}</m:annotation>
          </m:semantics>
        </m:math>
      </equation></para>
      <para id="id6931452">We stick to the former equation. We have taken the limits M, N as finite then the impulse response of the filter is also finite? Actually, the impulse response is, in general, infinite, so <term> recursive filters are mainly of the IIR type.</term> (see subsequent examples).</para>
      <para id="id6713660">It’s a very good idea to look at the structure (or implementation) of the filter. For this let’s take for example the difference equation. </para>
      <para id="id6713672"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>8y</m:mn>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>5y</m:mn>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>2</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>2x</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>4x</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \) =0 "." 8y \( n - 1 \)  - 0 "." 5y \( n - 2 \) +2x \( n - 1 \) +4x \( n+1 \) } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6443925"><cnxn target="element-842" strength="9"/> is the most direct way (there are several direct ways), and the easiest to understand, to realize the filter.The problem of filter stucture will be discussed in a seperate chapter because there are various structures with different characterstics and for different applications.</para>
      <figure id="element-842"><media type="image/jpeg" src="hv15.jpg">
    <param name="height" value="200"/>
    <param name="width" value="700"/>
  </media>
<caption> The direct implementation of the IIR filter in example  </caption></figure><para id="id6443934">For a nonrecursive filter alone its coefficients 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{b rSub { size 8{k} } } {}</m:annotation></m:semantics></m:math> are the impulse response samples. But in a recursive filter the coefficiens 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>b</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>k</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{b rSub { size 8{k} } } {}</m:annotation></m:semantics></m:math>are no more so, and the impulse tesponse is found from the definition of impulse response, i.e., we replace 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>x</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{x \( n - k \) } {}</m:annotation></m:semantics></m:math>by unit impulse 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>δ</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{δ \( n - k \) } {}</m:annotation></m:semantics></m:math> and 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{y \( n - k \) } {}</m:annotation></m:semantics></m:math> by 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mi>k</m:mi></m:mrow><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 \( n - k \) } {}</m:annotation></m:semantics></m:math> to find the impulse response 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>h</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</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 \( n \) } {}</m:annotation></m:semantics></m:math>(see <cnxn document="m10833" target="id-975997588329"> section </cnxn>).</para>
      <example id="element-879"><para id="element-306">Consider a causal moving average filter (nonrecursive filter) of 10 indices 

     </para><para id="element-792"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>1</m:mn>
                    <m:mo stretchy="false">[</m:mo>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mtext>.</m:mtext>
                    <m:mtext>.</m:mtext>
                    <m:mtext>.</m:mtext>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>9</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">]</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \) =0 "." 1 \[ x \( n \) +x \( n - 1 \)  "."  "."  "." x \( n - 9 \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math></para><para id="element-958">Find the equivalent recursive filter and its impulse response.</para>
</example>
      
      
      
      <para id="id6163642"><term> Solution </term></para>
      <para id="id6163647">First let’s form the output at 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:mrow><m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mrow><m:mi>n</m:mi><m:mo stretchy="false">−</m:mo><m:mn>1</m:mn></m:mrow><m:mo stretchy="false">)</m:mo></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{y \( n - 1 \) } {}</m:annotation></m:semantics></m:math>:</para>
      <para id="id6163725"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>y</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>1</m:mn>
                    <m:mo stretchy="false">[</m:mo>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>2</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mtext>.</m:mtext>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mrow>
                      <m:mtext>.</m:mtext>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mtext>10</m:mtext>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">]</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n - 1 \) =y \( n - 1 \) +0 "." 1 \[ x \( n - 1 \) +x \( n - 2 \) + "."  "."  "." +x \( n - "10" \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id5681143">Next let’s form the difference</para>
      <para id="id5681148"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mi>y</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>1</m:mn>
                    <m:mo stretchy="false">[</m:mo>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mtext>10</m:mtext>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">]</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \)  - y \( n - 1 \) =0 "." 1 \[ x \( n - "10" \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6238333">Thus </para>
      <para id="id6238338"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>y</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>1</m:mn>
                    <m:mo stretchy="false">[</m:mo>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mtext>10</m:mtext>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">]</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \) =y \( n - 1 \) +0 "." 1 \[ x \( n \)  - x \( n - "10" \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id5946547">which is the desired recursive filter. Its impulse response is given as</para>
      <para id="id5946557"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>h</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>h</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>1</m:mn>
                    <m:mo stretchy="false">[</m:mo>
                    <m:mi>δ</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mi>δ</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mtext>10</m:mtext>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <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 \( n \) =h \( n - 1 \) +0 "." 1 \[ δ \( n \)  - δ \( n - "10" \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id5901459">Iterative computation will give</para>
      <para id="id5901464"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>h</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>0</m:mn>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>h</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>1</m:mn>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>h</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>2</m:mn>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mtext>.</m:mtext>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mrow>
                      <m:mtext>.</m:mtext>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>h</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>9</m:mn>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>1</m:mn>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{h \( 0 \) =h \( 1 \) =h \( 2 \) = "."  "."  "." =h \( 9 \) =0 "." 1} {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6238438">Above example shows that the recursive filter is more computational efficient than its nonrecursive counterpart since we need to compute much less terms. But recursive (IIR) filter may be unstable if the coefficients are not chosen properly.</para>
      <example id="element-429"><para id="element-426">A causal recursive filter is represented by the difference equation
<m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>y</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>y</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>8y</m:mn>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>2</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{y \( n \) =y \( n - 1 \) +0 "." 8y \( n - 2 \) +x \( n - 1 \) } {}</m:annotation>
          </m:semantics>
        </m:math>
      Find its impulse response.</para>
</example>
      
      
      
      <para id="id6238613"><term> Solution </term></para>
      <para id="id6238617">The difference equation of the impulse response is</para>
      <para id="id5900783"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>h</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mi>h</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mn>0</m:mn>
                    </m:mrow>
                    <m:mtext>.</m:mtext>
                    <m:mn>8h</m:mn>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:mi>n</m:mi>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>2</m:mn>
                    </m:mrow>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">+</m:mo>
                      <m:mi>x</m:mi>
                    </m:mrow>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</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 \( n \) =h \( n - 1 \) +0 "." 8h \( n - 2 \) +x \( n \) } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id5900925">Because the filter is causal, we need to compute h(n) for n ≥ 0 only:</para>
      <para id="id5900943"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mrow>
                <m:mtable>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>h</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mi>h</m:mi>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">(</m:mo>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>8h</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">(</m:mo>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mn>2</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>δ</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>h</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mi>h</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>8h</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">(</m:mo>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>δ</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>h</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mi>h</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>8h</m:mn>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>0</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>δ</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mrow>
                                <m:mn>1</m:mn>
                                <m:mo stretchy="false">+</m:mo>
                                <m:mn>0</m:mn>
                              </m:mrow>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>8</m:mn>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>h</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>3</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mi>h</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>2</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>8h</m:mn>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>1</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mi>δ</m:mi>
                            </m:mrow>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mn>3</m:mn>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mrow>
                                <m:mn>1</m:mn>
                                <m:mo stretchy="false">+</m:mo>
                                <m:mn>0</m:mn>
                              </m:mrow>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mrow>
                              <m:mn>8</m:mn>
                              <m:mo stretchy="false">+</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mn>8</m:mn>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mtext>.</m:mtext>
                            <m:mtext>.</m:mtext>
                            <m:mtext>.</m:mtext>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                  <m:mtr>
                    <m:mrow>
                      <m:mstyle fontsize="12pt">
                        <m:mrow>
                          <m:mrow>
                            <m:mi>h</m:mi>
                            <m:mo stretchy="false">(</m:mo>
                            <m:mi>n</m:mi>
                            <m:mrow>
                              <m:mo stretchy="false">)</m:mo>
                              <m:mo stretchy="false">=</m:mo>
                              <m:mrow>
                                <m:mn>1</m:mn>
                                <m:mo stretchy="false">+</m:mo>
                                <m:mo stretchy="false">(</m:mo>
                              </m:mrow>
                            </m:mrow>
                            <m:mrow>
                              <m:mi>n</m:mi>
                              <m:mo stretchy="false">−</m:mo>
                              <m:mn>1</m:mn>
                            </m:mrow>
                            <m:mo stretchy="false">)</m:mo>
                            <m:mn>0</m:mn>
                            <m:mtext>.</m:mtext>
                            <m:mn>8</m:mn>
                            <m:mtable>
                              <m:mtr>
                                <m:mtd>
                                  <m:mrow/>
                                </m:mtd>
                                <m:mtd>
                                  <m:mrow/>
                                </m:mtd>
                                <m:mtd>
                                  <m:mrow/>
                                </m:mtd>
                              </m:mtr>
                            </m:mtable>
                            <m:mrow>
                              <m:mi>n</m:mi>
                              <m:mo stretchy="false">&gt;</m:mo>
                              <m:mn>0</m:mn>
                            </m:mrow>
                          </m:mrow>
                        </m:mrow>
                      </m:mstyle>
                      <m:mrow/>
                    </m:mrow>
                  </m:mtr>
                </m:mtable>
                <m:mrow/>
              </m:mrow>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0">alignl { stack {
 size 12{h \( 0 \) =h \(  - 1 \) +0 "." 8h \(  - 2 \) +δ \( 0 \) =1}  {} # 
 size 12{h \( 1 \) =h \( 0 \) +0 "." 8h \(  - 1 \) +δ \( 1 \) =1}  {} # 
 size 12{h \( 2 \) =h \( 1 \) +0 "." 8h \( 0 \) +δ \( 2 \) =1+0 "." 8}  {} # 
 size 12{h \( 3 \) =h \( 2 \) +0 "." 8h \( 1 \) +δ \( 3 \) =1+0 "." 8+0 "." 8}  {} # 
 size 12{ "."  "."  "." }  {} # 
 size 12{h \( n \) =1+ \( n - 1 \) 0 "." 8 matrix {
 {} #  {} # {}
} n&gt;0}  {} 
} } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6704217">Notice the impulse response is of infinite duration.</para>
      <para id="id6704222">Concerning the convolution, the computation of the output signal of a FIR filter is always possible, but because the IIR filter has impulse response of infinite duration, so how can we compute the output signal? (see <cnxn document="m10791" target="id7713078"> section </cnxn>).</para>
    </section>
    <section id="id-211770749947">
      <name>Block processing</name>
      <para id="id6704241">Depending on applications and available facilities (software, hardware), one uses <term> on-line </term> or <term> off-line </term> processing. In <term> on-line processing </term> or <term> sample processing </term>, the present sample is processed together with previous samples which have been stored, the next sample is processed together with the samples before it except the oldest one. Sample processing is <term> real-time processing (RTP) </term>, it requires high speed, and, thus, is usually implemented by hardware (such as Digital Signal Processors).</para>
      <para id="id6980304">When the samples come continuously and our processing system is not fast enough, we have to store the coming data in the memory and process them later. This is <term> off-line processing</term>, or <term> batch processing</term>. Still, there is a problem, that is we cannot process a too long sequence of samples. The solution is to apply <term> block processing</term>. Because we process stored data, the processing system can be causal as well as noncausal. Furthermore, block processing does not require too high a speed, therefore pure software (programmes) is adequate, exept the <term> data acquisition (DAQ)</term> part.</para>
      <para id="id6980364">Let’s 
<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>x</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{x} } } {}</m:annotation></m:semantics></m:math>be the sample block length, then the sample sequence is</para>
      
      <para id="id6980433"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mo stretchy="false">[</m:mo>
                    </m:mrow>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>0</m:mn>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mi>,</m:mi>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>1</m:mn>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mi>,</m:mi>
                    <m:mtext>.</m:mtext>
                    <m:mtext>.</m:mtext>
                    <m:mtext>.</m:mtext>
                    <m:mi>,</m:mi>
                    <m:mi>x</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:msub>
                        <m:mi>L</m:mi>
                        <m:mstyle fontsize="8pt">
                          <m:mrow>
                            <m:mi>x</m:mi>
                          </m:mrow>
                        </m:mstyle>
                      </m:msub>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mo stretchy="false">]</m:mo>
                  </m:mrow>
                </m:mrow>
              </m:mstyle>
              <m:mrow/>
            </m:mrow>
            <m:annotation encoding="StarMath 5.0"> size 12{x \( n \) = \[ x \( 0 \) ,x \( 1 \) , "."  "."  "." ,x \( L rSub { size 8{x} }  - 1 \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <para id="id6944660">Usulally the vector notation x is used intead of the above sequence form (x is a line matrix). The sample time is</para>
      <para id="id6944689"><equation id="id00223">
<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:mi>x</m:mi></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>x</m:mi></m:mrow></m:mstyle></m:msub></m:mrow><m:mrow><m:mi>T</m:mi><m:mo stretchy="false">=</m:mo><m:mfrac><m:msub><m:mi>L</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>x</m:mi></m:mrow></m:mstyle></m:msub><m:msub><m:mi>f</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>s</m:mi></m:mrow></m:mstyle></m:msub></m:mfrac></m:mrow></m:mrow></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{T rSub { size 8{x} } =L rSub { size 8{x} } T= {  {L rSub { size 8{x} } }  over  {f rSub { size 8{s} } } } } {}</m:annotation></m:semantics></m:math>

</equation>
</para>
      <para id="id6930974">where <m:math> <m:mrow> <m:msub><m:mi> T </m:mi><m:mi> s </m:mi> </m:msub> </m:mrow> </m:math> is sampling period (sampling interval), 
<m:math><m:semantics><m:mrow><m:mstyle fontsize="12pt"><m:mrow><m:msub><m:mi>f</m:mi><m:mstyle fontsize="8pt"><m:mrow><m:mi>s</m:mi></m:mrow></m:mstyle></m:msub></m:mrow></m:mstyle><m:mrow/></m:mrow><m:annotation encoding="StarMath 5.0"> size 12{f rSub { size 8{s} } } {}</m:annotation></m:semantics></m:math> sampling frequency (sampling rate). <cnxn target="id00216" strength="7"/>is an example.</para>
      <figure id="element-711"><media type="image/jpeg" src="hv16.jpg">
    <param name="height" value="250"/>
    <param name="width" value="400"/>
  </media>
<caption> A sample block of length <m:math> <m:mrow> <m:msub> <m:mi> L </m:mi> <m:mi> x </m:mi> </m:msub> </m:mrow></m:math>  </caption></figure><para id="id6931050">Now consider a causal FIR filter having impulse response (coefficients) of length 
<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>h</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{h} } } {}</m:annotation></m:semantics></m:math> </para>
      <para id="id6931119"><m:math display="block">
          <m:semantics>
            <m:mrow>
              <m:mstyle fontsize="12pt">
                <m:mrow>
                  <m:mrow>
                    <m:mi>h</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mi>n</m:mi>
                    <m:mrow>
                      <m:mo stretchy="false">)</m:mo>
                      <m:mo stretchy="false">=</m:mo>
                      <m:mo stretchy="false">[</m:mo>
                    </m:mrow>
                    <m:mi>h</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>0</m:mn>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mi>,</m:mi>
                    <m:mi>h</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mn>1</m:mn>
                    <m:mo stretchy="false">)</m:mo>
                    <m:mi>,</m:mi>
                    <m:mtext>.</m:mtext>
                    <m:mtext>.</m:mtext>
                    <m:mtext>.</m:mtext>
                    <m:mi>,</m:mi>
                    <m:mi>h</m:mi>
                    <m:mo stretchy="false">(</m:mo>
                    <m:mrow>
                      <m:msub>
                        <m:mi>L</m:mi>
                        <m:mstyle fontsize="8pt">
                          <m:mrow>
                            <m:mi>h</m:mi>
                          </m:mrow>
                        </m:mstyle>
                      </m:msub>
                      <m:mo stretchy="false">−</m:mo>
                      <m:mn>1</m:mn>
                    </m:mrow>
                    <m:mo stretchy="false">)</m:mo>
                    <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 \( n \) = \[ h \( 0 \) ,h \( 1 \) , "."  "."  "." ,h \( L rSub { size 8{k} }  - 1 \)  \] } {}</m:annotation>
          </m:semantics>
        </m:math>
      </para>
      <figure i