System Identification Toolbox    
idinput

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

Syntax

Description

idinput generates input signals of different kinds, that are typically used for identification purposes. u is returned as a matrix or column vector.

For further use in the toolbox it is recommended to create an iddata object from u, indicating sampling time, input names, periodicity, and so on: u = iddata([],u);

N determines the number of generated input data. If N is a scalar, u will be a column vector with this number of rows.

N = [N nu] gives an input with nu input channels each of length N.

N = [P nu M] gives a periodic input with nu channels, each of length M*P and periodic with period P.

Default is nu=1 and M =1.

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'

where B is such that the signal is constant over intervals of length 1/B (the clock period). 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 = 'rgs', 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.

In the 'sine' case, the sinusoids are chosen from the frequency grid

(for Grid_Skip, see below.) For multi-input signals, the different inputs use different frequencies from this grid. An integer number of full periods is always delivered. The selected frequencies are obtained as the second output argument, freqs, where row ku of freqs contains the frequencies of input number ku. The resulting signal is affected by a fifth input argument sinedata

meaning that No_of_Sinusoids is equally spread over the indicated band. No_of_Trials (different, random, relative phases) are tried until the lowest amplitude signal is found.

Grid-skip may be useful for controlling odd and even frequency multiples, e.g., to detect nonlinearities of various kinds.

Algorithm

Very simple algorithms are used. The frequency contents is achieved for 'rgs' by an eighth order Butterworth, noncausal 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 grid, 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.

Reference

See Söderström and Stoica (1989), Chapter C5.3. For a general discussion of input signals, see Ljung (1999), Section 13.3.


  idgrey idmodel