Array Antenna: Taylor Synthesis for Low Sidelobe Level (SLL) using Matlab Code

Antenna array is one of the most useable technologies in modern and latest communication systems like 5G. The 5G communications adopt the millimeter wave (mm-wave) and beamforming technologies based on antenna arrays, to improve the spectral efficiency and communication rate of the system. Antenna arrays are used to obtain narrow beamwidth, high directivity, beamforming and low side-lobes pattern characteristics. In many applications, low sidelobe level (SLL) is an essential feature of beamforming array antenna system. A directional main lobe with the low SLL of the beam pattern will effectively enhance the communication quality and reduce the interferences. There is a trade-off between the directivity of the array and SLL.

Over the years, some key optimization techniques have been developed to suppress high SLL of antenna beam pattern. Amplitude weighting of array elements is a popular approach for SLL reduction. The technique of amplitude-only control is a simple method as it changes only the current amplitude excited at each element. By amplitude tapering of the array elements, the SLL of the array can be suppressed. Taylor amplitude excitation yields a pattern that is an optimum compromise between directivity and SLL.

Matlab Code

  • Language: Matlab (2018B)
  • Download: Matlab code is given below

Output Plot

Output of Taylor Synthesis

Output of Taylor Synthesis


 

———————Matlab Code————–

function [fm,im] = taylorsyn(N,SLL,nb,dx)
 
% Array antenna Tayler synthesis for low side lobe level% Program written by: Anil Kumar Pandey
 
%#######################################################################
% This function written in matlab, calculates Linear antenna array pattern coefficient base on Taylor Line source synthesis
% Example: run this in command line taylorsyn(32,-30,16,.8)

%#######################################################################

clear all;
format short;
 
% N=input(‘Enter number of elements=’);
% SLL=input(‘Enter the value of SLL=’);
% nb=input(‘Enter the value of nbar=’);
 
N=18;
SLL=-40;
nb=10;
dx=0.8;
lambda=1;
L=(N-1)*dx*lambda;
R=10.^(-SLL/20);
A=(1/pi)*acosh(R);
nb_check=(2*A^2)+1/2;fm=[];
 
if nb >= nb_check
for m=1:1:nb-1
c1= ((factorial(nb-1))^2)/((factorial(nb-1+m))*(factorial(nb-1-m)));
c2_s=[];
st=0;
for n=1:1:(nb-1)
nw= nb/(sqrt(A^2+(nb-1/2)^2));
zn= nw*sqrt(A^2+(n-1/2)^2);
c2= (1-(m^2/zn^2));
c2_s=[c2_s c2];
end
st=prod(c2_s);
fmv=st*c1;
fm=[fm fmv];
end
else
sprintf(‘Error: Wrong nb, please select proper value of nb’)
end
 

fm

%—————-Arranging coefficient for all elements——————-

fm3=[];
for k2=1:1:nb-1
fm2=fm(nb-k2);
fm3=[fm3 fm2];
end
fm3=[fm3 1];
fm4=[];
for k2=1:1:nb-1
fm2=fm(k2);
fm3=[fm3 fm2];
end
 

%————–Current Distribution Cal ———————-

im=[];
s2=[];
for s=-L/2:dx:L/2
s2=[s2 s];
ssum=0;
a1=lambda/L;
for k=1:1:nb-1
a2=fm(k)*cos(2*pi*(lambda/L)*k*s);
ssum=ssum+a2;
end
a3=a1*(1+2*ssum);
im=[im a3];
end
imim_v=im./max(im);
 

%—————Pattern calculation —————

dd=max(size(fm3));
bb=[];
ww=[];
pth=[];
for w=-1:.01:1 ww=[ww w];ss=0;
for n=((-nb+1):1:(nb-1))
b1=sin((w-(lambda*n/L))*L*pi/lambda)/((w-(lambda*n/L))*L*pi/lambda);n2=n+nb;
b2=fm3(n2)*b1;ss=ss+b2;
end
ss=ss;
pth=[pth ss];
end
 

%—————Half Power beamwidth —————————

HPwi=((2*lambda)/(L*pi))*sqrt((acosh(R))^2-(acosh(R/(sqrt(2))))^2);
HPi=2*asin((lambda/(L*pi))*sqrt((acosh(R))^2-(acosh(R/(sqrt(2))))^2))*180/pi;
HPw=nw*HPwi;
HP= 2*asin((lambda*nw/(L*pi))*sqrt((acosh(R))^2-(acosh(R/(sqrt(2))))^2))*180/pi;

%———————–All Data Plots————————————

mFigure = figure(‘Name’, ‘Linear Array Synthesis using Taylor Line Source ( Anil Pandey)’,

‘color’,[1,1,1],‘units’,‘centimeters’,‘resize’,‘off’,‘position’,[1 1 25 18]);

subplot(2,2,1);%Current Distribution Plot

plot(s2,im,‘–rs’,‘LineWidth’,2,

‘MarkerEdgeColor’,‘k’,

‘MarkerFaceColor’,‘g’,

‘MarkerSize’,10)

xlabel(‘L:(Line source length)’)

ylabel(‘Im(Current Distribution)’)

title(‘Current Distribution Plot’)

grid on

subplot(2,2,2);%Normalized Current Distribution Plot

plot(s2,im_v,‘–rs’,‘LineWidth’,2,

‘MarkerEdgeColor’,‘b’,

‘MarkerFaceColor’,‘r’,

‘MarkerSize’,5)

xlabel(‘L:(Line source length)’)

ylabel(‘Normalized Im(Current Distribution)’)

title(‘Normalized Current Distribution Plot’)

grid on

subplot(2,2,3); %Radiation Pattern Plot

pth2=abs(pth/max(pth));

pth3=20*log10(pth2);

plot(ww,pth3,‘LineWidth’,2)

xlabel(‘w=cos(theta)’)

ylabel(‘f(w)[dB]’)

title(‘Radiation Pattern Plot’)

grid on

%————————-Text data in figure——

htitle = text(‘units’,‘centimeters’,‘FontWeight’,‘bold’,‘position’,[6 15.7],‘fontsize’,11, ‘string’,‘Taylor Line Source Synthesis’);

htitle = text(‘units’,‘centimeters’,‘FontWeight’,‘bold’,‘position’,[12.5 6.2],‘fontsize’,11, ‘string’,‘———Synthesized Data———‘);

h2 = text(‘units’,‘centimeters’,‘Position’,[10 5.4],‘Fontsize’,11,‘String’,‘Number of Elements =’);

h3 = text(‘units’,‘centimeters’,‘Position’,[14.5 5.4],‘Fontsize’,11,‘String’,N);

h4 = text(‘units’,‘centimeters’,‘Position’,[10 4.8],‘Fontsize’,11,‘String’,‘Value of SLL =’);

h5 = text(‘units’,‘centimeters’,‘Position’,[14.5 4.8],‘Fontsize’,11,‘String’,SLL);

h6 = text(‘units’,‘centimeters’,‘Position’,[10 4.2],‘Fontsize’,11,‘String’,‘Value of nBar =’);

h7 = text(‘units’,‘centimeters’,‘Position’,[14.5 4.2],‘Fontsize’,11,‘String’,nb);

h8 = text(‘units’,‘centimeters’,‘Position’,[10 3.0],‘Fontsize’,11,‘String’,‘Half Power beamwidth (HPwi) =’);

h9 = text(‘units’,‘centimeters’,‘Position’,[16 3.0],‘Fontsize’,11,‘String’,HPwi);

h10 = text(‘units’,‘centimeters’,‘Position’,[10 2.4],‘Fontsize’,11,‘String’,‘Half Power beamwidth (HPPi) =’);

h11 = text(‘units’,‘centimeters’,‘Position’,[16 2.4],‘Fontsize’,11,‘String’,HPi);

h12 = text(‘units’,‘centimeters’,‘Position’,[10 1.8],‘Fontsize’,11,‘String’,‘Half Power beamwidth (HPw) =’);

h13 = text(‘units’,‘centimeters’,‘Position’,[16 1.8],‘Fontsize’,11,‘String’,HPw);

h14 = text(‘units’,‘centimeters’,‘Position’,[10 1.2],‘Fontsize’,11,‘String’,‘Half Power beamwidth (HP) =’);

h15 = text(‘units’,‘centimeters’,‘Position’,[16 1.2],‘Fontsize’,11,‘String’,HP);

h16 = text(‘units’,‘centimeters’,‘Position’,[17 0],‘Fontsize’,11,‘String’,‘(c) Anil Kumar Pandey’);

 

2 responses to “Array Antenna: Taylor Synthesis for Low Sidelobe Level (SLL) using Matlab Code

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s