Read Latex

Showing posts with label electronics. Show all posts
Showing posts with label electronics. Show all posts

Wednesday, November 16, 2011

Scaling Laws for Fractal Antennas



I was doing some simulations of fractal antennas recently and a friend said, "I'm talking about the postage sized antenna for 160 meters."




The statement intrigued me for several reasons:
1) Perhaps fractal antennas scale differently because of fractal dimension?
2) How small would could an antenna for 160 meters (1.9 Mhz) REALLY be?
3) How does fractal dimension affect the performance of the antenna?


Analysis Tools


The questions were answered via extensive analysis. Analysis was performed using 4NEC2 an excellent adaption by Arie Voors of the Numerical Electromagnetics Code by J, Burke and A. Poggio. These links will open in a new window if you would like to check them out. Arie Voors has made his tool freely available to the technical community. The Minkowski Antenna configuration used in this study is described here by Camps-Raga and Islam at the University of Missouri, Columbia. The 'C' program minkowski.c, the bash script, doit.bash, and the parameter file, tail.txt used to generate the antenna examples are included at the bottom of this technical note.


Simulation Results


1) A fractal antenna of a given configuration and dimension scales
    linearly in wavelength just like all antennas do.
2) A Minkowski fractal antenna for 160 meters would be 36 feet wide.
    It would have a gain of -19.3 dB relative to an isotropic radiator.

3) Increasing fractal dimension decreases antenna size with
    gain dropping faster than size.


Discussion


1) A fourfold reduction in antenna size is accompanied by a gain reduction of 21.3 dB so there appears to be is a severe penalty for size reduction. My current hypothesis is that as fractal dimension increases, the antenna starts to look more like a mirror than an absorber of electromagnetic energy.
2) A level 0 Minkowski fractal is a square loop antenna! The makes a nice basis for comparison.




Analysis Details




















'C' Code Used to Generate the Minkowski Fractal Antennas


The 'C' code was written entirely by the author using the principle of segmenting a single line and offsetting the middle segment by a distance h. The code was compiled using the cygwin cc compiler from the fantastic and free cygwin running on top of Windows XP on a dual core Intel processor and ASUS motherboard from newegg.com. If you have never had the pleasure of building your own computer from off the shelf components I urge you to do so. You will save a ton of money and get a computer more suited to your needs. Anyway, here is the 'C' code:


------- cut here -------
// Minkowski fractal antenna generator by van at wdv dot com

#include
#define SOUTH 1
#define EAST 2
#define NORTH 3
#define WEST 4
#define MAX(a,b) ((a)>(b)?a:b)


int maxLevel = 1;


void edge(double xA, double yA, double xF, double yF, int type, int level)
{
    double W = 1.0 / 3.0;
    double H = 1.0 / 3.2;
    double L, w, h;
    double xB, yB;
    double xC, yC;
    double xD, yD;
    double xE, yE;


    if(level >= maxLevel)
    {
        printf("1\t0\t%9.4f\t%9.4f\t0\t%9.4f\t%9.4f\t1.e-4\n",
            xA, yA + 1, xF, yF + 1);
    }
    else
    {
        if(type == SOUTH)
        {
            L = xF - xA; w = L * W; h = L * H;


            xB = xA + w; yB = yA + 0;
            xC = xA + w; yC = yA + h;
            xD = xF - w; yD = yA + h;
            xE = xF - w; yE = yA + 0;


            edge(xA, yA, xB, yB, SOUTH, level + 1);
            edge(xB, yB, xC, yC,  WEST, level + 1);
            edge(xC, yC, xD, yD, SOUTH, level + 1);
            edge(xD, yD, xE, yE,  EAST, level + 1);
            edge(xE, yE, xF, yF, SOUTH, level + 1);
        }
        else if(type == EAST)
        {
            L = yF - yA; w = L * W; h = L * H;


            xB = xA + 0; yB = yA + w;
            xC = xA - h; yC = yA + w;
            xD = xA - h; yD = yF - w;
            xE = xA + 0; yE = yF - w;


            edge(xA, yA, xB, yB,  EAST, level + 1);
            edge(xB, yB, xC, yC, NORTH, level + 1);
            edge(xC, yC, xD, yD,  EAST, level + 1);
            edge(xD, yD, xE, yE, SOUTH, level + 1);
            edge(xE, yE, xF, yF,  EAST, level + 1);
        }
        else if(type == NORTH)
        {
            L = xA - xF; w = L * W; h = L * H;

            xB = xA - w; yB = yA + 0;
            xC = xA - w; yC = yA - h;
            xD = xF + w; yD = yA - h;
            xE = xF + w; yE = yA + 0;

            edge(xA, yA, xB, yB, NORTH, level + 1);
            edge(xB, yB, xC, yC,  EAST, level + 1);
            edge(xC, yC, xD, yD, NORTH, level + 1);
            edge(xD, yD, xE, yE,  WEST, level + 1);
            edge(xE, yE, xF, yF, NORTH, level + 1);
        }
        else if(type == WEST)
        {
            L = yA - yF; w = L * W; h = L * H;

            xB = xA - 0; yB = yA - w;
            xC = xA + h; yC = yA - w;
            xD = xA + h; yD = yF + w;
            xE = xA - 0; yE = yF + w;

            edge(xA, yA, xB, yB,  WEST, level + 1);
            edge(xB, yB, xC, yC, SOUTH, level + 1);
            edge(xC, yC, xD, yD,  WEST, level + 1);
            edge(xD, yD, xE, yE, NORTH, level + 1);
            edge(xE, yE, xF, yF,  WEST, level + 1);
        }
    }
}

main(int argc, char **argv)
{
    if(argc > 1) maxLevel = atoi(argv[1]);

    edge( 0,  0, 16,  0, SOUTH,  0);
    edge(16,  0, 16, 16,  EAST,  0);
    edge(16, 16,  0, 16, NORTH,  0);
    edge( 0, 16,  0,  0,  WEST,  0);
}




Bash Script Used to Generate the Minkowski Fractal Antennas


The 'C' program above, though somewhat minimal, produces extra copies of the segments during the recursion. The output lines are only part of the "card entry" fragments necessary for 4NEC2. To get the output file into a form usable by 4NEC2 the following script was run:


$doit.bash 2


which produces a level 2 Minkowski fractal antenna.


------- cut here --------------


#!/bin/bash
minkowski.exe $1 | sort -u | nl | sed -e 's/ //g' | sed -e 's/^/GW\t/' > head.txt
cat head.txt | wc -l > /tmp/tmp.txt
lineCount=`cat /tmp/tmp.txt`
echo $lineCount
sedCommand="s/NSEG/$lineCount/"
echo $sedCommand
cat tail.txt | sed -e "$sedCommand" > foo.txt
cat head.txt foo.txt > MI3ALVW.nec
u2d MI3ALVW.nec


~                       

The Last File


The last file "tail.txt" is used by the bash script to provide analysis parameters for 4NEC2. It looks like this:


------- cut here ----------


GE  0
EK
LD  5   0   0   0   5.74713e7   0
EX  6   NSEG    1   0   1   0
GN  2   0   0   0   13  0.005
FR  0   1   0   0   1.8 0


Addendum:
"Chip" W1YW owns US patents 6452553 and 7256751 on fractal antennas. He has measured the performance of a configuration similar to the one pictured at 175 MHz and does not report the dip in gain that appears in the 1.9 MHz version above. He states and I quote:


"For example,the MI2 (second iteration)  modeled in NEC4, reveals a 97% efficiency and dipole equivalent gain. Recently an open house with members of the Radio Club of America showed this to: K1VR; WB2MGP; K1BG; WA6RNU; W0BIW; KD0FAA; and several others. In addition, the visitors were treated to actual chamber measurements of a wire-bent MI2 at 175 MHz, Its gain was indisitinguishable (within 0.2dB) from an ETS calibrated dipole of 1.7 dBi. The fractal antenna is thus unity gain to a dipole."


Thus W1YW does not observe the same drop in gain that occur in my simulations. Work is proceeding to rectify this discrepancy.


Saturday, May 12, 2007

A Switched Variable Capacitor

Lately I have renewed my interest in wideband radio. The question is, what is possible now?

Turns out, it’s all in the amplifier.

Texas instruments makes a very interesting wideband radio frequency (RF) amplifier. It is called the THS3202. There is a saying in radio, “DC to daylight” to describe this kind of part. The 3202 goes from 100 kHz to 2 GHz, not quite daylight, but pretty close.


THS3202 Wideband RF Amplifier -- Texas Instruments

That is sixty-five times more bandwidth than the Hammarlund of the previous article. That’s a lot. The 3202 weighs much less than a gram. That’s a little. You can see it in the center of the board above.

Here is a circuit showing the THS3202 in action:



3202 Amplifier in Action -- Bruce Carter TI

Finding the Needle in the Haystack

There are three ways of teasing a given signal out of the haystack of broadcasting and noise.

1) Resonate incoming RF through LC tank circuit to select a specific signal.

2) Multiply all incoming RF by a frequency you choose and generate.

3) Bandpass filter all incoming RF to amplify the desired frequencies and quench the rest.

Most radios use methods 1 and 2, heterodyning to demodulate the incoming signal. Here we focus on method 3, homodyning, made possible by advances in amplifier technology...

Filtering

Trump, Stitt and Bishop of Texas Instruments have created a program called FilterPro™ that enables the accurate specification of filter banks for a wide range of frequencies. Low-Pass, High‑Pass and Band-Pass filters can be designed using Butterworth, Bessel, Chebychev and other common filter paradigms. FilterPro™ allows cascading stages of bandpass filtering that use identical components, except for the filter capacitors. As a quick example, consider the following two­‑ pole filter centered at 500 MHz:

Two Pole Bandpass Filter created using FilterPro

An iterated use of the program produces the following range of component values in a five-pole bandpass filter:


Capacitor Values Required for Wideband Filter Tuner

Capacitor Values Required for Wideband Filter Tuner

Five stages of the filter shown above enables a very wideband filter to be created that can serve as a radio tuner. From the graph we can see that the bandpass filter not only filters, it amplifies the signal of interest by 40 decibels (dB), or a factor of 10,000.

A Switched Variable Capacitor

“Back in the day” variable capacitors with consecutive ganged stages were used to address the tuning problem. They looked like this:


Air Variable Capacitor from Wikipedia

Modern versions of such capacitors have a range of capacitance from 15 picofarads to 384 pF. Synchronizing 10 instances of 15000 pF each would require 390 such units.

The trouble is that for each section of our five pole bandpass filter, we required two capacitors whose values can range from 1 pF to 15000 pF, that is, five decades of variation. A coordinated five pole array requires ten wideband variable capacitors operating in near-perfect unison. Accomplishing this with combinations of mechanically ganged variable capacitors is not practical.

This paper explores the creation of a variable wideband capacitor constructed using arrays of surface mount capacitors and solid state relays.

Novacap Capacitors and Teledyne RF Relay

The questions are:

· What topology of array?

· What form of switching?

A useful design would require.

Clearly the equivalent series resistance (ESR) of the switched capacitor should be as low as possible to maintain the idealized properties of a capacitor.

Two solutions come to mind. Both give rise to interesting mathematical analysis. We will start with the simplest first.

Note” The term “array” will be used to talk about the ensemble of capacitors used to create a single variable wideband capacitor. The term “bank” will be used to talk about a synchronized set of such variable wideband capacitors.

Point of Clarification

A Simple Decade Array

Consider an abacus like arrangement:

A Switched Variable Capacitor from 0 – 99,999 pF with 1 pF Steps

This capacitor would require 5 columns for each of the five decades. Each column would require 9 capacitors to represent the digits in each decade. The result would be a variable capacitor of 0 – 99,999 pF in 1 pF steps. Now obviously lead capacitance would make absolute values below 5 pF difficult to obtain, but increments of 1 pF could be realized with this device. This bank requires 45 capacitors and 45 switches to accomplish this task. With surface mount technology it would be the size of a postage stamp.

The question is finding those values of capacitance.