MATLAB Based Toolbox for Phased Array Antenna Design and Analysis

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 world 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, etc).

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.

However, 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 related my favorite topic. This project is still under construction like all my other projects … 🙂


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 screen-shots 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 Taylor array (rectangular radiation pattern)
A simple linear Taylor 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)

GUI version of Arraytool

For a long time, I have been thinking about creating a GUI application based on the Arraytool package that I have created many years back. Finally, I was able to spend some time on creating the application’s GUI layout and here is how it looks:


Not bad right? I used PySide to create this GUI layout. Now, all I need to do is to connect the GUI widgets to the original Arraytool package. You can find the corresponding source code here:

Source Files for all the Teaching Material that I have Developed

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

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

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