Manipulating Complex-Valued Data
Supported Operations for Complex Data
System Identification Toolbox™ estimation algorithms support complex data. For example, the following
estimation commands estimate complex models from complex data: ar
,
armax
, arx
, bj
,
ivar
, iv4
, oe
,
pem
, spa
, tfest
,
ssest
, and n4sid
.
Model transformation routines, such as freqresp
and
zpkdata
, work for complex-valued models. However, they do not provide
pole-zero confidence regions. For complex models, the parameter variance-covariance
information refers to the complex-valued parameters and the accuracy of the real and
imaginary is not computed separately.
The display commands compare
and plot
also
work with complex-valued data and models. To plot the real and imaginary parts of the data
separately, use plot(real(data))
and plot(imag(data))
,
respectively.
Processing Complex iddata Signals at the Command Line
If the iddata
object data
contains complex
values, you can use the following commands to process the complex data and create a new
iddata
object.
Command | Description |
---|---|
abs(data) | Absolute value of complex signals in iddata
object. |
angle(data) | Phase angle (in radians) of each complex signals in iddata
object. |
complex(data) | For time-domain data, this command makes the iddata object
complex—even when the imaginary parts are zero. For frequency-domain data
that only stores the values for nonnegative frequencies, such that
realdata(data)=1 , it adds signal values for negative
frequencies using complex conjugation. |
imag(data) | Selects the imaginary parts of each signal in iddata
object. |
isreal(data) | 1 when data (time-domain or
frequency-domain) contains only real input and output signals, and returns
0 when data (time-domain or
frequency-domain) contains complex signals. |
real(data) | Real part of complex signals in iddata object. |
realdata(data) | Returns a value of 1 when data is a
real-valued, time-domain signal, and returns 0 otherwise. |
For example, suppose that you create a frequency-domain iddata
object Datf
by applying fft
to a real-valued time-domain signal to take the Fourier transform of the
signal. The following is true for Datf
:
isreal(Datf) = 0 realdata(Datf) = 1