DECONVOLUTE function
Syntax: |
yd = DECONVOLUTE(y,b)
|
The DECONVOLUTE
function accepts two vector
arguments. It deconvolutes the first argument vector, y
,
with the specified blurring vector, b
. The result is a
vector the same length as y
.
The blurring vector b
, the second argument,
must contain an even number of points. The preferred lengths are powers of 2
.
The deconvolution is done using fast Fourier transforms. The following restrictions apply:
y
must be padded at its lower end with a number
of zeros equal to the number of non-zero elements in b
.
For example, if both vectors have 128
elements, and
b
is non-zero in the range 1 - 29
, then
y
must contain zeros in locations 1 - 29
y
and b
must have the same number of elementsb
must not be equal. A difference
of less than 0.0001
produces oscillations in the deconvoluted result. The
usual way to correct for this is to shift b
to the
left so that the first point has a non-zero value. Together with the first restriction,
this ensures that the right most point has the value zero, leaving the ends unequal.
Noise in b
produces a change in the output, which, due to
averaging, has a small effect. Noise effects depend on the shape of the deconvoluted peak. The
narrower this peak, the more effect the noise in b
has. This
occurs because each noisy point becomes a greater percentage of the total number in the deconvoluting
function, thus reducing the average effect. In many applications, the noise in the measured data is
statistical in nature and so, to reduce the sensitivity to this noise on the deconvolution, apply
smoothing filters on the measured data before
deconvolution.
The CONVOLUTE
function calculates the convolution.