Multi-variate filter function Y = MVFILTER(B,A,X) [Y,Z] = MVFILTER(B,A,X,Z) Y = MVFILTER(B,A,X) filters the data in matrix X with the filter described by cell arrays A and B to create the filtered data Y. The filter is a "Direct Form II Transposed" implementation of the standard difference equation: a0*Y(n) = b0*X(:,n) + b1*X(:,n-1) + ... + bq*X(:,n-q) - a1*Y(:,n-1) - ... - ap*Y(:,n-p) A=[a0,a1,a2,...,ap] and B=[b0,b1,b2,...,bq] must be matrices of size Mx((p+1)*M) and Mx((q+1)*M), respectively. a0,a1,...,ap, b0,b1,...,bq are matrices of size MxM a0 is usually the identity matrix I or must be invertible X should be of size MxN, if X has size NxM a warning is raised, and the output Y is also transposed. A simulated MV-AR process can be generiated with Y = mvfilter(eye(M), [eye(M),-AR],randn(M,N)); A multivariate inverse filter can be realized with [AR,RC,PE] = mvar(Y,P); E = mvfilter([eye(M),-AR],eye(M),Y); see also: MVAR, FILTER