Mathematics    

Difference Equations and Filtering

MATLAB has functions for working with difference equations and filters. These functions operate primarily on vectors.

Vectors are used to hold sampled-data signals, or sequences, for signal processing and data analysis. For multi-input systems, each row of a matrix corresponds to a sample point with each input appearing as columns of the matrix.

The function

processes the data in vector x with the filter described by vectors a and b, creating filtered data y.

The filter command can be thought of as an efficient implementation of the difference equation. The filter structure is the general tapped delay-line filter described by the difference equation below, where n is the index of the current sample, na is the order of the polynomial described by vector a and nb is the order of the polynomial described by vector b. The output y(n), is a linear combination of current and previous inputs, x(n) x(n-1) ..., and previous outputs, y(n-1) y(n-2) ...

Suppose, for example, we want to smooth our traffic count data with a moving average filter to see the average traffic flow over a 4-hour window. This process is represented by the difference equation

The corresponding vectors are

Executing the command

creates the matrix count in the workspace.

For this example, extract the first column of traffic counts and assign it to the vector x.

The 4-hour moving-average of the data is efficiently calculated with

Compare the original data and the smoothed data with an overlaid plot of the two curves.

The filtered data represented by the solid line is the 4-hour moving average of the observed traffic count data represented by the dashed line.

For practical filtering applications, the Signal Processing Toolbox includes numerous functions for designing and analyzing filters.


  The Basic Fitting Interface Fourier Analysis and the Fast Fourier Transform (FFT)