Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: maximum entropy method for deconvolution

  • To: mathgroup at smc.vnet.net
  • Subject: [mg75469] Re: maximum entropy method for deconvolution
  • From: dantimatter <dantimatter at gmail.com>
  • Date: Wed, 2 May 2007 03:49:06 -0400 (EDT)
  • References: <200704281000.GAA09123@smc.vnet.net><f146p6$mcq$1@smc.vnet.net>

Thanks to all for the help, and a special thanks to Guillermo Sanchez
for the Modeling and Simulation notebook.  I'm finding that my answer
is still 'unpleasant'.  Could it be that the convolution of a function
with a step-function is something that simply cannot be deconvolved?
That perhaps there's information lost in the convolution and it could
never be recovered?

Dan

On Apr 30, 2:44 am, "turnback" <turnb... at bluebottle.com> wrote:
> Hi,
>
> Your problem is a deconvolution problem.  It is difficult in general.  But
> since your function p is simply a rectangle function, things may not be that
> bad.
>
> Let me define t0:=33.6, g(t):=G, f(t):=F
>
> Then according to the definition of convolution, we can get:
>
> g(t)=Integrate[f(s), {s, t-t0, t}]
>
> and for any small dt, we can get:
>
> ==>  g(t+dt)=Integrate[f(s), {s, t+dt-t0, t+dt}]
>
> ==>  g(t+dt)-g(t)
> =Integrate[f(s), {s, t+dt-t0, t+dt}]-Integrate[f(s), {s, t-t0, t}]
> =Integrate[f(s), {s, t, t+dt}]-Integrate[f(s), {s, t-t0, t-t0+dt}]
> =Integrate[f(s)-f(s-t0), {s, t, t+dt}]
>
> define l(t):=f(t)-f(t-t0), then
>
> g(t+dt)-g(t)=Integrate[l(s), {s,t,t+dt}]
> ==>  Limit[(g(t+dt)-g(t))/dt,dt->0] = Limit[(Integrate[l(s),
> {s,t,t+dt}])/dt,dt->0]
>
> Suppose g(t) is differentiable, then
>
> ==> g'(t)=l(t)=f(t)-f(t-t0)
>
> then performing Fourier transform:
>
> ==>  I*w*G(w)=(1-Exp[-I*w*t0])*F(w)
>
> ==> F(w)=G(w)*I*w/(1-Exp[-I*w*t0])
>
> With inverse transform, you get f(t).
>
> By the way, According to my knowledge, p's Fourier transform is a Sinc
> function.  When you claim function p has a lot of zeros in the frequency
> domain, you may implement the transform by using Discrete Fourier Transform
> and you pick up a specific sampling rate.   If real time performance is not
> your concern, try to increase your sampling rate a lot.  You should get
> correct result with your original approach.
>
> After all, I just realise that instead of writing
> p=UnitStep[t]*UnitStep[33.6-t], you can write it as:
> p[t]=UnitStep[t]-UnitStep[t-33.6].  You may find much easier proof.
>
> hui.
>
>
>
> ----- Original Message -----
> From: "dantimatter" <dantimat... at gmail.com>
> To: <mathgr... at smc.vnet.net>
> Sent: Saturday, April 28, 2007 6:00 AM
> Subject:  maximum entropy method for deconvolution
>
> > hello all,
>
> > first off, many thanks to 'Roman' et al for all the previous help with
> > my inversion problem.
>
> > i have a convolution function G which is the convolution of F and p (G
> > = F**p).   i know G and i know p, and i'd like to extract F.  i can do
> > this by taking the Fourier transform of G, dividing by the Fourier
> > transform of p, and inverting the result to get F.  the problem is
> > that p is a step function (p = UnitStep[t]*UnitStep[33.6-t]) which has
> > a lot of zeros in frequency space, and thus  it is difficult to get at
> > F via inversion.  Mathematica is happily doing the inversion but the
> > results are very noticeably wrong.
>
> > i understand from my conversations with some of you and much time
> > spent in the library that this is in general a difficult problem, but
> > there are some methods that are known to make this type of problem
> > tractable, such as the maximum entropy method (MEM) for inversion.  is
> > anyone aware of an implementation of a MEM algorithm in Mathematica?
> > i have read Numerical Recipes a couple of times and i am unable to get
> > my head around the relevant chapter.  If there isn't a Mathematica
> > implementation, perhaps someone could offer some advice on where else
> > to look?  if it exists, a "for dummies" type book with step-by-step
> > instructions would be the best resource for me...
>
> > cheers,
> > dan
>
> ----------------------------------------------------------------------
> Find out how you can get spam free email.http://www.bluebottle.com




  • Prev by Date: Re: Running a loop for Maximizing problem
  • Next by Date: Re: Simplification
  • Previous by thread: Re: Frustrated with Plotting
  • Next by thread: Re: Re: maximum entropy method for deconvolution