DSPRelated.com
Forums

anybody knows how to do de-convolution?

Started by lucy July 28, 2004
Hi all,

I have a filter and want to inverse the filtering step, what can I do?

Please help me. Thanks a lot,

-Lucy


if your filter is constant, simply design the inverse filter for it.
the simplest way is using DFT, reciprocate and IDFT. If your filter is
variable or quasi stationary, use Adaptive signal processing
techniques like LMS, RLS. In any case, the signals that pass thro the
"zero" part of the spectrum of the signal cannot be  retreived back.

amar

"lucy" <losemind@yahoo.com> wrote in message news:<ce9dk6$7h3$1@news.Stanford.EDU>...
> Hi all, > > I have a filter and want to inverse the filtering step, what can I do? > > Please help me. Thanks a lot, > > -Lucy
"lucy" <losemind@yahoo.com> wrote in message news:<ce9dk6$7h3$1@news.Stanford.EDU>...
> Hi all, > > I have a filter and want to inverse the filtering step, what can I do? > > Please help me. Thanks a lot, > > -Lucy
The inverse filtering problem is generally a difficult one to solve. To get the notation straight, express the filter as [use fixed-width fonts to view figure] +----------+ x[n] o-----| h[n] |-----o y[n] +----------+ y[n]=x[n] (*) h[n] (1) where (*) means convolution. In frequency domain, this becomes Y(w)= X(w)*H(w) (2) where * means multiplication. Now, the naive approach would be to reorder (2) as Y(w) X(w)= -------- (3) H(w) assuming now that Y(w) is observed and H(w) is known. The problem is that H(w)=0 for some w, which means that the expression (3) blows up and the resulting X(w) will show a resonance at this w. This happens at those frequencies w that are completely cancelled by the filter, which isn't very good at all. So the alternative approach is to design some filter f[n] such that (ideally) h[n] (*) f[n] = d[n] (4) where d[n] is the Kronecker Delta sequence. This is not very easy in practice, it usually involves solving some sort of Least Mean Squares problem. There are several ways of attacking this problem, depending on how the problem is conditioned. If we are talking about a deterministic h[n], the solution is a "matched filter". If we are talking about a statistical description of a stochastic process, the solution is an "AR predictor" based on solving the Yule-Walker equations. If we are talking about a statistical signal heavily contaminated by noise of known covariance structure, the solution is a "Wiener filter". Rune
"amara vati" <amaraavati@yahoo.com> wrote in message
news:f89b870.0407290307.277c4015@posting.google.com...
> if your filter is constant, simply design the inverse filter for it. > the simplest way is using DFT, reciprocate and IDFT. If your filter is > variable or quasi stationary, use Adaptive signal processing > techniques like LMS, RLS. In any case, the signals that pass thro the > "zero" part of the spectrum of the signal cannot be retreived back. > > amar > > "lucy" <losemind@yahoo.com> wrote in message
news:<ce9dk6$7h3$1@news.Stanford.EDU>...
> > Hi all, > > > > I have a filter and want to inverse the filtering step, what can I do? > > > > Please help me. Thanks a lot, > > > > -Lucy
Hi, fortunately it is static/constant, and it is something similar to a Gaussian. so I did the following: f=fspecial('Gaussian', [Height, Width]); g=abs(fftshift(fft2(f))); mesh(g); max(g(:)) --- 1.0000 min(g(:)) --- 0.3324 there is no zero here, so I can safely inverse this spectrum, then do IDFT, right? Thanks a lot
lucy wrote:

> I have a filter and want to inverse the filtering step, what can I do?
See: Deconvolution of Images and Spectra by Peter A. Jansson -- glen