Using Deconvolution and Convolution in OriginConvolution and Deconvolution will subtract or add a response to a signal in
the frequency domain. There are a number of limitations and caveats with the
process that should be understood in order to be meaningfully used and
interpret results.
Convolution and Deconvolution functions are available in Origin as part of
the FFT object accessible from script.
Begin with a worksheet (Data1) with your A(X) and B(Y) data and three
additional columns: C(Disregard), D(Disregard) and E(Y).
To do a deconvolution (or convolution) you need to provide two empty datsets
for results: the index dataset and the deconvolution (or convolution)
dataset. Assign their names as follows:
fft.deconv.indexdata$=Data1_D; // fft.conv.indexdata$=data1_d;
fft.deconv.deconvdata$=Data1_E; // fft.conv.convdata$=data1_e;
Your data (Data1_B) is generally referred to as the signal, and the data to
be deconvolved (or convolved) with your signal is referred to as the
response (Data1_C).
Your response dataset in Origin has special requirements:
1) It should consist of an odd number of points
2) It should contain data that represents the right half of a peak
function
3) The number of points in the response dataset should be less than
half the number of points in the signal dataset (usually much less)
Number 2 above is consistent with the general principal that the response is
a symmetrical peak function. Number 3 deals with the problem of invalid data
in results - consult a good text on the subject (such as Numerical Recipes
in C) for a description of how to compensate for this effect.
Now execute the deconvolution (or convolution) by passing your signal and
response datasets as arguments to the method:
fft.deconv(data1_b,data1_c); // fft.conv(data1_b,data1_c);
Your deconvolution (or convolution) result will be in Data1_E.