[Scilab-users] Question syslin

tim at wescottdesign.com tim at wescottdesign.com
Mon Dec 22 02:35:43 CET 2014


On 2014-12-21 16:23, Andreas Ladanyi wrote:
> Am 16.12.2014 um 18:54 schrieb Tim Wescott:
>> Hey Andreas:

<< snip >>

>> Domain = n is for a discrete-time system where the sampling interval 
>> is
>> defined.  It works exactly like domain = 'd', except that things that
>> depend on the real-world frequency, like Bode plots, will come out
>> right.

> At this point i am a little bit confused. How does syslin works when
> the sampling interval is not defined (dom=d) ? And why the bode plots
> come out wrong ? What syslin is doing wrong if dom=d ?

Syslin, by itself, is just a structure consisting of three or four 
matrices (the 'D' matrix is optional) that describe a system, and a 
domain tag.  The domain tag just tells the various things that use the 
syslin structure how to interpret the description.

When you set dom = 'd', the various bits of code that use syslin either 
interpret the structure to describe some sampled system of unknown 
sampling interval (i.e., ss2tf, which returns a ratio of polynomials in 
z with dom = 'd'), or they implicitly take the sampling interval to be 1 
(i.e., Bode plots).

Syslin isn't doing _wrong_ if dom = 'd', unless the system described 
actually does have a well-defined sampling interval.  There are systems 
that do not have a well-defined sampling interval, or at least not in 
time -- I have worked on phase-locked loops that sample on every cycle 
of the oscillator (or motor), and use the duration of a cycle as the 
feedback.  In this case the sampling rate is itself being servoed, and 
as such is not constant.  Sometimes you're always locking to the same 
reference, and you can take that reference as your sampling interval -- 
sometimes not.  It's also not uncommon to want to define some signal 
processing to be done on data that's sampled at positions on a line or a 
grid, in which case the "frequency" is in cycles per meter (or pixels, 
or whatever) -- in that case, having a domain that implies a sampling 
frequency in Hz is misleading.

Note that I'm not the original author of this data structure, so I may 
be missing some finer points of intent.  I just do what works for me: I 
set the domain to the actual sampling rate if I know and care what it 
is, or to 'd' if I just want to play around in the abstract, without 
being bound to any particular sampling rate.



More information about the users mailing list