create_Exponential_3D

pyspeckle.pyspeckle.create_Exponential_3D(M, pix_per_speckle, alpha=1, beta=1, shape='ellipsoid', polarization=1)[source]

Generate an M x M x M polarized, fully-developed speckle irradiance pattern.

The speckle pattern will have an exponential probability distribution function that is spatially bandwidth-limited by the specified pixels per speckle.

The resolution is specified by the parameter pix_per_speckle and refers to the smallest speckle size. Thus pix_per_speckle=2 means sampling is at the Nyquist limit and pix_per_speckle=4 will have four pixels across the smallest speckle.

Non-circular speckle is supported using alpha and beta. This is defined as the ratio of x-speckle size to y-speckle size (or x to z). alpha=1 is circular and alpha=2 will have speckles that with y-dimensions that are twice the x-dimension.

see Duncan & Kirkpatrick, “Algorithms for simulation of speckle,” in SPIE Vol. 6855 (2008)

Parameters
  • M – dimension of desired square speckle image

  • pix_per_speckle – number of pixels per smallest speckle.

  • alpha – ratio of x to y speckle size

  • beta – ratio of x to z speckle size

  • shape – ‘cube’, ‘shell’, or ‘ellipsoid’

  • polarization – degree of polarization (0-1)

Returns

M x M X M speckle image