Antenna Radiation - Steering Animation   This slideshow (animation) shows how a beam is steered by the time difference between pebbles impacting on the surface of water . The animation goes as follows : (NOTE : Compare this example with this case and see how the impact time difference lead to the overall waveform) i) 8 pebbles are falling at different time. In this example, the left most pebble is falling at first and the second from the lest is falling next and third one and so on. The distance between one pebble and another pebble right next to it is exactly same. Each of the pebble is equivalent to each antenna element in an antenna array and the distance between each pebble is equivalent to the distance between each antenna element in the array antenna. ii) The 8 pebbles are impacting on the surface of water at different timing. This is equivalent to the case in array antenna where the signal phase from each antenna element is different meaning there is some phase difference between one antenna and another antenna right next to it. iii) Water waves are generated from each of the pebble and propagate in all direction. iv) As waves propagates, they interfere each other constructively at some point and destructively at some other points. This inferference forms a pattern in which some are shows high wave crest and some other area shows low trough. This pattern is equivalent to a beam formed by an array atenna.

 The code simulates antenna steering by coherently combining element patterns with a progressive phase shift between elements. The beam direction is controlled by the starting phase and inter-element phase shift. Key steps: Create meshgrid for radiation pattern plot Set number of elements n and spacing k Define initial phase p and phase shift amount s Loop through elements, incrementing phase each time Add up radiation pattern from each element Plot 3D pattern surface from two views Key parameters: n - number of antenna elements k - spacing between elements p - starting phase at first element s - phase shift amount between elements Varying n and k changes number of lobes Varying p steers the initial beam direction Varying s changes the scan angle     < Code 1 >   function main    xstep = -10*pi:pi/10:10*pi; ystep = -10*pi:pi/10:10*pi;; [X,Y] = meshgrid(xstep,ystep);   n=8; % should be even integer k=2; p = 36*pi/4; s = (2*pi/10); m = 0;   Z = zeros(length(xstep)); for i = ((0:(n-1))-((n-1)/2))   [X1,Y1] = meshgrid(xstep+(i*pi/k),ystep);   Z = Z+(waveCosPh(X1,Y1,p+m*s,p));   m = m+1; end;   hFig = figure(1,'Position',[300 300 700 280]); subplot(1,2,1); surface(X,Y,Z,'edgecolor','none'); xlim([-10*pi 10*pi]);ylim([-10*pi 10*pi]);zlim([-10,10]); view([-40 70]); set(gca,'xticklabel',[]); set(gca,'yticklabel',[]); set(gca,'zticklabel',[]); set(gca,'xtick',[]); set(gca,'ytick',[]); set(gca,'ztick',[]);   subplot(1,2,2); surface(X,Y,Z,'edgecolor','none'); xlim([-10*pi 10*pi]);ylim([-10*pi 10*pi]);zlim([-10,10]); view([0 90]); set(gca,'xticklabel',[]); set(gca,'yticklabel',[]); set(gca,'zticklabel',[]); set(gca,'xtick',[]); set(gca,'ytick',[]); set(gca,'ztick',[]);   end   function z = waveCosPh(x,y,Ph,r)    d = sqrt(x.^2 + y.^2)-Ph;  dim = size(d);  dr = dim(1);  dc = dim(2);    for i = 1 : dr      for j = 1 : dc          if d(i,j) > r             d(i,j) = pi/2;          end;          end;       end;        %z = cos(d-Ph);  z = cos(d);   end