System Identification Toolbox
  Go to function:
    Search    Help Desk 
idinput    See Also

Generate signals, typically to be used as inputs for identification.

Syntax

u = idinput(N)
u = idinput(N,type,band,levels)
u = idinput(N,'sine',band,levels,auxvar)

Description

idinput generates input signals of different kinds, that are typically used for identification purposes. Only scalar inputs are generated.

N is the number of data points generated, i.e., the length of u.

type defines the type of input signal to be generated. This argument takes one of the following values:

Default is type = 'rbs'.

The frequency contents of the signal is determined by the argument band. For the choices type = 'rs', 'rbs', and 'sine', this argument is a row-vector with two entries

that determine the lower and upper bound of the pass-band. The frequencies wlow and whigh are expressed in fractions of the Nyquist frequency. A white noise character input is thus obtained for band = [0 1], which also is the default value.

For the choice type = 'prbs' we have

where the periodicity of the generated PRBS is 2^twologp -1, and M is such that the signal is constant over intervals of length 1/M. twologp = 0 gives the maximum length PRBS, corresponding to twologp = 18. Also in this case the default is band = [0 1].

The argument levels defines the input level. It is a row vector

such that the signal u will always be between the values minu and maxu for the choices type = 'rbs', 'prbs' and 'sine'. For type = 'rs', the signal level is such that minu is the mean value of the signal, minus one standard deviation, while maxu is the mean value plus one standard deviation. Gaussian white noise with zero mean and variance one is thus obtained for
levels = [-1, 1], which is also the default value.

For the option type = 'sine', there is a fourth argument

determining the number of sinusoids to be used in the input signal. The variable no_of_trials determines how many trials to be made to minimize the signal amplitude by assigning random phases to the different sinusoids. Default is auxvar = [10, 10].

Algorithm

Very simple algorithms are used. The frequency contents is achieved for 'rs' by an eighth order Butterworth, non-causal filter, using idfilt. This is quite reliable. The same filter is used for the 'rbs' case, before making the signal binary. This means that the frequency contents is not guaranteed to be precise in this case.

For the 'sine' case, the frequencies are selected to be equally spread over the chosen pass band, and each sinusoid is given a random phase. A number of trials are made, and the phases that give the smallest signal amplitude are selected. (The amplitude is then scaled so as to satisfy the specifications of levels.)

See Also

The Frequency Domain System Identification Toolbox contains several commands for input design that utilize more sophisticated algorithms.

Reference

For PRBS, see, e.g., Söderström and Stoica (1989), Chapter C5.3.



[ Previous | Help Desk | Next ]