Convolution / Deconvolution
restedumonde
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.
ftp://ftp.wavemetrics.net/IgorPro/User_Contributions/DeconvolveFunction…
--Jim Prouty
Software Engineer, WaveMetrics, Inc.
February 18, 2010 at 12:59 pm - Permalink
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:
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.
Good luck,
Nick
February 18, 2010 at 08:14 pm - Permalink
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.
March 5, 2010 at 02:47 am - Permalink
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
March 5, 2010 at 03:02 pm - Permalink
Hello,
I am struggling with the pump-probe deconvolve data fitting using IGOR 6. Could you please give me some idea.
Thanks,
January 24, 2018 at 11:45 am - Permalink
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.
January 24, 2018 at 11:57 am - Permalink
Appreciate for your information.
Best regrads
January 24, 2018 at 12:14 pm - Permalink