Scilab Function
Last update : 12/1/2004

iir - iir digital filter

### Calling Sequence

  `[hz]=iir(n,ftype,fdesign,frq,delta)`

### Parameters

- `n`: filter order (pos. integer)
- `ftype`: string specifying the filter type `'lp','hp','bp','sb'`
- `fdesign`: string specifying the analog filter design `='butt','cheb1','cheb2','ellip'`
- `frq`: 2-vector of discrete cut-off frequencies (i.e., `0<frq<.5`). For `lp` and `hp` filters only `frq(1)` is used. For `bp` and `sb` filters `frq(1)` is the lower cut-off frequency and `frq(2)` is the upper cut-off frequency
- `delta`

  : 2-vector of error values for `cheb1, cheb2`, and `ellip` filters where only `delta(1)` is used for `cheb1` case, only `delta(2)` is used for `cheb2` case, and `delta(1)` and `delta(2)` are both used for `ellip` case. `0<delta(1),delta(2)<1`

  - `-` for `cheb1` filters `1-delta(1)<ripple<1` in passband
  - `-` for `cheb2` filters `0<ripple<delta(2)` in stopband
  - `-` for `ellip` filters `1-delta(1)<ripple<1` in passband and `0<ripple<delta(2)` in stopband

### Description

function which designs an iir digital filter using analog filter designs.

### Examples

    hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
    [hzm,fr]=frmag(hz,256);
    plot2d(fr',hzm')
    xtitle('Discrete IIR filter band pass  0.15<fr<0.25 ',' ',' ');
    q=poly(0,'q');     //to express the result in terms of the ...
    hzd=horner(hz,1/q) //delay operator q=z^-1

### See Also

`eqfir`, `eqiir`,

### Author

C. B.