Documentation 
Transfer function estimation
sys = tfest(data,np)
sys = tfest(data,np,nz)
sys = tfest(data,np,nz,iodelay)
sys = tfest(___,Name,Value)
sys = tfest(data,init_sys)
sys = tfest(___,opt)
sys = tfest(data,np) estimates a continuoustime transfer function, sys, using time or frequencydomain data, data, and contains np poles. The number of zeros in the sys is max(np1,0).
sys = tfest(data,np,nz) estimates a transfer function containing nz zeros.
sys = tfest(data,np,nz,iodelay) estimates a transfer function with transport delay for input/output pairs iodelay.
sys = tfest(___,Name,Value) uses additional options specified by one or more Name,Value pair arguments. All input arguments described for previous syntaxes also apply here.
sys = tfest(data,init_sys) uses the dynamic system init_sys to configure the initial parameterization of sys.
sys = tfest(___,opt) specifies the estimation behavior using the option set opt. All input arguments described for previous syntaxes also apply here.
data 
Estimation data. For time domain estimation, data is an iddata object containing the input and output signal values. Timeseries models, which are models that contain no measured inputs, cannot be estimated using tfest. Use ar, arx or armax for timeseries models instead. For frequency domain estimation, data can be one of the following:
For multiexperiment data, the sample times and intersample behavior of all the experiments must match. 
np 
Number of poles in the estimated transfer function. np is a nonnegative number. For systems that are multipleinput, or multipleoutput, or both:

nz 
Number of zeros in the estimated transfer function. nz is a nonnegative number. For systems that are multipleinput, or multipleoutput, or both:
For a continuoustime model, estimated using discretetime data, set nz <= np. 
iodelay 
Transport delay. For continuoustime systems, specify transport delays in the time unit stored in the TimeUnit property of data. For discretetime systems, specify transport delays as integers denoting delay of a multiple of the sampling period Ts. For a MIMO system with ny outputs and nu inputs, set iodelay to an nybynu array. Each entry of this array is a numerical value that represents the transport delay for the corresponding input/output pair. You can also set iodelay to a scalar value to apply the same delay to all input/output pairs. The specified values are treated as fixed delays. iodelay must contain either nonnegative numbers or NaNs. Use NaN in the iodelay matrix to denote unknown transport delays. Use [] or 0 to indicate that there is no transport delay. 
opt 
Estimation options. opt is an options set, created using tfestOptions, that specifies estimation options including:

init_sys 
Dynamic system that configures the initial parameterization of sys. If init_sys is an idtf model, tfest uses the parameters and constraints defined in init_sys as the initial guess for estimating sys. Use the Structure property of init_sys to configure initial guesses and constraints for the numerator, denominator and transport lag. To specify an initial guess for, say, the numerator of init_sys, set init_sys.Structure.num.Value to the initial guess. To specify constraints for, say, the numerator of init_sys:
You can similarly specify the initial guess and constraints for the denominator and transport lag. If init_sys is not an idtf model, the software first converts init_sys to a transfer function. tfest uses the parameters of the resulting model as the initial guess for estimation. 
Specify optional commaseparated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.
'Ts' 
Sampling time. Use the following values for Ts:
Default: 0 
'InputDelay' 
Input delay for each input channel, specified as a scalar value or numeric vector. For continuoustime systems, specify input delays in the time unit stored in the TimeUnit property. For discretetime systems, specify input delays in integer multiples of the sampling period Ts. For example, InputDelay = 3 means a delay of three sampling periods. For a system with Nu inputs, set InputDelay to an Nuby1 vector. Each entry of this vector is a numerical value that represents the input delay for the corresponding input channel. You can also set InputDelay to a scalar value to apply the same delay to all channels. Default: 0 
'Feedthrough' 
Feedthrough for discretetime transfer function. Must be a NybyNu logical matrix. Use a scalar to specify a common value across all channels. A discretetime model with 2 poles and 3 zeros takes the following form: $$H{z}^{1}=\frac{b0+b1{z}^{1}+b2{z}^{2}+b3{z}^{3}}{1+a1{z}^{1}+a2{z}^{2}}$$ When the model has direct feedthrough, b0 is a free parameter whose value is estimated along with the rest of the model parameters b1, b2, b3, a1, a2. When the model has no feedthrough, b0 is fixed to zero. Default: false (Ny,Nu) 
sys 
Identified transfer function. sys is an idtf model that encapsulates the identified transfer function. 
[1] Garnier, H., M. Mensler, and A. Richard. "Continuoustime Model Identification From Sampled Data: Implementation Issues and Performance Evaluation." International Journal of Control, 2003, Vol. 76, Issue 13, pp 1337–1357.
[2] Ljung, L. "Experiments With Identification of ContinuousTime Models." Proceedings of the 15th IFAC Symposium on System Identification. 2009.
[3] Young, P. C. and A.J. Jakeman. "Refined instrumental variable methods of timeseries analysis: Part III, extensions." International Journal of Control 31, 1980, pp 741–764.