Signal Processing Toolbox | Help Desk |
bilinear
Map variables using bilinear transformation.
[zd,pd,kd] = bilinear(z,p,k,Fs) [zd,pd,kd] = bilinear(z,p,k,Fs,Fp) [numd,dend] = bilinear(num,den,Fs) [numd,dend] = bilinear(num,den,Fs,Fp) [Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,Fs) [Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,Fs,Fp)The bilinear transformation is a mathematical mapping of variables. In digital filtering, it is a standard method of mapping the s or analog plane into the z or digital plane. It transforms analog filters, designed using classical filter design techniques, into their discrete equivalents. The bilinear transformation maps the s-plane into the z-plane by
bilinear
can accept an optional parameter Fp
that specifies prewarping. Fp
, in Hertz, indicates a "match" frequency, that is, a frequency for which the frequency responses before and after mapping match exactly. In prewarped mode, the bilinear transformation maps the s-plane into the z-plane withbilinear
maps the jbilinear
matches the frequency 2bilinear
function works with three different linear system representations: zero-pole-gain, transfer function, and state-space form.
[zd,pd,kd] = bilinear(z,p,k,Fs)
and
[zd,pd,kd] = bilinear(z,p,k,Fs,Fp)
convert the s-domain transfer function specified by z
, p
, and k
to a discrete equivalent. Inputs z
and p
are column vectors containing the zeros and poles, and k
is a scalar gain. Fs
is the sampling frequency in Hertz. bilinear
returns the discrete equivalent in column vectors zd
and pd
and scalar kd
. Fp
is the optional match frequency, in Hertz, for prewarping.
[numd,dend] = bilinear(num,den,Fs)
and
[numd,dend] = bilinear(num,den,Fs,Fp)
convert an s-domain transfer function given by num
and den
to a discrete equivalent. Row vectors num
and den
specify the coefficients of the numerator and denominator, respectively, in descending powers of s Fs
is the sampling frequency in Hertz. bilinear
returns the discrete equivalent in row vectors numd
and dend
in descending powers of z (ascending powers of z-1). Fp
is the optional match frequency, in Hertz, for prewarping.
[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,Fs)
and
[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,Fs,Fp)
convert the continuous-time state-space system in matrices A
, B
, C
, D
,Fs
is the sampling frequency in Hertz. bilinear
returns the discrete equivalent in matrices Ad
, Bd
, Cd
, Dd
. Fp
is the optional match frequency, in Hertz, for prewarping.
bilinear
uses one of two algorithms, depending on the format of the input linear system you supply. One algorithm works on the zero-pole-gain format and the other on the state-space format. For transfer function representations, bilinear
converts to state-space form, performs the transformation, and converts the resulting state-space system back to transfer function form.
For a system in zero-pole-gain form, bilinear
performs four steps:
Fp
is present, k = 2*pi*Fp/tan(pi*Fp/Fs)
; otherwise k = 2*Fs
.
z = z(find(finite(z)));
pd = (1+p/k)./(1-p/k);
zd = (1+z/k)./(1-z/k);
kd = real(k*
prod(fs-z)./prod(fs-p));
bilinear
performs two steps:
Fp
is present, k = 2*pi*Fp/tan(pi*Fp/Fs)
; else k = 2*Fs
.
Ad
, Bd
, Cd
, and Dd
in terms of A
, B
, C
, and D
usingbilinear
implements these relations using conventional MATLAB statements. The scalar r
is arbitrary; bilinear
uses sqrt(2/k)
to ensure good quantization noise properties in the resulting system.
bilinear
requires that the numerator order be no greater than the denominator order. If this is not the case, bilinear
displays:
Numerator cannot be higher order than denominator.For
bilinear
to distinguish between the zero-pole-gain and transfer function linear system formats, the first two input parameters must be vectors with the same orientation in these cases. If this is not the case, bilinear
displays:
First two arguments must have the same orientation.
Impulse invariance method of analog-to-digital filter conversion. |
|