Fundamentals of a Circular Array – Mathematical Model and Code

Array Factor and Element Factor

In the previous post we discussed the case of a Square Array which is a special case of a Rectangular Array. The code we shared can handle both the cases as well as Uniform Linear Array. We did briefly talk about the response of an element vs the response of an array, but we did not put forward the mathematical relationship. So here it is:

Response of an Array = Array Factor x Element Factor

In this post as well as previous posts we have assumed the element response to be isotropic (or at least omni-directional in the plane of the array) giving us an Element Factor of 1. So the array response is nothing but equal to the Array Factor.  In this post we mostly discuss the 2D Array Factor but briefly touch upon the 3D case well at the end.

Excess Path Length Calculation

As discussed in the previous posts when a plane wave impinges upon an array its absolute phase is not that important (although it might be important in synchronization at the receiver but we defer that discussion for the moment). What is important is the relative phase at the array elements. This can be calculated by first determining the excess path length at each element from a reference element and then adding up the contribution of each element to the array pattern.

The excess path length calculation, for the elements of a Circular Array, is not as as straightforward as that for a Uniform Linear Array or a Rectangular Array. We show two methods for calculation of the excess path length, you can chose whichever you prefer. It’s no surprise that both methods give identical results. One point that needs to be clarified about the mathematical model below is that we drop the term cos(φ) from the final equation. This is because it is a common term for all the array elements and does not have any impact on the composite pattern (Array Factor).

Derivation of Array Factor
Circular Array – Derivation – Method 1
Circular Array – Derivation – Method 2
MATLAB Code for Calculating Array Factor of Circular Array
clear all
close all

for m=1:M


polar(phi, abs(AF))
8-Element Antenna Pattern
Eight Element Circular Array
Discussion on 8-Element Antenna Pattern

It is seen that array pattern for 8-element array has almost a uniform response with a gain of about 3. Here the element separation, along the circumference of the ring, is set to half the wavelength. Different antenna patterns can be generated by varying the inter-element spacing (which determines the radius of the ring). More complicated patterns can be generated by using multi-ring antenna formations [1]. Also, it must be noted that we are simply adding the signal arriving at each of the elements without altering the phase or the amplitude. In actual implementations there is always a weighting pattern applied to the signals arriving at the array elements to get more useful patterns [2].

3D Array Factor

Lastly I would like to briefly comment on the 3D patterns that can be generated by using 3D Array Factors, a natural extension to the models discussed above. The equation of the 3D Array Factor is really not that complicated and has just one additional variable θ, which is nothing but the angle of elevation. In the above we have assumed that the angle of elevation to be 90 degrees. If the angle of elevation is not 90 degrees, that is we are not in the plane of the array, the array factor is modified to:

∑ e -jka(cosφ cosφnsinθ+sinφ sinφnsinθ)

∑ e -jkasinθ(cosφ cosφn+sinφ sinφn)

∑ e -jkasinθ(cos(φ -φn))

If we fix the value of φ to be zero and vary θ from -90 degrees to +90 degrees we get a very interesting pattern. This pattern shows that with isotropic array elements it is possible to have a maximum gain of 8 on the linear scale (or 9 dB on the logarithmic scale), which is expected from an array with 8 elements and Element Factor of unity. This can also be verified from the above equation by realizing that sin(θ)=sin(0)=0 and anything raised to the power of zero is one. Eight of these terms added together give a total gain of 8.

Note: Inter-element separation on the circumference is labelled as ‘d_circular’ and this is set to half the wavelength [2]. Based upon this the radius of the ring is calculated.


[1] F. Gozasht, G. R. Dadashzadeh, S. Nikmehr “A Comprehensive Performance Study of Circular and Hexagonal Array Geometries in the LMS Algorithm for Smart Antenna Applications”, Progress in Electromagnetics Research, PIER 68, 281-296, 2007

[2] Harry L. Van Trees “Optimum Array Processing”, Part IV of Detection, Estimation and Modulation Theory, Wiley 2002.