Preprocesses frequency-domain data for frequency-domain subspace identification of discrete-time state-space models. Delivers an order-estimate.
[S,R] = fdordom(H,w,s)
[S,R] = fdordom(H,w,s,Rold)
This function performs the initial data compression for discrete-time subspace identification based on measured frequency reponse function (FRF) data. In addition, it delivers information usuable for determining the required model order. The model structure is the following:
Several data batches can be concatenated, as shown below. This function acts as a preprocessor to fdmodom.
H is the measured frequency response function (FRF). This should be a matrix which follows the convention of MATLAB 6; it should be l x m x N in which H(:,:,i) contains the complex FRF at the i th complex frequency.
w is the vector of complex frequencies at which the FRF is measured:
s is the block-size parameter. This scalar should be >n.
Rold is the (optional) data-matrix resulting from a previous call to fdordom.
S is the first s singular values of the rank-deficient R22 matrix (see below).
R is a compressed data matrix containing information about the measured data, as well as information regarding the system dimensions.
The MEX-implementation may generate the following warning:
Cholesky-factorization failed; falling back on QR-factorization.
This implies that the fast Cholesky-algorithm failed. The function has automatically fallen back onto a slower QR-algorithm. Results from fdordom can be used without problems if this warning appears.
The discrete-time data compression algorithm in  is used. In the M-file implementation, the following RQ-factorization is made:
The meaning of the various matrices can be found in the cited article. In the MEX-implementation, the following Cholesky-factorization is attempted first:
If this factorization fails, the algorithm falls back on the above RQ-factorization. In all cases, a weighted SVD of the R22 matrix is made, and its left singular vectors are appended to the R-matrix. Its first s singular values are returned in S.
This a top-level function that is used directly by the user.
LAPACK-functions DPOTRF, DGEQRF, DGESVD, DTRTRS.
(All built into the executable)
 T. McKElvey, H. Akcay, and L. Ljung, "Subspace-based multivariable system identification from frequency response data", IEEE Transactions on Automatic Control, vol. 41, pp. 960-979, July 1996.