Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
repfreq
frequency response
Syntax
repf = repfreq(sys) repf = repfreq(sys, frq) repf = repfreq(sys, fmin, fmax) repf = repfreq(sys, fmin, fmax, step) [frq, repf] = repfreq(..) [frq, repf, splitf] = repfreq(..)
Arguments
- sys
A siso or simo linear dynamical system, in state space, transfer function or zpk representations, in continuous or discrete time.
- fmin,fmax
two real numbers (lower and upper frequency bounds)
- frq
real vector of frequencies (Hz)
- step
logarithmic discretization step
- splitf
vector of indexes of critical frequencies.
- repf
vector of the complex frequency response
Description
repfreq
returns the frequency response calculation of a linear
system. If sys(s)
is the transfer function of Sys
, repf(k)
equals sys(s)
evaluated at s= %i*frq(k)*2*%pi
for continuous time systems and
at exp(2*%i*%pi*dt*frq(k))
for discrete time systems (dt
is the sampling period).
db(k)
is the magnitude of repf(k)
expressed in dB i.e.
db(k)=20*log10(abs(repf(k)))
and phi(k)
is the phase
of repf(k)
expressed in degrees.
If fmin,fmax,step
are input parameters, the response is calculated
for the vector of frequencies frq
given by:
frq=[10.^((log10(fmin)):step:(log10(fmax))) fmax];
If step
is not given, the output parameter frq
is calculated by frq=calfrq(sys,fmin,fmax)
.
Vector frq
is split into regular parts with the split
vector.
frq(splitf(k):splitf(k+1)-1)
has no critical frequency.
sys
has a pole in the range [frq(splitf(k)),frq(splitf(k)+1)]
and
no poles outside.
Examples
A=diag([-1,-2]);B=[1;1];C=[1,1]; Sys=syslin('c',A,B,C); frq=0:0.02:5;w=frq*2*%pi; //frq=frequencies in Hz ;w=frequencies in rad/sec; [frq1,rep] =repfreq(Sys,frq); [db,phi]=dbphi(rep); Systf=ss2tf(Sys) //Transfer function of Sys x=horner(Systf,w(2)*sqrt(-1)) // x is Systf(s) evaluated at s = i w(2) rep=20*log(abs(x))/log(10) //magnitude of x in dB db(2) // same as rep ang=atan(imag(x),real(x)); //in rad. ang=ang*180/%pi //in degrees phi(2) repf=repfreq(Sys,frq); repf(2)-x
See also
History
Versão | Descrição |
6.0 | handling zpk representation |
Report an issue | ||
<< phaseplot | Frequency Domain | svplot >> |