iir1

From STX Wiki
< Programmer Guide‎ | Command Reference‎ | EVAL
Revision as of 14:28, 2 March 2015 by Jw (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Create and/or apply an IIR filter.


Usage 1
iir1(f1, f2 {, m, rp, rs, inv, type})
f1, f2
the lower and upper cutoff frequency; both values must be specified as relative frequencies (f / sampling-rate); 0 ≤ f1 < f2 ≤ 0.5
m
the filter order (default=5)
rp
the desired passband ripple in dB; 0 < rp (default=0.5)
rs
the desired stopband damping level in dB; 0 < rs (default=40)
inv
invert filter response (0=no, 1=yes); if this value is set to 1, the filter frequency response is inverted and f1/f2 are the boundaries of the stopband

type: the type of the filter

type=1 ... Butterworth filter type=2 ... Chebyshev filter type=3 ... elliptic filter (this is the default)
Result 1
The function computes the filter coefficients for the IIR defined by the arguments and returns a matrix c with 2 columns. The first column (c[*,0]) contains the denominator coefficients (poles) and the second (c[*,1]) the nominator coefficients (zeros). The matrix c can be used to apply the filter to a signal (see Usage 3).

Usage 2
iir1(f1, f2, m, rp, rs, inv, type, x)
f1, f2, m, rp, rs, inv, type
see Usage 1
x
a vector containing the source signal
Result 2
The function computes the filter coefficients for the IIR defined by the arguments and applies it to the signal x. The result has the same type as the input signal x and containes the filtered signal.

Usage 3
iir1(c, z, x {, s})
c
IIR filter coefficients (see Usage 1)
z
the filter state (delay); must be a matrix with the same dimensions as c
notes:
  • The matrix should be initialized with zeros (e.g.: #z := eval init($#c[!nrow],$#c[!ncol],0))
  • The values of z are changed (z must be a reference to a table item)
x
the signal sample (scalar) or the signal vector to be filtered
s
the downsampling factor; must be an integer in the range 0<s<ncol(x) (default=1)
note:
  • If s>1, only the filter output values y[0], y[s], y[2s], ... are stored in the result.
  • If s>1, nrow(x) should be a multiple of s.
Result 3
The filtered signal (sample or vector). The argument (reference) z is updated with the new filter state.

See also
fir1

<function list>

Navigation menu

Personal tools