


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