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

Package: tsa