Why does deconv.m produce inconsistent performance?

조회 수: 3 (최근 30일)
Jamie
Jamie 2014년 1월 24일
편집: Matt J 2014년 1월 25일
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
Image Analyst
Image Analyst 2014년 1월 25일
If you want people to answer, you should attach your data file and your m-file.
Jamie
Jamie 2014년 1월 25일
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?

댓글을 달려면 로그인하십시오.

답변 (1개)

Matt J
Matt J 2014년 1월 25일
편집: Matt J 2014년 1월 25일
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