See:
http://www.ece.msstate.edu/~ruff/