bilinear               package:signal               R Documentation

_B_i_l_i_n_e_a_r _t_r_a_n_s_f_o_r_m_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Transform a s-plane filter specification into a z-plane
     specification.

_U_s_a_g_e:

     ## Default S3 method:
     bilinear(Sz, Sp, Sg, T, ...)

     ## S3 method for class 'Zpg':
     bilinear(Sz, T, ...)

     ## S3 method for class 'Arma':
     bilinear(Sz, T, ...)

_A_r_g_u_m_e_n_t_s:

      Sz: In the generic case, a model to be transformed. In the
          default case, a vector containing the zeros in a
          pole-zero-gain model. 

      Sp: a vector containing the poles in a pole-zero-gain model. 

      Sg: a vector containing the gain in a pole-zero-gain model. 

       T: the sampling frequency represented in the z plane. 

     ...: Arguments passed to the generic function. 

_D_e_t_a_i_l_s:

     Given a piecewise flat filter design, you can transform it from
     the s-plane to the z-plane while maintaining the band edges by
     means of the bilinear transform.  This maps the left hand side of
     the s-plane into the interior of the unit circle.  The mapping is
     highly non-linear, so you must design your filter with band edges
     in the s-plane positioned at 2/T tan(w*T/2) so that they will be
     positioned at w after the bilinear transform is complete.

     The bilinear transform is:


      z = frac{1 + sT/2}{1 - sT/2}{ z = (1 + sT/2) / (1 - sT/2)}



                    s = (T/2) * (z - 1) / (z + 1)


     Please note that a pole and a zero at the same place exactly
     cancel. This is significant since the bilinear transform creates
     numerous extra poles and zeros, most of which cancel. Those which
     do not cancel have a "fill-in" effect, extending the shorter of
     the sets to have the same number of as the longer of the sets of
     poles and zeros (or at least split the difference in the case of
     the band pass filter). There may be other opportunistic
     cancellations, but it will not check for them.

     Also note that any pole on the unit circle or beyond will result
     in an unstable filter.  Because of cancellation, this will only
     happen if the number of poles is smaller than the number of zeros.
      The analytic design methods all yield more poles than zeros, so
     this will not be a problem.

_V_a_l_u_e:

     For the default case or for 'bilinear.Zpg', an object of class
     "Zpg", containing the list elements: 

   zero : complex vector of the zeros of the transformed model

   pole : complex vector of the poles of the transformed model

   gain : gain of the transformed model

       b: moving average (MA) polynomial coefficients 

       a: autoregressive (AR) polynomial coefficients 

_A_u_t_h_o_r(_s):

     Original Octave version by Paul Kienzle pkienzle@user.sf.net.
     Conversion to R by Tom Short.

_R_e_f_e_r_e_n_c_e_s:

     Proakis & Manolakis (1992). Digital Signal Processing. New York:
     Macmillan Publishing Company.

     <URL: http://en.wikipedia.org/wiki/Bilinear_transform>

     Octave Forge <URL: http://octave.sf.net>

_S_e_e _A_l_s_o:

     'Zpg', 'sftrans', 'Arma'

_E_x_a_m_p_l_e_s:

