Convolution / Deconvolution

Hello,

On Igor, it is very easy to do a convolution product of two waves by using the command "Convolve".
However, the inverse operation, that is the deconvolution product, does not exist. It is possible to overcom this problem by doing the FFT of two waves, deviding them, and do an IFFT. This is the theory. In practice, I have tried and it does not work.

This is the code I use :
// Déconvolution du signal.
Proc Deconv()
// Traficotage du signal.
Duplicate/O Moyenne, Signal
Redimension/N=1024 Signal
Signal=Moyenne/100 // Je divise par 100 car le signal est en %.
Signal[0,345]=Signal[345]
Signal[455,1023]=Signal[455]
WaveStats Signal
Signal=Signal-V_min
Signal[0,345]=0
Signal[455,1023]=0
// Expression de la sonde.
Duplicate/O Signal, Probe
Variable x0=0
Probe=exp(-2*((x-x0)/(tpulse*1e-3))^2)
// Déconvolution du signal.
FFT/OUT=1/DEST=FFTProbe Probe
FFT/OUT=1/DEST=FFTSignal Signal
Duplicate/O FFTSignal, FFTDensity
FFTDensity=(lambda0^2*I0pompe/(4*h*c^2*long))*(FFTSignal/FFTProbe)*1e-8
Duplicate/O Probe, Density
IFFT/DEST=Density FFTDensity
End

I have a wave called "Signal" obtained from some experiment. This signal is the convolution product of an unknown wave called "Density" and a known wave called "Probe". I want to know the wave Density, from the deconvolution of the "Signal" by the "Probe".

Can anyone help me?
Thanks a lot.
Best regards.
Hooray for pump-probe data!!!!!

There is a brief discussion of FFT-based deconvolution in IP Tutorial Help.ipf, with application to image deconvolution. You may find it useful.

I noticed that you have:
Redimension/N=1024 Signal


Note that this is a so-called "magic number" in Igor IFFTs. This means that the output of the IFFT will be a complex wave. You probably want real output, in which case you should choose a non-2^n number. See "Magic Number of Points and the IFFT" under "Fourier Transforms" in Analysis.ihf.

If the number of points in the wave is an integral power of two (2n), then the wave resulting from the IFFT is complex. If the number of points in the wave is one greater than an integral power of two (2n+1), then the wave resulting from the IFFT is real and twice as long (2n+1).
If the number of points is not one of the two magic values, then the result from the inverse transform is real unless the complex result is selected in the above dialog.


Good luck,
Nick
The user-contributed DeconvolveFunctions.zip file is not appropriate for what I would like to do.
Actually, my signal is too noisy to get a good FFT, and therefore, a good deconvolution.
I have tried many things like filtering my FFT, but nothing worked.
So i give up unless somenone tell me the solution.
Thanks for your help.
Best regards.
restedumonde wrote:
The user-contributed DeconvolveFunctions.zip file is not appropriate for what I would like to do. ...


The procedures in DeconvolveFunctions.zip file are from a far older version of Igor than I care to admit. They are in serious need of updating for Igor 6. They use a Jansson algorithm (http://www.amazon.com/reader/0123802229?_encoding=UTF8&ref_=sib_dp_pt#r…), and the approach taken in the coding likely also needs updating to newer methods.

As for your particular problem of having noisy data, excessively noisy data will not deconvolve will with the above algorithm. You would do well to smooth it first, paying of course close attention to any spectral broadening that might be introduced by the smoothing operation itself. Since you mentioned working in the FFT domain, have you tried applying a Gaussian FFT filter operation to remove the high frequency noise before doing further operations? Finally, somewhere in my archives of literature on methods I have recollection of a report on a method that combines both the FFT smoothing and deconvolution operations in one step for abstracting information such as you want from noisy data. If nothing else, this suggests that an approach to smooth the data via a Gaussian FFT filter and then deconvolve also in FFT should work.

In any event, making updates to the DeconvolveFunctions for Igor Pro 6 are on my ToDo list.

--
J. J. Weimer
Chemistry / Chemical & Materials Engineering, UAH
restedumonde wrote:
The user-contributed DeconvolveFunctions.zip file is not appropriate for what I would like to do.
Actually, my signal is too noisy to get a good FFT, and therefore, a good deconvolution.
I have tried many things like filtering my FFT, but nothing worked.
So i give up unless somenone tell me the solution.
Thanks for your help.
Best regards.


Hello,

I am struggling with the pump-probe deconvolve data fitting using IGOR 6. Could you please give me some idea.

Thanks,
Henry wrote:

I am struggling with the pump-probe deconvolve data fitting using IGOR 6. Could you please give me some idea.


The Jansson approach is implemented in the Spectral Deconvolution Demo (File Menu->Example Experiments->Analysis). It was written in 2004 so it should run on IP6.

A.G.
WaveMetrics, Inc.
Igor wrote:
Henry wrote:

I am struggling with the pump-probe deconvolve data fitting using IGOR 6. Could you please give me some idea.


The Jansson approach is implemented in the Spectral Deconvolution Demo (File Menu->Example Experiments->Analysis). It was written in 2004 so it should run on IP6.

A.G.
WaveMetrics, Inc.


Appreciate for your information.

Best regrads