Antenna Radiation - Ripple Animation

 

This slideshow (animation) shows how a beam is formed by the interference of multiple individual waves (water wave in this example). The animation goes as follows :

    i) 8 pebbles are falling from the same height and with exact same velocity. 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 all at the same time. This is equivalent to the case in array antenna where the signal phase from each antenna element is same meaning there is no 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.

 

 

 

 

 

 

Followings are the code that I wrote in Octave 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 >

 

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;

 

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,p));

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