idfilt

Filter data using user-defined passbands, general filters, or Butterworth filters

Syntax

Zf = idfilt(Z,filter)
Zf = idfilt(Z,filter,causality)
Zf = idfilt(Z,filter,'FilterOrder',NF)

Description

Z is the data, defined as an iddata object. Zf contains the filtered data as an iddata object. The filter can be defined in three ways:

For time-domain data, the filtering is carried out in the time domain as causal filtering as default. This corresponds to a last argument causality = 'causal'. With causality = 'noncausal', a noncausal, zero-phase filter is used for the filtering (corresponding to filtfilt in the Signal Processing Toolbox™ product).

For frequency-domain data, the signals are multiplied by the frequency response of the filter. With the filters defined as passband, this gives ideal, zero-phase filtering ("brickwall filters"). Frequencies that have been assigned zero weight by the filter (outside the passband, or via the frequency response) are removed from the iddata object Zf.

It is common practice in identification to select a frequency band where the fit between model and data is concentrated. Often this corresponds to bandpass filtering with a passband over the interesting breakpoints in a Bode diagram. For identification where a disturbance model is also estimated, it is better to achieve the desired estimation result by using the property 'Focus' (see Algorithm Properties) than just to prefilter the data. The proper values for 'Focus' are the same as the argument filter in idfilt.

Algorithm

The Butterworth filter is the same as butter in the Signal Processing Toolbox product. Also, the zero-phase filter is equivalent to filtfilt in that toolbox.

References

Ljung (1999), Chapter 14.

See Also

Algorithm Properties 
iddata 

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS