VISUALIZATION: GRID MAPPING FRESNEL DIFFRACTION By Laurence Hassebrook 11-28-2011 Reproduce Figs. 3 through 7 for credit equal to the HW problems. SCALAR FIELD MODEL The scalar field model is a complex exponential. It does not include E and B fields or polarization. But it works quite well for coherent light holography and acoustic imaging. Other references for use of this model are Fourier optics, [1] diffraction optics, holography, array signal processing[2-4] and acoustic imaging. The field equation is f (r ) = B exp⎛⎜ − j 2πf c t − j 2π r ⎞⎟ λs ⎠ r ⎝ (1) where r is the distance from the point source, B is a scaling constant, fc is the frequency in cycles/second, λc is the temporal wavelength in sec/cycle and λs is the spatial period in mm/cycle. If c is the speed of the wavefront in a particular medium then the relationship between the temporal wavelength and the spatial wavelength is given by λ s = c λc (2) Fig. 1 shows the relationship in distance r from the point source to various terminology. The scalar model is valid in the “far field” where the distance from the source is much greater than the spatial period. The far field is divided into two regions, the Fresnel and Fraunhofer regions. This discussion is about the Fresnel region where the wavefront is spherical. Later discussion will be about the Fraunhofer region where the wavefront from the point source approaches a plane wave. Space in general, has a transfer function that is a complex exponential with quadratic phase. At large distances, the quadratic phase approaches a linear one, thus in the Fraunhofer region, we have the Fourier transform of the source. As it turns out, an optical lens will compress space such that the Fraunhofer field at infinity is moved to the focal plane of the lens. Thus, in diffractive optics, an ideal lens can be used to perform a Fourier transform on an input field in the front focal plane at exactly 2 focal lengths. In acoustic applications, the lens can be replaced with electronic delays to an array of transducers as shown in Fig. 2. 1 Figure 1: Relationship between the wavefront source and different regions represented by wave models. Fig. 2 shows the layout of a 10 sensor array with the grid map region relatively close to the array and indicated by the rectangular border. The focal point is defined to be where all wavefronts arrive at the same time. It is determined by the temporal signal delays for each sensor and the grid map field value at any point {xg, yg} in the grid map is given by ⎞ ⎛ j 2π rn B exp⎜⎜ − j 2πf c t − − j Δθ n ⎟⎟ λs n =1 rn ⎠ ⎝ f grid (x g , y g ) = ∑ Ns ⎛ − j 2π (rn − Δrn ) ⎞ 1 ⎟⎟ = B exp(− j 2πf c t )∑ exp⎜⎜ λs n =1 rn ⎠ ⎝ Ns (3) where Δrn is the effective distance decrease in distance caused by the phase delay for each sensor n. The distance rn is the distance from the nth sensor at {xs,n, ys,n} to the grid point {xg, yg} such that: rn = (x − x g ) + ( y s ,n − y g ) 2 s ,n 2 (4) 2 The contour plot of the log amplitude of Eq. (3) is superimposed on the layout in Fig. 2 (right). Note that the amplitude increases with the square near the sensors but has a peak at the focal point which is set to be the center of the grid map region. Figure 2: (left) Transducer/sensor array and grid map layout. (right) An example amplitude field (in dB) superimposed on the layout. In this example there are 10 sensors and the grid map is positioned near to the array. NUMERICAL IMPLEMENTATION OF THE FRESNEL MODEL We begin the numerical implementation by defining the physical length of the array between +/– Ha along the Y axis and at X=0, with Ns=40 and the spatial wavelength a function of the spacing between the sensors such that: % Fresnel Model clear all; % Parameters % x0,y0,x1,y1 of linear array (example in mm) Ha=300; xa0=0;ya0=-Ha/2;xa1=xa0;ya1=Ha/2; % Number of sensors Nsensors=40; % wavelength of standing wave lamda= (Ha/(Nsensors-1))*1 The grid map region is positioned 250 mm from the array but with the same length and centered about the X axis such that: % xg0,yg0,Wg,Hg of grid map region Wg=300;Hg=Wg; xg0=250; yg0=-Hg/2;xg1=xg0+Wg;yg1=Hg/2; % grid map size Nx=512;My=Nx; 3 The focal point is defined to be in the center of the grid map such that % choose a focal point of sensor to be in center of grid map xf=(xg1+xg0)/2;yf=(yg1+yg0)/2; The array sensor coordinate coefficients are calculated as % grid map coefficients of sensors % ay= (yg1-yg0)/(My-1); by=yg0-ay; aay= (ya1-ya0)/(Nsensors-1); bay=ya0-aay; The focal point is used to calculate the delay values in terms of fractional distance Rdelay such that: % determine delay vector Adelay=zeros(1,Nsensors); Rdelay=zeros(1,Nsensors); for n=1:Nsensors % determine distance rs to sensor xs=xa0;ys=aay*n+bay; rsg2=(xs-xf).^2+(ys-yf).^2; rsg=sqrt(rsg2); Rdelay(n)=rsg; end; % n Rdelay=Rdelay-min(Rdelay); Adelay=Rdelay/lamda; Figure 3: Fractional distance delays for each sensor in array. The fraction is multiplied by the spatial wavelength to obtain the actual delay in spatial distance. 4 The distances are reduced by subtracting away the shortest distance to the focal point from all sensor paths. Thus the delay is obtained to make all distances equal by a fractional value of the spatial wavelength. Note that this fraction can be multiple wavelengths as shown in Fig. 3. The grid mapping coefficients are determined as: % grid map coefficients between u,v and x,y % xg0=ax*1+bx, xg1=ax*Nx+bx, yg0=ay*1+by, yg1=ay*My+by % ax= (xg1-xg0)/(Nx-1); bx=xg0-ax; % ay= (yg1-yg0)/(My-1); by=yg0-ay; ax= (xg1-xg0)/(Nx-1); bx=xg0-ax; ay= (yg1-yg0)/(My-1); by=yg0-ay; Given the delays and mapping coefficients, the field is grid mapped by the following code: % Loop through grid map Gmap=zeros(My,Nx)+i*zeros(My,Nx); for u=1:Nx for v=1:My % loop through sensor contribution xg=ax*u+bx; yg=ay*v+by; for n=1:Nsensors % determine distance rs to sensor xs=xa0;ys=aay*n+bay; rsg2=(xg-xs).^2+(yg-ys).^2; rsg=sqrt(rsg2); coef=1/rsg; %coef=1; rsg=rsg-lamda*Adelay(n); phaseangle=2*pi*rsg/lamda; field=coef*cos(phaseangle)+i*coef*sin(phaseangle); Gmap(v,u)=Gmap(v,u)+field; end; % n end; % v end; % u The resulting grid map contour is shown in Fig. 4. The Eq. 3 intensity does not include the temporal term and is only dependent on the spatial information such that f grid (x g , y g ) 2 ⎛ − j 2π (rn − Δrn ) ⎞ 1 ⎟⎟ = B ∑ exp⎜⎜ λs n =1 rn ⎝ ⎠ 2 Ns 2 (5) 5 Figure 4: Gray level contour of field intensity in grid map region. A 3-D representation is shown in Fig. 5. Note that the most peak blurring occurs along the X direction and that there is noticeable sidelobe response closer to the array. Figure 5: 3‐D representation of the grid map intensity. 6 A log of Fig. 4 contour is shown in Fig. 6. Notice the interference causing the sidelobe responses. Also note that because the model can go near zero value, we added 1/100 of the maximum amplitude before taking the log to prevent the low values from dominating the log plot. Figure 6: Colorized log plot of the contour in Fig. 4. Try changing parameters to sharpen the peak as shown in Fig. 7. There are different ways to do this such as increasing the array length, or increasing the number of sensors or decreasing the wavelength. We locked the wavelength so that it would be equal to the distance between sensors but what if the wavelength was 1/10 of the distance? What happens to the response then? Figure 7: By increasing number of sensors and decreasing the spatial wavelength, the peak is sharpened for more imaging resolution. 7 REFERENCES 1. J.W. Goodman, Introduction to Fourier Optics, McGraw Hill Book Company, San Francisco, 1968. 2. Mehroad Soumekh, Fourier Array Imaging, Prentice Hall, Inc. Englewood Cliffs, New Jersey, 1994. 3. D. H. Johnson and D. E. Dudgeon, Array Signal Processing, Concepts and Techniques, Series editor A.V. Oppenheim, Prentice Hall, Inc. Englewood Cliffs, New Jersey, 1993. 4. S. Unnikrishna Pillai, Array Signal Processing, Springer-Verlag New York Inc., 1989. APPENDIX: Graphing Code % fractional wavelength delays figure(1) plot(Adelay); title('Sensor Signal Delay') xlabel('Sensor Index'); ylabel('Delay Fraction of Wavelength'); print -djpeg figure1 figure(2); imagesc(abs(Gmap).^2); colormap gray; %colormap(vga); title('3-D surface contour of field magnitude') xlabel('X direction'); ylabel('Y direction'); print -djpeg figure2 figure (3) colormap(gray); colormap(vga); colormap(jet); surf(abs(Gmap).^2); shading interp title('3-D surface topology of field magnitude') xlabel('X direction'); ylabel('Y direction'); print -djpeg figure3 figure(4); maxG=max(max(abs(Gmap).^2)); imagesc(log(abs(Gmap).^2+maxG/1000)); colormap gray; colormap(jet); title('3-D surface contour of field Log(magnitude)') xlabel('X direction'); ylabel('Y direction'); print -djpeg figure4 8