MathGroup Archive 2007

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

Search the Archive

Re: 2D Convolution

  • To: mathgroup at smc.vnet.net
  • Subject: [mg76061] Re: 2D Convolution
  • From: dh <dh at metrohm.ch>
  • Date: Tue, 15 May 2007 05:04:58 -0400 (EDT)
  • References: <f29389$m7p$1@smc.vnet.net>


Hi Mathieu,

Note that the Gaussian and Hole covolution is symmetrical and can 

therefore done as a much simplier 1 dim problem. However, if you need 

2dim, I would advice, due to computing time, to approximate the 2D 

convolution by a numerical approximation. Here is a small example:

Hole[x_,y_]:=If[0.2<x^2+y^2,0,1];

Gaussian[x_,y_]:=Exp[-10(x^2+y^2)];

fun[x_/;NumericQ[x],y_]:=

   NIntegrate[Gaussian[x-xx,y-yy] Hole[xx,yy],{xx,-2.,2.},{yy,-2.,2.}]  ;

fun1=FunctionInterpolation[ fun[x,y]  ,{x,-1.,1.},{y,-1.,1.}]

hope this helps, Daniel



Mathieu G wrote:

> Hello,

> I need your help on this problem please!

> I would like to compute + plot a 2D convolution between a disk- or 

> square shaped hole, and a 2D Gaussian.

> Here is where I am so far...

> 

> 

> HoleSize = 300*^-9; (*Radius or side length*)

> BeamRadius = 3.81*^-6;

> 

> Gaussian2D[x_, y_] := Exp[-((x/BeamRadius)^2 + (y/BeamRadius)^2)/2];

> 

> (*Disk-shape hole*)

> DHole = Disk[{0, 0}, HoleSize/2];

> 

> (*Square-shape hole*)

> SHole = Rectangle[{-HoleSize/2, -HoleSize/2}, {HoleSize/2,

>      HoleSize/2}];

> 

> Plot3D[Gaussian2D[x, y], {x, -4 BeamRadius,

>    4 BeamRadius}, {y, -4 BeamRadius, 4 BeamRadius},

>   ColorFunction -> "Rainbow", PlotRange -> Full]

> 

> Beam = Gaussian2D[{x, -5 BeamRadius, 5 BeamRadius}, {y, -5 BeamRadius,

>       5 BeamRadius}];

> 

> (*Graphics3D[Beam]

> Graphics[{Red,SHole,Orange,DHole},Frame->True]*)

> 

> 

> Every advice welcome!

> Thank you,

> Mat'

> 




  • Prev by Date: Re: Converting Binary form to a desired array
  • Next by Date: Re : Re: Mathematica 6.0 - Legend
  • Previous by thread: Re: 2D Convolution
  • Next by thread: Re: 2D Convolution