Home > tsa > mvfilter.m

# mvfilter

## PURPOSE

Multi-variate filter function

## SYNOPSIS

function [x,z]=mvfilter(B,A,x,z)

## DESCRIPTION

``` 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);