Documentation 
Time or frequencydomain data
data = iddata(y,[],Ts)
data = iddata(y,u,Ts)
data = iddata(y,u,Ts,'Frequency',W)
data = iddata(y,u,Ts,'P1',V1,...,'PN',VN)
data = iddata(idfrd_object)
data = iddata(y,[],Ts) creates an iddata object for timeseries data, containing a timedomain output signal y and an empty input signal [], respectively. Ts specifies the sampling interval of the experimental data.
data = iddata(y,u,Ts) creates an iddata object containing a timedomain output signal y and input signal u, respectively. Ts specifies the sampling interval of the experimental data.
data = iddata(y,u,Ts,'Frequency',W) creates an iddata object containing a frequencydomain output signal y and input signal u, respectively.Ts specifies the sampling interval of the experimental data. W specifies the iddata property 'frequency' as a vector of frequencies.
data = iddata(y,u,Ts,'P1',V1,...,'PN',VN) creates an iddata object containing a timedomain or frequencydomain output signal y and input signal u, respectively. Ts specifies the sampling interval of the experimental data. 'P1',V1,...,'PN',VN are propertyvalue pairs, as described in Properties.
data = iddata(idfrd_object) transforms an idfrd object to a frequencydomain iddata object.
Name of MATLAB^{®} variable that represents the output signal from a system. Sets the OutputData iddata property. For a singleoutput system, this is a column vector. For a multipleoutput system with N_{y} output channels and N_{T} time samples, this is an N_{T}byN_{y} matrix.
Name of MATLAB variable that represents the input signal to a system. Sets the InputData iddata property. For a singleinput system, this is a column vector. For a multipleoutput system with N_{u} output channels and N_{T} time samples, this is an N_{T}byN_{u} matrix.
Time interval between successive data samples in seconds. Default value is 1. For continuoustime data in the frequency domain, set Ts to 0.
Pairs of iddata property names and property values.
Name of idfrd data object.
To construct an iddata object, you must have already imported data into the MATLAB workspace, as described in TimeDomain Data Representation.
Use the following syntax to create a timedomain iddata object data:
data = iddata(y,u,Ts)
You can also specify additional properties, as follows:
data = iddata(y,u,Ts,'Property1',Value1,...,'PropertyN',ValueN)
For more information about accessing object properties, see Properties.
Here, Ts is the sampling time, or the time interval, between successive data samples:
For uniformly sampled data, Ts is a scalar value equal to the sampling interval of your experiment.
For nonuniformly sampled data, Ts is [], and the value of the SamplingInstants property is a column vector containing individual time values. For example:
data = iddata(y,u,[],'SamplingInstants',TimeVector)
where TimeVector represents a vector of time values.
Note: You can modify the property SamplingInstants by setting it to a new vector with the length equal to the number of data samples. 
The default time unit is seconds, but you can specify any unit string using the TimeUnit property. For more information about iddata time properties, see Modifying Time and Frequency Vectors.
To represent timeseries data, use the following syntax:
ts_data = iddata(y,[],Ts)
where y is the output data, [] indicates empty input data, and Ts is the sampling interval.
The following example shows how to create an iddata object using singleinput/singleoutput (SISO) data from dryer2.mat. The input and output each contain 1000 samples with the sampling interval of 0.08 second.
load dryer2 % Load input u2 and output y2. data = iddata(y2,u2,0.08) % Create iddata object.
MATLAB returns the following output:
Time domain data set with 1000 samples. Sampling interval: 0.08 Outputs Unit (if specified) y1 Inputs Unit (if specified) u1
The default channel name 'y1' is assigned to the first and only output channel. When y2 contains several channels, the channels are assigned default names 'y1','y2','y2',...,'yn'. Similarly, the default channel name 'u1' is assigned to the first and only input channel. For more information about naming channels, see Naming, Adding, and Removing Data Channels.
Frequencydomain data is the Fourier transform of the input and output signals at specific frequency values. To represent frequencydomain data, use the following syntax to create the iddata object:
data = iddata(y,u,Ts,'Frequency',w)
'Frequency' is an iddata property that specifies the frequency values w, where w is the frequency column vector that defines the frequencies at which the Fourier transform values of y and u are computed. Ts is the time interval between successive data samples in seconds for the original timedomain data. w, y, and u have the same number of rows.
For more information about iddata time and frequency properties, see Modifying Time and Frequency Vectors.
To specify a continuoustime system, set Ts to 0.
You can specify additional properties when you create the iddata object, as follows:
data = iddata(y,u,Ts,'Property1',Value1,...,'PropertyN',ValueN)
For more information about accessing object properties, see Properties.
After creating the object, you can use get or dot notation to access the object property values.
Use set or dot notation to set a property of an existing object.
The following table describes iddata object properties and their values. These properties are specified as propertyvalue arguments 'P1',V1,...,'PN',VN' in the iddata constructor, or you can set them using the set command or dot notation. In the list below, N denotes the number of data samples in the input and output signals, ny is the number of output channels, nu is the number of input channels, and Ne is the number of experiments.
Tip Property names are not case sensitive. You do not need to type the entire property name. However, the portion you enter must by enough to uniquely identify the property. 
Property Name  Description  Value 

Domain  Specifies whether the data is in the time domain or frequency domain. 

ExperimentName  Name of each data set contained in the iddata object.  For Ne experiments, a 1byNe cell array of strings. Each cell contains the name of the corresponding experiment. Default names are {'Exp1', 'Exp2',...}. 
Frequency  (Frequencydomain data only) Frequency values for defining the Fourier Transforms of the signals.  For a single experiment, this is an Nby1 vector. For Ne experiments, a 1byNe cell array and each cell contains the frequencies of the corresponding experiment. 
InputData  Name of MATLAB variable that stores the input signal to a system.  For nu input channels and N data samples, this is an Nbynu matrix. 
InputName  Specifies the names of individual input channels.  Cell array of length nuby1 contains the name string of each input channel. Default names are {'u1';'u2';...}. 
InputUnit  Specifies the units of each input channel.  Cell array of length nuby1. Each cell contains a string that specifies the units of each input channel. 
InterSample  Specifies the behavior of the input signals between samples for transformations between discretetime and continuoustime.  For a single experiment:
For Ne experiments, InterSample is an nubyNe cell array. Each cell contains one of these values corresponding to each experiment. 
Name  Name of the data set.  Text string. 
Notes  Comments about the data set.  Text string. 
OutputData  Name of MATLAB variable that stores the output signal from a system.  For ny output channels and N samples, this is an Nbyny matrix. 
OutputName  For a multipleoutput system, specifies the names of individual output channels.  Cell array of length nyby1 contains the name string of each output channel. Default names are {'y1';'y2';...}. 
OutputUnit  Specifies the units of each output channel.  For ny output channels, a cell array of length nyby1. Each cell contains a string that specifies the units of the corresponding output channel. 
Period  Period of the input signal.  (Default) For a nonperiodic signal, set to inf. For a multipleinput signal, this is an nuby1 vector and the kth entry contains the period of the kth input. For Ne experiments, this is a 1byNe cell array and each cell contains a scalar or vector of periods for the corresponding experiment. 
SamplingInstants  (Timedomain data only) The time values in the time vector calculated from the properties Tstart and Ts.  For a single experiment, this is an Nby1 vector. For Ne experiments, this is a 1byNe cell array and each cell contains the sampling instants of the corresponding experiment. 
TimeUnit  (Timedomain data only) Time unit.  A string that specifies the time unit for the time vector. Specify TimeUnit as one of the following: 'nanoseconds','microseconds','milliseconds','seconds' (default), 'minutes','hours', 'days', 'weeks', 'months' or 'years'. 
Ts  Time interval between successive data samples in seconds. Must be specified for both time and frequencydomain data. For frequencydomain, it is used to compute Fourier transforms of the signals as discretetime Fourier transforms (DTFT) with the indicated sampling interval.  Default value is 1. For continuoustime data in the frequency domain, set to 0; the inputs and outputs are interpreted as continuoustime Fourier transforms of the signals. Note that Ts is essential also for frequencydomain data, for proper interpretation of how the Fourier transforms were computed: They are interpreted as discretetime Fourier transforms (DTFT) with the indicated sampling interval.. For multipleexperiment data, Ts is a 1byNe cell array and each cell contains the sampling interval of the corresponding experiment. 
Tstart  (Timedomain data only) Specifies the start time of the time vector.  For a single experiment, this is a scalar. For Ne experiments, Tstart is a 1byNe cell array and each cell contains the starting time of the corresponding experiment. 
FrequencyUnit  (Frequencydomain data only) Frequency unit.  Specifies the units of the frequency vector (see Frequency). Specify as one of the following: 'rad/TimeUnit', 'cycles/TimeUnit', 'rad/s', 'Hz', 'kHz', 'MHz', 'GHz', or 'rpm'. The units 'rad/TimeUnit' and 'cycles/TimeUnit' are relative to the time units specified in the TimeUnitproperty. Setting FrequencyUnit does not change the frequency vector. To convert the units and automatically scale frequency points, use chgFreqUnit. 
UserData  Additional comments.  Text string. 
To view the properties, use the get command. For example:
load dryer2 % Load input u2 and output y2 data = iddata(y2,u2,0.08); % Create iddata object get(data) % Get property values of data
You can specify properties when you create an iddata object using the constructor syntax:
data = iddata(y,u,Ts,'Property1',Value1,...,'PropertyN',ValueN)
To change property values for an existing iddata object, use the set command or dot notation. For example, to change the sampling interval to 0.05, type the following at the prompt:
set(data,'Ts',0.05)
or equivalently:
data.ts = 0.05
Property names are not case sensitive. You do not need to type the entire property name if the first few letters uniquely identify the property.
Tip You can use data.y as an alternative to data.OutputData to access the output values, or use data.u as an alternative to data.InputData to access the input values. 
An iddata object containing frequencydomain data includes frequencyspecific properties, such as Frequency for the frequency vector and Units for frequency units (instead of Tstart and SamplingIntervals). For example:
% Load input u2 and output y2 load dryer2; % Create iddata object data = iddata(y2,u2,0.08); % Take the Fourier transform of the data % transforming it to frequency domain data = fft(data) % Get property values of data get(data)