Programmer Guide/Command Reference/EVAL/iir1: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 9: | Line 9: | ||
;<var>inv</var>: 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 | ;<var>inv</var>: 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 | ||
<var>type</var>: the type of the filter | <var>type</var>: the type of the filter | ||
::{class=keinrahmen" | ::{|class="keinrahmen" | ||
|''type''=1 ||... Butterworth filter | |''type''=1 ||... Butterworth filter | ||
|''type''=2 ||... Chebyshev filter | |''type''=2 ||... Chebyshev filter | ||
|''type''=3 ||... elliptic filter (this is the default) | |''type''=3 ||... elliptic filter (this is the default) | ||
|} | |||
;Result: 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'''). | ;Result: 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'''). | ||
---- | ---- |
Revision as of 13:07, 11 April 2011
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
- 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
- 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
- The matrix should be initialized with zeros (e.g.:
- 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
- The filtered signal (sample or vector). The argument (reference) z is updated with the new filter state.
- See also
- fir1