Deconvolution of Gaussian from Polynomial Function: Axis-symmetry and Vector-Length-Dependence

10 views (last 30 days)
Hi to all,
In my simulation, interference data is smeared out by something like a Gaussian compared to theory. This can be checked by convolving theory and a Gaussian. However, the optimal function (instead of a simple Gaussian) to convolve has still to be found. The Gaussian was chosen as the smearing results inter alia from an extended Gaussian beam. In the end, I have to find extrema and their position according to theory.
That's why I want to recalculate the actual data (ideally the theory) by deconvolution. Therefore, I make a polynomial fit over the simulation data and deconvolve the Gaussian from the polynomial function afterwards. For better understanding, here a plot and attached the MATLAB code with simulation data:
My questions are now:
  • Why is the convolution of the two axis-symmetric functions of Theory and Gaussian not axis-symmetric itself?
  • Why is the result from deconvolution strongly dependent on the length/size of the response vector (here the Gaussian)? For convolution, the length of this vector seems to be non-effective.
  • Does anybody possibly have an idea with which function one has to convolve theory to end up at the simulation?
I would be glad to get some hints or ideas from you to better perform data recalculation.
Thanks a lot, Ka

Accepted Answer

Chris Turnes
Chris Turnes on 2 Sep 2015
To answer your first question, the first input to conv on line 33 is not symmetric; this is why your output is not symmetric.
Second, "deconv" is using Euclidean division of polynomials. In general, this problem may not be solvable, and tends to get harder as the second input gets longer relative to the first. The assumption in using "deconv" to begin with is that, if the vectors v and u represent polynomials, then for two polynomials q and r we have v = q*u + r, where r is smaller than u. If you can't actually write v like that, the results deconv gives you might be nonsense. For instance, consider:
>> a = conv([1 1], [1 -1]);
>> q = deconv(a, [1 2])
q =
1 -2
>> conv(q, [1 2])
ans =
1 0 -4
>> a
a =
1 0 -1
Here, a is the result of convolving [1 1] with [1 -1]. If I then try to "deconvolve" [1 2] out of the result, I end up with essentially nonsense.
If your ultimate goal is to fit to your data a model that is a sum of several Gaussian signals, you might consider looking into Gaussian mixture models.

More Answers (0)

Categories

Find more on Polynomials in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!