Scilab Function
Last update : 24/8/2006

fresnel - propagates the field by direct integration as a convolution.

Calling Sequence

[field_out]=fresnel(field_in,z)

Parameters

Description

Another possibility of a fast computer propagation is free from many of the drawbacks of the spectral algorithm of forvard. The operator may be numerically implemented with direct summation of the Fresnel-Kirchoff diffraction integral:

with functions U(x,y,0) and U(x,y,z) defined on rectangular grids. This integral may be converted into a convolution form which can be efficiently computed using FFT method. This method is free from many drawbacks of the spectral method implemented by forvard, although it is still very fast due to its use of FFT for computing of the integral sums.

We'll explain this using two-dimensional example. Let the integral is defined in a finite interval (-L/2 to L/2):

Replacing functions U(x) and U(x1) with step functions Uj and Um , defined in the sampling points of the grid with j=0...N , and m=0...N we convert the above integral to the form:

Taking above integrals we obtain:

where: Km0,Kmj,Kmn are all analytically expressed with the help of Fresnel integrals, depending only onto the difference of indices. the Sums term can be easily calculated for all indices m as one convolution with the help of FFT.

fresnel implements this above algorithm for two-dimensional diffraction integrals.Features to be taken into account:

It is almost as fast as forvard (still 2 to 5 times slower), it uses 8 times more memory (to perform the two-dimensional convolution) than forvard and it allows for ''more honest'' calculation of Fresnel diffraction.

As it does not require any protection bands at the edges of the region, the model may be built in a smaller grid, therefore the resources consumed and time of execution are comparable or even better than that of forvard .

fresnel does not accept negative propagation distance.

When possible fresnel has to be used as the main propagation engine within SAO toolbox.

fresnel does not produce valid results if the distance of propagation is comparable with (or less than) the characteristic size of the aperture, at which the field is diffracted. In this case forvard or steps should be used.

Examples

	f1=begin(0.02,1e-6);
	f2=circ_ap(f1,0.005);
	f3=fresnel(f2,1);
	field_plot(f3);
	
	cros_out(f3,"file1");	
	temp = fscanfMat('file1.txt');
	x=zeros(1,256);int_x=zeros(1,256);
	x(:)=temp(:,1);int_x(:)=temp(:,2);
	plot2d(x,int_x);	
 

Author

Chen jingyuan, Gan guangyong (IAPCM, Beijing,China.)

See Also

forvard ,   forward ,   steps ,   lens_fresnel ,   geom_propagation ,   near_angular ,   near_fresnel ,   far_fresnel ,   fraunhoffer_grt ,   fresnel_grt ,   propagate ,