QUICK-REF - CsoundManual - Top of this section - Previous - Contents - Index - Next 

filter2, kfilter2, zfilter2

    a1  filter2   asig, iM,iN,ib0,ib1,..., ibM,ia1,ia2,...,iaN
    k1  kfilter2  ksig, iM,iN,ib0,ib1,...,ibM,ia1,ia2,...,iaN
    a1  zfilter2  asig, kdamp,kfreq,iM,iN,ib0,ib1,...,ibM,ia1,ia2,...,iaN



 

DESCRIPTION

General purpose custom filter with time-varying pole control. The filter coefficients implement the following difference equation:

  (1)*y(n) = b0*x[n] + b1*x[n-1] + ... + bM*x[n-M] - a1*y[n-1] - ... - aN*y[n-N]

the system function for which is represented by:
                                       -1             -M
                   B(Z)      b0 +  b1*Z   + ... + bM*Z
      H(Z) =       ----  =  -------------------------------
                                       -1              -N
                   A(Z)       1  + a1*Z    + ... + aN*Z
 

INITIALIZATION

At initialization the number of zeros and poles of the filter are specified along with the corresponding zero and pole coefficients. The coefficients must be obtained by an external filter-design application such as Matlab and specified directly or loaded into a table via gen01. With zfilter2, the roots of the characteristic polynomials are solved at initialization so that the pole-control operations can be implemented efficiently.
 

PERFORMANCE

The filter2 and kfilter2 opcodes perform filtering using a transposed form-II digital filter lattice with no time-varying control. zfilter2 uses the additional operations of radial pole-shearing and angular pole-warping in the Z plane.

Pole shearing increases the magnitude of poles along radial lines in the Z-plane. This has the affect of altering filter ring times. The k-rate variable kdamp is the damping parameter. Positive values (0.01 to 0.99) increase the ring-time of the filter (hi-Q), negative values (-0.01 to -0.99) decrease the ring-time of the filter, (lo-Q).

Pole warping changes the frequency of poles by moving them along angular paths in the Z plane. This operation leaves the shape of the magnitude response unchanged but alters the frequencies by a constant factor (preserving 0 and p). The k-rate variable kfreq determines the frequency warp factor. Positive values (0.01 to 0.99) increase frequencies toward p and negative values (-0.01 to -0.99) decrease frequencies toward 0.

Since filter2 implements generalized recursive filters, it can be used to specify a large range of general DSP algorithms. For example, a digital waveguide can be implemented for musical instrument modeling  using a pair of delayr and delayw opcodes in conjunction with the filter2 opcode.

EXAMPLE:

A first-order linear-phase lowpass linear-phase FIR filter operating on a k-rate signal:

  k1   kfilter2 ksig, 2, 0, 0.5, 0.5   ;; k-rate FIR filter

A controllable second-order IIR filter operating on an a-rate signal:

  a1   zfilter2 asig, kdamp, kfreq, 1, 2, 1, ia1, ia2 ;; controllable a-rate IIR filter
 

AUTHOR:

Michael A. Casey
M.I.T.
Cambridge, Mass.
1997
 
 

QUICK-REF - CsoundManual - Top of this section - Previous - Contents - Index - Next 
HTML Csound Manual - © Jean Piché & Peter J. Nix, 1994-97