RF

Vivaldi Antenna Design with MATLAB

Diving deeper into antenna design you find really interesting antenna structures based on what parameter you are trying to optimize for. I was looking for antennas that had wide bandwidth and some directionality, to use in conjuncture with my LimeSDR Mini for one of my many projects, that’s how I found out about the Vivaldi antenna design. The Vivaldi Antenna was presented back in 1979 at the 9th European Microwave Conference Proceedings by P. J. Gibson in a paper titled “The Vivaldi Aerial“. The Vivaldi antenna is categorized as an exponentially tapered slot antenna in “Modern Antenna Design 2nd Edition” by Thomas Milligan. This is due to characteristic slot geometry which dictates the bandwidth as well as beamwidth of the antenna.

Design Parameters

There are hundreds of papers and books dedicated to the theory and experimentation of the Vivaldi antenna design that is constantly being updated. Therefore I will refer you to this great paper that takes an experimental approach to Vivaldi design. The diagram below from the paper defines the geometric features of the Vivaldi antenna.

Development of an Electrically Small Vivaldi Antenna: The CReSIS Aerial Vivaldi (CAV-A)

The paper goes into great depth on how each of the parameters affects the radiation and matching characteristics of the antenna a well as recommendations for general coplanar Vivaldi antenna.

Summary of recommendations

Based on the experience gained from these designs, the following recommendations are suggested for others interested in designing broad bandwidth Vivaldi antenna that may fall into the electrically small category.

Selecting a substrate material is entirely dependent on operational bandwidth and budget.

Design the stripline trace width for a characteristic impedance equal to that of the feed line.

The antenna length should be on the order of λ0/4.

Mouth opening, hence antenna width, should be on the order of λ0/4.

Design the throat width to have a characteristic impedance in the range of 50 to 75 Ω.

Start with frequency scaled values for backwall offset, edge offset, radial stub radius, and circular cavity diameter.

Start with a radial stub angle of 70°.

Start with a modest taper rate of 0.15 cm .

Panzer, B. (2007). Development of an Electrically Small Vivaldi Antenna: The CReSIS Aerial Vivaldi (CAV-A).

Design Motivation and Constraints

It is always a good idea to have design constraints otherwise you will go crazy trying to do it all. My main motivation for this antenna was to fit in a small form factor, have a wide bandwidth to match the LimeSDR Mini, and have a semi-directional beam pattern.

MATLAB Design

I previously used MATLAB to design a PCB patch antenna and was pleasantly surprised at the results. MATLAB has an Antenna Toolbox that provides a plethora of pre-designed antenna structures. Although MATLAB provides the metal structures PCB design requires a bit more coding to make up the layers.

Thankfully MATLAB also has tons of demo code in their online examples, one of them being a PCB Vivaldi design.

Design an Internally Matched Ultra Wideband Vivaldi Antenna

This example created a smaller Vivaldi antenna that was designed for much higher frequencies than the LimeSDR Mini is capable of. So I scaled up the size of the antenna to lower the frequency response.

We can then add the substrate material between them, I went with FR4 since that will be what the antenna will be manufactured on.

Simulation

Once the design is finished we need to run the EM simulation to determine if the design meets the frequency and directionality requirements that we want. Matlab is able to do this for us but we need to set up the antenna object for simulation. The simulation requires the antenna to first be meshed so that it can be broken down into smaller sections of analysis.

This mesh can be created automatically, but if you want the model to be stable across Matlab versions it’s better to manually describe the mesh as the auto-meshing feature can give you different results otherwise.

With the meshed antenna structure, we can simulate the design at various frequency modes to determine the RF characteristics of the design. I first simulated the s11 over the frequency range from 600MHz to 3GHz which falls in the capability range of the LimeSDR as well as our eventual measurement device the NanoVNA V2.

S11 600MHz to 3GHz

From this, we can see that the antenna is really good from the 2.2GHz to 3GHz range, and are useful centered around 700MHz and 1.7GHz frequencies.

I then simulated the radiation pattern in 3D space for four of the frequencies of interest which are shown below.

I also ran the S11 simulation over a much wider bandwidth to see if the antenna will work at higher frequencies. I did this at a reduced resolution to keep the run time down.

S11 600MHz to 6GHz

I then simulated the antenna pattern over this range, but I was curious about how the pattern changed as the frequency increased. So I created a loop that generated a pattern from 600MHz to 6GHz and used the Matlab movie function to play it as a video GIF.

Simulated Vivaldi Antenna Pattern Progression from 600MHz to 6GHz

Generating the PCB Files

To generate the PCB I needed to add a connector to the layout. Matlab provides several connector types, but I went with the basic edge mount SMA. The problem that I had was that the connector is added automatically to the feed location and cannot be rotated or flipped. So I needed to flip the design element layers. Hopefully, this can be fixed in a new version of the toolbox.

PCB Fabrication

I decided to use PCBWay this time instead of OSHPark because the price was approximately half and included 2 more boards. Although it would have been nice to have the after-dark option! I was still able to use the MATLAB generated Gerber files using the OSHPark writer object.

I am thrilled with the way these turned out, and I really like the red solder mask. These also came with no PCB bites, unlike the Oshpark boards I previously manufactured.

Measuring S11 on NanoVNA V2

After soldering the SMA connector we can start testing the antenna to see how it performs in the real world. For this, I used the NanoVNA V2 which is a low-cost Vector Network Analyzer (VNA) that can be purchased for as low as $60, where commercial VNAs can be in the thousands of dollars. Here I measured the S11 of the antenna and recorded the value at the local peaks to compare against the simulated S11 generated by Matlab.

Each point out of the four measurements seems to have much better matching but at a slightly reduced frequency.

SimulatedMeasured
-9.527 @ 697MHz-15.17dB @ 672MHz
-7.584 @ 1691MHz-10.84dB @ 1584MHz
-8.792 @ 2442MHz-12.75dB @ 2448MHz
-27.91dB @ 3000MHz-34.38dB @ 2856MHz

Measuring Antenna Gain Pattern with NanoVNA V2

I learned of a technique to measure an antenna’s radiation pattern using a NanoVNA with the S21 “through” measurement. The basic idea is outlined in this Hackaday post and the original post is up on Imgur.

The S21 measurement is used to measure the gain and phase of a signal through a particular device under test (DUT) which is normally directly connected between port 1 and port 2 via SMA cables. In this instance, we will be using two of the Vivaldi antennas that I created to measure the through gain at various rotation angles of the transmitting. In this Twitter post video, I show a simplified set up where changing the angle of the antenna causes the gain to change as well. If you watch the NanoVNA V2 in the bottom right you can see the gain changing with antenna angle.

I created 3D printed antenna mounts that could be attached to a traditional tripod and, luckily enough, a phone-specific tripod/selfie stick. These will be used to fix the antenna’s position while a measurement is taking place.

I then used my smartphone’s compass application to determine the angle for each test, placing the phone on the antenna mount and adjusting the angle. The phone can then be removed when the measurement is taken. This will incur some angle inaccuracy but it is super simple to use.

Now we can go outside, away from obstructions, and set-up the antennas in the far-field of the antenna’s frequency. Here the antennas are 12ft from each other, which should be good for the 2450MHz frequency.

Outside Test Setup

I used the NanoVNA Saver application to perform the sweep from 2400MHz to 2500MHz with the center marker at 2450MHz. This allowed me to average several measurements from the NanoVNA V2 that I would not have been able to do on the device itself.

I then recorded the S21 gain for that point in an Excel table next to its associated angle position. I repeated this in 10-degree increments for a single 360-degree rotation. Once that is done we can then plot the normalized gain values on a polar plot to see the radiation pattern cross-section in the rotated plane.

The measured pattern and the simulated pattern are pretty close, if I end up re-running the test I would play around with the position of the antennas while taking a few snapshot measurements to see if there were any reflections occurring.

I was able to get pretty decent measurements but there was a good amount of variation in each when I did back to back sweeps. I would like to do more sweeps per angle and average but it took me over an hour to perform all 36 measurements. Which isn’t too bad if it was a nice day but in the winter it’s a different story!

Design Files

You can find the Matlab design script on my Github, but be sure to only get these antennas manufactured with PCBWay. Otherwise, the permittivity may be different for other manufactures as I have not tried any others.

GitHub: Vivaldi Antenna Design

Conclusion

I am really impressed with these results! My last design turned out to be too far off to be useful for the 2.4GHz wifi, but since this is an ultra-wideband antenna, the precise frequency range was not as critical. I think my next design will need to take this into account and be tuned for a wider bandwidth than necessary so the desired frequency is in the useable range.

If this has sparked your interest, check out my other antenna design where I go more in depth with the matlab code, you can find it here.

1 thought on “Vivaldi Antenna Design with MATLAB”

  1. Hey there! This post couldn’t be written any better! Reading this post reminds me of my previous room mate! He always kept chatting about this. I will forward this page to him. Fairly certain he will have a good read. Thanks for sharing!

Comments are closed.