ADSP-09-MSP-FilterBanks-EC623-ADSP by harshi446

VIEWS: 1 PAGES: 21

More Info
									                                                                www.jntuworld.com
Multirate Signal Processing
        Filter Banks
          S. R. M. Prasanna


            Dept of ECE,
            IIT Guwahati,
        prasanna@iitg.ernet.in




                                 Multirate Signal Processing – p. 1/1
                                                                              www.jntuworld.com
           Filter Banks (FBs)
Collection of filters, with common i/p or o/p
Analysis FB: Splits a signal x(n) into M signals xk (n),
called subband signals (Fig of AFB and Freq Response)
Synthesis FB: Combine M subband signals into a
              ˆ
single signal x(n) (Fig of SFB)
Freq. response could be marginally overlapping,
non-overlapping or very much overlapping




                                               Multirate Signal Processing – p. 2/1
                                                                             www.jntuworld.com
             DFT Relations
Based on DFT Relations for understanding FBs
DFT Relations:
            M −1     −2πmk
X(k) = m=0 x(m)e M
          1    M −1     2πmk
x(m) = M k=0 X(k)e M
X[k] = M −1 x(m)W km
            m=0
        −2π
W =e M
W km is a M × M DFT matrix
In future W refers to W km
W ∗ is complex conjugate of W
In case of DFT matrix, W T = W =⇒ W ∗ = W †
W † is transpose-conjugate of W
W −1 = W † /M
x(m) = M M −1 X(k)W −km
          1
               k=0

                                              Multirate Signal Processing – p. 3/1
                                                                              www.jntuworld.com
            DFT Filter Bank
To provide FB interpretation consider the figure given
below




                                               Multirate Signal Processing – p. 4/1
                                                                                    www.jntuworld.com
             DFT FB (contd.)
We are interested in splitting i/p signal x(n) into M
parallel signals xk (n) where, k = 0, 1, . . . (M − 1)
Consider a case where from x(n) we generate M
sequences si (n) by passing x(n) through a delay chain,
so that si (n) = x(n − i)
                                         M −1
From definition of W =⇒ xk (n) =          i=0  si (n)W −ki
Each o/p is connected to all i/ps via DFT matrix
Above relation is same as IDFT except for 1/M
                                       M −1
Z.T. of xk (n) is given by Xk (z) =    i=0  Si (z)W −ki
Substituting for Si (z), we have
Xk (z) = M −1 z −i X(z)W −ki =
           i=0
                                      M −1
                                      i=0  X(z)(zW k )−i

                                                     Multirate Signal Processing – p. 5/1
                                                                                    www.jntuworld.com
               DFT FB (contd.)
Xk (z) = Hk (z)X(z), where Hk (z) is defined as H0 (zW k )
H0 (z) = 1 + z −1 + z −2 + . . . + z −(M −1)
System is equivalent to analysis bank with analysis
filters Hk (z)
H0 (z) =⇒ |H0 (ejω )| = |sin(M ω/2)/sin(ω/2)|
H1 (ejω ) = H0 (e−jω e−j2π/M ) = H0 (e−j(ω−2π/M ))
In general, Hk (z) has response
Hk (ejω ) = H0 (ej (w − (2πk/M ))), which is a shifted
version of H0 (ejω )
Thus we have M analysis filters which are uniformly
shifted versions of H0 (z)

                                                     Multirate Signal Processing – p. 6/1
                                                                            www.jntuworld.com
           DFT FB. (contd.)
For synthesis purpose consider block containing W
matrix followed by delay elements




                                             Multirate Signal Processing – p. 7/1
                                                                                          www.jntuworld.com
               DFT FB. Contd.
I/p to this block are xk (n) from analysis bank
                                           M −1
Each o/p element is given yl (n) =         k=0  xk (n)W kl
Final o/p of synthesis bank
X(z) = M −1 Yl (z)z −((M −1)−l)
ˆ
          l=0
           M −1
ˆ
X(z) =     l=0  ( M −1 Xk (z)W kl )z −((M −1)−l)
                   k=0                             =
  M −1     M −1
  l=0 (    k=0  Xk (z)(z −((M −1)−l)W kl ))
X(z) = M −1 Xk (z)Fk (z) and
ˆ
            l=0
Fk (z) = F0 (z −((M −1)−l)W kl ),
F0 (z) = z −(M −1) + z −(M −2) + . . . + z −2 + z −1 + 1




                                                           Multirate Signal Processing – p. 8/1
                                                                               www.jntuworld.com
             DFT Fb. (contd.)
Consider H0 (z) and F0 (z) for illustration
s0 (n) undergoes no delay in H0 (z) and hence needs to
be delayed by z −(M −1) in F0 (z)
s1 (n) undergoes z −1 delay in H0 (z) and hence needs to
be delayed by z −(M −2) in F0 (z)
sM −1 (n) undergoes z −(M −1) delay in H0 (z) and hence
needs to be delayed by 1 in F0 (z)
By this process, in effective all elements are delayed by
same amount and hence possible to regenerate by
combining them
                                ˆ
Thus if Fk (z) = 1/Hk (z), then X(z) = X(z)


                                                Multirate Signal Processing – p. 9/1
                                                                              www.jntuworld.com
    Computational Complexity
Let each filter be of order N =⇒ N complex coefficients
Assuming x(n) to be real, each filter requires 2N
multiplications
There are M filters and accordingly 2M N multiplications
Can we reduce number of multiplications?
By P olyphase Structures for realization




                                              Multirate Signal Processing – p. 10/1
www.jntuworld.com
            Computational Complexity of Uniform DFT Filter Bank:

               Let each filter have N complex coefficients for FIR
               implementations (except H0 (Z)).

               Assuming x[n] to be real, each filter requires 2N real
               multiplications for a total of 2M N real multiplications
               per sample of x[n].

               So an inefficient realization.

               Polyphase realization can significantly reduce the com-
               putational complexity.

            Polyphase Realization of FIR Filters:
            Reference: Bellanger et.al., “Digital filtering by polyphase
        network: Application to sample-rate alteration and filter banks,”
        IEEE Trans. ASSP, vol. 34,no. 2,PP. 109-114, April 1976.

               An important advancement in multi rate DSP is the
               invention of polyphase representation.

               Provides computationally efficient implementations of
               decimation/interpolation filters, as well as filter banks.

               For a filter of length M , the polyphase structure
               consists of I FIR filters in parallel, where M is selected
               to be integer multiple of I , i.e, I must divide M .


                                      10-1
www.jntuworld.com
                                                             M
              Therefore, Each parallel FIR filter has K   =   I
              coefficients.

            Example:   M =6

         H(Z) = h(0) + h(1)Z −1 + h(2)Z −2 + h(3)Z −3 +
                      h(4)Z −4 + h(5)Z −5

              Case 1:

                    Let I   = 2, then H(Z) can be written as

                       H(Z) = [h(0) + h(2)Z −2 + h(4)Z −4 ] +
                         [h(1)Z −1 + h(3)Z −3 + h(5)Z −5 ]
                       H(Z) = [h(0) + h(2)Z −2 + h(4)Z −4 ] +
                         Z −1 [h(1) + h(3)Z −2 + h(5)Z −4 ]
                    Define

                        E0 (Z) = h(0) + h(2)Z −1 + h(4)Z −2
                        E1 (Z) = h(1) + h(3)Z −1 + h(5)Z −2
                            H(Z) = E0 (Z 2 ) + Z −1 E1 (Z 2 )


              Case 2: Let I   =3


                                     10-2
www.jntuworld.com

        x(n)                                                   y(n)
                                      2
                                  E (Z )
                                   0

                     −1
                    Z

                                       2
                                  E (Z )
                                   1


                    H(Z) = (h(0) + h(3).Z −3 ) + (h(1).Z −1 +
                      h(4).z −4 ) + (h(2).Z −2 + h(5).z −5 )

               Define:     E0 (Z) = h(0) + h(3).Z −1

               E1 (Z) = h(1) + h(4).Z −1

               E2 (Z) = h(2) + h(5).Z −1

               H(Z) = E0 (Z 3 ) + z −1 .E1 (Z 3 ) + z −2 .E2 (Z 3 )




                                      10-3
www.jntuworld.com

        x(n)                                                         y(n)
                                    H 0(Z 3
                                          )

                 −1
                Z

                                    H 1(Z 3
                                          )

                 −1
                Z

                                    H 2(Z 3
                                          )




                 In general, for a FIR filter of length M , a polyphase
                 representation with I parallel filters is given by:

        H(Z) = E0 (Z I ) + Z −1 E1 (Z I ) + Z −2 E2 (Z I ) + · · · +
                         Z −(I−1) E(I−1) (Z I )
                                     (I−1)
                          H(Z) =              Z −i Ei (Z I )
                                      i=0

               Where,

                                E0 (Z) =
        h(0)+h(I)Z −1 +h(2I)Z −2 +· · ·+h((k−1)I)Z −(k−1)
          E1 (Z) = h(1) + h(I + 1)Z −1 + h(2I + 1)Z −2 +
                   · · · + h((k − 1)I + 1)Z −(k−1)

                                        10-4
www.jntuworld.com
                                          .
                                          .
                                          .
        EI−1 (Z) = h(I − 1) + h((I − 1) + I)Z −1 + h(2I +
        (I − 1))Z −2 + · · · + h((k − 1)I + (I − 1))Z −(k−1)
                           M
            Where, k   =   I is an integer.

              In general,

                            (k−1)
              Ei (Z) =              h(i + jI).z −j         0 ≤ i ≤ (I − 1)
                            j=0


            Polyphase Realization of Uniform DFT Filter Bank

              Polyphase realization can significantly reduce the
              computational complexity of the uniform filter bank.

              Decomposing H0 (Z)in a polyphase shown as:

                                         (M −1)
                            H0 (Z) =                z −i Ei (z M )     (1)
                                              i=0

              where, Ei (z M ) is ith polyphase filter.

              Ei (Z) is formed by picking every M th coefficient of
              H0 (Z) starting from ith element.

                                        10-5
www.jntuworld.com
              Ei (Z) = h0 [i] + h0 [i + M ].z −1 + h0 [i +
              2M ].z −2 + ......... + h0 [i + (M − 1)M ]z −(M −1)

                                       M −1
                         Ei (Z) =              h0 [i + mM ]z −m             (2)
                                       m=0




              k th filter in the uniform DFT filter bank is related to the
              prototype filter by the relation
                                                         −j2πk
                               Hk (Z) = H0 (z.e           M      )          (3)


              From equations (3) and (1)

                                                         −j2πk
                               Hk (Z) = H0 (z.e           M      )


                        (M −1)
                                                                     )M )
                                       −j2πk                 −j2πk
                    =           (z.e    M      ) Ei ((z.e
                                                −i            M

                         i=0


                            (M −1)              j2πki
                Hk (Z) =               (z .e
                                        −i        M     )Ei ((z M .e−j2πk ))
                               i=0


                                        10-6
www.jntuworld.com

                                 (M −1)
                                                           j2πki
                     Hk (Z) =               (z   −i
                                                      .e     M     )Ei (z M )   (4)
                                     i=0




                                      (M −1)
                          H0 (Z) =                z −i .Ei (z M )
                                           i=0



                      H0 (Z) = E0 (z M ) + z −1 .E1 (z M ) +
                    z −2 .E2 (z M ) + · · · + z M −1 .EM −1 (z M )



                                  (M −1)                   j2πk
                      H1 (Z) =               z   −i
                                                      .e    M     .Ei (z M )
                                     i=0


                                                       j2π
                                 M
               H1 (Z) = E0 (z ) + z .e .E1 (z M ) + · · · +
                                            −1          M
                                 j2π(M −1)
                     z −(M −1) .e M .E(M −1) (z M )


                               Hk (Z) = D.E(z M )



                                      10-7
www.jntuworld.com
              where,                                                
                                                       H0 (Z)
                                                      H1 (Z)        
                         Hz (Z) =                                   .
                                                                    
                                                             .
                                                             .
                                                            .       
                                                 H(M −1) (Z)




                                                    E0 (Z M )
                                                                           
                                                z −1 .E1 (Z M )            
                         M
                    E(Z ) =                                                .
                                                                           
                                                             .
                                                             .
                                                            .              
                                            z −(M −1) .EM −1 (Z M )

                    
                  1                   1                      1        ···                1
                                      j2π                   j2π.2                     j2π(M −1)
                 1               e                     e             ···         e
                                      M                     M                            M

              D=                                            .
                                                            .
                                                             .
                
                                 j2π(M −1)             j2π(M −1).2               j2π(M −1)(M −
                  1          e       M             e       M          ···    e         M




              → IDFT:
                             (M −1)                j2πkn
                        1
              x[n] =    M.                X[k].e     M              0 ≤ n ≤ M −1
                              k=0


                                            10-8
www.jntuworld.com
                   ⇒ D is essentially an inverse DFT matrix except for
                   1
                   M.

                   If a polyphase structure is implemented using
                   E0 (Z), E1 (Z), · · · , EM −1 (Z), then we must
                   perform an inverse DFT of the outputs in order to get
                   the signals Hk (Z) for k = 0, 1, · · · , (M − 1).
                                      1
                   IDFT will perform M .D . Therefore, original signal must
                   be pre-multiplied by M .

               M
        x(n)                         M                                X [0]
                               E 0(Z )                        M

                     Z −1                                             X [1]
                                     M
                               E 1(Z )       IDFT             M

                     Z −1
                                     M                                X [2]
                              E 2(Z )                          M



                                     M                               X [M−1]
                              E (Z )                           M
                               M−1



                   IDFT is simply a set of multipliers, and so the


                                          10-9
www.jntuworld.com
                   down-samplers can be moved to precede the IDFT.

                   Furthermore, the down-sampling can be moved before
                   the filter using the identity


                              E(z M )(↓ M ) = (↓ M ).E(Z)

                   This results in an efficient realization of uniform DFT
                   filter bank.




               M
        x(n)                                                           X [0]
                                M             E 0(Z )

                     Z −1                                              X [1]
                                M             E 1(Z )

                     Z −1                                   IDFT       X [2]
                                M            E 2(Z)



                                                                       X [M−1]
                                M            E (Z )
                                              M−1




                                         10-10
www.jntuworld.com
            Computational Complexity Of Polyphase Implementation
        Of Uniform Dft Filter Bank:

              Let H(Z) is an N -point filter.
                                                       N
              ⇒ Each polyphase filter therefore has     M points.

              For M branches, there is a total of N complex
                                                     N
              multipliers required for the filters M. M = N

              IDFT:     2M. log2 M real multipliers.
              Therefore, Total multipliers = 2N   + 2M. log2 M .
              →Further there is a down sampler before every filter.
              Therefore, number of real multipliers=
                N
              2 M + 2. log2 M
              Comparison:       let N   =160 and M =16
              Direct:      2M N    =2*16*160=5120
              multipliers/sample
                                 N
              Polyphase :      2 M + 2. log2 M
                                    = 2 160 + 2. log2 16
                                         16


              = 20 + 2. log2 24 = 20 + 2.4= 23 multipliers/sample
                            5120
              Saving:        23 = 230 times.



                                    10-11

								
To top