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