       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 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*)

>

>

> (*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,

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

>

>

> (*Graphics3D[Beam]

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

>

>

> 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