Why does deconv.m produce inconsistent performance?

3 visualizaciones (últimos 30 días)
Jamie
Jamie el 24 de En. de 2014
Editada: Matt J el 25 de En. de 2014
My ultimate goal is to deconvolve two probability density functions (or histograms). I am testing the process by making a convolved file Y=conv(A,B) and then deconvolving it, [Adecond,R]=deconv(Y,B). I have tested this with short vectors of integers and it works perfectly i.e. Adecond=A and R=0. It has also worked well for B = an actual 93-element histogram and A= 601-element normal distribution. But when I change B to a 93-element normal distribution, Adecond is erroneous with many small values over most of the range of the distribution and about 20-30 large varying values at the end of the vector. R is zero except for the last 20-30 elements in the vector. Why is deconv succeeding with one vector B and failing miserably with another very similar B?
Thanks, Jamie
  2 comentarios
Image Analyst
Image Analyst el 25 de En. de 2014
If you want people to answer, you should attach your data file and your m-file.
Jamie
Jamie el 25 de En. de 2014
On further investigation, if B is not a pure Gaussian distribution, the conv-deconv seems to work. Is there a reason a pure clean Gaussian distribution can't be run through this prices against another nominally Guassian distribution?

Iniciar sesión para comentar.

Respuestas (1)

Matt J
Matt J el 25 de En. de 2014
Editada: Matt J el 25 de En. de 2014
I imagine because deconvolution by a Gaussian/normal distribution is ill-posed. A Gaussian filter's Fourier spectrum falls off very fast at high frequencies, making it's inverse filter very unstable. You might try deconvreg, if you have the Image Processing Toolbox, or some other regularized deconvolution scheme.

Community Treasure Hunt

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

Start Hunting!

Translated by