Steering a Array Antenna - 8x8     In this tutorial, you will see the examples of beam steering in horizontal direction (changing the direction of the beam) for 8x8 antenna..   Click on Next and Prev button so that some intuitive images forms in your head.   For more theoretical explanation related to these slides, I would suggest you to look into another form of my notes listed below.

 Followings are the code that I wrote in Matlab Phased Array System Toolbox  to creates all the plots shown in this page. You may copy these code and play with these codes. Change variables and try yourself until you get your own intuitive understanding.   < Code 1 >     c = 3e8;        % propagation speed fc = 26e9;      % carrier frequency lambda = c/fc;  % wavelength AntArray = [8 8];   d_scale = 1.00; txarray = phased.URA('Size',AntArray,'ElementSpacing',[d_scale*lambda/2 d_scale*lambda/2]); txarray.Element.BackBaffled = true;   a = 0; e = 0; startA = 0; startE = 0; stepA = 1; stepE = 1; steer_ang = [startA + a*stepA; startE - e*stepE]; stv = phased.SteeringVector('SensorArray',txarray); w = stv(fc,steer_ang);   hFig = figure(1); set(hFig,'Position',[300 100 800 600]); set(gcf,'color','w');   subplot(2,2,1); pattern(txarray,fc,[-180:180],[-90:90],...     'PropagationSpeed',c,...     'CoordinateSystem','polar',...     'Type','powerdb', ...     'Weights',w) view(90,20);   sTitle = sprintf("Antenna Array = %d by %d\nSteering Angle=[%d %d]\nd = %0.2f half wavelength",...                  AntArray(1),AntArray(2),steer_ang(1),steer_ang(2),d_scale); title(sTitle,'FontWeight','normal'); set(gca,'fontsize',8);   subplot(2,2,2); hold on; for y = 1:8   for x = 1:8      circle(x,y,0.5);      vx1 = x;      vy1 = y;      vx2 = x + 0.5*real(w(8*(x-1)+y));      vy2 = y + 0.5*imag(w(8*(x-1)+y));      line([vx1 vx2],[vy1 vy2],'Color','red');      plot(vx2,vy2,'ro','MarkerFaceColor',[1 0 0],'MarkerSize',3);   end end   axis([0 9 0 9]); title('Steering Weight','FontWeight','normal'); set(gca,'xticklabel',[]);set(gca,'yticklabel',[]); set(gca,'xtick',[]);set(gca,'ytick',[]); set(gca,'fontsize',8); daspect([1 1 1]); box on; hold off;   subplot(2,2,3);   [pat,azimuth,elevation] = pattern(txarray,fc,0,[-90:90],...     'PropagationSpeed',c,...     'CoordinateSystem','polar',...     'Type','directivity', ...     'Weights',w ...     ); pat(isinf(pat)|isnan(pat)) = -40; pat(pat<=-40) = -40; polarplot(elevation*pi/180,pat,'r-'); rlim([-40 30]); rticks([-40 -20 0 10 20 30]); title('Directivity(dBi)[Elevation @ Azimuth = 0]','FontWeight','normal'); set(gca,'fontsize',8);   subplot(2,2,4); [pat,azimuth,elevation] = pattern(txarray,fc,[-180:180],0,...     'PropagationSpeed',c,...     'CoordinateSystem','polar',...     'Type','directivity', ...     'Weights',w); pat(isinf(pat)|isnan(pat)) = -40; pat(pat<=-40) = -40; polarplot(azimuth*pi/180,pat,'r-'); rlim([-40 30]); rticks([-40 -20 0 10 20 30]); title('Directivity(dBi)[Azimuth @ Elevation = 0]','FontWeight','normal'); set(gca,'fontsize',8);   function circle(x,y,r)     t = linspace(0,2*pi,20);     plot(x+r*cos(t),y+r*sin(t),'k-'); end