MATLAB Based Toolbox for Phased Array Antenna Design and Analysis

October 3, 2008 Leave a comment

Regarding my previous project (MATLAB version of the “Arraytool”, which is not open source)

When I was an undergraduate, I had this wonderful opportunity to study a book by “E. C. Jordan & K. G. Balmain”. The book was Electromagnetic Waves And Radiating SystemsIt introduced me to a wonderful field of radiation, fields, antennas and so many other things. But one thing that really attracted me was the concept of analysis and synthesis of antenna arrays. Though the theory provided on antenna arrays in that book is not of advanced level, it gave me an insight into this beautiful world of imaginary electromagnetic waves trying to co-ordinate (interfere) with each other so that they can fulfill their assigned  jobs (like scanning or adjusting side lobes).

But unfortunately to analyze even a very simple array, I had to do cumbersome array factor evaluations to finding pattern nulls, gain, etc. I am not saying that those calculations were useless. As a matter of fact, those manual computations give us very interesting insight into concepts such as grating lobes, side-lobe level, etc. However, human brains have their limitations. So, as the number of array elements increases, we need to use computer for all those numerical calculations.

But there are some problems … I am not sure whether they are commercial problems or some thing else. We don’t have proper tools to educate students (or engineers) on this topic. Yes, we do have CAD tools such as HFSS, CST, ADS, etc … and they are very helpful for a microwave engineer. But, a devoted tool providing all possible solutions for antenna arrays is not available at this moment.

So, I decided to create a GUI program based on MATLAB which can answer at least some of the very important issues on my favorite topic. This project is still under construction.


At the time of writing this post, I was not aware of the following tools which also deal with phased array antenna design:

Anyhow, here are some screenshots of the “partially completed program” :


Grating-Lobe Analysis (Circular Pyramidal Scan)


Grating-Lobe Analysis (Rectangular Pyramidal Scan)

For further information regarding Grating Lobe Analysis, click here.

A simple linear Villeneuve (i.e., Generalized Taylor Distribution, alpha=0) array (rectangular radiation pattern)

For further information on Generalized Discrete Taylor & Bayliss Distribution, click here.


A simple linear Dolph-Chebyshev array (polar radiation pattern)


Pattern-Multiplication shown in rectangular plot


Pattern-Multiplication shown in polar plot


Radiation pattern cuts (Theta & Phi) in UV-domain


Contour as well as 3D patterns corresponding to a linear array


Contour as well as 3D patterns corresponding to a planar array (Circular Taylor)


Pattern corresponding to a given arbitrary array excitation I/P


Shaped beam Synthesis (here, using simple Woodward-Lawson method)


Shaped beam Synthesis (here, using simple Woodward-Lawson method)

Radar Cheat Sheet (work in progress)

September 21, 2016 Leave a comment

Please find the radar cheat sheet that I am preparing for myself here. This file is being shared through Google Drive. I will be updating this file from time to time. So, always download the latest version. If you find any mistakes, please let me know.

Source Files for all the Teaching Material that I have Developed

May 25, 2016 Leave a comment

I have taught eight different courses so far and spent lot of time on preparing teaching material for these courses😦. You can already find some of this material on my “Teaching” page. However, those files are PDF files and you won’t be able to edit them according to your requirements. So, I am sharing the source files too in this post. You will find all the files (e.g., Lyx files, SVG files, etc.) here:

Now, you can edit these files to your taste. Happy LaTeXing!

A Simple Histogram Software (Libre Calc File) for Course Grading

May 23, 2016 Leave a comment

After a long time, I am writing a new post on this blog. This is the first long vacation I am having after my PhD. So, I thought about learning a little bit more about spreadsheets. For a while, I have been thinking about creating a simple .ods file for course grading. Yesterday, I had some free time to ponder over it and came up with this simple file which can do most of the basic things related to grading:

Remember that this file works only with Libre Office Calc. Of course, you can re-implement this file in Excel with a little effort.

XCircuit – A Simple but Powerful Schematic Drawing Tool

April 4, 2015 Leave a comment

For drawing vector graphic pictures, we have several open-source softwares such as Inkscape, Dia, Xfig and LibreOffice Draw. Out of all these softwares, I use Inkscape extensively for drawing vector graphics. However, Inkscape doesn’t have proper library management capability, which I think is essential when we are drawing circuit diagrams. So, I have been searching for an alternative vector graphics editor for drawing circuit diagrams. Recently I came across XCircuit, a simple but powerful tool for drawing publishable-quality electrical circuit schematic diagrams. There are some other tools for drawing circuit diagrams such as Circuit_macros and Circuitikz. Though their output quality is good, these tools do not have any GUI front-ends. So, it takes some time to write the code for drawing circuit diagrams. XCircuit addresses these drawbacks and can be customized very easily. If needed, XCircuit can generate SPICE netlists too. Here are a few screenshots of XCircuit’s usage:

Edit: Symbol library feature has been added to the latest version of Inkscape (v0.91). So, now it is very easy to draw publication quality circuit diagrams using Inkscape. You can find here a simple circuit element symbol library that I use. Just press “Shit+Ctrl+Y” (Object->Symbols) to pop-up symbol library dialog window. But, I still prefer to use Xcircuit for drawing circuits as it is optimized for drawing circuit schematics.

Drawing circuit diagrams in XCircuit.

Drawing circuit diagrams in XCircuit.

One can create their own components and add them to XCircuit libraries.

One can create their own components and add them to XCircuit libraries.

One can export circuit diagrams as .svg files and edit them further in Inkscape

Finally, export circuit diagrams as .svg files and (if you want) edit them further in Inkscape

Geany – A Lightweight Cross-Platform IDE

November 16, 2014 Leave a comment

For the past 5~6 years, I have been using Eclipse (plus Pydev) for Python scripting.  It is a great IDE, not only for Python, but for many other programing languages such as Java, C, C++, Fortran, etc. However, Eclipse is quite a resource hungry program. Then, I found a lightweight but fully functional IDE for Python (and many other languages). It has “almost” all the features that are available in Eclipse, e.g., syntax highlighting, auto-completion, snippets, code folding, embedded terminal, so on. A few things about Geany IDE:

Generating Tag Files:

For auto-completion, you can generate tag files for any Python packages (e.g., Matplotlib) as shown below:

geany -g /usr/lib/pymodules/python2.7/matplotlib/*.py

You have to place the generated tag file in /home/username/.config/geany/tags/. For more information on generating tag files, see here.

Configuration File for Auto-Generating Sphinx Doc using Geanygendoc:

Download the configuration file from here and place it in /home/username/.config/geany/plugins/geanygendoc/filetypes/.

A few Screenshots of Geany IDE:

Geany IDE (with Spellcheck plugin)

Geany IDE with Spellcheck Plugin and Embedded Terminal

Geany IDE with custom colorsheme

Geany IDE with Custom Colorsheme (Tango)

Split View

Split View

Using Geanygendoc Plugin for Auto-Generating Sphinx Docs

Using Geanygendoc Plugin for Auto-Generating Sphinx Docs

Analog Microwave Filter Design Module is added to the “Arraytool” Repository

July 28, 2011 Leave a comment

A python module titled “” is added to the “other_examples” folder of Arraytool Github repository.

Here is the link to the Pyhton module:

Features of the ‘filtertool’ module as of 19/08/2011:

  • Evaluation of the characteristic polynomials (F, P and E) of the general Chebyshev filters
  • Plotting S parameters for a given set of characteristic polynomials (F, P and E)
  • Evaluation of (N, N) and (N+2, N+2) coupling matrices
  • Plotting S parameters from the obtained coupling matrices (both N and N+2 matrices)

For the theory, see the article on microwave analog filter design here: (Sec. “EM and MW circuits”)

In the near future, I am planning to include some more functions to reduce coupling matrices into folded and arrow canonical forms.

Screen shots:

Magnitude of S parameters

Magnitude of S parameters

Group delay

Group delay

Induced Current Density on a “Paraboloid of Revolution” due to a “Huygens Source” Placed at the Focus

April 1, 2011 Leave a comment

Feed Polarization:

When any of the “conic” reflectors are used, it is of interest to specify an “ideal” polarization of the incident field such that the currents induced in the reflector flow in parallel paths. This specification will permit the reflector to be formed by parallel conducting wires or slats [1].

So, I wrote a simple script to plot the induced currents on the reflector (which is a simple paraboloid of revolution). The ideal feed for this particular reflector is Huygens source (see [1] for further theory). As you can see, the currents flow in parallel paths as expected. But, due to the inherent antisymmetry nature of the feed, the magnitude of the induced current also is asymmetric. I don’t know exactly how this will effect the secondary radiation pattern. But, I thought it is interesting and noteworthy to post !


  1. Irwin Koffman, “Feed polarization for parallel currents in reflectors generated by conic sections”, IEEE Transactions on Antennas and Propagation, 1966, 14, 37-40


For a few more thoughts related to the Ludwig’s cross polarization definitions, click the link below: (Sec. Phased Arrays & Antennas)

You can find the Python script corresponding to the below diagrams here. By the way, this is not an April fool’s joke🙂.

Isometric View: Induced Current Density on a "Paraboloid of Revolution" due to a "Huygens Source" Placed at the Focus

Isometric View: Induced Current Density on a "Paraboloid of Revolution" due to a "Huygens Source" Placed at the Focus

Top View: Induced Current Density on a "Paraboloid of Revolution" due to a "Huygens Source" Placed at the Focus

Top View: Induced Current Density on a "Paraboloid of Revolution" due to a "Huygens Source" Placed at the Focus