Generalized Digital Butterworth Filter Design - Documentation

Go back to previous page.


List of programs provided for generalized digital Butterworth
filter design _______________________________________________

general_butter.m        
        - main program.

spec_table.m            
        - computes how many zeros should lie at z=-1 and how
          many should contribute to the passband.

iir_herrmann.m          
        - Like Herrmann's filters, the user specifies the 
          degree of flatness at w=0 and w=pi, and not the
          half-magnitude fruequency.

subprograms provided ________________________________________

choose.m                - binomial coefficients.
h2mag.m                 - magnitude response.

help on general_butter.m ____________________________________

  [b,a,b1,b2] = general_butter(Z,P,wo)
  Design of digital Butterworth filters with unequal
  numerator and denominator degrees.
  input
    Z  : total number of zeros
    P  : total number of (nontrivial) poles
    wo : half-magnitude frequency in (0,pi)
  output
    b/a : IIR filter
    b   : length P+1 vector of polynomial coefficients
    a   : length Z+1 vector of polynomial coefficients
    b   : b = conv(b1,b2); b1 contains all zeros at z=-1,
            b2 contains all other zeros.

  Example
       Z = 10; P = 2; wo = 0.6*pi;
       [b,a,b1,b2] = general_butter(Z,P,wo);


help on iir_herrmann.m ______________________________________

   [b,a,b1,b2] = iir_herrmann(L,M,N);
   Design of digital Butterworth filters with unequal
   numerator and denominator degrees.
   input
     L : number of zeros at z=-1
     M : number of zeros contributing to passband flatness
     N : number of poles
     need : L>N; M,N>=0; N even
   output
     b/a : IIR filter
     b   : length P+1 vector of polynomial coefficients
     a   : length Z+1 vector of polynomial coefficients
     b   : b = conv(b1,b2); b1 contains all zeros at z=-1,
             b2 contains all other zeros.

   Examples
        L = 10; M = 8; N = 4;
        [b,a,b1,b2] = iir_herrmann(L,M,N);

        L = 12; M = 12; N = 4;
        [b,a,b1,b2] = iir_herrmann(L,M,N);

_____________________________________________________________
     

Please report any bugs or send comments regarding the programs to selesi@ece.rice.edu