navigation map

Chapters:
  1: Introduction
  2: Simple example
  3: Invocation
  4: Finer Control
  5: X-Y Plots
  6: Contour Plots
  7: Image Plots
  8: Examples
  9: Gri Commands
  10: Programming
  11: Environment
  12: Emacs Mode
  13: History
  14: Installation
  15: Gri Bugs
  16: Test Suite
  17: Gri in Press
  18: Acknowledgments
  19: License

Indices:
  Concepts
  Commands
  Variables
index.html#Top ListOfGriCommands.html#ListOfGriCommands Gri: `expecting' command Gri: `flip' command index.html#Top Gri: `flip' command

9.3.11: `filter'

  • `filter column x|y|z|u|v|weight recursively a[0] a[1] ... b[0] b[1] ...' Filter indicated column, using a two-pass recursive filter. The first pass runs from the start to the end, while the second pass runs from the end to the start; in this way, the phase shift inherent in this type of filter is removed entirely. The coefficients are used in the following formula (demonstrated on the `x' column):

    
    x_new[i] = b[0] * x[i] \
      + b[1] * x[i-1] \
      + b[2] * x[i-2] \
      + ... \
      - a[1] * x_new[i-1] \
      - a[2] * x_new[i-2] \
      - ...
    

    Thus, for example, setting `a[i]' = 0 results in a simple backwards-looking moving-average filter applied in two passes. The real power of this type of filter, however, comes when non-zero `a[i]' coefficients are given, thus adding recursion (i.e., `x_new[i]' depends on `x_new[i-...]'). See any standard reference on digital filters for an explanation. You might find that the Matlab command `butter' an easy way to design filter coefficients. Here are some examples:

    
    # Filter x column with simple 2-point moving
    # average.  (This slurs into a 3-point moving
    # average, in effect, since the filter is run
    # forwards and then backwards.)
    filter column x recursively 0 0 0.5 0.5
    

    # Use filter designed with the Matlab # command butter(2,0.1), which creates a # 2nd order lowpass butterworth filter # with a cutoff frequency of 0.1 # (in units which have a frequency # of 1 corresponding to one-half the # sampling rate). filter column x recursively \ 1 -1.561 0.6414 \ 0.0201 0.0402 0.0201

  • `filter grid rows|columns recursively a[0] a[1] ... b[0] b[1] ...'

    Apply recursive filter (see `filter column ... recursively' for meaning of this filter operation) to the individual rows or columns of the grid data. For example, the command `filter grid columns recursively 0 0 0.5 0.5' applies a 2-point moving average filter across the columns, smoothing the grid in the x-direction.

  • `filter image highpass' Remove low-wavenumber components from image (ie, sharpen edges). Do this by subtracting a Laplacian smoothed version of the image.

  • `filter image lowpass' Remove high-wavenumber components from image (ie, smooth shapes). Do this by Laplacian smoothing.

See also see Smooth.

navigation map